From 8d28bb34804b53ab9cd4ca3ce08b952b78c9f165 Mon Sep 17 00:00:00 2001 From: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Date: Thu, 18 May 2023 22:33:46 +0200 Subject: [PATCH 1/5] jak2: add `current-time` macro for process clocks (#2662) Closes #1872 --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> --- decompiler/IR2/Form.h | 1 + decompiler/IR2/FormExpressionAnalysis.cpp | 20 + .../jak2/characters/ashelin/ash-states.gc | 40 +- goal_src/jak2/characters/ashelin/ash.gc | 262 ++--- goal_src/jak2/characters/sig/sig-states.gc | 78 +- goal_src/jak2/characters/sig/sig-task.gc | 4 +- goal_src/jak2/characters/sig/sig.gc | 320 +++--- .../underground_fighters/shuttle.gc | 646 ++++++----- goal_src/jak2/engine/ai/enemy.gc | 890 +++++++------- goal_src/jak2/engine/ambient/ambient.gc | 20 +- goal_src/jak2/engine/anim/fma-sphere.gc | 5 +- goal_src/jak2/engine/anim/joint-exploder.gc | 8 +- goal_src/jak2/engine/anim/joint-mod.gc | 2 +- goal_src/jak2/engine/anim/joint.gc | 200 ++-- goal_src/jak2/engine/camera/cam-debug.gc | 62 +- goal_src/jak2/engine/camera/cam-master.gc | 14 +- goal_src/jak2/engine/camera/cam-states.gc | 18 +- goal_src/jak2/engine/collide/collide-debug.gc | 224 ++-- goal_src/jak2/engine/collide/los-control.gc | 16 +- goal_src/jak2/engine/common_objs/base-plat.gc | 4 +- .../jak2/engine/common_objs/basebutton.gc | 4 +- .../jak2/engine/common_objs/collectables.gc | 245 ++-- goal_src/jak2/engine/common_objs/crates.gc | 12 +- .../jak2/engine/common_objs/dark-eco-pool.gc | 2 +- goal_src/jak2/engine/common_objs/elevator.gc | 18 +- .../jak2/engine/common_objs/generic-obs.gc | 101 +- goal_src/jak2/engine/common_objs/plat.gc | 8 +- goal_src/jak2/engine/common_objs/powerups.gc | 50 +- .../jak2/engine/common_objs/projectile.gc | 10 +- .../engine/common_objs/rigid-body-plat.gc | 50 +- goal_src/jak2/engine/common_objs/voicebox.gc | 17 +- goal_src/jak2/engine/common_objs/water.gc | 82 +- goal_src/jak2/engine/debug/default-menu.gc | 52 +- goal_src/jak2/engine/debug/editable-player.gc | 36 +- goal_src/jak2/engine/entity/entity.gc | 678 ++++++----- goal_src/jak2/engine/game/effect-control.gc | 698 ++++++----- goal_src/jak2/engine/game/game-info.gc | 14 +- goal_src/jak2/engine/game/main.gc | 4 +- .../jak2/engine/game/task/task-control.gc | 92 +- goal_src/jak2/engine/gfx/hw/display-h.gc | 4 - goal_src/jak2/engine/gfx/mood/weather-part.gc | 2 +- .../sprite/particles/sparticle-launcher.gc | 225 ++-- goal_src/jak2/engine/load/load-state.gc | 2 +- goal_src/jak2/engine/load/loader.gc | 12 +- goal_src/jak2/engine/math/transformq.gc | 109 +- goal_src/jak2/engine/nav/nav-enemy.gc | 281 +++-- goal_src/jak2/engine/physics/chain-physics.gc | 10 +- goal_src/jak2/engine/physics/rigid-body.gc | 4 +- goal_src/jak2/engine/physics/trajectory.gc | 2 +- .../process-drawable/process-drawable.gc | 621 +++++----- .../process-drawable/process-taskable.gc | 22 +- goal_src/jak2/engine/scene/scene.gc | 49 +- goal_src/jak2/engine/sound/gsound.gc | 59 +- goal_src/jak2/engine/sound/speech.gc | 44 +- goal_src/jak2/engine/target/board/board-h.gc | 9 +- .../jak2/engine/target/board/board-states.gc | 193 ++-- .../jak2/engine/target/board/target-board.gc | 251 ++-- .../engine/target/collide-reaction-target.gc | 260 +++-- .../jak2/engine/target/gun/gun-dark-shot.gc | 36 +- goal_src/jak2/engine/target/gun/gun-h.gc | 4 +- .../jak2/engine/target/gun/gun-red-shot.gc | 4 +- goal_src/jak2/engine/target/gun/gun-states.gc | 6 +- goal_src/jak2/engine/target/gun/gun-util.gc | 4 +- goal_src/jak2/engine/target/logic-target.gc | 112 +- .../jak2/engine/target/mech_suit/carry-h.gc | 4 +- .../engine/target/mech_suit/grunt-mech.gc | 122 +- .../engine/target/mech_suit/mech-states.gc | 91 +- goal_src/jak2/engine/target/mech_suit/mech.gc | 14 +- .../engine/target/mech_suit/target-mech.gc | 12 +- goal_src/jak2/engine/target/sidekick.gc | 4 +- goal_src/jak2/engine/target/target-anim.gc | 21 +- goal_src/jak2/engine/target/target-carry.gc | 16 +- goal_src/jak2/engine/target/target-darkjak.gc | 62 +- goal_src/jak2/engine/target/target-death.gc | 64 +- goal_src/jak2/engine/target/target-gun.gc | 134 +-- goal_src/jak2/engine/target/target-handler.gc | 38 +- goal_src/jak2/engine/target/target-part.gc | 166 ++- goal_src/jak2/engine/target/target-swim.gc | 60 +- goal_src/jak2/engine/target/target-tube.gc | 16 +- goal_src/jak2/engine/target/target-turret.gc | 208 ++-- goal_src/jak2/engine/target/target-util.gc | 68 +- goal_src/jak2/engine/target/target.gc | 223 ++-- goal_src/jak2/engine/target/target2.gc | 68 +- goal_src/jak2/engine/ui/credits.gc | 4 +- goal_src/jak2/engine/ui/minimap.gc | 260 +++-- .../jak2/engine/ui/progress/progress-draw.gc | 102 +- goal_src/jak2/engine/ui/progress/progress.gc | 180 ++- goal_src/jak2/engine/util/smush-control-h.gc | 66 +- goal_src/jak2/engine/util/sync-info.gc | 344 +++--- goal_src/jak2/kernel/gkernel-h.gc | 4 + goal_src/jak2/levels/atoll/ash1-course.gc | 66 +- goal_src/jak2/levels/atoll/atoll-obs.gc | 38 +- goal_src/jak2/levels/atoll/juicer.gc | 54 +- goal_src/jak2/levels/atoll/sig0-course.gc | 503 ++++---- goal_src/jak2/levels/atoll/sniper.gc | 6 +- .../jak2/levels/castle/boss/castle-baron.gc | 110 +- goal_src/jak2/levels/castle/pad/caspad-obs.gc | 4 +- .../jak2/levels/castle/pad/castle-tasks.gc | 4 +- .../jak2/levels/city/common/citizen-enemy.gc | 36 +- goal_src/jak2/levels/city/common/citizen.gc | 166 ++- goal_src/jak2/levels/city/common/civilian.gc | 268 +++-- .../jak2/levels/city/common/ctyport-obs.gc | 2 +- .../jak2/levels/city/common/ctywide-obs.gc | 364 +++--- .../jak2/levels/city/common/ctywide-tasks.gc | 48 +- goal_src/jak2/levels/city/common/guard.gc | 409 ++++--- .../levels/city/common/metalhead-flitter.gc | 164 ++- .../levels/city/common/metalhead-grunt.gc | 2 +- .../jak2/levels/city/common/pilot-states.gc | 16 +- .../jak2/levels/city/common/traffic-engine.gc | 731 ++++++------ goal_src/jak2/levels/city/common/transport.gc | 78 +- .../levels/city/common/vehicle-control.gc | 4 +- .../levels/city/common/vehicle-effects.gc | 2 +- .../jak2/levels/city/common/vehicle-guard.gc | 379 +++--- .../jak2/levels/city/common/vehicle-states.gc | 27 +- .../jak2/levels/city/common/vehicle-util.gc | 226 ++-- goal_src/jak2/levels/city/common/vehicle.gc | 514 ++++----- goal_src/jak2/levels/city/farm/ctyfarm-obs.gc | 232 ++-- goal_src/jak2/levels/city/farm/yakow.gc | 6 +- .../levels/city/kid_escort/crocesc-states.gc | 40 +- .../levels/city/kid_escort/hal4-course.gc | 848 +++++++------- .../levels/city/kid_escort/kidesc-states.gc | 44 +- .../levels/city/kid_escort/kidesc4-course.gc | 12 +- .../jak2/levels/city/market/ctymark-obs.gc | 4 +- .../city/market/east/ashelin/ash4-course.gc | 74 +- .../city/market/east/ashelin/ctyasha-obs.gc | 4 +- .../market/west/brutter_kiosk/meet-brutter.gc | 36 +- .../misc/collection_task/collection-task.gc | 10 +- .../city/misc/delivery/delivery-task.gc | 4 +- .../jak2/levels/city/onin_tent/onin-game.gc | 306 +++-- .../levels/city/oracle/oracle-training.gc | 2 +- .../jak2/levels/city/port/mines/portrun.gc | 89 +- .../jak2/levels/city/port/race/errol-chal.gc | 46 +- .../city/side_missions/ctywide-bbush.gc | 18 +- .../jak2/levels/city/slums/kor/kid-states.gc | 26 +- goal_src/jak2/levels/city/slums/kor/kid.gc | 296 +++-- .../jak2/levels/city/slums/kor/kor-states.gc | 28 +- goal_src/jak2/levels/city/slums/kor/kor.gc | 286 +++-- .../jak2/levels/city/slums/neon-baron-part.gc | 52 +- goal_src/jak2/levels/common/ai/bot-states.gc | 8 +- goal_src/jak2/levels/common/ai/bot.gc | 1018 ++++++++--------- goal_src/jak2/levels/common/airlock.gc | 40 +- goal_src/jak2/levels/common/battle.gc | 218 ++-- .../common/enemy/amphibian/amphibian.gc | 10 +- .../enemy/baby_spider/tomb-baby-spider.gc | 4 +- .../levels/common/enemy/bombots/bombbot.gc | 48 +- goal_src/jak2/levels/common/enemy/bouncer.gc | 6 +- .../jak2/levels/common/enemy/fodder/fodder.gc | 172 ++- .../enemy/guards/crimson-guard-level.gc | 91 +- .../common/enemy/guards/guard-conversation.gc | 4 +- .../common/enemy/guards/transport-level.gc | 84 +- goal_src/jak2/levels/common/enemy/hopper.gc | 8 +- .../common/enemy/hover/crimson-guard-hover.gc | 78 +- .../jak2/levels/common/enemy/hover/flamer.gc | 34 +- .../common/enemy/hover/hover-enemy-battle.gc | 76 +- .../levels/common/enemy/hover/hover-enemy.gc | 16 +- .../common/enemy/hover/hover-formation.gc | 90 +- .../common/enemy/hover/hover-nav-control.gc | 136 ++- .../jak2/levels/common/enemy/hover/wasp.gc | 22 +- .../enemy/metalhead_bearer/centurion.gc | 10 +- .../common/enemy/metalhead_brown/metalmonk.gc | 184 ++- .../enemy/metalhead_slinger/grenadier.gc | 78 +- goal_src/jak2/levels/common/enemy/spyder.gc | 148 ++- .../levels/common/entities/com-elevator.gc | 8 +- .../common/entities/fort-floor-spike.gc | 4 +- .../jak2/levels/common/entities/gun-buoy.gc | 22 +- .../levels/common/entities/sew-gunturret.gc | 32 +- .../jak2/levels/common/entities/spydroid.gc | 10 +- goal_src/jak2/levels/common/flitter.gc | 164 ++- goal_src/jak2/levels/common/grunt.gc | 6 +- .../jak2/levels/common/guard-projectile.gc | 4 +- .../jak2/levels/common/races/race-manager.gc | 356 +++--- goal_src/jak2/levels/common/races/race-obs.gc | 32 +- .../jak2/levels/common/races/vehicle-racer.gc | 78 +- goal_src/jak2/levels/common/warp-gate.gc | 37 +- goal_src/jak2/levels/demo/demo-obs.gc | 115 +- goal_src/jak2/levels/dig/dig-digger.gc | 136 ++- goal_src/jak2/levels/dig/dig-obs.gc | 200 ++-- goal_src/jak2/levels/dig/dig1-obs.gc | 32 +- goal_src/jak2/levels/dig/dig3-obs.gc | 86 +- .../jak2/levels/drill_platform/drill-baron.gc | 130 +-- .../drill_platform/drill-mech-master.gc | 40 +- .../jak2/levels/drill_platform/drill-obs.gc | 36 +- .../jak2/levels/drill_platform/drill-obs2.gc | 20 +- .../jak2/levels/drill_platform/drill-panel.gc | 150 ++- goal_src/jak2/levels/drill_platform/ginsu.gc | 120 +- goal_src/jak2/levels/forest/forest-obs.gc | 62 +- .../jak2/levels/forest/lifeseed/protect.gc | 10 +- goal_src/jak2/levels/forest/pegasus.gc | 179 ++- goal_src/jak2/levels/forest/predator.gc | 56 +- goal_src/jak2/levels/forest/wren.gc | 26 +- .../levels/fortress/ammo_dump/fordumpa-obs.gc | 22 +- .../levels/fortress/ammo_dump/fordumpb-obs.gc | 32 +- .../levels/fortress/ammo_dump/fordumpc-obs.gc | 60 +- .../ammo_dump/fort-robotank-turret.gc | 38 +- .../fortress/ammo_dump/fort-robotank.gc | 20 +- .../jak2/levels/fortress/exit/forexita-obs.gc | 12 +- goal_src/jak2/levels/fortress/fort-turret.gc | 194 ++-- goal_src/jak2/levels/fortress/fortress-obs.gc | 4 +- .../jak2/levels/fortress/prison/prison-obs.gc | 68 +- .../levels/fortress/rescue/forresca-obs.gc | 12 +- .../levels/fortress/rescue/forrescb-obs.gc | 46 +- goal_src/jak2/levels/gungame/gun-dummy.gc | 24 +- goal_src/jak2/levels/gungame/gungame-obs.gc | 30 +- goal_src/jak2/levels/hiphog/whack.gc | 430 ++++--- goal_src/jak2/levels/intro/intro-obs.gc | 12 +- goal_src/jak2/levels/intro/intro-scenes.gc | 12 +- .../jak2/levels/landing_pad/castle-obs.gc | 126 +- .../jak2/levels/landing_pad/castle-part.gc | 20 +- .../levels/landing_pad/roboguard-level.gc | 175 ++- .../mars_tomb/left/chase/target-indax.gc | 42 +- .../jak2/levels/mars_tomb/monster-frog.gc | 4 +- goal_src/jak2/levels/mars_tomb/tomb-beetle.gc | 84 +- goal_src/jak2/levels/mars_tomb/tomb-obs.gc | 38 +- goal_src/jak2/levels/mars_tomb/tomb-scenes.gc | 10 +- goal_src/jak2/levels/mars_tomb/tomb-water.gc | 152 ++- goal_src/jak2/levels/mars_tomb/widow-baron.gc | 154 ++- .../jak2/levels/mars_tomb/widow-extras.gc | 148 ++- .../levels/mars_tomb/widow-more-extras.gc | 8 +- .../jak2/levels/nest/boss/metalkor-extras.gc | 22 +- .../jak2/levels/nest/boss/metalkor-setup.gc | 4 +- .../jak2/levels/nest/boss/metalkor-states.gc | 108 +- .../jak2/levels/nest/boss/nestb-scenes.gc | 8 +- goal_src/jak2/levels/nest/flying-spider.gc | 78 +- goal_src/jak2/levels/nest/mammoth.gc | 196 ++-- goal_src/jak2/levels/nest/mantis.gc | 260 ++--- goal_src/jak2/levels/nest/nest-obs.gc | 16 +- goal_src/jak2/levels/nest/nest-scenes.gc | 4 +- .../jak2/levels/palace/boss/squid-extras.gc | 54 +- .../jak2/levels/palace/boss/squid-setup.gc | 453 ++++---- .../jak2/levels/palace/boss/squid-states.gc | 111 +- .../jak2/levels/palace/cable/palcab-obs.gc | 16 +- .../jak2/levels/palace/cable/palcab-part.gc | 4 +- goal_src/jak2/levels/palace/pal-obs.gc | 12 +- .../jak2/levels/palace/roof/palboss-scenes.gc | 8 +- .../power_station/power_switches/ctypower.gc | 10 +- .../jak2/levels/power_station/vinroom-obs.gc | 6 +- goal_src/jak2/levels/ruins/mechtest-obs.gc | 8 +- goal_src/jak2/levels/ruins/rapid-gunner.gc | 32 +- goal_src/jak2/levels/ruins/ruins-obs.gc | 42 +- goal_src/jak2/levels/ruins/ruins-part.gc | 14 +- .../jak2/levels/sewer/escort/jinx-bomb.gc | 6 +- .../jak2/levels/sewer/escort/jinx-states.gc | 6 +- goal_src/jak2/levels/sewer/gator.gc | 170 ++- goal_src/jak2/levels/sewer/grim2-course.gc | 49 +- goal_src/jak2/levels/sewer/hal2-course.gc | 1010 ++++++++-------- goal_src/jak2/levels/sewer/hosehead.gc | 22 +- goal_src/jak2/levels/sewer/mog2-course.gc | 49 +- goal_src/jak2/levels/sewer/sewer-obs.gc | 196 ++-- goal_src/jak2/levels/sewer/sewer-obs2.gc | 8 +- goal_src/jak2/levels/sewer/sewer-scenes.gc | 6 +- .../levels/stadium/jetboard/skatea-obs.gc | 50 +- goal_src/jak2/levels/stadium/stadium-obs.gc | 188 ++- goal_src/jak2/levels/strip/chaincrate.gc | 103 +- goal_src/jak2/levels/strip/strip-drop.gc | 8 +- goal_src/jak2/levels/strip/strip-obs.gc | 32 +- goal_src/jak2/levels/temple/mountain-obs.gc | 42 +- goal_src/jak2/levels/temple/mountain-obs2.gc | 8 +- goal_src/jak2/levels/temple/rhino.gc | 16 +- goal_src/jak2/levels/title/title-obs.gc | 67 +- goal_src/jak2/levels/undefined/ruf-states.gc | 30 +- goal_src/jak2/levels/underport/centipede.gc | 35 +- goal_src/jak2/levels/underport/jellyfish.gc | 344 +++--- goal_src/jak2/levels/underport/pipe-grunt.gc | 2 +- goal_src/jak2/levels/underport/sig5-course.gc | 525 ++++----- goal_src/jak2/levels/underport/under-laser.gc | 2 +- goal_src/jak2/levels/underport/under-obs.gc | 10 +- .../levels/underport/under-shoot-block.gc | 142 ++- .../jak2/levels/underport/under-sig-obs.gc | 50 +- .../jak2/levels/underport/underb-master.gc | 38 +- .../jak2/characters/ashelin/ash-states_REF.gc | 40 +- .../jak2/characters/ashelin/ash_REF.gc | 266 ++--- .../jak2/characters/sig/sig-states_REF.gc | 78 +- .../jak2/characters/sig/sig-task_REF.gc | 4 +- .../reference/jak2/characters/sig/sig_REF.gc | 320 +++--- .../underground_fighters/shuttle_REF.gc | 646 ++++++----- .../reference/jak2/decompiler-macros.gc | 4 +- .../reference/jak2/engine/ai/enemy_REF.gc | 898 +++++++-------- .../jak2/engine/ambient/ambient_REF.gc | 20 +- .../jak2/engine/anim/fma-sphere_REF.gc | 4 +- .../jak2/engine/anim/joint-exploder_REF.gc | 8 +- .../jak2/engine/anim/joint-mod_REF.gc | 2 +- .../reference/jak2/engine/anim/joint_REF.gc | 143 +-- .../jak2/engine/camera/cam-debug_REF.gc | 63 +- .../jak2/engine/camera/cam-master_REF.gc | 14 +- .../jak2/engine/camera/cam-states_REF.gc | 18 +- .../jak2/engine/collide/collide-debug_REF.gc | 224 ++-- .../jak2/engine/collide/los-control_REF.gc | 27 +- .../jak2/engine/common_objs/base-plat_REF.gc | 4 +- .../jak2/engine/common_objs/basebutton_REF.gc | 4 +- .../engine/common_objs/collectables_REF.gc | 245 ++-- .../jak2/engine/common_objs/crates_REF.gc | 12 +- .../engine/common_objs/dark-eco-pool_REF.gc | 2 +- .../jak2/engine/common_objs/elevator_REF.gc | 18 +- .../engine/common_objs/generic-obs_REF.gc | 101 +- .../jak2/engine/common_objs/plat_REF.gc | 8 +- .../jak2/engine/common_objs/powerups_REF.gc | 50 +- .../jak2/engine/common_objs/projectile_REF.gc | 10 +- .../engine/common_objs/rigid-body-plat_REF.gc | 50 +- .../jak2/engine/common_objs/voicebox_REF.gc | 17 +- .../jak2/engine/common_objs/water_REF.gc | 82 +- .../jak2/engine/debug/default-menu_REF.gc | 52 +- .../jak2/engine/debug/editable-player_REF.gc | 7 +- .../jak2/engine/entity/entity_REF.gc | 680 ++++++----- .../jak2/engine/game/effect-control_REF.gc | 698 ++++++----- .../jak2/engine/game/game-info_REF.gc | 14 +- .../reference/jak2/engine/game/main_REF.gc | 40 +- .../jak2/engine/game/task/task-control_REF.gc | 92 +- .../jak2/engine/gfx/mood/weather-part_REF.gc | 2 +- .../particles/sparticle-launcher_REF.gc | 156 ++- .../jak2/engine/load/load-state_REF.gc | 4 +- .../reference/jak2/engine/load/loader_REF.gc | 12 +- .../jak2/engine/math/transformq_REF.gc | 27 +- .../jak2/engine/nav/nav-enemy_REF.gc | 293 +++-- .../jak2/engine/physics/chain-physics_REF.gc | 10 +- .../jak2/engine/physics/rigid-body_REF.gc | 5 +- .../jak2/engine/physics/trajectory_REF.gc | 2 +- .../process-drawable/process-drawable_REF.gc | 614 +++++----- .../process-drawable/process-taskable_REF.gc | 20 +- .../reference/jak2/engine/scene/scene_REF.gc | 49 +- .../reference/jak2/engine/sound/gsound_REF.gc | 59 +- .../reference/jak2/engine/sound/speech_REF.gc | 44 +- .../jak2/engine/target/board/board-h_REF.gc | 9 +- .../engine/target/board/board-states_REF.gc | 193 ++-- .../engine/target/board/target-board_REF.gc | 251 ++-- .../target/collide-reaction-target_REF.gc | 260 +++-- .../engine/target/gun/gun-dark-shot_REF.gc | 36 +- .../jak2/engine/target/gun/gun-h_REF.gc | 4 +- .../engine/target/gun/gun-red-shot_REF.gc | 4 +- .../jak2/engine/target/gun/gun-states_REF.gc | 4 +- .../jak2/engine/target/gun/gun-util_REF.gc | 4 +- .../jak2/engine/target/logic-target_REF.gc | 112 +- .../engine/target/mech_suit/carry-h_REF.gc | 4 +- .../engine/target/mech_suit/grunt-mech_REF.gc | 122 +- .../target/mech_suit/mech-states_REF.gc | 91 +- .../jak2/engine/target/mech_suit/mech_REF.gc | 14 +- .../target/mech_suit/target-mech_REF.gc | 16 +- .../jak2/engine/target/sidekick_REF.gc | 4 +- .../jak2/engine/target/target-anim_REF.gc | 21 +- .../jak2/engine/target/target-carry_REF.gc | 16 +- .../jak2/engine/target/target-darkjak_REF.gc | 60 +- .../jak2/engine/target/target-death_REF.gc | 64 +- .../jak2/engine/target/target-gun_REF.gc | 134 +-- .../jak2/engine/target/target-handler_REF.gc | 38 +- .../jak2/engine/target/target-part_REF.gc | 166 ++- .../jak2/engine/target/target-swim_REF.gc | 60 +- .../jak2/engine/target/target-tube_REF.gc | 16 +- .../jak2/engine/target/target-turret_REF.gc | 208 ++-- .../jak2/engine/target/target-util_REF.gc | 68 +- .../jak2/engine/target/target2_REF.gc | 68 +- .../jak2/engine/target/target_REF.gc | 217 ++-- .../reference/jak2/engine/ui/credits_REF.gc | 4 +- .../reference/jak2/engine/ui/minimap_REF.gc | 263 +++-- .../engine/ui/progress/progress-draw_REF.gc | 106 +- .../jak2/engine/ui/progress/progress_REF.gc | 180 ++- .../jak2/engine/util/smush-control-h_REF.gc | 66 +- .../jak2/engine/util/sync-info_REF.gc | 342 +++--- .../jak2/levels/atoll/ash1-course_REF.gc | 66 +- .../jak2/levels/atoll/atoll-obs_REF.gc | 38 +- .../reference/jak2/levels/atoll/juicer_REF.gc | 54 +- .../jak2/levels/atoll/sig0-course_REF.gc | 503 ++++---- .../reference/jak2/levels/atoll/sniper_REF.gc | 6 +- .../levels/castle/boss/castle-baron_REF.gc | 104 +- .../jak2/levels/castle/pad/caspad-obs_REF.gc | 4 +- .../levels/castle/pad/castle-tasks_REF.gc | 4 +- .../levels/city/common/citizen-enemy_REF.gc | 40 +- .../jak2/levels/city/common/citizen_REF.gc | 166 ++- .../jak2/levels/city/common/civilian_REF.gc | 268 +++-- .../levels/city/common/ctyport-obs_REF.gc | 2 +- .../levels/city/common/ctywide-obs_REF.gc | 356 +++--- .../levels/city/common/ctywide-tasks_REF.gc | 48 +- .../jak2/levels/city/common/guard_REF.gc | 409 ++++--- .../city/common/metalhead-flitter_REF.gc | 164 ++- .../levels/city/common/metalhead-grunt_REF.gc | 2 +- .../levels/city/common/pilot-states_REF.gc | 16 +- .../levels/city/common/traffic-engine_REF.gc | 731 ++++++------ .../jak2/levels/city/common/transport_REF.gc | 82 +- .../levels/city/common/vehicle-control_REF.gc | 8 +- .../levels/city/common/vehicle-effects_REF.gc | 2 +- .../levels/city/common/vehicle-guard_REF.gc | 379 +++--- .../levels/city/common/vehicle-states_REF.gc | 27 +- .../levels/city/common/vehicle-util_REF.gc | 226 ++-- .../jak2/levels/city/common/vehicle_REF.gc | 514 ++++----- .../jak2/levels/city/farm/ctyfarm-obs_REF.gc | 232 ++-- .../jak2/levels/city/farm/yakow_REF.gc | 6 +- .../city/kid_escort/crocesc-states_REF.gc | 40 +- .../levels/city/kid_escort/hal4-course_REF.gc | 848 +++++++------- .../city/kid_escort/kidesc-states_REF.gc | 44 +- .../city/kid_escort/kidesc4-course_REF.gc | 12 +- .../levels/city/market/ctymark-obs_REF.gc | 4 +- .../market/east/ashelin/ash4-course_REF.gc | 74 +- .../market/east/ashelin/ctyasha-obs_REF.gc | 4 +- .../west/brutter_kiosk/meet-brutter_REF.gc | 36 +- .../collection_task/collection-task_REF.gc | 10 +- .../city/misc/delivery/delivery-task_REF.gc | 4 +- .../levels/city/onin_tent/onin-game_REF.gc | 306 +++-- .../levels/city/oracle/oracle-training_REF.gc | 2 +- .../levels/city/port/mines/portrun_REF.gc | 89 +- .../levels/city/port/race/errol-chal_REF.gc | 46 +- .../city/side_missions/ctywide-bbush_REF.gc | 18 +- .../levels/city/slums/kor/kid-states_REF.gc | 26 +- .../jak2/levels/city/slums/kor/kid_REF.gc | 296 +++-- .../levels/city/slums/kor/kor-states_REF.gc | 28 +- .../jak2/levels/city/slums/kor/kor_REF.gc | 286 +++-- .../levels/city/slums/neon-baron-part_REF.gc | 52 +- .../jak2/levels/common/ai/bot-states_REF.gc | 8 +- .../jak2/levels/common/ai/bot_REF.gc | 1018 ++++++++--------- .../jak2/levels/common/airlock_REF.gc | 28 +- .../jak2/levels/common/battle_REF.gc | 218 ++-- .../common/enemy/amphibian/amphibian_REF.gc | 10 +- .../enemy/baby_spider/tomb-baby-spider_REF.gc | 8 +- .../common/enemy/bombots/bombbot_REF.gc | 49 +- .../jak2/levels/common/enemy/bouncer_REF.gc | 6 +- .../levels/common/enemy/fodder/fodder_REF.gc | 172 ++- .../enemy/guards/crimson-guard-level_REF.gc | 91 +- .../enemy/guards/guard-conversation_REF.gc | 4 +- .../enemy/guards/transport-level_REF.gc | 84 +- .../jak2/levels/common/enemy/hopper_REF.gc | 2 +- .../enemy/hover/crimson-guard-hover_REF.gc | 78 +- .../levels/common/enemy/hover/flamer_REF.gc | 38 +- .../enemy/hover/hover-enemy-battle_REF.gc | 80 +- .../common/enemy/hover/hover-enemy_REF.gc | 20 +- .../common/enemy/hover/hover-formation_REF.gc | 90 +- .../enemy/hover/hover-nav-control_REF.gc | 140 ++- .../levels/common/enemy/hover/wasp_REF.gc | 22 +- .../enemy/metalhead_bearer/centurion_REF.gc | 10 +- .../enemy/metalhead_brown/metalmonk_REF.gc | 188 ++- .../enemy/metalhead_slinger/grenadier_REF.gc | 78 +- .../jak2/levels/common/enemy/spyder_REF.gc | 148 ++- .../common/entities/com-elevator_REF.gc | 8 +- .../common/entities/fort-floor-spike_REF.gc | 4 +- .../levels/common/entities/gun-buoy_REF.gc | 22 +- .../common/entities/sew-gunturret_REF.gc | 32 +- .../levels/common/entities/spydroid_REF.gc | 10 +- .../jak2/levels/common/flitter_REF.gc | 164 ++- .../reference/jak2/levels/common/grunt_REF.gc | 6 +- .../levels/common/guard-projectile_REF.gc | 4 +- .../levels/common/races/race-manager_REF.gc | 356 +++--- .../jak2/levels/common/races/race-obs_REF.gc | 36 +- .../levels/common/races/vehicle-racer_REF.gc | 64 +- .../jak2/levels/common/warp-gate_REF.gc | 37 +- .../jak2/levels/demo/demo-obs_REF.gc | 115 +- .../jak2/levels/dig/dig-digger_REF.gc | 136 ++- .../reference/jak2/levels/dig/dig-obs_REF.gc | 200 ++-- .../reference/jak2/levels/dig/dig1-obs_REF.gc | 32 +- .../reference/jak2/levels/dig/dig3-obs_REF.gc | 86 +- .../levels/drill_platform/drill-baron_REF.gc | 130 +-- .../drill_platform/drill-mech-master_REF.gc | 40 +- .../levels/drill_platform/drill-obs2_REF.gc | 20 +- .../levels/drill_platform/drill-obs_REF.gc | 36 +- .../levels/drill_platform/drill-panel_REF.gc | 150 ++- .../jak2/levels/drill_platform/ginsu_REF.gc | 120 +- .../jak2/levels/forest/forest-obs_REF.gc | 62 +- .../levels/forest/lifeseed/protect_REF.gc | 10 +- .../jak2/levels/forest/pegasus_REF.gc | 178 ++- .../jak2/levels/forest/predator_REF.gc | 56 +- .../reference/jak2/levels/forest/wren_REF.gc | 26 +- .../fortress/ammo_dump/fordumpa-obs_REF.gc | 20 +- .../fortress/ammo_dump/fordumpb-obs_REF.gc | 32 +- .../fortress/ammo_dump/fordumpc-obs_REF.gc | 60 +- .../ammo_dump/fort-robotank-turret_REF.gc | 38 +- .../fortress/ammo_dump/fort-robotank_REF.gc | 20 +- .../levels/fortress/exit/forexita-obs_REF.gc | 12 +- .../jak2/levels/fortress/fort-turret_REF.gc | 194 ++-- .../jak2/levels/fortress/fortress-obs_REF.gc | 4 +- .../levels/fortress/prison/prison-obs_REF.gc | 68 +- .../fortress/rescue/forresca-obs_REF.gc | 12 +- .../fortress/rescue/forrescb-obs_REF.gc | 51 +- .../jak2/levels/gungame/gun-dummy_REF.gc | 24 +- .../jak2/levels/gungame/gungame-obs_REF.gc | 34 +- .../reference/jak2/levels/hiphog/whack_REF.gc | 430 ++++--- .../jak2/levels/intro/intro-obs_REF.gc | 16 +- .../jak2/levels/intro/intro-scenes_REF.gc | 12 +- .../jak2/levels/landing_pad/castle-obs_REF.gc | 124 +- .../levels/landing_pad/castle-part_REF.gc | 20 +- .../levels/landing_pad/roboguard-level_REF.gc | 175 ++- .../mars_tomb/left/chase/target-indax_REF.gc | 42 +- .../jak2/levels/mars_tomb/monster-frog_REF.gc | 4 +- .../jak2/levels/mars_tomb/tomb-beetle_REF.gc | 88 +- .../jak2/levels/mars_tomb/tomb-obs_REF.gc | 34 +- .../jak2/levels/mars_tomb/tomb-scenes_REF.gc | 10 +- .../jak2/levels/mars_tomb/tomb-water_REF.gc | 152 ++- .../jak2/levels/mars_tomb/widow-baron_REF.gc | 154 ++- .../jak2/levels/mars_tomb/widow-extras_REF.gc | 148 ++- .../levels/mars_tomb/widow-more-extras_REF.gc | 8 +- .../levels/nest/boss/metalkor-extras_REF.gc | 26 +- .../levels/nest/boss/metalkor-setup_REF.gc | 8 +- .../levels/nest/boss/metalkor-states_REF.gc | 108 +- .../jak2/levels/nest/boss/nestb-scenes_REF.gc | 8 +- .../jak2/levels/nest/flying-spider_REF.gc | 78 +- .../reference/jak2/levels/nest/mammoth_REF.gc | 196 ++-- .../reference/jak2/levels/nest/mantis_REF.gc | 260 ++--- .../jak2/levels/nest/nest-obs_REF.gc | 16 +- .../jak2/levels/nest/nest-scenes_REF.gc | 4 +- .../levels/palace/boss/squid-extras_REF.gc | 58 +- .../levels/palace/boss/squid-setup_REF.gc | 453 ++++---- .../levels/palace/boss/squid-states_REF.gc | 111 +- .../levels/palace/cable/palcab-obs_REF.gc | 16 +- .../levels/palace/cable/palcab-part_REF.gc | 4 +- .../jak2/levels/palace/pal-obs_REF.gc | 10 +- .../levels/palace/roof/palboss-scenes_REF.gc | 8 +- .../power_switches/ctypower_REF.gc | 10 +- .../levels/power_station/vinroom-obs_REF.gc | 4 +- .../jak2/levels/ruins/mechtest-obs_REF.gc | 8 +- .../jak2/levels/ruins/rapid-gunner_REF.gc | 32 +- .../jak2/levels/ruins/ruins-obs_REF.gc | 42 +- .../jak2/levels/ruins/ruins-part_REF.gc | 14 +- .../jak2/levels/sewer/escort/jinx-bomb_REF.gc | 10 +- .../levels/sewer/escort/jinx-states_REF.gc | 10 +- .../reference/jak2/levels/sewer/gator_REF.gc | 170 ++- .../jak2/levels/sewer/grim2-course_REF.gc | 53 +- .../jak2/levels/sewer/hal2-course_REF.gc | 1010 ++++++++-------- .../jak2/levels/sewer/hosehead_REF.gc | 23 +- .../jak2/levels/sewer/mog2-course_REF.gc | 53 +- .../jak2/levels/sewer/sewer-obs2_REF.gc | 8 +- .../jak2/levels/sewer/sewer-obs_REF.gc | 182 ++- .../jak2/levels/sewer/sewer-scenes_REF.gc | 6 +- .../levels/stadium/jetboard/skatea-obs_REF.gc | 50 +- .../jak2/levels/stadium/stadium-obs_REF.gc | 186 ++- .../jak2/levels/strip/chaincrate_REF.gc | 103 +- .../jak2/levels/strip/strip-drop_REF.gc | 8 +- .../jak2/levels/strip/strip-obs_REF.gc | 32 +- .../jak2/levels/temple/mountain-obs2_REF.gc | 8 +- .../jak2/levels/temple/mountain-obs_REF.gc | 42 +- .../reference/jak2/levels/temple/rhino_REF.gc | 16 +- .../jak2/levels/title/title-obs_REF.gc | 67 +- .../jak2/levels/undefined/ruf-states_REF.gc | 30 +- .../jak2/levels/underport/centipede_REF.gc | 35 +- .../jak2/levels/underport/jellyfish_REF.gc | 344 +++--- .../jak2/levels/underport/pipe-grunt_REF.gc | 6 +- .../jak2/levels/underport/sig5-course_REF.gc | 525 ++++----- .../jak2/levels/underport/under-laser_REF.gc | 2 +- .../jak2/levels/underport/under-obs_REF.gc | 10 +- .../levels/underport/under-shoot-block_REF.gc | 142 ++- .../levels/underport/under-sig-obs_REF.gc | 50 +- .../levels/underport/underb-master_REF.gc | 38 +- 535 files changed, 26686 insertions(+), 28650 deletions(-) diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 1338926512..47ada03075 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -1294,6 +1294,7 @@ class DerefElement : public FormElement { private: ConstantTokenElement* try_as_art_const(const Env& env, FormPool& pool); + GenericElement* try_as_curtime(FormPool& pool); Form* m_base = nullptr; bool m_is_addr_of = false; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index cf07c6be50..fef5482094 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -3876,6 +3876,19 @@ ConstantTokenElement* DerefElement::try_as_art_const(const Env& env, FormPool& p return nullptr; } +GenericElement* DerefElement::try_as_curtime(FormPool& pool) { + auto mr = match(Matcher::deref(Matcher::s6(), false, + {DerefTokenMatcher::string("clock"), + DerefTokenMatcher::string("frame-counter")}), + this); + if (mr.matched) { + return pool.alloc_element( + GenericOperator::make_function(pool.form("current-time"))); + } + + return nullptr; +} + void DerefElement::update_from_stack(const Env& env, FormPool& pool, FormStack& stack, @@ -3911,6 +3924,13 @@ void DerefElement::update_from_stack(const Env& env, env.dts->ts.try_enum_lookup("game-task-node"), pool, env, m_tokens.at(1).int_constant())); } + // current-time macro + auto as_curtime = try_as_curtime(pool); + if (as_curtime) { + result->push_back(as_curtime); + return; + } + result->push_back(this); } diff --git a/goal_src/jak2/characters/ashelin/ash-states.gc b/goal_src/jak2/characters/ashelin/ash-states.gc index 3f2ce458d3..70ea6a090a 100644 --- a/goal_src/jak2/characters/ashelin/ash-states.gc +++ b/goal_src/jak2/characters/ashelin/ash-states.gc @@ -11,7 +11,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -109,7 +109,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -169,9 +169,7 @@ (ashelin-method-240 self a1-6) ) (else - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (ashelin-method-247 self) - ) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (ashelin-method-247 self)) (go-virtual chase) ) ) @@ -189,7 +187,7 @@ ) ) (else - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (ashelin-method-239 self) ) ) @@ -259,7 +257,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -349,7 +347,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -379,12 +377,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (ashelin-method-239 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -417,7 +413,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -438,7 +434,7 @@ ((bot-method-214 self) (go-hostile self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -465,7 +461,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (bot-method-214 self) (if (ashelin-method-238 self #t #f) (go-virtual standing-idle) @@ -553,16 +549,14 @@ :trans (behavior () (bot-method-223 self #t) (cond - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ((not (bot-method-214 self)) (go-virtual traveling) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (or (ashelin-method-238 self #t #f) (ashelin-method-248 self)) (go-virtual standing-idle) ) @@ -606,7 +600,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -748,7 +742,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -883,7 +877,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1083,7 +1077,7 @@ (t9-0) ) ) - (when (and (logtest? (bot-flags bf23) (-> self bot-flags)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (bot-flags bf23) (-> self bot-flags)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf23)) (ashelin-method-244 self) ) diff --git a/goal_src/jak2/characters/ashelin/ash.gc b/goal_src/jak2/characters/ashelin/ash.gc index 5c745266b4..91377ca56e 100644 --- a/goal_src/jak2/characters/ashelin/ash.gc +++ b/goal_src/jak2/characters/ashelin/ash.gc @@ -269,101 +269,99 @@ ) (defmethod enemy-method-97 ashelin ((obj ashelin)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when v1-3 + (cond + ((= (-> v1-3 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when v1-3 - (cond - ((= (-> v1-3 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 2.5)) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 2.5)) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (let ((a0-21 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? a0-21) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (let ((s4-0 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ((= a0-21 1) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) + ) + (let ((a0-21 (-> obj focus-mode)) + (s5-1 (the-as process #f)) ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s5-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + (cond + ((zero? a0-21) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (let ((s4-0 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) + ((= a0-21 1) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s5-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s5-1 ) ) ) @@ -490,11 +488,9 @@ ) (defmethod ashelin-method-235 ashelin ((obj ashelin) (arg0 symbol)) - (with-pp - (and (>= (- (-> pp clock frame-counter) (-> obj last-fire-time)) (seconds 1)) - (and (>= 8556.089 (fabs (-> obj focus-info ry-diff))) (ashelin-method-238 obj arg0 #t)) - ) - ) + (and (>= (- (current-time) (-> obj last-fire-time)) (seconds 1)) + (and (>= 8556.089 (fabs (-> obj focus-info ry-diff))) (ashelin-method-238 obj arg0 #t)) + ) ) (defmethod ashelin-method-243 ashelin ((obj ashelin) (arg0 float)) @@ -735,31 +731,29 @@ ;; WARN: Return type mismatch (pointer process) vs none. (defmethod fire-projectile ashelin ((obj ashelin) (arg0 vector)) - (with-pp - (set! (-> obj last-fire-time) (-> pp clock frame-counter)) - (+! (-> obj fired-gun-count) 1) - (let ((s4-0 (new 'stack-no-clear 'projectile-init-by-other-params))) - (set! (-> s4-0 ent) (-> obj entity)) - (set! (-> s4-0 charge) 1.0) - (set! (-> s4-0 options) (projectile-options account-for-target-velocity proj-options-8000)) - (set! (-> s4-0 notify-handle) (process->handle obj)) - (set! (-> s4-0 owner-handle) (the-as handle #f)) - (set! (-> s4-0 ignore-handle) (process->handle obj)) - (let* ((v1-13 *game-info*) - (a0-10 (+ (-> v1-13 attack-id) 1)) - ) - (set! (-> v1-13 attack-id) a0-10) - (set! (-> s4-0 attack-id) a0-10) - ) - (set! (-> s4-0 timeout) (seconds 4)) - (vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22)) - (set! (-> s4-0 vel quad) (-> arg0 quad)) - (vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos)) - (vector-normalize! (-> s4-0 vel) 307200.0) - (spawn-projectile ashelin-shot s4-0 obj *default-dead-pool*) + (set! (-> obj last-fire-time) (current-time)) + (+! (-> obj fired-gun-count) 1) + (let ((s4-0 (new 'stack-no-clear 'projectile-init-by-other-params))) + (set! (-> s4-0 ent) (-> obj entity)) + (set! (-> s4-0 charge) 1.0) + (set! (-> s4-0 options) (projectile-options account-for-target-velocity proj-options-8000)) + (set! (-> s4-0 notify-handle) (process->handle obj)) + (set! (-> s4-0 owner-handle) (the-as handle #f)) + (set! (-> s4-0 ignore-handle) (process->handle obj)) + (let* ((v1-13 *game-info*) + (a0-10 (+ (-> v1-13 attack-id) 1)) + ) + (set! (-> v1-13 attack-id) a0-10) + (set! (-> s4-0 attack-id) a0-10) ) - (none) + (set! (-> s4-0 timeout) (seconds 4)) + (vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22)) + (set! (-> s4-0 vel quad) (-> arg0 quad)) + (vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos)) + (vector-normalize! (-> s4-0 vel) 307200.0) + (spawn-projectile ashelin-shot s4-0 obj *default-dead-pool*) ) + (none) ) (defmethod ashelin-method-249 ashelin ((obj ashelin)) @@ -1343,37 +1337,29 @@ ) (defmethod ashelin-method-245 ashelin ((obj ashelin)) - (with-pp - (when (and (not (channel-active? obj (the-as uint 0))) - (>= (-> pp clock frame-counter) (-> obj victory-speech-time)) - ) - (let ((s5-0 (bot-speech-list-method-9 - (-> obj ash-course victory-speeches) - obj - (-> obj ash-course speeches) - (speech-flags) - ) + (when (and (not (channel-active? obj (the-as uint 0))) (>= (current-time) (-> obj victory-speech-time))) + (let ((s5-0 (bot-speech-list-method-9 + (-> obj ash-course victory-speeches) + obj + (-> obj ash-course speeches) + (speech-flags) ) - ) - (when (>= s5-0 0) - (set! (-> obj victory-speech-time) - (the-as time-frame (+ (get-rand-int-range obj 1200 2100) (-> pp clock frame-counter))) ) - (play-speech obj s5-0) ) + (when (>= s5-0 0) + (set! (-> obj victory-speech-time) (the-as time-frame (+ (get-rand-int-range obj 1200 2100) (current-time)))) + (play-speech obj s5-0) ) ) - (none) ) + (none) ) (defmethod enemy-method-136 ashelin ((obj ashelin)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj hit-focus-time)) (seconds 2)) - (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-0) - v0-0 - ) + (when (>= (- (current-time) (-> obj hit-focus-time)) (seconds 2)) + (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-0) + v0-0 ) ) ) diff --git a/goal_src/jak2/characters/sig/sig-states.gc b/goal_src/jak2/characters/sig/sig-states.gc index 4676a44289..7777cd6405 100644 --- a/goal_src/jak2/characters/sig/sig-states.gc +++ b/goal_src/jak2/characters/sig/sig-states.gc @@ -11,7 +11,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -71,7 +71,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -174,7 +174,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -217,7 +217,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (not (-> self focus-info fproc)) (>= (-> self focus-info bullseye-xz-dist) 102400.0)) ) (go-virtual waiting-far) @@ -305,7 +305,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -496,7 +496,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -648,7 +648,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -680,7 +680,7 @@ ) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) (zero? (-> self played-unjam-time))) - (set! (-> self played-unjam-time) (-> self clock frame-counter)) + (set! (-> self played-unjam-time) (current-time)) (sound-play "sig-gun-unjam") ) (none) @@ -707,7 +707,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -723,7 +723,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -738,7 +738,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -753,7 +753,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -768,7 +768,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -783,7 +783,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -799,7 +799,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -815,7 +815,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -831,7 +831,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -939,7 +939,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -973,12 +973,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (go-virtual waiting-close) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -1011,7 +1009,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1039,7 +1037,7 @@ ((sig-method-255 self) (go-virtual repair-gun) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -1081,7 +1079,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (bot-method-214 self) (cond ((sig-method-246 self) @@ -1322,7 +1320,7 @@ (seconds 0.05) ) (bot-method-223 self #t) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (or (not (bot-method-214 self)) (not (sig-method-245 self))) ) (react-to-focus self) @@ -1365,9 +1363,7 @@ :trans (behavior () (bot-method-223 self #t) (cond - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ((not (bot-method-214 self)) @@ -1439,7 +1435,7 @@ 0.0 #f ) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.167)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.167)) (sig-method-258 self) (suspend) ) @@ -1469,7 +1465,7 @@ ) ) ) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (sig-method-258 self) (suspend) ) @@ -1616,7 +1612,7 @@ (ja :num! (seek!)) ) (ja-channel-push! 1 (seconds 0.2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))) @@ -1624,7 +1620,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1642,7 +1638,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1704,7 +1700,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1734,7 +1730,7 @@ (if (logtest? s5-0 2) (go-virtual sig-path-shoot-jump) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) (go-virtual sig-path-jump-land) ) ) @@ -1776,7 +1772,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1845,7 +1841,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1876,7 +1872,7 @@ (if (and (logtest? s5-0 1) (logtest? (bot-flags bf25) (-> self bot-flags))) (go-virtual sig-path-jump) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) (go-virtual sig-path-shoot-jump-land) ) ) @@ -1923,7 +1919,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1992,7 +1988,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/characters/sig/sig-task.gc b/goal_src/jak2/characters/sig/sig-task.gc index eae6216837..31bc17e4f5 100644 --- a/goal_src/jak2/characters/sig/sig-task.gc +++ b/goal_src/jak2/characters/sig/sig-task.gc @@ -173,7 +173,7 @@ (set! (-> a1-3 message) 'sync) (let ((v1-19 (- ((method-of-type sync-info get-timeframe-offset!) (the-as sync-info (send-event-function s5-1 a1-3)) 0) - (-> pp clock frame-counter) + (current-time) ) ) ) @@ -268,7 +268,7 @@ (set! (-> a1-6 message) 'sync) (let ((v1-16 (- ((method-of-type sync-info get-timeframe-offset!) (the-as sync-info (send-event-function a0-4 a1-6)) 0) - (-> pp clock frame-counter) + (current-time) ) ) ) diff --git a/goal_src/jak2/characters/sig/sig.gc b/goal_src/jak2/characters/sig/sig.gc index 4cb8e93155..4a1ef486e0 100644 --- a/goal_src/jak2/characters/sig/sig.gc +++ b/goal_src/jak2/characters/sig/sig.gc @@ -235,122 +235,120 @@ ) (defmethod enemy-method-97 sig ((obj sig)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (s4-0 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (s4-0 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when s4-0 + (cond + ((= (-> s4-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s4-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s4-0 - (cond - ((= (-> s4-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s4-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) + ) + ) + ) + ) + (let ((v1-23 (-> obj focus-mode)) + (s5-1 (the-as process #f)) + ) + (cond + ((zero? v1-23) + (cond + (s4-0 + (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (>= 16384.0 + (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) + ) ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) + (set! s5-1 s4-0) ) - (set! s4-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) + ) + (else + (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (set! s5-1 (select-focus! obj)) + (cond + (s5-1 + (empty) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) ) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s4-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) + ) + ((= v1-23 1) + (cond + (s4-0 + (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (>= 16384.0 + (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) + ) + ) + (set! s5-1 s4-0) + ) + ) + (else + (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (let ((s4-2 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-2 process-focusable) + s4-2 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) + ) + ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) ) - ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) ) ) - (let ((v1-23 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? v1-23) - (cond - (s4-0 - (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (>= 16384.0 - (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) - ) - ) - (set! s5-1 s4-0) - ) - ) - (else - (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (set! s5-1 (select-focus! obj)) - (cond - (s5-1 - (empty) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ) - ) - ) - ((= v1-23 1) - (cond - (s4-0 - (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (>= 16384.0 - (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) - ) - ) - (set! s5-1 s4-0) - ) - ) - (else - (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (let ((s4-2 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-2 process-focusable) - s4-2 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) - ) - ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 - ) + s5-1 ) ) ) @@ -389,68 +387,64 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((v1-2 (-> obj skel top-anim frame-group))) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj danger-time)) (seconds 2)) - (cond - ((not v1-2) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + (let ((v1-2 (-> obj skel top-anim frame-group))) + (cond + ((>= (- (current-time) (-> obj danger-time)) (seconds 2)) + (cond + ((not v1-2) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + ) + ((= v1-2 (-> obj draw art-group data 44)) + (push-anim-to-targ + (-> obj skel top-anim) + (the-as art-joint-anim (-> obj draw art-group data 46)) + 0.0 + 0 + 0 + 1.0 + 0.0 + #f ) - ((= v1-2 (-> obj draw art-group data 44)) - (push-anim-to-targ - (-> obj skel top-anim) - (the-as art-joint-anim (-> obj draw art-group data 46)) - 0.0 - 0 - 0 - 1.0 - 0.0 - #f - ) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) - ) - ) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + ) ) - (else - (cond - ((not v1-2) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) + (else + (cond + ((not v1-2) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) + ((= v1-2 (-> obj draw art-group data 42)) + (push-anim-to-targ + (-> obj skel top-anim) + (the-as art-joint-anim (-> obj draw art-group data 43)) + 0.0 + 0 + 0 + 1.0 + 0.0 + #f ) - ((= v1-2 (-> obj draw art-group data 42)) - (push-anim-to-targ - (-> obj skel top-anim) - (the-as art-joint-anim (-> obj draw art-group data 43)) - 0.0 - 0 - 0 - 1.0 - 0.0 - #f - ) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) - ) - ) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) ) ) ) - (let ((t9-2 (method-of-type bot track-target!))) - (t9-2 obj) - ) - (when (logtest? (-> obj bot-flags) (bot-flags too-far-fail)) - (let ((f0-0 (vector-vector-distance (-> obj root-override2 trans) (target-pos 0)))) - (when (or (>= f0-0 491520.0) - (and (>= f0-0 102400.0) (>= (- (-> pp clock frame-counter) (-> obj last-draw-time)) (seconds 10))) - ) - (process-entity-status! obj (entity-perm-status no-kill) #f) - (cleanup-for-death obj) - (go (method-of-object obj die-fast)) - ) - ) - ) - (sig-plasma-method-14 (-> obj plasma) obj) - (none) ) + (let ((t9-2 (method-of-type bot track-target!))) + (t9-2 obj) + ) + (when (logtest? (-> obj bot-flags) (bot-flags too-far-fail)) + (let ((f0-0 (vector-vector-distance (-> obj root-override2 trans) (target-pos 0)))) + (when (or (>= f0-0 491520.0) (and (>= f0-0 102400.0) (>= (- (current-time) (-> obj last-draw-time)) (seconds 10)))) + (process-entity-status! obj (entity-perm-status no-kill) #f) + (cleanup-for-death obj) + (go (method-of-object obj die-fast)) + ) + ) + ) + (sig-plasma-method-14 (-> obj plasma) obj) + (none) ) (defmethod go-to-waypoint! sig ((obj sig) (arg0 int) (arg1 symbol)) diff --git a/goal_src/jak2/characters/underground_fighters/shuttle.gc b/goal_src/jak2/characters/underground_fighters/shuttle.gc index ffc992ef1d..d8b5fc8d90 100644 --- a/goal_src/jak2/characters/underground_fighters/shuttle.gc +++ b/goal_src/jak2/characters/underground_fighters/shuttle.gc @@ -406,7 +406,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-31 (-> self root-override2 root-prim))) (set! (-> v1-31 prim-core collide-as) (collide-spec)) (set! (-> v1-31 prim-core collide-with) (collide-spec)) @@ -438,7 +438,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'quaternion)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (civilian-method-217 self gp-0)) (let ((s4-0 (handle->process (-> self vehicle))) (s3-0 (new 'stack-no-clear 'quaternion)) @@ -447,7 +447,7 @@ (compute-seat-position (the-as vehicle s4-0) (-> self root-override2 trans) (-> self seat)) (quaternion-copy! (-> self root-override2 quat) s3-0) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (put-rider-in-seat (the-as vehicle (handle->process (-> self vehicle))) (-> self seat) self) (go-virtual ride) ) @@ -1076,246 +1076,244 @@ ;; WARN: Return type mismatch object vs none. (defun shuttle-update ((arg0 task-manager) (arg1 (array city-shuttle-info)) (arg2 uint)) (local-vars (v1-263 float) (v1-377 float) (sv-336 quaternion)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (cond - ((nonzero? (-> arg0 data-int32 9)) - (check-time arg0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (else - (set! (-> arg0 start-time) (-> pp clock frame-counter)) - (when (< (vector-vector-xz-distance (target-pos 0) (-> arg0 begin-pos)) 102400.0) - (set-setting! 'airlock #f 0.0 0) - (set! (-> arg0 data-int32 9) 1) - ) + (init-vf0-vector) + (cond + ((nonzero? (-> arg0 data-int32 9)) + (check-time arg0) + ) + (else + (set! (-> arg0 start-time) (current-time)) + (when (< (vector-vector-xz-distance (target-pos 0) (-> arg0 begin-pos)) 102400.0) + (set-setting! 'airlock #f 0.0 0) + (set! (-> arg0 data-int32 9) 1) ) ) - (when (= (-> arg0 data-int32 10) (+ (-> arg0 sub-state) -1)) - (let ((s3-1 (handle->process (-> arg0 slave (logand -2 (-> arg0 data-int32 10)))))) - (when s3-1 - (let ((v1-20 (-> arg0 data-int32 10))) - (cond - ((zero? v1-20) - (let ((v0-4 (rand-vu-int-count 3))) - (cond - ((zero? v0-4) - (send-event s3-1 'play-speech "agnt038") - ) - ((= v0-4 1) - (send-event s3-1 'play-speech "agnt039") - ) - ((= v0-4 2) - (send-event s3-1 'play-speech "agnt040") - ) - ) + ) + (when (= (-> arg0 data-int32 10) (+ (-> arg0 sub-state) -1)) + (let ((s3-1 (handle->process (-> arg0 slave (logand -2 (-> arg0 data-int32 10)))))) + (when s3-1 + (let ((v1-20 (-> arg0 data-int32 10))) + (cond + ((zero? v1-20) + (let ((v0-4 (rand-vu-int-count 3))) + (cond + ((zero? v0-4) + (send-event s3-1 'play-speech "agnt038") + ) + ((= v0-4 1) + (send-event s3-1 'play-speech "agnt039") + ) + ((= v0-4 2) + (send-event s3-1 'play-speech "agnt040") + ) ) ) - ((= v1-20 1) - (let ((v0-8 (rand-vu-int-count 4))) - (cond - ((zero? v0-8) - (send-event s3-1 'play-speech "agnt045") - ) - ((= v0-8 1) - (send-event s3-1 'play-speech "agnt046") - ) - ((= v0-8 2) - (send-event s3-1 'play-speech "agnt047") - ) - ((= v0-8 3) - (send-event s3-1 'play-speech "agnt048") - ) - ) + ) + ((= v1-20 1) + (let ((v0-8 (rand-vu-int-count 4))) + (cond + ((zero? v0-8) + (send-event s3-1 'play-speech "agnt045") + ) + ((= v0-8 1) + (send-event s3-1 'play-speech "agnt046") + ) + ((= v0-8 2) + (send-event s3-1 'play-speech "agnt047") + ) + ((= v0-8 3) + (send-event s3-1 'play-speech "agnt048") + ) ) ) - ((= v1-20 2) - (let ((v0-13 (rand-vu-int-count 4))) - (cond - ((zero? v0-13) - (send-event s3-1 'play-speech "agnt092") - ) - ((= v0-13 1) - (send-event s3-1 'play-speech "agnt093") - ) - ((= v0-13 2) - (send-event s3-1 'play-speech "agnt094") - ) - ((= v0-13 3) - (send-event s3-1 'play-speech "agnt095") - ) - ) + ) + ((= v1-20 2) + (let ((v0-13 (rand-vu-int-count 4))) + (cond + ((zero? v0-13) + (send-event s3-1 'play-speech "agnt092") + ) + ((= v0-13 1) + (send-event s3-1 'play-speech "agnt093") + ) + ((= v0-13 2) + (send-event s3-1 'play-speech "agnt094") + ) + ((= v0-13 3) + (send-event s3-1 'play-speech "agnt095") + ) ) ) - ((= v1-20 3) - (let ((v0-18 (rand-vu-int-count 3))) - (cond - ((zero? v0-18) - (send-event s3-1 'play-speech "agnt100") - ) - ((= v0-18 1) - (send-event s3-1 'play-speech "agnt101") - ) - ((= v0-18 2) - (send-event s3-1 'play-speech "agnt102") - ) - ) + ) + ((= v1-20 3) + (let ((v0-18 (rand-vu-int-count 3))) + (cond + ((zero? v0-18) + (send-event s3-1 'play-speech "agnt100") + ) + ((= v0-18 1) + (send-event s3-1 'play-speech "agnt101") + ) + ((= v0-18 2) + (send-event s3-1 'play-speech "agnt102") + ) ) ) - ((= v1-20 4) - (let ((v0-22 (rand-vu-int-count 3))) - (cond - ((zero? v0-22) - (send-event s3-1 'play-speech "agnt115") - ) - ((= v0-22 1) - (send-event s3-1 'play-speech "agnt121") - ) - ((= v0-22 2) - (send-event s3-1 'play-speech "agnt122") - ) - ) + ) + ((= v1-20 4) + (let ((v0-22 (rand-vu-int-count 3))) + (cond + ((zero? v0-22) + (send-event s3-1 'play-speech "agnt115") + ) + ((= v0-22 1) + (send-event s3-1 'play-speech "agnt121") + ) + ((= v0-22 2) + (send-event s3-1 'play-speech "agnt122") + ) ) ) - ((= v1-20 5) - (let ((v0-26 (rand-vu-int-count 3))) - (cond - ((zero? v0-26) - (send-event s3-1 'play-speech "agnt119") - ) - ((= v0-26 1) - (send-event s3-1 'play-speech "agnt120") - ) - ((= v0-26 2) - (send-event s3-1 'play-speech "agnt125") - ) - ) + ) + ((= v1-20 5) + (let ((v0-26 (rand-vu-int-count 3))) + (cond + ((zero? v0-26) + (send-event s3-1 'play-speech "agnt119") + ) + ((= v0-26 1) + (send-event s3-1 'play-speech "agnt120") + ) + ((= v0-26 2) + (send-event s3-1 'play-speech "agnt125") + ) ) ) - ((= v1-20 6) - (let ((v0-30 (rand-vu-int-count 5))) - (cond - ((zero? v0-30) - (send-event s3-1 'play-speech "agnt131") - ) - ((= v0-30 1) - (send-event s3-1 'play-speech "agnt132") - ) - ((= v0-30 2) - (send-event s3-1 'play-speech "agnt133") - ) - ((= v0-30 3) - (send-event s3-1 'play-speech "agnt126") - ) - ((= v0-30 4) - (send-event s3-1 'play-speech "agnt127") - ) - ) + ) + ((= v1-20 6) + (let ((v0-30 (rand-vu-int-count 5))) + (cond + ((zero? v0-30) + (send-event s3-1 'play-speech "agnt131") + ) + ((= v0-30 1) + (send-event s3-1 'play-speech "agnt132") + ) + ((= v0-30 2) + (send-event s3-1 'play-speech "agnt133") + ) + ((= v0-30 3) + (send-event s3-1 'play-speech "agnt126") + ) + ((= v0-30 4) + (send-event s3-1 'play-speech "agnt127") + ) ) ) - ((= v1-20 7) - (let ((v0-36 (rand-vu-int-count 2))) - (cond - ((zero? v0-36) - (send-event s3-1 'play-speech "agnt135") - ) - ((= v0-36 1) - (send-event s3-1 'play-speech "agnt130") - ) - ) + ) + ((= v1-20 7) + (let ((v0-36 (rand-vu-int-count 2))) + (cond + ((zero? v0-36) + (send-event s3-1 'play-speech "agnt135") + ) + ((= v0-36 1) + (send-event s3-1 'play-speech "agnt130") + ) ) ) - ) + ) ) - (+! (-> arg0 data-int32 10) 1) ) + (+! (-> arg0 data-int32 10) 1) ) ) - (let ((s3-2 (-> arg0 sub-state))) - (cond - ((>= s3-2 (the-as uint (-> arg0 count))) - (go (method-of-object arg0 complete)) - ) - ((not (logtest? s3-2 1)) - (let ((s2-0 (handle->process (-> arg0 slave s3-2)))) - (cond - (s2-0 - (let* ((s1-0 (entity-nav-mesh-by-aid (-> (the-as citizen-rebel s2-0) nav-mesh-aid))) - (s4-1 (if (type? s1-0 entity-nav-mesh) - s1-0 - ) - ) - ) - (cond - (s4-1 - (when (focus-test? (the-as citizen-rebel s2-0) inactive) - (let ((s1-1 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s1-1 object-type) (traffic-type tt5)) - (set! (-> s1-1 behavior) (the-as uint 7)) - (set! (-> s1-1 id) (the-as uint 0)) - (set! (-> s1-1 nav-mesh) #f) - (set! (-> s1-1 nav-branch) #f) - (set! (-> s1-1 proc) #f) - (set! (-> s1-1 handle) (-> arg0 slave s3-2)) - (set! (-> s1-1 user-data) (the-as uint 0)) - (set! (-> s1-1 flags) (traffic-spawn-flags)) - (set! (-> s1-1 guard-type) (the-as uint 7)) - (vector-reset! (-> s1-1 velocity)) - (set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root-override2 trans quad)) - (quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root-override2 quat)) - (set! (-> s1-1 nav-mesh) (-> s4-1 nav-mesh)) - (activate-by-handle *traffic-engine* s1-1) - ) + ) + (let ((s3-2 (-> arg0 sub-state))) + (cond + ((>= s3-2 (the-as uint (-> arg0 count))) + (go (method-of-object arg0 complete)) + ) + ((not (logtest? s3-2 1)) + (let ((s2-0 (handle->process (-> arg0 slave s3-2)))) + (cond + (s2-0 + (let* ((s1-0 (entity-nav-mesh-by-aid (-> (the-as citizen-rebel s2-0) nav-mesh-aid))) + (s4-1 (if (type? s1-0 entity-nav-mesh) + s1-0 + ) + ) + ) + (cond + (s4-1 + (when (focus-test? (the-as citizen-rebel s2-0) inactive) + (let ((s1-1 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s1-1 object-type) (traffic-type tt5)) + (set! (-> s1-1 behavior) (the-as uint 7)) + (set! (-> s1-1 id) (the-as uint 0)) + (set! (-> s1-1 nav-mesh) #f) + (set! (-> s1-1 nav-branch) #f) + (set! (-> s1-1 proc) #f) + (set! (-> s1-1 handle) (-> arg0 slave s3-2)) + (set! (-> s1-1 user-data) (the-as uint 0)) + (set! (-> s1-1 flags) (traffic-spawn-flags)) + (set! (-> s1-1 guard-type) (the-as uint 7)) + (vector-reset! (-> s1-1 velocity)) + (set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root-override2 trans quad)) + (quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root-override2 quat)) + (set! (-> s1-1 nav-mesh) (-> s4-1 nav-mesh)) + (activate-by-handle *traffic-engine* s1-1) ) - (let ((v1-230 *target*)) - (when (and v1-230 (focus-test? v1-230 pilot)) - (let ((s4-2 (handle->process (-> v1-230 pilot vehicle)))) - (when s4-2 - (cond - ((and (focus-test? (the-as citizen-rebel s2-0) pilot) - (handle->process (-> (the-as citizen-rebel s2-0) vehicle)) - ) - (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 (+ s3-2 1) pos)) - (+! (-> arg0 sub-state) 1) - (set! (-> arg0 time-limit) (+ (-> arg1 s3-2 time) (-> arg1 (+ s3-2 1) time))) - ) - (else - (let ((v1-260 (get-best-seat-for-vehicle - (the-as vehicle s4-2) - (-> (the-as vehicle s4-2) root-override-2 trans) - (the-as int (-> (the-as citizen-rebel s2-0) info seat-flag)) - 1 - ) + ) + (let ((v1-230 *target*)) + (when (and v1-230 (focus-test? v1-230 pilot)) + (let ((s4-2 (handle->process (-> v1-230 pilot vehicle)))) + (when s4-2 + (cond + ((and (focus-test? (the-as citizen-rebel s2-0) pilot) + (handle->process (-> (the-as citizen-rebel s2-0) vehicle)) + ) + (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 (+ s3-2 1) pos)) + (+! (-> arg0 sub-state) 1) + (set! (-> arg0 time-limit) (+ (-> arg1 s3-2 time) (-> arg1 (+ s3-2 1) time))) + ) + (else + (let ((v1-260 (get-best-seat-for-vehicle + (the-as vehicle s4-2) + (-> (the-as vehicle s4-2) root-override-2 trans) + (the-as int (-> (the-as citizen-rebel s2-0) info seat-flag)) + 1 ) - ) - (when (!= v1-260 -1) - (.lvf vf1 (&-> (-> (the-as vehicle s4-2) root-override-2 transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-263 vf1) - (let ((f0-1 v1-263) - (f1-1 32768.0) - ) - (if (and (< f0-1 (* f1-1 f1-1)) (let ((f0-2 (vector-vector-distance-squared - (-> (the-as vehicle s4-2) root-override-2 trans) - (-> (the-as citizen-rebel s2-0) root-override2 trans) - ) + ) + ) + (when (!= v1-260 -1) + (.lvf vf1 (&-> (-> (the-as vehicle s4-2) root-override-2 transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-263 vf1) + (let ((f0-1 v1-263) + (f1-1 32768.0) + ) + (if (and (< f0-1 (* f1-1 f1-1)) (let ((f0-2 (vector-vector-distance-squared + (-> (the-as vehicle s4-2) root-override-2 trans) + (-> (the-as citizen-rebel s2-0) root-override2 trans) ) - (f1-4 65536.0) - ) - (< f0-2 (* f1-4 f1-4)) - ) - ) - (send-event s2-0 'board-vehicle s4-2) - ) - ) + ) + (f1-4 65536.0) + ) + (< f0-2 (* f1-4 f1-4)) + ) + ) + (send-event s2-0 'board-vehicle s4-2) + ) ) ) ) @@ -1325,66 +1323,66 @@ ) ) ) - (else - (if (not (focus-test? (the-as citizen-rebel s2-0) inactive)) - (send-event s2-0 'traffic-off-force) - ) - ) ) - ) - (if (and (-> s2-0 next-state) (= (-> s2-0 next-state name) 'wait-for-ride)) - (send-event - (handle->process (-> arg0 arrow)) - 'set-position - (-> (the-as citizen-rebel s2-0) root-override2 trans) - ) - ) - ) - (else - (when (zero? (-> arg0 data-int32 s3-2)) - (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 s3-2 pos)) - (set! (-> arg0 time-limit) (-> arg1 s3-2 time)) - (set! (-> arg0 start-time) (-> pp clock frame-counter)) - (set! (-> arg0 data-int32 s3-2) 1) - ) - (let ((s1-2 (find-nearest-nav-mesh (-> arg1 s3-2 pos) (the-as float #x7f800000)))) - (when (and s1-2 (nonzero? s1-2)) - (let ((s2-1 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s2-1 object-type) (traffic-type tt5)) - (set! (-> s2-1 behavior) (the-as uint 7)) - (set! (-> s2-1 id) (the-as uint 0)) - (set! (-> s2-1 nav-mesh) #f) - (set! (-> s2-1 nav-branch) #f) - (set! (-> s2-1 proc) #f) - (set! (-> s2-1 handle) (the-as handle #f)) - (set! (-> s2-1 user-data) (the-as uint 0)) - (set! (-> s2-1 flags) (traffic-spawn-flags)) - (set! (-> s2-1 guard-type) (the-as uint 7)) - (vector-reset! (-> s2-1 velocity)) - (set! (-> s2-1 position quad) (-> arg1 s3-2 pos quad)) - (let ((s0-0 quaternion-copy!)) - (set! sv-336 (-> s2-1 rotation)) - (let ((a1-50 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *up-vector* 0.0))) - (s0-0 sv-336 a1-50) - ) + (else + (if (not (focus-test? (the-as citizen-rebel s2-0) inactive)) + (send-event s2-0 'traffic-off-force) ) - (logior! (-> s2-1 flags) (traffic-spawn-flags trsflags-00)) - (set! (-> s2-1 id) (the-as uint 122)) - (set! (-> s2-1 proc) #f) - (let ((v0-58 (citizen-spawn arg0 citizen-rebel s2-1))) - (cond - (v0-58 - (set! (-> (the-as citizen-rebel v0-58) end-pos quad) (-> arg1 (+ s3-2 1) pos quad)) - (set! (-> arg0 slave s3-2) (process->handle (the-as citizen-rebel v0-58))) - (logior! (-> (the-as citizen-rebel v0-58) flags) (citizen-flag persistent)) - (set! (-> (the-as citizen-rebel v0-58) task-node) arg2) - (set! (-> (the-as citizen-rebel v0-58) nav-mesh-aid) (the-as actor-id (-> s1-2 entity aid))) - (set! (-> (the-as citizen-rebel v0-58) done?) #f) - (set! (-> (the-as citizen-rebel v0-58) index) s3-2) - (send-event *traffic-manager* 'add-object (-> s2-1 object-type) (the-as citizen-rebel v0-58)) - ) - (else - ) + ) + ) + ) + (if (and (-> s2-0 next-state) (= (-> s2-0 next-state name) 'wait-for-ride)) + (send-event + (handle->process (-> arg0 arrow)) + 'set-position + (-> (the-as citizen-rebel s2-0) root-override2 trans) + ) + ) + ) + (else + (when (zero? (-> arg0 data-int32 s3-2)) + (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 s3-2 pos)) + (set! (-> arg0 time-limit) (-> arg1 s3-2 time)) + (set! (-> arg0 start-time) (current-time)) + (set! (-> arg0 data-int32 s3-2) 1) + ) + (let ((s1-2 (find-nearest-nav-mesh (-> arg1 s3-2 pos) (the-as float #x7f800000)))) + (when (and s1-2 (nonzero? s1-2)) + (let ((s2-1 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s2-1 object-type) (traffic-type tt5)) + (set! (-> s2-1 behavior) (the-as uint 7)) + (set! (-> s2-1 id) (the-as uint 0)) + (set! (-> s2-1 nav-mesh) #f) + (set! (-> s2-1 nav-branch) #f) + (set! (-> s2-1 proc) #f) + (set! (-> s2-1 handle) (the-as handle #f)) + (set! (-> s2-1 user-data) (the-as uint 0)) + (set! (-> s2-1 flags) (traffic-spawn-flags)) + (set! (-> s2-1 guard-type) (the-as uint 7)) + (vector-reset! (-> s2-1 velocity)) + (set! (-> s2-1 position quad) (-> arg1 s3-2 pos quad)) + (let ((s0-0 quaternion-copy!)) + (set! sv-336 (-> s2-1 rotation)) + (let ((a1-50 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *up-vector* 0.0))) + (s0-0 sv-336 a1-50) + ) + ) + (logior! (-> s2-1 flags) (traffic-spawn-flags trsflags-00)) + (set! (-> s2-1 id) (the-as uint 122)) + (set! (-> s2-1 proc) #f) + (let ((v0-58 (citizen-spawn arg0 citizen-rebel s2-1))) + (cond + (v0-58 + (set! (-> (the-as citizen-rebel v0-58) end-pos quad) (-> arg1 (+ s3-2 1) pos quad)) + (set! (-> arg0 slave s3-2) (process->handle (the-as citizen-rebel v0-58))) + (logior! (-> (the-as citizen-rebel v0-58) flags) (citizen-flag persistent)) + (set! (-> (the-as citizen-rebel v0-58) task-node) arg2) + (set! (-> (the-as citizen-rebel v0-58) nav-mesh-aid) (the-as actor-id (-> s1-2 entity aid))) + (set! (-> (the-as citizen-rebel v0-58) done?) #f) + (set! (-> (the-as citizen-rebel v0-58) index) s3-2) + (send-event *traffic-manager* 'add-object (-> s2-1 object-type) (the-as citizen-rebel v0-58)) + ) + (else ) ) ) @@ -1394,57 +1392,57 @@ ) ) ) - (else - (let ((s4-3 (handle->process (-> arg0 slave (+ s3-2 -1))))) - (if (not s4-3) - (go (method-of-object arg0 fail)) - ) - (if (or (not *target*) (not (logtest? (focus-status pilot) (-> *target* focus-status)))) - (send-event s4-3 'exit-vehicle (-> (the-as process-drawable s4-3) root trans)) - ) - (when (-> *target* pilot) - (let ((s5-1 (-> arg1 s3-2 pos)) - (s2-2 (handle->process (-> *target* pilot vehicle))) - ) - (cond - ((focus-test? (the-as process-focusable s4-3) pilot) - (if (and s2-2 - (let ((f0-3 (vector-vector-distance-squared s5-1 (-> (the-as process-drawable s2-2) root trans))) - (f1-7 65536.0) - ) - (< f0-3 (* f1-7 f1-7)) - ) - (begin - (.lvf vf1 (&-> (-> (the-as process-drawable s2-2) root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-377 vf1) - (let ((f0-4 v1-377) - (f1-10 12288.0) - ) - (< f0-4 (* f1-10 f1-10)) + ) + (else + (let ((s4-3 (handle->process (-> arg0 slave (+ s3-2 -1))))) + (if (not s4-3) + (go (method-of-object arg0 fail)) + ) + (if (or (not *target*) (not (logtest? (focus-status pilot) (-> *target* focus-status)))) + (send-event s4-3 'exit-vehicle (-> (the-as process-drawable s4-3) root trans)) + ) + (when (-> *target* pilot) + (let ((s5-1 (-> arg1 s3-2 pos)) + (s2-2 (handle->process (-> *target* pilot vehicle))) + ) + (cond + ((focus-test? (the-as process-focusable s4-3) pilot) + (if (and s2-2 + (let ((f0-3 (vector-vector-distance-squared s5-1 (-> (the-as process-drawable s2-2) root trans))) + (f1-7 65536.0) ) + (< f0-3 (* f1-7 f1-7)) + ) + (begin + (.lvf vf1 (&-> (-> (the-as process-drawable s2-2) root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-377 vf1) + (let ((f0-4 v1-377) + (f1-10 12288.0) + ) + (< f0-4 (* f1-10 f1-10)) ) ) - (send-event s4-3 'exit-vehicle s5-1) - ) - ) - ((not (-> (the-as citizen-rebel s4-3) done?)) - (set! (-> arg0 data-int32 s3-2) 0) - (+! (-> arg0 sub-state) -1) - ) - ) + ) + (send-event s4-3 'exit-vehicle s5-1) + ) + ) + ((not (-> (the-as citizen-rebel s4-3) done?)) + (set! (-> arg0 data-int32 s3-2) 0) + (+! (-> arg0 sub-state) -1) + ) ) ) ) ) ) ) - (none) ) + (none) ) ) @@ -1574,8 +1572,8 @@ (while (zero? (-> self sub-state)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -1597,9 +1595,9 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (talker-spawn-func (-> *talker-speech* 97) *entity-pool* (target-pos 0) (the-as region #f)) - (let ((gp-1 (-> self clock frame-counter))) + (let ((gp-1 (current-time))) (until #f (let ((v1-4 0)) (dotimes (a0-2 4) @@ -1609,7 +1607,7 @@ ) ) ) - (if (or (>= v1-4 4) (>= (- (-> self clock frame-counter) gp-1) (seconds 10))) + (if (or (>= v1-4 4) (>= (- (current-time) gp-1) (seconds 10))) (goto cfg-23) ) ) @@ -1750,8 +1748,8 @@ (while (zero? (-> self sub-state)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -1773,7 +1771,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (let ((v1-2 0)) (dotimes (a0-0 4) diff --git a/goal_src/jak2/engine/ai/enemy.gc b/goal_src/jak2/engine/ai/enemy.gc index 8d506763ac..dcf2e3f6bd 100644 --- a/goal_src/jak2/engine/ai/enemy.gc +++ b/goal_src/jak2/engine/ai/enemy.gc @@ -294,70 +294,66 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> pp clock frame-counter)) - ) - (enemy-method-129 self) - (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) - (enemy-method-100 self) - ) - (when *target* - (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) - :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - )) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (current-time)) ) - (when (nonzero? (-> self neck)) - (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) - (let ((a0-9 (handle->process (-> self focus handle)))) - (if a0-9 - (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) - ) - ) - ) + (enemy-method-129 self) + (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (enemy-method-100 self) ) - (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) - ) - (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) - (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) - (let ((v1-48 0)) - (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) - (set! v1-48 (logior (shl 1 32) v1-48)) - ) - (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) - ) - ) - (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 self) - ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) - (enemy-method-54 self) - ) - (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) - (joint-mod-debug-draw (-> self neck)) - ) - (ja-post) - 0 - (none) + (when *target* + (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) + :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking + )) ) + (when (nonzero? (-> self neck)) + (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-9 (handle->process (-> self focus handle)))) + (if a0-9 + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) + ) + ) + ) + ) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (current-time) (-> self auto-reset-penetrate-time)) (seconds 0.1)) + ) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) + (let ((v1-48 0)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) + (set! v1-48 (logior (shl 1 32) v1-48)) + ) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) + ) + ) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) + ) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) + ) + (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) + ) + (ja-post) + 0 + (none) ) (defmethod enemy-method-136 enemy ((obj enemy)) - (with-pp - (when (or (>= (- (-> pp clock frame-counter) (-> obj hit-focus-time)) (seconds 2)) - (and (handle->process (-> obj focus handle)) - (not (logtest? (-> (the-as process-focusable (handle->process (-> obj focus handle))) focus-status) - (focus-status disable dead ignore grabbed) - ) - ) - ) - ) - (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-0) - v0-0 - ) + (when (or (>= (- (current-time) (-> obj hit-focus-time)) (seconds 2)) + (and (handle->process (-> obj focus handle)) + (not (logtest? (-> (the-as process-focusable (handle->process (-> obj focus handle))) focus-status) + (focus-status disable dead ignore grabbed) + ) + ) + ) + ) + (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-0) + v0-0 ) ) ) @@ -655,28 +651,26 @@ ) (defmethod enemy-method-105 enemy ((obj enemy) (arg0 process)) - (with-pp - (when (logtest? (process-mask target bot) (-> arg0 mask)) - (set! (-> obj root-override2 penetrated-by) (the-as penetrate -1)) - (enemy-method-49 obj) - ) - (let ((s5-0 (if (type? arg0 process-focusable) - arg0 - ) - ) - ) - (when (enemy-method-53 obj (the-as process-focusable s5-0)) - (let ((v1-10 (handle->process (-> obj focus handle)))) - (when (or (= s5-0 v1-10) (and (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (or (not v1-10) (not (logtest? (-> obj focus flags) (enemy-flag lock-focus)))) - ) - ) - (enemy-method-63 obj (the-as process-focusable s5-0) (the-as enemy-aware #f)) - (set! (-> obj hit-focus-time) (-> pp clock frame-counter)) - (let ((v0-3 (logior (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-3) - v0-3 + (when (logtest? (process-mask target bot) (-> arg0 mask)) + (set! (-> obj root-override2 penetrated-by) (the-as penetrate -1)) + (enemy-method-49 obj) + ) + (let ((s5-0 (if (type? arg0 process-focusable) + arg0 + ) ) + ) + (when (enemy-method-53 obj (the-as process-focusable s5-0)) + (let ((v1-10 (handle->process (-> obj focus handle)))) + (when (or (= s5-0 v1-10) (and (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (or (not v1-10) (not (logtest? (-> obj focus flags) (enemy-flag lock-focus)))) + ) + ) + (enemy-method-63 obj (the-as process-focusable s5-0) (the-as enemy-aware #f)) + (set! (-> obj hit-focus-time) (current-time)) + (let ((v0-3 (logior (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-3) + v0-3 ) ) ) @@ -686,7 +680,7 @@ (defmethod enemy-method-49 enemy ((obj enemy)) (logior! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> obj auto-reset-penetrate-time) v0-0) v0-0 ) @@ -745,13 +739,13 @@ ) ) (set! (-> obj incoming knocked-type) (the-as knocked-type v1-3)) - (let ((a0-4 (-> self clock frame-counter))) + (let ((a0-4 (current-time))) (cond ((!= v1-3 6) (set! (-> obj incoming blue-juggle-count) (the-as uint 0)) 0 ) - ((>= (- (-> self clock frame-counter) (-> obj incoming attack-time)) (seconds 1)) + ((>= (- (current-time) (-> obj incoming attack-time)) (seconds 1)) (set! (-> obj incoming blue-juggle-count) (the-as uint 1)) ) (else @@ -1586,10 +1580,10 @@ This commonly includes things such as: (v1-1 (when (not (logtest? (-> obj enemy-flags) (enemy-flag spawn-gem))) (logior! (-> obj enemy-flags) (enemy-flag spawn-gem)) - (set! (-> obj notice-time) (-> self clock frame-counter)) + (set! (-> obj notice-time) (current-time)) ) (if (and (not (logtest? (-> obj enemy-flags) (enemy-flag chase-startup))) - (< (- (-> self clock frame-counter) (-> obj notice-time)) (-> obj reaction-time)) + (< (- (current-time) (-> obj notice-time)) (-> obj reaction-time)) ) (set! v1-1 #f) ) @@ -1602,7 +1596,7 @@ This commonly includes things such as: (v1-1 arg0 ) - ((or (zero? arg0) (>= (- (-> self clock frame-counter) (-> obj last-draw-time)) (seconds 2))) + ((or (zero? arg0) (>= (- (current-time) (-> obj last-draw-time)) (seconds 2))) 0 ) (else @@ -1640,350 +1634,348 @@ This commonly includes things such as: "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" (local-vars (s5-5 rgbaf) (sv-432 process) (sv-448 event-message-block)) - (with-pp - (the-as - object - (cond - ((= arg2 'track) - (and (nonzero? (-> obj hit-points)) - (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - (logtest? (enemy-flag check-water-backup) (-> obj enemy-flags)) - ) - ) - ((= arg2 'combo) - (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) - ) - ((= arg2 'touch) - (enemy-method-75 obj arg0 arg3) - ) - ((= arg2 'touched) - (when (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (let* ((s3-1 arg0) - (v1-20 (if (type? s3-1 process-drawable) - (the-as process-drawable s3-1) - ) - ) - ) - (when v1-20 - (let* ((s3-2 (-> v1-20 root)) - (a1-4 (if (type? s3-2 collide-shape) - s3-2 - ) - ) - (s3-3 (-> arg3 param 0)) - ) - (if (and a1-4 - s3-3 - ((method-of-type touching-shapes-entry prims-touching-action?) - (the-as touching-shapes-entry s3-3) - (the-as collide-shape a1-4) - (collide-action solid) - (collide-action) - ) - ((method-of-type touching-shapes-entry prims-touching-action?) - (the-as touching-shapes-entry s3-3) - (-> obj root-override2) - (collide-action solid) - (collide-action) + (the-as + object + (cond + ((= arg2 'track) + (and (nonzero? (-> obj hit-points)) + (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + (logtest? (enemy-flag check-water-backup) (-> obj enemy-flags)) + ) + ) + ((= arg2 'combo) + (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) + ) + ((= arg2 'touch) + (enemy-method-75 obj arg0 arg3) + ) + ((= arg2 'touched) + (when (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) + (let* ((s3-1 arg0) + (v1-20 (if (type? s3-1 process-drawable) + (the-as process-drawable s3-1) ) + ) + ) + (when v1-20 + (let* ((s3-2 (-> v1-20 root)) + (a1-4 (if (type? s3-2 collide-shape) + s3-2 + ) ) - (set! (-> obj auto-reset-penetrate-time) (-> pp clock frame-counter)) - ) - ) + (s3-3 (-> arg3 param 0)) + ) + (if (and a1-4 + s3-3 + ((method-of-type touching-shapes-entry prims-touching-action?) + (the-as touching-shapes-entry s3-3) + (the-as collide-shape a1-4) + (collide-action solid) + (collide-action) + ) + ((method-of-type touching-shapes-entry prims-touching-action?) + (the-as touching-shapes-entry s3-3) + (-> obj root-override2) + (collide-action solid) + (collide-action) + ) + ) + (set! (-> obj auto-reset-penetrate-time) (current-time)) + ) ) ) ) - (enemy-method-76 obj arg0 arg3) ) - ((= arg2 'attack-invinc) - (case (-> (the-as attack-info (-> arg3 param 1)) mode) - (('endlessfall) - (let ((v1-31 (-> obj root-override2 root-prim))) - (set! (-> v1-31 prim-core collide-as) (collide-spec)) - (set! (-> v1-31 prim-core collide-with) (collide-spec)) + (enemy-method-76 obj arg0 arg3) + ) + ((= arg2 'attack-invinc) + (case (-> (the-as attack-info (-> arg3 param 1)) mode) + (('endlessfall) + (let ((v1-31 (-> obj root-override2 root-prim))) + (set! (-> v1-31 prim-core collide-as) (collide-spec)) + (set! (-> v1-31 prim-core collide-with) (collide-spec)) + ) + 0 + (kill-prefer-falling obj) + ) + ) + ) + ((= arg2 'attack) + (let ((s2-0 (the-as object (-> arg3 param 1)))) + (when (!= (-> (the-as attack-info s2-0) id) (-> obj incoming attack-id)) + (cond + ((and (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (let* ((s1-0 obj) + (s0-0 (method-of-object s1-0 enemy-method-106)) + ) + (set! sv-432 arg0) + (set! sv-448 arg3) + (let ((a3-3 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg3))) + (s0-0 s1-0 sv-432 sv-448 (the-as int a3-3) (the-as attack-info s2-0)) + ) + ) + (send-event (ppointer->process (-> obj parent)) 'child-hit) + 0 + (if (not *debug-unkillable*) + (enemy-method-48 obj arg0 arg3) + ) + (let ((s2-1 (the-as attack-info (enemy-method-58 obj arg0 arg3)))) + (when s2-1 + (logclear! (-> obj enemy-flags) (enemy-flag called-dying)) + (enemy-method-108 obj (the-as enemy arg0) arg3) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) (process->ppointer arg0)) + (set! (-> a1-13 num-params) arg1) + (set! (-> a1-13 message) (the-as symbol s2-1)) + (set! (-> a1-13 param 0) (-> arg3 param 0)) + (set! (-> a1-13 param 1) (-> arg3 param 1)) + (set! (-> a1-13 param 2) (-> arg3 param 2)) + (set! (-> a1-13 param 3) (-> arg3 param 3)) + (set! (-> a1-13 param 4) (-> arg3 param 4)) + (set! (-> a1-13 param 5) (-> arg3 param 5)) + (send-event-function obj a1-13) + ) + ) + ) ) + (else + (set! (-> obj incoming attack-id) (-> (the-as attack-info s2-0) id)) + (enemy-method-75 obj arg0 arg3) + ) + ) + ) + ) + ) + ((= arg2 'hit-flinch) + (when (zero? (-> obj hit-points)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (kill-prefer-falling obj) + ) + #t + ) + ((= arg2 'hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (when (zero? (-> obj hit-points)) + (case (-> obj incoming knocked-type) + (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) 0 - (kill-prefer-falling obj) ) ) ) - ((= arg2 'attack) - (let ((s2-0 (the-as object (-> arg3 param 1)))) - (when (!= (-> (the-as attack-info s2-0) id) (-> obj incoming attack-id)) - (cond - ((and (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (let* ((s1-0 obj) - (s0-0 (method-of-object s1-0 enemy-method-106)) - ) - (set! sv-432 arg0) - (set! sv-448 arg3) - (let ((a3-3 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg3))) - (s0-0 s1-0 sv-432 sv-448 (the-as int a3-3) (the-as attack-info s2-0)) - ) - ) - (send-event (ppointer->process (-> obj parent)) 'child-hit) - 0 - (if (not *debug-unkillable*) - (enemy-method-48 obj arg0 arg3) - ) - (let ((s2-1 (the-as attack-info (enemy-method-58 obj arg0 arg3)))) - (when s2-1 - (logclear! (-> obj enemy-flags) (enemy-flag called-dying)) - (enemy-method-108 obj (the-as enemy arg0) arg3) - (let ((a1-13 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-13 from) (process->ppointer arg0)) - (set! (-> a1-13 num-params) arg1) - (set! (-> a1-13 message) (the-as symbol s2-1)) - (set! (-> a1-13 param 0) (-> arg3 param 0)) - (set! (-> a1-13 param 1) (-> arg3 param 1)) - (set! (-> a1-13 param 2) (-> arg3 param 2)) - (set! (-> a1-13 param 3) (-> arg3 param 3)) - (set! (-> a1-13 param 4) (-> arg3 param 4)) - (set! (-> a1-13 param 5) (-> arg3 param 5)) - (send-event-function obj a1-13) - ) - ) - ) - ) - (else - (set! (-> obj incoming attack-id) (-> (the-as attack-info s2-0) id)) - (enemy-method-75 obj arg0 arg3) - ) - ) - ) + (go (method-of-object obj knocked)) + ) + ((= arg2 'hit) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) ) - ) - ((= arg2 'hit-flinch) - (when (zero? (-> obj hit-points)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (if (zero? (-> obj hit-points)) (kill-prefer-falling obj) + (go (method-of-object obj hit)) ) - #t - ) - ((= arg2 'hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (when (zero? (-> obj hit-points)) - (case (-> obj incoming knocked-type) - (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - 0 - ) - ) - ) - (go (method-of-object obj knocked)) - ) - ((= arg2 'hit) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (if (zero? (-> obj hit-points)) - (kill-prefer-falling obj) - (go (method-of-object obj hit)) - ) - ) - ((= arg2 'cue-chase) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (let ((v1-162 (logtest? (enemy-flag alert) (-> obj enemy-flags)))) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice alert victory called-dying)) - (set! (-> obj enemy-flags) (logior (enemy-flag dangerous-backup) (-> obj enemy-flags))) - (logclear! (-> obj mask) (process-mask actor-pause)) - (cond - (v1-162 - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (go-hostile obj) - ) - ) - ((and (-> obj next-state) (let ((v1-173 (-> obj next-state name))) - (or (= v1-173 'dormant) (= v1-173 'dormant-aware)) - ) - ) - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (go (method-of-object obj notice)) - ) - ) - ) - ) - #t - ) - ) - ((= arg2 'cue-wake) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (logclear! (-> obj enemy-flags) (enemy-flag alert victory called-dying)) - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (react-to-focus obj) - ) - #t - ) - ) - ((= arg2 'jump) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj jump-why) (-> arg3 param 0)) - (set! (-> obj event-param-point quad) (-> (the-as vector (-> arg3 param 1)) quad)) - (go (method-of-object obj jump)) - ) - ) - ((= arg2 'death-start) - (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag recover) (-> obj enemy-flags)))) - (send-event (ppointer->process (-> obj parent)) 'child-die) - (drop-pickup (-> obj fact-info-override) #t *entity-pool* (-> obj fact-info-override) 0) - (let ((s5-1 (-> obj on-death))) - (if s5-1 - (script-eval (the-as pair s5-1) :vector (-> obj root-override2 trans)) - ) - ) - ) - ((= arg2 'death-end) - (if (-> obj skel effect) - (logior! (-> obj skel effect flags) (effect-control-flag ecf2)) - ) - (logior! (-> obj draw status) (draw-control-status no-draw)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (set! (-> obj enemy-flags) (logclear (-> obj enemy-flags) (enemy-flag check-water))) - ) - ((= arg2 'instant-death) - (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time))) - (set! (-> obj hit-points) 0) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - (let ((s5-2 (enemy-method-50 obj (new 'stack-no-clear 'vector)))) - (vector-z-quaternion! s5-2 (-> obj root-override2 quat)) - (vector-float*! s5-2 s5-2 -1.0) - (vector-normalize! s5-2 1.0) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (kill-prefer-falling obj) - ) - ) - ((= arg2 'die-fast) - (logior! (-> obj draw status) (draw-control-status no-draw)) - (dispose! obj) - (send-event (ppointer->process (-> obj parent)) 'child-die) - (let ((s5-3 (-> obj on-death))) - (if s5-3 - (script-eval (the-as pair s5-3) :vector (-> obj root-override2 trans)) - ) - ) - (cleanup-for-death obj) - (go (method-of-object obj die-fast)) - ) - ((= arg2 'victory) - (if (and (-> obj enemy-info use-victory) - (not (and (-> obj next-state) (= (-> obj next-state name) 'victory))) - (> (-> obj hit-points) 0) + ) + ((= arg2 'cue-chase) + (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time)) (not (logtest? (-> obj focus-status) (focus-status grabbed))) ) - (go (method-of-object obj victory)) - ) - ) - ((= arg2 'nav-control) - (if (nonzero? (-> obj nav)) - (-> obj nav) - ) - ) - ((= arg2 'push-trans) - (move-by-vector! (-> obj root-override2) (the-as vector (-> arg3 param 0))) - ) - ((= arg2 'move-trans) - (move-to-point! (-> obj root-override2) (the-as vector (-> arg3 param 0))) - ) - ((= arg2 'shadow) - (cond - ((-> arg3 param 0) - (let ((v1-320 (-> obj draw shadow-ctrl))) - (logclear! (-> v1-320 settings flags) (shadow-flags disable-draw)) - ) - 0 - ) - (else - (let ((v1-323 (-> obj draw shadow-ctrl))) - (logior! (-> v1-323 settings flags) (shadow-flags disable-draw)) + (let ((v1-162 (logtest? (enemy-flag alert) (-> obj enemy-flags)))) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice alert victory called-dying)) + (set! (-> obj enemy-flags) (logior (enemy-flag dangerous-backup) (-> obj enemy-flags))) + (logclear! (-> obj mask) (process-mask actor-pause)) + (cond + (v1-162 + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (go-hostile obj) + ) ) - 0 + ((and (-> obj next-state) (let ((v1-173 (-> obj next-state name))) + (or (= v1-173 'dormant) (= v1-173 'dormant-aware)) + ) + ) + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (go (method-of-object obj notice)) + ) + ) ) ) + #t ) - ((= arg2 'color-effect) - (case (-> arg3 param 0) - (('dark) - (let ((f30-0 (rand-vu-float-range 0.2 1.0))) - (set-vector! (-> obj draw color-mult) (lerp 1.0 1.0 f30-0) (lerp 1.0 0.0 f30-0) (lerp 1.0 1.0 f30-0) 1.0) - (set! s5-5 (-> obj draw color-emissive)) - (set! (-> s5-5 x) (lerp 0.0 0.3 f30-0)) - (set! (-> s5-5 y) (lerp 0.0 0.0 f30-0)) - (set! (-> s5-5 z) (lerp 0.0 0.3 f30-0)) - ) - (set! (-> s5-5 w) 1.0) - s5-5 - ) - ((#f) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set! s5-5 (-> obj draw color-emissive)) - (set! (-> s5-5 quad) (the-as uint128 0)) - s5-5 + ) + ((= arg2 'cue-wake) + (when (and (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (logclear! (-> obj enemy-flags) (enemy-flag alert victory called-dying)) + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (react-to-focus obj) + ) + #t + ) + ) + ((= arg2 'jump) + (when (and (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj jump-why) (-> arg3 param 0)) + (set! (-> obj event-param-point quad) (-> (the-as vector (-> arg3 param 1)) quad)) + (go (method-of-object obj jump)) + ) + ) + ((= arg2 'death-start) + (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag recover) (-> obj enemy-flags)))) + (send-event (ppointer->process (-> obj parent)) 'child-die) + (drop-pickup (-> obj fact-info-override) #t *entity-pool* (-> obj fact-info-override) 0) + (let ((s5-1 (-> obj on-death))) + (if s5-1 + (script-eval (the-as pair s5-1) :vector (-> obj root-override2 trans)) + ) + ) + ) + ((= arg2 'death-end) + (if (-> obj skel effect) + (logior! (-> obj skel effect flags) (effect-control-flag ecf2)) + ) + (logior! (-> obj draw status) (draw-control-status no-draw)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (set! (-> obj enemy-flags) (logclear (-> obj enemy-flags) (enemy-flag check-water))) + ) + ((= arg2 'instant-death) + (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time))) + (set! (-> obj hit-points) 0) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (let ((s5-2 (enemy-method-50 obj (new 'stack-no-clear 'vector)))) + (vector-z-quaternion! s5-2 (-> obj root-override2 quat)) + (vector-float*! s5-2 s5-2 -1.0) + (vector-normalize! s5-2 1.0) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (kill-prefer-falling obj) + ) + ) + ((= arg2 'die-fast) + (logior! (-> obj draw status) (draw-control-status no-draw)) + (dispose! obj) + (send-event (ppointer->process (-> obj parent)) 'child-die) + (let ((s5-3 (-> obj on-death))) + (if s5-3 + (script-eval (the-as pair s5-3) :vector (-> obj root-override2 trans)) + ) + ) + (cleanup-for-death obj) + (go (method-of-object obj die-fast)) + ) + ((= arg2 'victory) + (if (and (-> obj enemy-info use-victory) + (not (and (-> obj next-state) (= (-> obj next-state name) 'victory))) + (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (go (method-of-object obj victory)) + ) + ) + ((= arg2 'nav-control) + (if (nonzero? (-> obj nav)) + (-> obj nav) + ) + ) + ((= arg2 'push-trans) + (move-by-vector! (-> obj root-override2) (the-as vector (-> arg3 param 0))) + ) + ((= arg2 'move-trans) + (move-to-point! (-> obj root-override2) (the-as vector (-> arg3 param 0))) + ) + ((= arg2 'shadow) + (cond + ((-> arg3 param 0) + (let ((v1-320 (-> obj draw shadow-ctrl))) + (logclear! (-> v1-320 settings flags) (shadow-flags disable-draw)) ) + 0 + ) + (else + (let ((v1-323 (-> obj draw shadow-ctrl))) + (logior! (-> v1-323 settings flags) (shadow-flags disable-draw)) + ) + 0 ) ) - ) + ) + ((= arg2 'color-effect) + (case (-> arg3 param 0) + (('dark) + (let ((f30-0 (rand-vu-float-range 0.2 1.0))) + (set-vector! (-> obj draw color-mult) (lerp 1.0 1.0 f30-0) (lerp 1.0 0.0 f30-0) (lerp 1.0 1.0 f30-0) 1.0) + (set! s5-5 (-> obj draw color-emissive)) + (set! (-> s5-5 x) (lerp 0.0 0.3 f30-0)) + (set! (-> s5-5 y) (lerp 0.0 0.0 f30-0)) + (set! (-> s5-5 z) (lerp 0.0 0.3 f30-0)) + ) + (set! (-> s5-5 w) 1.0) + s5-5 + ) + ((#f) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set! s5-5 (-> obj draw color-emissive)) + (set! (-> s5-5 quad) (the-as uint128 0)) + s5-5 + ) + ) + ) ) ) ) @@ -2015,30 +2007,28 @@ This commonly includes things such as: ) (defmethod enemy-method-48 enemy ((obj enemy) (arg0 process) (arg1 event-message-block)) - (with-pp - (let* ((v1-1 (damage-amount-from-attack obj arg0 arg1)) - (s5-0 (-> obj hit-points)) - (s4-1 (max 0 (- s5-0 v1-1))) - ) - (when (and (zero? s4-1) (nonzero? s5-0) (= (-> obj incoming knocked-type) (knocked-type knocked-type-6))) - (cond - ((zero? (-> obj fated-time)) - (set! (-> obj fated-time) (-> pp clock frame-counter)) - (set! s4-1 1) - ) - (else - (if (< (- (-> pp clock frame-counter) (-> obj fated-time)) (seconds 1)) - (set! s4-1 1) - ) - ) + (let* ((v1-1 (damage-amount-from-attack obj arg0 arg1)) + (s5-0 (-> obj hit-points)) + (s4-1 (max 0 (- s5-0 v1-1))) + ) + (when (and (zero? s4-1) (nonzero? s5-0) (= (-> obj incoming knocked-type) (knocked-type knocked-type-6))) + (cond + ((zero? (-> obj fated-time)) + (set! (-> obj fated-time) (current-time)) + (set! s4-1 1) + ) + (else + (if (< (- (current-time) (-> obj fated-time)) (seconds 1)) + (set! s4-1 1) + ) ) ) - (set! (-> obj hit-points) s4-1) - (if (not (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup))) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - ) - (- s5-0 s4-1) ) + (set! (-> obj hit-points) s4-1) + (if (not (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup))) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + ) + (- s5-0 s4-1) ) ) @@ -2210,7 +2200,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (stop-looking-at-target! self) (logclear! (-> self enemy-flags) (enemy-flag spawn-gem chase-startup use-notice-distance)) (logior! (-> self enemy-flags) (enemy-flag enable-on-notice)) @@ -2233,7 +2223,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (go-virtual active) @@ -2248,7 +2238,7 @@ This commonly includes things such as: :post (behavior () (idle-control-method-10 (-> self idle-anim-player) self) (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -2295,7 +2285,7 @@ This commonly includes things such as: :enter (-> (method-of-type enemy dormant) enter) :exit (-> (method-of-type enemy dormant) exit) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (if (logtest? (enemy-option ambush) (-> self fact-info-override enemy-options)) @@ -2308,7 +2298,7 @@ This commonly includes things such as: :code (the-as (function none :behavior enemy) sleep-code) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (none) @@ -2332,7 +2322,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self enemy-flags) (enemy-flag use-notice-distance)) (when (logtest? (-> self enemy-flags) (enemy-flag jump-check-blocked)) (logclear! (-> self enemy-flags) (enemy-flag jump-check-blocked)) @@ -2351,7 +2341,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-3 (-> self focus aware))) (cond ((< (the-as int v1-3) 1) @@ -2381,7 +2371,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (logior (-> self enemy-flags) (enemy-flag use-notice-distance)))) (set! (-> self enemy-flags) (logclear v1-3 (enemy-flag called-dying))) ) @@ -2446,7 +2436,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) @@ -2466,7 +2456,7 @@ This commonly includes things such as: (go-virtual victory) ) (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (>= 2 (the-as int gp-0)) (not (get-enemy-target self))) (go-stare self) @@ -2499,13 +2489,13 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) @@ -2581,14 +2571,14 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) (logclear! (-> self mask) (process-mask actor-pause)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (!= (-> self focus aware) (enemy-aware unaware)) (go-stare self) ) @@ -2818,7 +2808,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (logior! (-> self focus-status) (focus-status dangerous)) (let* ((v1-6 *game-info*) @@ -2865,7 +2855,7 @@ This commonly includes things such as: (let ((s5-1 2)) (logior! (-> self focus-status) (focus-status in-air)) (until (enemy-method-86 self) - (+! (-> gp-0 hang-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> gp-0 hang-time) (- (current-time) (-> self clock old-frame-counter))) (enemy-method-90 self s5-1 gp-0) (enemy-method-91 self s5-1 gp-0) (enemy-method-92 self s5-1 (the-as nav-poly gp-0)) @@ -2917,12 +2907,12 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (if (logtest? (enemy-flag alert) (-> self enemy-flags)) (go-virtual jump) (enemy-method-93 self) @@ -3336,7 +3326,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (stop-looking-at-target! self) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) (logclear! (-> self mask) (process-mask actor-pause)) @@ -3449,7 +3439,7 @@ This commonly includes things such as: (set! (-> gp-0 on-surface-count) 0) (set! (-> gp-0 move-count) 0) (until (enemy-method-80 self gp-0) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (kill-prefer-falling self) ) (if (logtest? (-> self root-override2 status) (collide-status on-surface)) @@ -3462,7 +3452,7 @@ This commonly includes things such as: ) ) (let ((s5-1 2)) - (set! (-> gp-0 land-can-land-time) (-> self clock frame-counter)) + (set! (-> gp-0 land-can-land-time) (current-time)) (until #f (if (logtest? (-> self root-override2 status) (collide-status on-surface)) (+! (-> gp-0 on-surface-count) 1) @@ -3474,14 +3464,14 @@ This commonly includes things such as: (+! (-> gp-0 move-count) 1) (set! s5-1 3) (if (enemy-method-80 self gp-0) - (set! (-> gp-0 land-can-land-time) (-> self clock frame-counter)) + (set! (-> gp-0 land-can-land-time) (current-time)) ) ) ) #f (label cfg-15) (if (and (not (logtest? (enemy-flag recover) (-> self enemy-flags))) - (or (>= (- (-> self clock frame-counter) (-> gp-0 land-can-land-time)) (seconds 0.1)) + (or (>= (- (current-time) (-> gp-0 land-can-land-time)) (seconds 0.1)) (enemy-method-81 self) (enemy-method-102 self) ) @@ -3578,7 +3568,7 @@ This commonly includes things such as: (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hit-points) 0) (enemy-method-103 self) (none) diff --git a/goal_src/jak2/engine/ambient/ambient.gc b/goal_src/jak2/engine/ambient/ambient.gc index 41f53dc497..88f00882bc 100644 --- a/goal_src/jak2/engine/ambient/ambient.gc +++ b/goal_src/jak2/engine/ambient/ambient.gc @@ -242,7 +242,7 @@ (set! (-> self region) arg2) (set! (-> self total-time) 0) (set! (-> self total-off-time) 0) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self voicebox) (the-as handle #f)) (set! (-> self save?) #f) (if (logtest? (-> self message flags) 96) @@ -343,8 +343,8 @@ (defstate idle (talker) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the-as time-frame (-> self message delay))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the-as time-frame (-> self message delay))) (suspend) ) ) @@ -355,7 +355,7 @@ ) ) ) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (+ (-> self message delay) 300))) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (+ (-> self message delay) 300))) (if (and (or (zero? (-> self voice-id)) (= (get-status *gui-control* (-> self voice-id)) (gui-status ready))) (or (zero? (-> self message-id)) (= (get-status *gui-control* (-> self message-id)) (gui-status active))) ) @@ -371,7 +371,7 @@ (defstate active (talker) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (logtest? (-> self message flags) 1) (play-communicator-speech! (-> self message)) ) @@ -471,16 +471,16 @@ ) (set! v1-43 #t) (label cfg-39) - (and v1-43 (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 120))) + (and v1-43 (< (- (current-time) (-> self state-time)) (seconds 120))) ) ) (and (nonzero? (-> self message-id)) (= (get-status *gui-control* (-> self message-id)) (gui-status active)) - (or (< (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self message text-duration))) + (or (< (- (current-time) (-> self state-time)) (the-as time-frame (-> self message text-duration))) (and (logtest? (-> self message flags) 16) (-> self region) (region-method-9 (-> self region) (target-pos 0))) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (< (- (current-time) (-> self state-time)) (seconds 0.05)) ) (when (and (nonzero? (-> self voice-id)) (not gp-1) (zero? (get-status *gui-control* (-> self voice-id)))) (remove-setting! 'music-volume) @@ -512,8 +512,8 @@ ) ) (when (and (logtest? (-> self message flags) 8) (not (-> self save?))) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/engine/anim/fma-sphere.gc b/goal_src/jak2/engine/anim/fma-sphere.gc index 8c773e2251..913f7c5e1a 100644 --- a/goal_src/jak2/engine/anim/fma-sphere.gc +++ b/goal_src/jak2/engine/anim/fma-sphere.gc @@ -77,7 +77,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self first-time?) #f) (if (logtest? (-> self mode) (fma-sphere-mode kill-once)) (send-event *traffic-manager* 'kill-traffic-sphere (-> self sphere)) @@ -92,7 +92,7 @@ ) (init-vf0-vector) (let ((v1-0 (-> self duration))) - (if (and (nonzero? v1-0) (>= (- (-> self clock frame-counter) (-> self state-time)) v1-0)) + (if (and (nonzero? v1-0) (>= (- (current-time) (-> self state-time)) v1-0)) (go empty-state) ) ) @@ -154,6 +154,7 @@ :code (the-as (function none :behavior fma-sphere) sleep-code) ) +;; WARN: Return type mismatch object vs none. (defbehavior fma-sphere-init-by-other fma-sphere ((arg0 fma-sphere-mode) (arg1 process-drawable) (arg2 int) (arg3 time-frame) (arg4 vector) (arg5 vector)) (set! (-> self mode) arg0) (set! (-> self first-time?) #t) diff --git a/goal_src/jak2/engine/anim/joint-exploder.gc b/goal_src/jak2/engine/anim/joint-exploder.gc index a064d7d382..ad652b0d1f 100644 --- a/goal_src/jak2/engine/anim/joint-exploder.gc +++ b/goal_src/jak2/engine/anim/joint-exploder.gc @@ -538,11 +538,11 @@ (defstate joint-exploder-shatter (joint-exploder) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (let* ((f0-1 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let* ((f0-1 (the float (- (current-time) (-> self state-time)))) (f1-1 (- 1.0 (/ f0-1 (the float (-> self tuning duration))))) (f0-3 (- 1.0 (/ f0-1 (* 0.75 (the float (-> self tuning duration)))))) ) @@ -590,8 +590,8 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self tuning duration)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (-> self tuning duration)) (suspend) (ja :num! (loop!)) ) diff --git a/goal_src/jak2/engine/anim/joint-mod.gc b/goal_src/jak2/engine/anim/joint-mod.gc index 4ff63659b5..b875c06395 100644 --- a/goal_src/jak2/engine/anim/joint-mod.gc +++ b/goal_src/jak2/engine/anim/joint-mod.gc @@ -768,7 +768,7 @@ ) (when s2-1 (when (< (vector-vector-distance (-> obj process root trans) (-> s1-0 root trans)) (-> s2-1 cam-notice-dist)) - (set! (-> obj notice-time) (-> self clock frame-counter)) + (set! (-> obj notice-time) (current-time)) (set! (-> last-try-to-look-at-data who) (process->handle arg2)) (if (< (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) (set! (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) diff --git a/goal_src/jak2/engine/anim/joint.gc b/goal_src/jak2/engine/anim/joint.gc index da3988a11a..43bc9b3905 100644 --- a/goal_src/jak2/engine/anim/joint.gc +++ b/goal_src/jak2/engine/anim/joint.gc @@ -35,14 +35,17 @@ (-> obj length) ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of joint-anim-matrix ((obj joint-anim-matrix)) (the-as int (+ (-> joint-anim-matrix size) (* (-> obj length) 64))) ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of joint-anim-transformq ((obj joint-anim-transformq)) (the-as int (+ (-> joint-anim-transformq size) (* 48 (-> obj length)))) ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of joint-anim-drawable ((obj joint-anim-drawable)) (the-as int (+ (-> joint-anim-drawable size) (* (-> obj length) 4))) ) @@ -149,6 +152,7 @@ obj ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of joint-control ((obj joint-control)) (the-as int (+ (-> obj type size) (* (-> obj allocated-length) 64))) ) @@ -264,6 +268,7 @@ #f ) +;; WARN: Return type mismatch symbol vs basic. (defmethod get-art-by-name-method art ((obj art) (arg0 string) (arg1 type)) (the-as basic #f) ) @@ -273,6 +278,7 @@ `(the-as ,type (get-art-by-name-method ,obj ,name ,type)) ) +;; WARN: Return type mismatch symbol vs int. (defmethod get-art-idx-by-name-method art ((obj art) (arg0 string) (arg1 type)) (the-as int #f) ) @@ -334,6 +340,7 @@ obj ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of art-joint-anim ((obj art-joint-anim)) (the-as int (+ (-> art size) (* (-> obj length) 4))) ) @@ -361,6 +368,7 @@ ) ) +;; WARN: Return type mismatch art-element vs basic. (defmethod get-art-by-name-method art-group ((obj art-group) (arg0 string) (arg1 type)) (cond (arg1 @@ -441,6 +449,7 @@ obj ) +;; WARN: Return type mismatch art-group vs none. (defmethod relocate art-group ((obj art-group) (arg0 kheap) (arg1 (pointer uint8))) (let ((s4-0 (clear *temp-string*))) (string<-charp s4-0 arg1) @@ -506,6 +515,7 @@ (none) ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of art-mesh-geo ((obj art-mesh-geo)) (the-as int (+ (-> art size) (* (-> obj length) 4))) ) @@ -547,10 +557,12 @@ obj ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of art-joint-geo ((obj art-joint-geo)) (the-as int (+ (-> art size) (* (-> obj length) 4))) ) +;; WARN: Return type mismatch joint vs basic. (defmethod get-art-by-name-method art-joint-geo ((obj art-joint-geo) (arg0 string) (arg1 type)) (cond (arg1 @@ -612,7 +624,7 @@ (defbehavior joint-control-channel-eval process ((arg0 joint-control-channel)) (let ((f0-3 ((-> arg0 num-func) arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)))) - (set! (-> arg0 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> arg0 eval-time) (the-as uint (current-time))) f0-3 ) ) @@ -620,7 +632,7 @@ (defbehavior joint-control-channel-eval! process ((arg0 joint-control-channel) (arg1 (function joint-control-channel float float float float))) (set! (-> arg0 num-func) arg1) (let ((f0-3 (arg1 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)))) - (set! (-> arg0 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> arg0 eval-time) (the-as uint (current-time))) f0-3 ) ) @@ -629,21 +641,19 @@ (arg1 art-joint-anim) (arg2 (function joint-control-channel float float float float)) ) - (with-pp - (set! (-> arg0 num-func) arg2) - (cond - ((= (-> arg0 command) (joint-control-command stack)) - ) - (else - (if arg1 - (set! (-> arg0 frame-group) arg1) - ) - (arg2 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)) - (set! (-> arg0 eval-time) (the-as uint (-> pp clock frame-counter))) - ) + (set! (-> arg0 num-func) arg2) + (cond + ((= (-> arg0 command) (joint-control-command stack)) + ) + (else + (if arg1 + (set! (-> arg0 frame-group) arg1) + ) + (arg2 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)) + (set! (-> arg0 eval-time) (the-as uint (current-time))) ) - 0 ) + 0 ) (defun joint-control-channel-group! ((arg0 joint-control-channel) @@ -683,6 +693,8 @@ arg0 ) +;; WARN: Return type mismatch symbol vs object. +;; WARN: Using new Jak 2 rtype-of (defun joint-control-remap! ((arg0 joint-control) (arg1 art-group) (arg2 art-group) (arg3 pair) (arg4 int) (arg5 string)) (local-vars (sv-16 int) @@ -762,6 +774,7 @@ (the-as object sv-24) ) +;; ERROR: Failed load: (set! vf2 (l.vf (the-as int a2-1))) at op 46 (defun flatten-joint-control-to-spr ((arg0 joint-control)) (rlet ((vf1 :class vf) (vf10 :class vf) @@ -938,12 +951,13 @@ ) ) +;; WARN: Return type mismatch object vs matrix. (defun matrix-from-joint-anim-frame ((arg0 joint-anim-compressed-control) (arg1 int) (arg2 int)) (let ((v1-1 (the-as object (-> arg0 fixed data))) (v0-0 (the-as object (-> arg0 data arg2 data))) ) (cond - ((zero? (logand (-> arg0 fixed hdr matrix-bits) 1)) + ((not (logtest? (-> arg0 fixed hdr matrix-bits) 1)) (set! v1-1 (cond ((zero? arg1) (return (the-as matrix v1-1)) @@ -962,7 +976,7 @@ (set! v0-0 (-> (the-as (inline-array vector) v0-0) 4)) ) ) - (if (zero? (logand (-> arg0 fixed hdr matrix-bits) 2)) + (if (not (logtest? (-> arg0 fixed hdr matrix-bits) 2)) (return (the-as matrix v1-1)) ) (the-as matrix v0-0) @@ -982,14 +996,14 @@ (cond ((= (the float (the int f0-1)) f0-1) (let* ((a2-3 (matrix-from-joint-anim-frame (-> s4-0 frames) s5-0 (the int f30-0))) - (v1-7 (-> a2-3 vector 0 quad)) - (a0-3 (-> a2-3 vector 1 quad)) - (a1-3 (-> a2-3 vector 2 quad)) + (v1-7 (-> a2-3 quad 0)) + (a0-3 (-> a2-3 quad 1)) + (a1-3 (-> a2-3 quad 2)) (a2-4 (-> a2-3 trans quad)) ) - (set! (-> arg0 vector 0 quad) v1-7) - (set! (-> arg0 vector 1 quad) a0-3) - (set! (-> arg0 vector 2 quad) a1-3) + (set! (-> arg0 quad 0) v1-7) + (set! (-> arg0 quad 1) a0-3) + (set! (-> arg0 quad 2) a1-3) (set! (-> arg0 trans quad) a2-4) ) arg0 @@ -1029,6 +1043,7 @@ ) ) +;; WARN: Return type mismatch (inline-array matrix) vs matrix. (defun matrix-from-control! ((arg0 matrix-stack) (arg1 joint) (arg2 joint-control) (arg3 symbol)) (set! (-> arg0 top) (the-as matrix (-> arg0 data))) (dotimes (s2-0 (the-as int (+ (-> arg2 active-channels) (-> arg2 float-channels)))) @@ -1048,14 +1063,14 @@ (set! (-> arg0 top) (the-as matrix (&- (the-as pointer (-> arg0 top)) (the-as uint s1-0)))) (let* ((v1-9 (the-as object (&- (the-as pointer (-> arg0 top)) (the-as uint s1-0)))) (a3-1 (-> arg0 top)) - (a0-8 (-> a3-1 vector 0 quad)) - (a1-6 (-> a3-1 vector 1 quad)) - (a2-2 (-> a3-1 vector 2 quad)) + (a0-8 (-> a3-1 quad 0)) + (a1-6 (-> a3-1 quad 1)) + (a2-2 (-> a3-1 quad 2)) (a3-2 (-> a3-1 trans quad)) ) - (set! (-> (the-as matrix v1-9) vector 0 quad) a0-8) - (set! (-> (the-as matrix v1-9) vector 1 quad) a1-6) - (set! (-> (the-as matrix v1-9) vector 2 quad) a2-2) + (set! (-> (the-as matrix v1-9) quad 0) a0-8) + (set! (-> (the-as matrix v1-9) quad 1) a1-6) + (set! (-> (the-as matrix v1-9) quad 2) a2-2) (set! (-> (the-as matrix v1-9) trans quad) a3-2) ) ) @@ -1088,11 +1103,10 @@ (the-as matrix (-> arg0 data)) ) - (defmethod reset-and-assign-geo! cspace ((obj cspace) (arg0 drawable)) (set! (-> obj parent) #f) (set! (-> obj joint) #f) - (set! (-> obj geo) (the-as drawable arg0)) + (set! (-> obj geo) arg0) (set! (-> obj param0) #f) (set! (-> obj param1) #f) (set! (-> obj param2) #f) @@ -1111,14 +1125,14 @@ (defun cspace<-cspace! ((arg0 cspace) (arg1 cspace)) (let ((v0-0 (-> arg0 bone transform))) (let* ((a2-0 (-> arg1 bone transform)) - (v1-2 (-> a2-0 vector 0 quad)) - (a0-1 (-> a2-0 vector 1 quad)) - (a1-1 (-> a2-0 vector 2 quad)) + (v1-2 (-> a2-0 quad 0)) + (a0-1 (-> a2-0 quad 1)) + (a1-1 (-> a2-0 quad 2)) (a2-1 (-> a2-0 trans quad)) ) - (set! (-> v0-0 vector 0 quad) v1-2) - (set! (-> v0-0 vector 1 quad) a0-1) - (set! (-> v0-0 vector 2 quad) a1-1) + (set! (-> v0-0 quad 0) v1-2) + (set! (-> v0-0 quad 1) a0-1) + (set! (-> v0-0 quad 2) a1-1) (set! (-> v0-0 trans quad) a2-1) ) v0-0 @@ -1128,14 +1142,14 @@ (defun cspace<-cspace-normalized! ((arg0 cspace) (arg1 cspace)) (let ((gp-0 (-> arg0 bone transform))) (let* ((a2-0 (-> arg1 bone transform)) - (v1-2 (-> a2-0 vector 0 quad)) - (a0-1 (-> a2-0 vector 1 quad)) - (a1-1 (-> a2-0 vector 2 quad)) + (v1-2 (-> a2-0 quad 0)) + (a0-1 (-> a2-0 quad 1)) + (a1-1 (-> a2-0 quad 2)) (a2-1 (-> a2-0 trans quad)) ) - (set! (-> gp-0 vector 0 quad) v1-2) - (set! (-> gp-0 vector 1 quad) a0-1) - (set! (-> gp-0 vector 2 quad) a1-1) + (set! (-> gp-0 quad 0) v1-2) + (set! (-> gp-0 quad 1) a0-1) + (set! (-> gp-0 quad 2) a1-1) (set! (-> gp-0 trans quad) a2-1) ) (vector-normalize! (the-as vector (-> gp-0 vector)) 1.0) @@ -1148,14 +1162,14 @@ (defun cspace<-parent-joint! ((arg0 cspace) (arg1 (pointer process-drawable)) (arg2 int)) (let ((v0-0 (-> arg0 bone transform))) (let* ((a2-1 (-> arg1 0 node-list data arg2 bone transform)) - (v1-5 (-> a2-1 vector 0 quad)) - (a0-2 (-> a2-1 vector 1 quad)) - (a1-1 (-> a2-1 vector 2 quad)) + (v1-5 (-> a2-1 quad 0)) + (a0-2 (-> a2-1 quad 1)) + (a1-1 (-> a2-1 quad 2)) (a2-2 (-> a2-1 trans quad)) ) - (set! (-> v0-0 vector 0 quad) v1-5) - (set! (-> v0-0 vector 1 quad) a0-2) - (set! (-> v0-0 vector 2 quad) a1-1) + (set! (-> v0-0 quad 0) v1-5) + (set! (-> v0-0 quad 1) a0-2) + (set! (-> v0-0 quad 2) a1-1) (set! (-> v0-0 trans quad) a2-2) ) v0-0 @@ -1206,14 +1220,14 @@ (let ((v1-2 (matrix-from-control! (scratchpad-object matrix-stack :offset 64) (-> arg0 joint) arg1 'no-push)) (v0-1 (-> arg0 bone transform)) ) - (let ((a0-4 (-> v1-2 vector 0 quad)) - (a1-2 (-> v1-2 vector 1 quad)) - (a2-1 (-> v1-2 vector 2 quad)) + (let ((a0-4 (-> v1-2 quad 0)) + (a1-2 (-> v1-2 quad 1)) + (a2-1 (-> v1-2 quad 2)) (v1-3 (-> v1-2 trans quad)) ) - (set! (-> v0-1 vector 0 quad) a0-4) - (set! (-> v0-1 vector 1 quad) a1-2) - (set! (-> v0-1 vector 2 quad) a2-1) + (set! (-> v0-1 quad 0) a0-4) + (set! (-> v0-1 quad 1) a1-2) + (set! (-> v0-1 quad 2) a2-1) (set! (-> v0-1 trans quad) v1-3) ) v0-1 @@ -1223,14 +1237,14 @@ (defun cspace<-matrix-joint! ((arg0 cspace) (arg1 matrix)) (let ((v0-0 (-> arg0 bone transform))) (let* ((a2-0 arg1) - (v1-1 (-> a2-0 vector 0 quad)) - (a0-1 (-> a2-0 vector 1 quad)) - (a1-1 (-> a2-0 vector 2 quad)) + (v1-1 (-> a2-0 quad 0)) + (a0-1 (-> a2-0 quad 1)) + (a1-1 (-> a2-0 quad 2)) (a2-1 (-> a2-0 trans quad)) ) - (set! (-> v0-0 vector 0 quad) v1-1) - (set! (-> v0-0 vector 1 quad) a0-1) - (set! (-> v0-0 vector 2 quad) a1-1) + (set! (-> v0-0 quad 0) v1-1) + (set! (-> v0-0 quad 1) a0-1) + (set! (-> v0-0 quad 2) a1-1) (set! (-> v0-0 trans quad) a2-1) ) v0-0 @@ -1255,14 +1269,14 @@ (let ((v0-0 (-> arg0 bone transform))) (let ((v1-1 arg1)) (let ((a0-3 (-> arg0 parent bone transform))) - (.lvf vf10 (&-> v1-1 vector 0 quad)) - (.lvf vf14 (&-> a0-3 vector 0 quad)) - (.lvf vf15 (&-> a0-3 vector 1 quad)) - (.lvf vf16 (&-> a0-3 vector 2 quad)) + (.lvf vf10 (&-> v1-1 quad 0)) + (.lvf vf14 (&-> a0-3 quad 0)) + (.lvf vf15 (&-> a0-3 quad 1)) + (.lvf vf16 (&-> a0-3 quad 2)) (.lvf vf17 (&-> a0-3 trans quad)) ) - (.lvf vf11 (&-> v1-1 vector 1 quad)) - (.lvf vf12 (&-> v1-1 vector 2 quad)) + (.lvf vf11 (&-> v1-1 quad 1)) + (.lvf vf12 (&-> v1-1 quad 2)) (.lvf vf13 (&-> v1-1 trans quad)) ) (.mul.x.vf acc vf14 vf10) @@ -1281,9 +1295,9 @@ (.add.mul.y.vf acc vf15 vf13 acc) (.add.mul.z.vf acc vf16 vf13 acc) (.add.mul.w.vf vf21 vf17 vf13 acc) - (.svf (&-> v0-0 vector 0 quad) vf18) - (.svf (&-> v0-0 vector 1 quad) vf19) - (.svf (&-> v0-0 vector 2 quad) vf20) + (.svf (&-> v0-0 quad 0) vf18) + (.svf (&-> v0-0 quad 1) vf19) + (.svf (&-> v0-0 quad 2) vf20) (.svf (&-> v0-0 trans quad) vf21) v0-0 ) @@ -1324,14 +1338,14 @@ (let ((v0-0 (-> arg0 bone transform))) (let ((v1-1 arg1)) (let ((a0-3 (-> arg0 parent bone transform))) - (.lvf vf10 (&-> v1-1 vector 0 quad)) - (.lvf vf14 (&-> a0-3 vector 0 quad)) - (.lvf vf15 (&-> a0-3 vector 1 quad)) - (.lvf vf16 (&-> a0-3 vector 2 quad)) + (.lvf vf10 (&-> v1-1 quad 0)) + (.lvf vf14 (&-> a0-3 quad 0)) + (.lvf vf15 (&-> a0-3 quad 1)) + (.lvf vf16 (&-> a0-3 quad 2)) (.lvf vf17 (&-> a0-3 trans quad)) ) - (.lvf vf11 (&-> v1-1 vector 1 quad)) - (.lvf vf12 (&-> v1-1 vector 2 quad)) + (.lvf vf11 (&-> v1-1 quad 1)) + (.lvf vf12 (&-> v1-1 quad 2)) (.lvf vf13 (&-> v1-1 trans quad)) ) (.sub.vf vf31 vf0 vf0) @@ -1352,9 +1366,9 @@ (.add.mul.y.vf acc vf15 vf13 acc) (.add.mul.z.vf acc vf16 vf13 acc) (.add.mul.w.vf vf21 vf17 vf13 acc) - (.svf (&-> v0-0 vector 0 quad) vf18) - (.svf (&-> v0-0 vector 1 quad) vf19) - (.svf (&-> v0-0 vector 2 quad) vf20) + (.svf (&-> v0-0 quad 0) vf18) + (.svf (&-> v0-0 quad 1) vf19) + (.svf (&-> v0-0 quad 2) vf20) (.svf (&-> v0-0 trans quad) vf21) v0-0 ) @@ -1370,9 +1384,9 @@ (init-vf0-vector) (let ((v1-1 (-> arg0 bone transform))) (.sub.vf vf31 vf0 vf0) - (.lvf vf30 (&-> v1-1 vector 0 quad)) + (.lvf vf30 (&-> v1-1 quad 0)) (.sub.vf vf30 vf31 vf30) - (.svf (&-> v1-1 vector 0 quad) vf30) + (.svf (&-> v1-1 quad 0) vf30) ) (.mov v1-2 vf30) 0 @@ -1557,14 +1571,14 @@ (when (logtest? a0-8 1) (let* ((a2-7 (-> arg0 matrices a1-5)) (t2-0 (-> v1-9 matrices a1-5)) - (a3-3 (-> t2-0 vector 0 quad)) - (t0-0 (-> t2-0 vector 1 quad)) - (t1-0 (-> t2-0 vector 2 quad)) + (a3-3 (-> t2-0 quad 0)) + (t0-0 (-> t2-0 quad 1)) + (t1-0 (-> t2-0 quad 2)) (t2-1 (-> t2-0 trans quad)) ) - (set! (-> a2-7 vector 0 quad) a3-3) - (set! (-> a2-7 vector 1 quad) t0-0) - (set! (-> a2-7 vector 2 quad) t1-0) + (set! (-> a2-7 quad 0) a3-3) + (set! (-> a2-7 quad 1) t0-0) + (set! (-> a2-7 quad 2) t1-0) (set! (-> a2-7 trans quad) t2-1) ) ) @@ -1576,11 +1590,11 @@ (let* ((a3-9 (-> arg0 data a2-9)) (t2-2 (-> v1-9 data a2-9)) (t0-4 (-> t2-2 trans quad)) - (t1-1 (-> t2-2 quat vec quad)) + (t1-1 (-> t2-2 quat quad)) (t2-3 (-> t2-2 scale quad)) ) (set! (-> a3-9 trans quad) t0-4) - (set! (-> a3-9 quat vec quad) t1-1) + (set! (-> a3-9 quat quad) t1-1) (set! (-> a3-9 scale quad) t2-3) ) ) @@ -1596,11 +1610,11 @@ (let* ((a3-15 (-> arg0 data (+ a2-10 62))) (t2-4 (-> v1-9 data (+ a2-10 62))) (t0-9 (-> t2-4 trans quad)) - (t1-3 (-> t2-4 quat vec quad)) + (t1-3 (-> t2-4 quat quad)) (t2-5 (-> t2-4 scale quad)) ) (set! (-> a3-15 trans quad) t0-9) - (set! (-> a3-15 quat vec quad) t1-3) + (set! (-> a3-15 quat quad) t1-3) (set! (-> a3-15 scale quad) t2-5) ) ) @@ -1757,7 +1771,7 @@ (set! (-> v1-15 comp-data) (the-as uint (-> s5-0 fixed))) ) (let ((s4-1 (kmalloc (-> obj kheap) (the-as int s3-0) (kmalloc-flags) "malloc"))) - (unpack-comp-lzo (the (pointer uint8) s4-1) (the (pointer uint8) (-> s5-0 fixed))) + (unpack-comp-lzo (the-as (pointer uint8) s4-1) (the-as (pointer uint8) (-> s5-0 fixed))) (set! (-> s5-0 flags) (logand -2 (-> s5-0 flags))) (logior! (-> s5-0 flags) 2) (set! (-> s5-0 fixed) (the-as joint-anim-compressed-fixed s4-1)) @@ -1792,5 +1806,7 @@ ) (kmemopen global "anim-manager") + (define *anim-manager* (new 'global 'art-joint-anim-manager #x30000)) + (kmemclose) diff --git a/goal_src/jak2/engine/camera/cam-debug.gc b/goal_src/jak2/engine/camera/cam-debug.gc index 69133a24f2..a76dc2d41e 100644 --- a/goal_src/jak2/engine/camera/cam-debug.gc +++ b/goal_src/jak2/engine/camera/cam-debug.gc @@ -1331,41 +1331,39 @@ (define *cam-collision-record* (new 'debug 'cam-collision-record-array 600)) (defun cam-collision-record-save ((arg0 vector) (arg1 vector) (arg2 int) (arg3 symbol) (arg4 camera-slave)) - (with-pp - (when *record-cam-collide-history* - (let ((v1-5 (the-as - cam-collision-record - (+ (+ (* 176 *cam-collision-record-last*) 12) (the-as int *cam-collision-record*)) - ) + (when *record-cam-collide-history* + (let ((v1-5 (the-as + cam-collision-record + (+ (+ (* 176 *cam-collision-record-last*) 12) (the-as int *cam-collision-record*)) ) - ) - (set! (-> v1-5 pos quad) (-> arg0 quad)) - (set! (-> v1-5 vel quad) (-> arg1 quad)) - (set! (-> v1-5 view-flat quad) (-> arg4 view-flat quad)) - (set! (-> v1-5 desired-pos quad) (-> arg4 desired-pos quad)) - (set! (-> v1-5 cam-tpos-cur quad) (-> *camera* tpos-curr-adj quad)) - (set! (-> v1-5 cam-tpos-old quad) (-> *camera* tpos-old-adj quad)) - (set! (-> v1-5 string-min-val quad) (-> arg4 string-min-val quad)) - (set! (-> v1-5 string-max-val quad) (-> arg4 string-max-val quad)) - (set! (-> v1-5 view-off quad) (-> arg4 view-off quad)) - (set! (-> v1-5 frame) (the-as int (-> pp clock frame-counter))) - (set! (-> v1-5 iteration) arg2) - (set! (-> v1-5 move-type) arg3) - (set! (-> v1-5 min-z-override) (-> arg4 min-z-override)) - (set! (-> v1-5 string-push-z) (-> *camera* string-push-z)) - (set! (-> v1-5 view-off-param) (-> arg4 view-off-param)) - ) - (set! *cam-collision-record-show* *cam-collision-record-last*) - (set! *cam-collision-record-last* (+ *cam-collision-record-last* 1)) - (set! *cam-collision-record-last* (mod *cam-collision-record-last* 600)) - (when (= *cam-collision-record-last* *cam-collision-record-first*) - (set! *cam-collision-record-first* (+ *cam-collision-record-first* 1)) - (set! *cam-collision-record-first* (mod *cam-collision-record-first* 600)) - ) + ) + ) + (set! (-> v1-5 pos quad) (-> arg0 quad)) + (set! (-> v1-5 vel quad) (-> arg1 quad)) + (set! (-> v1-5 view-flat quad) (-> arg4 view-flat quad)) + (set! (-> v1-5 desired-pos quad) (-> arg4 desired-pos quad)) + (set! (-> v1-5 cam-tpos-cur quad) (-> *camera* tpos-curr-adj quad)) + (set! (-> v1-5 cam-tpos-old quad) (-> *camera* tpos-old-adj quad)) + (set! (-> v1-5 string-min-val quad) (-> arg4 string-min-val quad)) + (set! (-> v1-5 string-max-val quad) (-> arg4 string-max-val quad)) + (set! (-> v1-5 view-off quad) (-> arg4 view-off quad)) + (set! (-> v1-5 frame) (the-as int (current-time))) + (set! (-> v1-5 iteration) arg2) + (set! (-> v1-5 move-type) arg3) + (set! (-> v1-5 min-z-override) (-> arg4 min-z-override)) + (set! (-> v1-5 string-push-z) (-> *camera* string-push-z)) + (set! (-> v1-5 view-off-param) (-> arg4 view-off-param)) + ) + (set! *cam-collision-record-show* *cam-collision-record-last*) + (set! *cam-collision-record-last* (+ *cam-collision-record-last* 1)) + (set! *cam-collision-record-last* (mod *cam-collision-record-last* 600)) + (when (= *cam-collision-record-last* *cam-collision-record-first*) + (set! *cam-collision-record-first* (+ *cam-collision-record-first* 1)) + (set! *cam-collision-record-first* (mod *cam-collision-record-first* 600)) ) - 0 - (none) ) + 0 + (none) ) (defun cam-collision-record-step ((arg0 int)) diff --git a/goal_src/jak2/engine/camera/cam-master.gc b/goal_src/jak2/engine/camera/cam-master.gc index e3a1611fd2..b2cae74802 100644 --- a/goal_src/jak2/engine/camera/cam-master.gc +++ b/goal_src/jak2/engine/camera/cam-master.gc @@ -61,13 +61,11 @@ (set! (-> self string-max target z) (-> self settings string-max-length)) (set! (-> self string-push-z) (fmax (-> self string-min value z) (-> *CAMERA-bank* default-string-push-z))) (cond - ((>= (- (-> self clock frame-counter) (get-notice-time (the-as process-focusable gp-0))) - (-> *CAMERA-bank* attack-timeout) - ) + ((>= (- (current-time) (get-notice-time (the-as process-focusable gp-0))) (-> *CAMERA-bank* attack-timeout)) (set! (-> self being-attacked) #f) ) (else - (set! (-> self attack-start) (-> self clock frame-counter)) + (set! (-> self attack-start) (current-time)) (set! (-> self being-attacked) #t) (when (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) (set! (-> self string-max target y) (fmax (-> self string-max target y) (-> last-try-to-look-at-data vert))) @@ -117,14 +115,12 @@ (gp-0 (logior! (-> self master-options) (cam-master-options-u32 HAVE_TARGET)) (cond - ((>= (- (-> self clock frame-counter) (get-notice-time (the-as target gp-0))) - (-> *CAMERA-bank* attack-timeout) - ) + ((>= (- (current-time) (get-notice-time (the-as target gp-0))) (-> *CAMERA-bank* attack-timeout)) (set! (-> self being-attacked) #f) ) (else (if (not (-> self being-attacked)) - (set! (-> self attack-start) (-> self clock frame-counter)) + (set! (-> self attack-start) (current-time)) ) (set! (-> self being-attacked) #t) (when (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) @@ -927,7 +923,7 @@ ) ) ((= v1-0 'part-water-drip) - (set! (-> self water-drip-time) (-> self clock frame-counter)) + (set! (-> self water-drip-time) (current-time)) (set! (-> self water-drip-mult) (the-as float (-> event param 0))) (set! (-> self water-drip-speed) (the-as float (-> event param 1))) ) diff --git a/goal_src/jak2/engine/camera/cam-states.gc b/goal_src/jak2/engine/camera/cam-states.gc index 94eb2f478f..f217814e00 100644 --- a/goal_src/jak2/engine/camera/cam-states.gc +++ b/goal_src/jak2/engine/camera/cam-states.gc @@ -522,7 +522,7 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (let ((s4-0 (vector-reset! (new-stack-vector0))) @@ -568,10 +568,10 @@ ) (cond ((and (= (-> s4-0 x) 0.0) (= (-> s4-0 y) 0.0)) - (set! gp-0 (-> self clock frame-counter)) + (set! gp-0 (current-time)) ) (else - (let ((v1-39 (min 10 (max 1 (- (-> self clock frame-counter) gp-0))))) + (let ((v1-39 (min 10 (max 1 (- (current-time) gp-0))))) (vector-float*! s4-0 s4-0 (* 0.1 (the float v1-39))) ) ) @@ -2104,8 +2104,8 @@ ) (set! (-> self los-last-pos quad) (-> self good-point quad)) (when *display-cam-los-debug* - (format 0 "going because u(~f) > 0 frame ~D~%" f30-2 (-> self clock frame-counter)) - (format *stdcon* " going because u(~f) > 0 frame ~D~%" f30-2 (-> self clock frame-counter)) + (format 0 "going because u(~f) > 0 frame ~D~%" f30-2 (current-time)) + (format *stdcon* " going because u(~f) > 0 frame ~D~%" f30-2 (current-time)) ) (logior! (-> self options) (cam-slave-options-u32 GOTO_GOOD_POINT)) ) @@ -2352,9 +2352,7 @@ (if (-> self have-phony-joystick) (set! f28-0 (* 0.05 (-> self phony-joystick-y))) ) - (if (and (-> *camera* being-attacked) - (< (- (-> self clock frame-counter) (-> *camera* attack-start)) (seconds 0.25)) - ) + (if (and (-> *camera* being-attacked) (< (- (current-time) (-> *camera* attack-start)) (seconds 0.25))) (set! f28-0 0.05) ) (when (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) @@ -2598,7 +2596,7 @@ ) (vector-flatten! s5-3 s5-3 (-> *camera* local-down)) ) - ((< (- (-> self clock frame-counter) (the-as int (-> self butt-timer))) 0) + ((< (- (current-time) (the-as int (-> self butt-timer))) 0) (vector-flatten! s5-3 (-> self butt-vector) (-> *camera* local-down)) ) (else @@ -2968,7 +2966,7 @@ object (cond ((= v1-0 'get-behind) - (set! (-> self butt-timer) (the-as uint (+ (-> self clock frame-counter) (seconds 0.25)))) + (set! (-> self butt-timer) (the-as uint (+ (current-time) (seconds 0.25)))) (set! (-> self butt-seek) (the-as basic #t)) (set! v0-0 (-> self butt-vector)) (set! (-> (the-as vector v0-0) quad) (-> (the-as vector (-> event param 0)) quad)) diff --git a/goal_src/jak2/engine/collide/collide-debug.gc b/goal_src/jak2/engine/collide/collide-debug.gc index 41e85967a7..19a995013b 100644 --- a/goal_src/jak2/engine/collide/collide-debug.gc +++ b/goal_src/jak2/engine/collide/collide-debug.gc @@ -172,124 +172,122 @@ ) (defmethod col-rend-method-9 col-rend ((obj col-rend)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((f30-0 (-> obj bbox-radius))) - (let ((v1-0 (-> obj track))) - (cond - ((zero? v1-0) - (set! (-> obj bbox-center quad) (-> (target-pos 0) quad)) - (+! (-> obj bbox-center y) (* 0.7 f30-0)) - ) - ((= v1-0 1) - (position-in-front-of-camera! (-> obj bbox-center) (+ (-> obj camera-to-bbox-dist) (-> obj bbox-radius)) 0.0) - ) - ) - ) - (set! (-> s5-0 bbox min quad) (-> obj bbox-center quad)) - (set! (-> s5-0 bbox min x) (- (-> s5-0 bbox min x) f30-0)) - (set! (-> s5-0 bbox min y) (- (-> s5-0 bbox min y) f30-0)) - (set! (-> s5-0 bbox min z) (- (-> s5-0 bbox min z) f30-0)) - (set! (-> s5-0 bbox max quad) (-> obj bbox-center quad)) - (+! (-> s5-0 bbox max x) f30-0) - (+! (-> s5-0 bbox max y) f30-0) - (+! (-> s5-0 bbox max z) f30-0) - ) - (let ((v1-9 -1)) - (let ((a0-9 (-> obj cspec))) - (if (not (logtest? a0-9 (collide-spec crate))) - (set! v1-9 (logxor v1-9 1)) - ) - (if (not (logtest? a0-9 (collide-spec civilian))) - (set! v1-9 (logxor v1-9 64)) - ) - (if (not (logtest? a0-9 (collide-spec enemy))) - (set! v1-9 (logxor #x80000 v1-9)) - ) - (if (not (logtest? a0-9 (collide-spec obstacle))) - (set! v1-9 (logxor v1-9 2)) - ) - (if (not (logtest? a0-9 (collide-spec vehicle-sphere))) - (set! v1-9 (logand #x80743 v1-9)) - ) - ) - (set! (-> s5-0 collide-with) (the-as collide-spec v1-9)) - ) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface)) - (set! (-> s5-0 ignore-process0) #f) - (set! (-> s5-0 ignore-process1) #f) - (add-debug-box - #t - (bucket-id debug2) - (the-as vector (-> s5-0 bbox)) - (-> s5-0 bbox max) - (if (logtest? (-> pp clock frame-counter) 128) - (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x20) - (new 'static 'rgba :a #x20) - ) - ) - (fill-using-bounding-box *collide-cache* s5-0) - ) - (let ((s5-1 (-> obj show-only)) - (a1-17 (new 'stack 'col-rend-filter)) - ) - (when (nonzero? s5-1) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((f30-0 (-> obj bbox-radius))) + (let ((v1-0 (-> obj track))) (cond - ((logtest? s5-1 8) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :noboard #x1)) + ((zero? v1-0) + (set! (-> obj bbox-center quad) (-> (target-pos 0) quad)) + (+! (-> obj bbox-center y) (* 0.7 f30-0)) ) - ((logtest? s5-1 16) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + ((= v1-0 1) + (position-in-front-of-camera! (-> obj bbox-center) (+ (-> obj camera-to-bbox-dist) (-> obj bbox-radius)) 0.0) ) - ((logtest? s5-1 32) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) - (set! (-> a1-17 show-pat-set) (new 'static 'pat-surface :nojak #x1)) - ) - (else - (if (logtest? s5-1 8192) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nolineofsight #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? s5-1 1024) - (set! (-> a1-17 show-pat-set noentity) 1) - ) - (if (logtest? s5-1 64) - (set! (-> a1-17 show-pat-set noboard) 1) - ) - (if (logtest? s5-1 2048) - (set! (-> a1-17 show-pat-set nogrind) 1) - ) - (if (logtest? s5-1 128) - (set! (-> a1-17 show-pat-set nocamera) 1) - ) - (if (logtest? s5-1 4096) - (set! (-> a1-17 show-pat-set nojak) 1) - ) - (if (logtest? s5-1 256) - (set! (-> a1-17 show-pat-set noedge) 1) - ) - (if (logtest? s5-1 #x8000) - (set! (-> a1-17 show-pat-set nopilot) 1) - ) - (if (logtest? s5-1 512) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? s5-1 #x4000) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nomech #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x10000 s5-1) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noproj #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x40000 s5-1) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :probe #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x20000 s5-1) - (logior! (-> a1-17 event-mask) 64) - ) - ) ) ) - (col-rend-draw obj a1-17) + (set! (-> s5-0 bbox min quad) (-> obj bbox-center quad)) + (set! (-> s5-0 bbox min x) (- (-> s5-0 bbox min x) f30-0)) + (set! (-> s5-0 bbox min y) (- (-> s5-0 bbox min y) f30-0)) + (set! (-> s5-0 bbox min z) (- (-> s5-0 bbox min z) f30-0)) + (set! (-> s5-0 bbox max quad) (-> obj bbox-center quad)) + (+! (-> s5-0 bbox max x) f30-0) + (+! (-> s5-0 bbox max y) f30-0) + (+! (-> s5-0 bbox max z) f30-0) ) - (none) + (let ((v1-9 -1)) + (let ((a0-9 (-> obj cspec))) + (if (not (logtest? a0-9 (collide-spec crate))) + (set! v1-9 (logxor v1-9 1)) + ) + (if (not (logtest? a0-9 (collide-spec civilian))) + (set! v1-9 (logxor v1-9 64)) + ) + (if (not (logtest? a0-9 (collide-spec enemy))) + (set! v1-9 (logxor #x80000 v1-9)) + ) + (if (not (logtest? a0-9 (collide-spec obstacle))) + (set! v1-9 (logxor v1-9 2)) + ) + (if (not (logtest? a0-9 (collide-spec vehicle-sphere))) + (set! v1-9 (logand #x80743 v1-9)) + ) + ) + (set! (-> s5-0 collide-with) (the-as collide-spec v1-9)) + ) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface)) + (set! (-> s5-0 ignore-process0) #f) + (set! (-> s5-0 ignore-process1) #f) + (add-debug-box + #t + (bucket-id debug2) + (the-as vector (-> s5-0 bbox)) + (-> s5-0 bbox max) + (if (logtest? (current-time) 128) + (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x20) + (new 'static 'rgba :a #x20) + ) + ) + (fill-using-bounding-box *collide-cache* s5-0) ) + (let ((s5-1 (-> obj show-only)) + (a1-17 (new 'stack 'col-rend-filter)) + ) + (when (nonzero? s5-1) + (cond + ((logtest? s5-1 8) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :noboard #x1)) + ) + ((logtest? s5-1 16) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + ) + ((logtest? s5-1 32) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + (set! (-> a1-17 show-pat-set) (new 'static 'pat-surface :nojak #x1)) + ) + (else + (if (logtest? s5-1 8192) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nolineofsight #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? s5-1 1024) + (set! (-> a1-17 show-pat-set noentity) 1) + ) + (if (logtest? s5-1 64) + (set! (-> a1-17 show-pat-set noboard) 1) + ) + (if (logtest? s5-1 2048) + (set! (-> a1-17 show-pat-set nogrind) 1) + ) + (if (logtest? s5-1 128) + (set! (-> a1-17 show-pat-set nocamera) 1) + ) + (if (logtest? s5-1 4096) + (set! (-> a1-17 show-pat-set nojak) 1) + ) + (if (logtest? s5-1 256) + (set! (-> a1-17 show-pat-set noedge) 1) + ) + (if (logtest? s5-1 #x8000) + (set! (-> a1-17 show-pat-set nopilot) 1) + ) + (if (logtest? s5-1 512) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? s5-1 #x4000) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nomech #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x10000 s5-1) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noproj #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x40000 s5-1) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :probe #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x20000 s5-1) + (logior! (-> a1-17 event-mask) 64) + ) + ) + ) + ) + (col-rend-draw obj a1-17) + ) + (none) ) diff --git a/goal_src/jak2/engine/collide/los-control.gc b/goal_src/jak2/engine/collide/los-control.gc index 2bcdcfe05e..bb61a73985 100644 --- a/goal_src/jak2/engine/collide/los-control.gc +++ b/goal_src/jak2/engine/collide/los-control.gc @@ -11,7 +11,7 @@ ;; WARN: Return type mismatch time-frame vs none. (defmethod los-control-method-9 los-control ((obj los-control) (process process-focusable) (trans-vec vector) (radius float)) - (when (and (>= (- (-> self clock frame-counter) (-> obj last-check-time)) (-> obj check-interval)) + (when (and (>= (- (current-time) (-> obj last-check-time)) (-> obj check-interval)) (-> obj src-proc) (or process (-> obj dst-proc)) ) @@ -53,13 +53,13 @@ (let ((f30-0 (probe-using-line-sphere *collide-cache* cquery))) (quad-copy! (the-as pointer (-> obj last-collide-result)) (the-as pointer (-> cquery best-other-tri)) 6) (if (>= 0.0 f30-0) - (set! (-> obj have-no-los) (-> self clock frame-counter)) - (set! (-> obj have-los) (-> self clock frame-counter)) + (set! (-> obj have-no-los) (current-time)) + (set! (-> obj have-los) (current-time)) ) ) ) ) - (set! (-> obj last-check-time) (-> self clock frame-counter)) + (set! (-> obj last-check-time) (current-time)) ) ) ) @@ -68,14 +68,14 @@ ) (defmethod check-los? los-control ((obj los-control) (arg0 time-frame)) - (and (>= (- (-> self clock frame-counter) (-> obj have-los)) (+ (-> obj check-interval) arg0)) - (< (- (-> self clock frame-counter) (-> obj have-no-los)) (-> obj check-interval)) + (and (>= (- (current-time) (-> obj have-los)) (+ (-> obj check-interval) arg0)) + (< (- (current-time) (-> obj have-no-los)) (-> obj check-interval)) ) ) (defmethod skip-check-los? los-control ((obj los-control) (arg0 int)) - (and (>= (- (-> self clock frame-counter) (-> obj have-no-los)) (+ (-> obj check-interval) arg0)) - (< (- (-> self clock frame-counter) (-> obj have-los)) (-> obj check-interval)) + (and (>= (- (current-time) (-> obj have-no-los)) (+ (-> obj check-interval) arg0)) + (< (- (current-time) (-> obj have-los)) (-> obj check-interval)) ) ) diff --git a/goal_src/jak2/engine/common_objs/base-plat.gc b/goal_src/jak2/engine/common_objs/base-plat.gc index 7fc3ebdd2e..146bf7c0ae 100644 --- a/goal_src/jak2/engine/common_objs/base-plat.gc +++ b/goal_src/jak2/engine/common_objs/base-plat.gc @@ -64,7 +64,7 @@ For example for an elevator pre-compute the distance between the first and last and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 60 150 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (sound-play "plat-bounce" :position (-> obj root-override trans)) (logclear! (-> obj mask) (process-mask sleep)) @@ -276,7 +276,7 @@ eco-door-event-handler :virtual #t :event eco-door-event-handler :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-entity-status! self (entity-perm-status subtask-complete) #t) (let ((prim (-> self root-override root-prim))) (set! (-> prim prim-core collide-as) (collide-spec)) diff --git a/goal_src/jak2/engine/common_objs/basebutton.gc b/goal_src/jak2/engine/common_objs/basebutton.gc index c3f1fe5ed3..e7f99ee920 100644 --- a/goal_src/jak2/engine/common_objs/basebutton.gc +++ b/goal_src/jak2/engine/common_objs/basebutton.gc @@ -203,7 +203,7 @@ ) :enter (behavior () (press! self #t) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -218,7 +218,7 @@ (sleep-code) ) (else - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) + (until (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) (suspend) ) (send-event! self (-> self event-going-up)) diff --git a/goal_src/jak2/engine/common_objs/collectables.gc b/goal_src/jak2/engine/common_objs/collectables.gc index 6c35fb1f2d..1ac46f7ae0 100644 --- a/goal_src/jak2/engine/common_objs/collectables.gc +++ b/goal_src/jak2/engine/common_objs/collectables.gc @@ -126,75 +126,73 @@ ) (defmethod initialize-options collectable ((obj collectable) (arg0 int) (arg1 float) (arg2 fact-info)) - (with-pp - (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) - (set! (-> obj mask) (logior (process-mask bit18) (-> obj mask))) - (set! (-> obj flags) (collectable-flag pickup no-eco-blue)) - (set! (-> obj bob-amount) arg1) - (set! (-> obj bob-offset) (the-as seconds (+ (the-as int (-> obj root-override2 trans x)) - (the-as int (-> obj root-override2 trans y)) - (the-as int (-> obj root-override2 trans z)) - ) - ) - ) - (cond - ((or (= (vector-length (-> obj root-override2 transv)) 0.0) - (logtest? (-> obj fact options) (actor-option auto-pickup)) - ) - (vector-reset! (-> obj root-override2 transv)) - ) - (else - (logior! (-> obj flags) (collectable-flag bounce)) - (logclear! (-> obj flags) (collectable-flag pickup)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj bob-amount) 0.0) + (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) + (set! (-> obj mask) (logior (process-mask bit18) (-> obj mask))) + (set! (-> obj flags) (collectable-flag pickup no-eco-blue)) + (set! (-> obj bob-amount) arg1) + (set! (-> obj bob-offset) (the-as seconds (+ (the-as int (-> obj root-override2 trans x)) + (the-as int (-> obj root-override2 trans y)) + (the-as int (-> obj root-override2 trans z)) + ) + ) ) + (cond + ((or (= (vector-length (-> obj root-override2 transv)) 0.0) + (logtest? (-> obj fact options) (actor-option auto-pickup)) + ) + (vector-reset! (-> obj root-override2 transv)) + ) + (else + (logior! (-> obj flags) (collectable-flag bounce)) + (logclear! (-> obj flags) (collectable-flag pickup)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj bob-amount) 0.0) ) - (when (> arg0 0) - (logior! (-> obj flags) (collectable-flag fadeout)) - (set! (-> obj fadeout-timeout) (the-as seconds arg0)) - (if (logtest? (actor-option no-distance-check-fadeout) (-> arg2 options)) - (logior! (-> obj flags) (collectable-flag no-distance-check-fadeout)) - ) - ) - (set! (-> obj collect-timeout) (the-as seconds 99)) - (set! (-> obj birth-time) (-> pp clock frame-counter)) - (set! (-> obj base quad) (-> obj root-override2 trans quad)) - (set! (-> obj old-base quad) (-> obj root-override2 trans quad)) - (set! (-> obj pickup-handle) (the-as handle #f)) - (case (-> obj fact pickup-type) - (((pickup-type eco-pill-green) - (pickup-type eco-pill-dark) - (pickup-type eco-green) - (pickup-type money) - (pickup-type gem) - (pickup-type skill) - (pickup-type eco-blue) - (pickup-type health) - (pickup-type trick-point) - ) - (logclear! (-> obj flags) (collectable-flag no-eco-blue)) - ) - ) - (if (logtest? (-> obj fact options) (actor-option big-collision)) - (set! (-> obj root-override2 root-prim local-sphere w) - (* 2.5 (-> obj root-override2 root-prim local-sphere w)) - ) - ) - (when (and arg2 (nonzero? (-> obj draw))) - (let* ((s5-0 (-> arg2 process)) - (v1-56 (if (type? s5-0 process-drawable) - s5-0 - ) - ) - ) - (if v1-56 - (set! (-> obj draw light-index) (-> (the-as process-drawable v1-56) draw light-index)) - ) - ) - ) - obj ) + (when (> arg0 0) + (logior! (-> obj flags) (collectable-flag fadeout)) + (set! (-> obj fadeout-timeout) (the-as seconds arg0)) + (if (logtest? (actor-option no-distance-check-fadeout) (-> arg2 options)) + (logior! (-> obj flags) (collectable-flag no-distance-check-fadeout)) + ) + ) + (set! (-> obj collect-timeout) (the-as seconds 99)) + (set! (-> obj birth-time) (current-time)) + (set! (-> obj base quad) (-> obj root-override2 trans quad)) + (set! (-> obj old-base quad) (-> obj root-override2 trans quad)) + (set! (-> obj pickup-handle) (the-as handle #f)) + (case (-> obj fact pickup-type) + (((pickup-type eco-pill-green) + (pickup-type eco-pill-dark) + (pickup-type eco-green) + (pickup-type money) + (pickup-type gem) + (pickup-type skill) + (pickup-type eco-blue) + (pickup-type health) + (pickup-type trick-point) + ) + (logclear! (-> obj flags) (collectable-flag no-eco-blue)) + ) + ) + (if (logtest? (-> obj fact options) (actor-option big-collision)) + (set! (-> obj root-override2 root-prim local-sphere w) + (* 2.5 (-> obj root-override2 root-prim local-sphere w)) + ) + ) + (when (and arg2 (nonzero? (-> obj draw))) + (let* ((s5-0 (-> arg2 process)) + (v1-56 (if (type? s5-0 process-drawable) + s5-0 + ) + ) + ) + (if v1-56 + (set! (-> obj draw light-index) (-> (the-as process-drawable v1-56) draw light-index)) + ) + ) + ) + obj ) (defmethod initialize-allocations collectable ((obj collectable)) @@ -488,26 +486,24 @@ (a3-12 0) (t0-9 (lambda ((arg0 part-tracker)) - (with-pp - (let ((v1-1 (handle->process (-> arg0 userdata)))) - (when (the-as process v1-1) - (let* ((s5-0 (handle->process (-> (the-as collectable v1-1) pickup-handle))) - (a0-9 (if (type? s5-0 process-focusable) - s5-0 - ) - ) - (a2-0 (if (not a0-9) - (-> arg0 root trans) - (get-trans (the-as process-focusable a0-9) 3) - ) - ) - ) - (vector-lerp! - (-> arg0 root trans) - (-> arg0 offset) - a2-0 - (/ (the float (- (-> pp clock frame-counter) (-> arg0 start-time))) (the float (-> arg0 part group duration))) - ) + (let ((v1-1 (handle->process (-> arg0 userdata)))) + (when (the-as process v1-1) + (let* ((s5-0 (handle->process (-> (the-as collectable v1-1) pickup-handle))) + (a0-9 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + (a2-0 (if (not a0-9) + (-> arg0 root trans) + (get-trans (the-as process-focusable a0-9) 3) + ) + ) + ) + (vector-lerp! + (-> arg0 root trans) + (-> arg0 offset) + a2-0 + (/ (the float (- (current-time) (-> arg0 start-time))) (the float (-> arg0 part group duration))) ) ) ) @@ -615,13 +611,13 @@ ) (logior! (-> self flags) (collectable-flag suck-in)) (when (= (-> self speed w) 0.0) - (set! (-> self suck-time) (-> self clock frame-counter)) + (set! (-> self suck-time) (current-time)) (set! (-> self speed x) (rand-vu-float-range 327680.0 819200.0)) ) (+! (-> self speed w) (* (lerp-scale 40960.0 (-> self speed x) - (the float (- (-> self clock frame-counter) (the-as int (-> self suck-time)))) + (the float (- (current-time) (the-as int (-> self suck-time)))) 45.0 60.0 ) @@ -639,9 +635,7 @@ (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (-> self clock seconds-per-frame))) ) (set! (-> self suck-y-offset) - (* 2048.0 - (sin (* 873.81335 (the float (mod (- (-> self clock frame-counter) (the-as int (-> self suck-time))) 75)))) - ) + (* 2048.0 (sin (* 873.81335 (the float (mod (- (current-time) (the-as int (-> self suck-time))) 75))))) ) (vector+! (-> self base) gp-1 s5-2) ) @@ -679,9 +673,7 @@ (local-vars (v0-4 none)) (when (and (or (= arg2 'touch) (= arg2 'attack)) (and (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) (not (and (-> self next-state) (= (-> self next-state name) 'pickup))) (send-event arg0 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount)) ) @@ -748,7 +740,7 @@ ((= arg2 'fade) (logior! (-> self flags) (collectable-flag fadeout)) (set! (-> self fadeout-timeout) (the-as seconds 30)) - (set! v0-4 (the-as none (-> self clock frame-counter))) + (set! v0-4 (the-as none (current-time))) (set! (-> self birth-time) (the-as time-frame v0-4)) v0-4 ) @@ -841,9 +833,9 @@ (let ((gp-0 (new 'stack 'trajectory))) (set! (-> self base y) (-> self jump-pos y)) (setup-from-to-duration! gp-0 (-> self root-override2 trans) (-> self jump-pos) 300.0 -2.2755556) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (let ((f0-2 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) + (let ((f0-2 (the float (- (current-time) (-> self state-time))))) (compute-trans-at-time gp-0 f0-2 (-> self root-override2 trans)) ) (transform-post) @@ -872,7 +864,7 @@ :virtual #t :event collectable-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (case (-> self pickup-type) (((pickup-type gem)) (sound-play "gem-spawn") @@ -987,9 +979,7 @@ (go-virtual suck (process->handle proc)) ) (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) ) ) (logclear! (-> self mask) (process-mask actor-pause)) @@ -1017,11 +1007,9 @@ (if (and (logtest? (-> self flags) (collectable-flag fadeout)) (begin (if (movie?) - (set! (-> self birth-time) (-> self clock frame-counter)) - ) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self fadeout-timeout)) + (set! (-> self birth-time) (current-time)) ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self fadeout-timeout))) ) (or (or (not *target*) (or (< 204800.0 (vector-vector-distance (-> self root-override2 trans) (-> *target* control trans))) @@ -1049,9 +1037,9 @@ (set! (-> self actor-pause) #f) (logior! (-> self flags) (collectable-flag do-fadeout)) (logior! (-> self state-flags) (state-flags sf0)) - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f - (let ((f0-1 (- 300.0 (the float (- (-> self clock frame-counter) gp-0))))) + (let ((f0-1 (- 300.0 (the float (- (current-time) gp-0))))) (cond ((< f0-1 0.0) (process-entity-status! self (entity-perm-status dead) #t) @@ -1083,9 +1071,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (when (and (or (= event-type 'touch) (= event-type 'attack)) (and (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) (not (and (-> self next-state) (= (-> self next-state name) 'pickup))) (send-event proc 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount)) ) @@ -1254,8 +1240,8 @@ ) (cond ((nonzero? (-> self respan-delay)) - (let ((gp-0 (-> self clock frame-counter))) - (while (< (- (-> self clock frame-counter) gp-0) (the-as time-frame (-> self respan-delay))) + (let ((gp-0 (current-time))) + (while (< (- (current-time) gp-0) (the-as time-frame (-> self respan-delay))) (suspend) ) ) @@ -1539,10 +1525,7 @@ This commonly includes things such as: (sin (* 109.22667 (the float - (mod - (+ (- (-> pp clock frame-counter) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) - 600 - ) + (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) ) ) ) @@ -1574,15 +1557,13 @@ This commonly includes things such as: (+ (-> self base y) (-> self suck-y-offset) (* f30-0 - (sin (* 109.22667 (the float (mod - (+ (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self bob-offset)) - ) - 600 - ) - ) - ) + (sin + (* 109.22667 + (the float + (mod (+ (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self bob-offset))) 600) + ) ) + ) ) ) ) @@ -1885,12 +1866,12 @@ This commonly includes things such as: ) ) (if (or (and (logtest? s5-2 (collide-status on-surface)) (< (vector-length (-> gp-1 transv)) 1228.8)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (>= (- (current-time) (-> self state-time)) (seconds 10)) ) (go-virtual wait) ) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self bounce-time))) (seconds 0.1)) - (set! (-> self bounce-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (the-as int (-> self bounce-time))) (seconds 0.1)) + (set! (-> self bounce-time) (current-time)) (sound-play-by-name (static-sound-name "gem-bounce") (new-sound-id) @@ -1902,7 +1883,7 @@ This commonly includes things such as: ) ) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 15)) + ((>= (- (current-time) (-> self state-time)) (seconds 15)) (go-virtual wait) ) ) @@ -1998,11 +1979,9 @@ This commonly includes things such as: (if (and (logtest? (-> self flags) (collectable-flag fadeout)) (begin (if (movie?) - (set! (-> self birth-time) (-> self clock frame-counter)) - ) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self fadeout-timeout)) + (set! (-> self birth-time) (current-time)) ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self fadeout-timeout))) ) ) (go-virtual fade) diff --git a/goal_src/jak2/engine/common_objs/crates.gc b/goal_src/jak2/engine/common_objs/crates.gc index c36f4ab3a4..6a736633c8 100644 --- a/goal_src/jak2/engine/common_objs/crates.gc +++ b/goal_src/jak2/engine/common_objs/crates.gc @@ -919,8 +919,8 @@ ) ) (when (not arg0) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.04)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.04)) (suspend) ) ) @@ -1077,14 +1077,14 @@ (drop-pickup (-> self fact) #t *entity-pool* (the-as fact-info #f) arg1) (process-entity-status! self (entity-perm-status dead) #t) (process-entity-status! self (entity-perm-status subtask-complete) #t) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 5)) (suspend) ) ) (when (logtest? (actor-option cond-respawn) (-> self fact options)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 15)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 15)) (suspend) ) ) diff --git a/goal_src/jak2/engine/common_objs/dark-eco-pool.gc b/goal_src/jak2/engine/common_objs/dark-eco-pool.gc index 65a3ce55ee..2fddcbe6c5 100644 --- a/goal_src/jak2/engine/common_objs/dark-eco-pool.gc +++ b/goal_src/jak2/engine/common_objs/dark-eco-pool.gc @@ -299,7 +299,7 @@ ) ) (let* ((gp-0 (-> self draw ripple)) - (f0-1 (the float (logand (-> self clock frame-counter) #xffff))) + (f0-1 (the float (logand (current-time) #xffff))) (f0-6 (cos (the float (sar (shl (the int (* 5.0 f0-1)) 48) 48)))) (f0-7 (* f0-6 f0-6)) (f0-9 (fmax -1.0 (fmin 1.0 f0-7))) diff --git a/goal_src/jak2/engine/common_objs/elevator.gc b/goal_src/jak2/engine/common_objs/elevator.gc index 59b6057c03..67ed14e89e 100644 --- a/goal_src/jak2/engine/common_objs/elevator.gc +++ b/goal_src/jak2/engine/common_objs/elevator.gc @@ -294,7 +294,7 @@ which is obviously useful for an elevator." ((= evt-type 'ridden) (let ((proc-focus (handle->process (-> (the-as focus (-> event param 0)) handle)))) (if (= (-> proc-focus type) target) - (set! (-> self sticky-player-last-ride-time) (-> self clock frame-counter)) + (set! (-> self sticky-player-last-ride-time) (current-time)) ) ) #t @@ -394,7 +394,7 @@ which is obviously useful for an elevator." (+ (-> self move-pos 0) (* (-> self path-pos) (- (-> self move-pos 1) (-> self move-pos 0)))) ) (('player-standing-on?) - (= (-> self sticky-player-last-ride-time) (-> self clock frame-counter)) + (= (-> self sticky-player-last-ride-time) (current-time)) ) (('point-inside-shaft?) (move-between-points self (the-as vector (-> event param 1)) (-> self bottom-top 1) (-> self bottom-top 0)) @@ -558,7 +558,7 @@ do so. ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (logclear! (-> self elevator-status) (elevator-status waiting-to-descend moving)) (logior! (-> self mask) (process-mask actor-pause)) (if (nonzero? (-> self sound)) @@ -569,7 +569,7 @@ do so. :trans (behavior () (plat-trans) (when (not (logtest? (-> self elevator-status) (elevator-status waiting-to-descend))) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (-> self params) (if (and (logtest? (-> self params flags) (elevator-flags elevator-flags-0)) (not (logtest? (-> self params flags) (elevator-flags elevator-flags-3))) @@ -578,7 +578,7 @@ do so. ) ) (when (and (not (logtest? (-> self params flags) (elevator-flags elevator-flags-3))) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (>= (- (current-time) (-> self ride-timer)) (seconds 1)) ) (set! (-> self move-pos 0) (-> self move-pos 1)) (set! (-> self move-pos 1) (-> self path-seq data (the int (-> self move-pos 1)) next-pos)) @@ -711,7 +711,7 @@ do so. :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (elevator-event proc arg1 event-type event) ) (else @@ -720,7 +720,7 @@ do so. ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (if (not (-> *setting-control* user-current jump)) (remove-setting! 'jump) ) @@ -736,10 +736,10 @@ do so. (begin *target* *target*) (focus-test? *target* in-air) ) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) (when (or (logtest? (-> self elevator-status) (elevator-status moving)) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) ) (cond ((and (logtest? (-> self params flags) (elevator-flags elevator-flags-1)) diff --git a/goal_src/jak2/engine/common_objs/generic-obs.gc b/goal_src/jak2/engine/common_objs/generic-obs.gc index 364fad2a98..59e25ac423 100644 --- a/goal_src/jak2/engine/common_objs/generic-obs.gc +++ b/goal_src/jak2/engine/common_objs/generic-obs.gc @@ -233,8 +233,8 @@ (move-along-path self) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (move-along-path self) (suspend) ) @@ -1083,9 +1083,9 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (while (or (zero? (-> self duration)) - (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) ) (if (-> self callback) ((-> self callback) self) @@ -1114,8 +1114,8 @@ This commonly includes things such as: ) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the-as time-frame (-> self linger-duration))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the-as time-frame (-> self linger-duration))) (if (-> self linger-callback) ((-> self linger-callback) self) ) @@ -1236,20 +1236,18 @@ This commonly includes things such as: ) (defun part-tracker-move-to-target ((arg0 part-tracker)) - (with-pp - (let* ((a0-1 *target*) - (a2-0 (if (not a0-1) - (-> arg0 root trans) - (get-trans a0-1 3) - ) - ) - ) - (vector-lerp! - (-> arg0 root trans) - (-> arg0 offset) - a2-0 - (* 0.006666667 (the float (- (-> pp clock frame-counter) (-> arg0 start-time)))) - ) + (let* ((a0-1 *target*) + (a2-0 (if (not a0-1) + (-> arg0 root trans) + (get-trans a0-1 3) + ) + ) + ) + (vector-lerp! + (-> arg0 root trans) + (-> arg0 offset) + a2-0 + (* 0.006666667 (the float (- (current-time) (-> arg0 start-time)))) ) ) ) @@ -1421,7 +1419,7 @@ This commonly includes things such as: :code (behavior () (set! (-> self sound) (the-as uint 0)) (when (!= (+ (-> self lightning spec delay) (-> self lightning spec delay-rand)) 0.0) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (rand-vu-float-range (-> self lightning spec delay) (+ (-> self lightning spec delay) (-> self lightning spec delay-rand)) @@ -1429,7 +1427,7 @@ This commonly includes things such as: ) ) ) - (while (< (- (-> self clock frame-counter) gp-0) s5-0) + (while (< (- (current-time) gp-0) s5-0) (suspend) ) ) @@ -1478,9 +1476,9 @@ This commonly includes things such as: ) (set! (-> v1-33 state mode) (the-as lightning-mode a0-10)) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (while (or (zero? (-> self duration)) - (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) ) (update self) (suspend) @@ -1505,8 +1503,8 @@ This commonly includes things such as: ) (set! (-> v1-47 state mode) (the-as lightning-mode a0-14)) ) - (set! (-> self start-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the int f30-0)) + (set! (-> self start-time) (current-time)) + (while (< (- (current-time) (-> self start-time)) (the int f30-0)) (suspend) ) ) @@ -2227,12 +2225,12 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (vector--float*! (-> self trans) (-> *camera* tpos-curr) (-> *camera* local-down) 28672.0) (send-event *camera* 'teleport) - (if (and (-> *camera* on-ground) (>= (- (-> self clock frame-counter) gp-0) (seconds 1))) + (if (and (-> *camera* on-ground) (>= (- (current-time) gp-0) (seconds 1))) (send-event *camera* 'change-state cam-string (seconds 0.5)) ) ) @@ -2291,7 +2289,7 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (let ((s4-0 (new 'stack-no-clear 'vector)) @@ -2333,7 +2331,7 @@ This commonly includes things such as: (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) (>= (- (-> self clock frame-counter) gp-0) (seconds 1))) + (if (and (-> *camera* on-ground) (>= (- (current-time) gp-0) (seconds 1))) (send-event *camera* 'change-state cam-string (seconds 0.5)) ) ) @@ -2406,7 +2404,7 @@ This commonly includes things such as: :virtual #t :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (when (or (= event-type 'touch) (= event-type 'attack)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (send-event proc 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) (the-as object (cond @@ -2451,7 +2449,7 @@ This commonly includes things such as: (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (< (- (current-time) (-> self state-time)) (seconds 0.5)) ) (send-event *target* 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) @@ -2680,7 +2678,7 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while ((-> self run-function)) (let* ((gp-0 (handle->process (-> self target))) (a0-4 (if (type? gp-0 process-drawable) @@ -2736,17 +2734,18 @@ This commonly includes things such as: ) (let ((v1-6 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) (set! (-> v1-6 prim-core collide-as) (collide-spec jak enemy)) - (set! (-> v1-6 prim-core collide-with) (collide-spec - crate - civilian - enemy - obstacle - vehicle-sphere - hit-by-player-list - hit-by-others-list - collectable - pusher - ) + (set! (-> v1-6 prim-core collide-with) + (collide-spec + crate + civilian + enemy + obstacle + vehicle-sphere + hit-by-player-list + hit-by-others-list + collectable + pusher + ) ) (set-vector! (-> v1-6 local-sphere) 0.0 0.0 0.0 arg1) (set! (-> s4-0 total-prims) (the-as uint 1)) @@ -2765,10 +2764,8 @@ This commonly includes things such as: (set! (-> self target) (the-as handle #f)) (set! (-> self event) #f) (set! (-> self callback) #f) - (set! (-> self run-function) (lambda :behavior touch-tracker - () - (< (- (-> self clock frame-counter) (-> self state-time)) (-> self duration)) - ) + (set! (-> self run-function) + (lambda :behavior touch-tracker () (< (- (current-time) (-> self state-time)) (-> self duration))) ) (set! (-> self event-hook) (-> (method-of-object self active) event)) (go-virtual active) @@ -2905,7 +2902,7 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (update-transforms (-> self root-override)) (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) (set! (-> a1-0 options) (overlaps-others-options)) @@ -2918,14 +2915,14 @@ This commonly includes things such as: (set! (-> v1-9 prim-core collide-with) (collide-spec)) ) 0 - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) (let ((a1-1 (-> self root-override trans))) (spawn (-> self part) a1-1) ) (suspend) ) - (set! (-> self start-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self linger-duration))) + (set! (-> self start-time) (current-time)) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self linger-duration))) (suspend) ) (none) diff --git a/goal_src/jak2/engine/common_objs/plat.gc b/goal_src/jak2/engine/common_objs/plat.gc index 73d348a2ae..4b55f73375 100644 --- a/goal_src/jak2/engine/common_objs/plat.gc +++ b/goal_src/jak2/engine/common_objs/plat.gc @@ -257,10 +257,10 @@ This commonly includes things such as: ) (cond ((and proc-focus (focus-test? proc-focus edge-grab)) - (set! (-> self safe-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self safe-time) (+ (current-time) (seconds 0.2))) (return (the-as object #f)) ) - ((< (- (-> self clock frame-counter) (-> self safe-time)) (seconds 0.05)) + ((< (- (current-time) (-> self safe-time)) (seconds 0.05)) (return (the-as object #f)) ) ) @@ -303,7 +303,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('edge-grabbed) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (send-event proc 'end-mode) ) ) @@ -313,7 +313,7 @@ This commonly includes things such as: ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/goal_src/jak2/engine/common_objs/powerups.gc b/goal_src/jak2/engine/common_objs/powerups.gc index 8fd5758b16..543bf853af 100644 --- a/goal_src/jak2/engine/common_objs/powerups.gc +++ b/goal_src/jak2/engine/common_objs/powerups.gc @@ -20,19 +20,14 @@ (let ((s1-1 (process->handle arg0)) (s2-1 (process->handle arg1)) ) - (let ((s0-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s0-0) (+ arg3 arg4)) + (let ((s0-0 (current-time))) + (until (>= (- (current-time) s0-0) (+ arg3 arg4)) (let ((v1-8 (or (not (handle->process s1-1)) (not (handle->process s2-1))))) (if v1-8 (deactivate self) ) ) - (let* ((f0-1 - (fmax - 0.0 - (fmin 1.0 (/ (- (the float (- (-> self clock frame-counter) s0-0)) (the float arg3)) (the float arg4))) - ) - ) + (let* ((f0-1 (fmax 0.0 (fmin 1.0 (/ (- (the float (- (current-time) s0-0)) (the float arg3)) (the float arg4))))) (a0-18 (process-drawable-pair-random-point! (the-as process-drawable (-> s1-1 process 0)) (the-as process-drawable (-> s2-1 process 0)) @@ -54,8 +49,8 @@ #f ) (else - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) arg5) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) arg5) (let ((a0-21 (process-drawable-random-point! (the-as process-drawable (-> s2-1 process 0)) (new-stack-vector0)))) (arg2 a0-21) ) @@ -743,9 +738,8 @@ ) (defbehavior target-color-effect-process target () - (when (and (-> self color-effect) (>= (- (-> self clock frame-counter) (-> self color-effect-start-time)) - (the-as time-frame (-> self color-effect-duration)) - ) + (when (and (-> self color-effect) + (>= (- (current-time) (-> self color-effect-start-time)) (the-as time-frame (-> self color-effect-duration))) ) (set! (-> self color-effect) #f) (set-vector! (-> self draw color-mult) 1.0 1.0 1.0 1.0) @@ -761,7 +755,7 @@ (let ((f30-0 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -775,7 +769,7 @@ (let ((f30-1 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -789,7 +783,7 @@ (let ((f30-2 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -803,7 +797,7 @@ (let ((f30-3 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -817,7 +811,7 @@ (let ((f30-4 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -831,7 +825,7 @@ (let ((f30-5 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -859,13 +853,13 @@ (if (and (logtest? (-> self water flags) (water-flags under-water)) (not (logtest? (-> self water flags) (water-flags swim-ground))) ) - (set! (-> self control unknown-time-frame26) (-> self clock frame-counter)) - (set! (-> self control unknown-time-frame27) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame26) (current-time)) + (set! (-> self control unknown-time-frame27) (current-time)) ) (cond ((and (= (-> self control ground-pat material) (pat-material ice)) (and (>= (-> self control ctrl-xz-vel) 204.8) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.05)) + (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.05)) ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 38)))) @@ -967,7 +961,7 @@ (cond ((logtest? (-> self game features) (game-feature unk-game-feature-01)) (cond - ((< (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout)) + ((< (current-time) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout)) (set-setting! 'bg-a 'abs 0.3 0) (set-setting! 'bg-r 'abs 1.0 0) (update-rates! (-> *display* entity-clock) 0.0) @@ -983,9 +977,7 @@ 0 ) ((cpad-pressed? (-> self control cpad number) r1) - (set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) - (+ (-> self clock frame-counter) (seconds 5)) - ) + (set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) (+ (current-time) (seconds 5))) ) ) ) @@ -1100,9 +1092,7 @@ ((or (and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) ) - (and (focus-test? self board) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - ) + (and (focus-test? self board) (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1))) ) (logior! (-> self focus-status) (focus-status in-air)) (if (logtest? (surface-flag super) (-> self control current-surface flags)) @@ -1137,7 +1127,7 @@ (set! (-> self focus-status) (logior (focus-status ice) (-> self focus-status))) (logclear! (-> self focus-status) (focus-status ice)) ) - (if (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self gun fire-time)) (seconds 0.1)) (set! (-> self focus-status) (logior (focus-status shooting) (-> self focus-status))) (logclear! (-> self focus-status) (focus-status shooting)) ) diff --git a/goal_src/jak2/engine/common_objs/projectile.gc b/goal_src/jak2/engine/common_objs/projectile.gc index 9c8892bc0b..32e2f6de61 100644 --- a/goal_src/jak2/engine/common_objs/projectile.gc +++ b/goal_src/jak2/engine/common_objs/projectile.gc @@ -290,7 +290,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self spawn-time)) (-> self timeout)) + (if (>= (- (current-time) (-> self spawn-time)) (-> self timeout)) (go-virtual dissipate) ) (let ((t9-1 (-> self pick-target))) @@ -469,7 +469,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (set! (-> self last-target) (the-as handle #f)) (set! (-> self timeout) (-> arg0 timeout)) (set! (-> self max-hits) 1) - (set! (-> self spawn-time) (-> self clock frame-counter)) + (set! (-> self spawn-time) (current-time)) (set! (-> self update-velocity) #f) (set! (-> self move) projectile-move-fill-line-sphere) (set! (-> self pick-target) #f) @@ -551,7 +551,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ) :trans (behavior () (noop self) - (if (>= (- (-> self clock frame-counter) (-> self spawn-time)) (-> self timeout)) + (if (>= (- (current-time) (-> self spawn-time)) (-> self timeout)) (go-virtual impact) ) (none) @@ -614,9 +614,9 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (vector-float*! (-> a2-0 transv) (-> a2-0 transv) 0.6) ) (when (and (logtest? v1-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (set! (-> obj played-bounce-time) (-> self clock frame-counter)) + (set! (-> obj played-bounce-time) (current-time)) (sound-play "dark-shot-bounc") ) ) diff --git a/goal_src/jak2/engine/common_objs/rigid-body-plat.gc b/goal_src/jak2/engine/common_objs/rigid-body-plat.gc index cae9118e7e..2c22a5e687 100644 --- a/goal_src/jak2/engine/common_objs/rigid-body-plat.gc +++ b/goal_src/jak2/engine/common_objs/rigid-body-plat.gc @@ -286,10 +286,10 @@ ) ) (('bonk) - (when (>= (- (-> self clock frame-counter) (the-as int (-> obj player-bonk-timeout))) + (when (>= (- (current-time) (the-as int (-> obj player-bonk-timeout))) (the-as time-frame (-> obj info-override player-force-timeout)) ) - (set! (-> obj player-bonk-timeout) (the-as uint (-> self clock frame-counter))) + (set! (-> obj player-bonk-timeout) (the-as uint (current-time))) (let* ((s4-0 arg0) (v1-31 (if (type? s4-0 process-drawable) s4-0 @@ -346,31 +346,29 @@ ) (defmethod alloc-and-init-rigid-body-control rigid-body-platform ((obj rigid-body-platform) (arg0 rigid-body-object-constants)) - (with-pp - (set! (-> obj info-override) (the-as rigid-body-platform-constants arg0)) - (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) - (set! (-> obj control-point-array) - (new 'process 'rigid-body-control-point-inline-array (-> obj info-override control-point-count)) - ) - (update-transforms (-> obj root-override-2)) - (let ((v1-5 (-> obj rbody)) - (a1-3 (-> obj info-override info)) - (a2-2 (-> obj root-override-2 trans)) - (a3-0 (-> obj root-override-2 quat)) - (t0-0 (method-of-object obj rigid-body-object-method-29)) - ) - (rigid-body-method-25 (-> v1-5 state) a1-3 a2-2 a3-0 t0-0) - ) - (set! (-> obj player-bonk-timeout) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj player-force quad) (-> *null-vector* quad)) - (set! (-> obj player-velocity quad) (-> *null-vector* quad)) - (set! (-> obj player-velocity-prev quad) (-> *null-vector* quad)) - (set! (-> obj root-override-2 max-iteration-count) (the-as uint 4)) - (set! (-> obj max-time-step) (-> arg0 extra max-time-step)) - (set! (-> obj water-anim) (the-as water-anim (entity-actor-lookup (-> obj entity) 'water-actor 0))) - 0 - (none) + (set! (-> obj info-override) (the-as rigid-body-platform-constants arg0)) + (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) + (set! (-> obj control-point-array) + (new 'process 'rigid-body-control-point-inline-array (-> obj info-override control-point-count)) + ) + (update-transforms (-> obj root-override-2)) + (let ((v1-5 (-> obj rbody)) + (a1-3 (-> obj info-override info)) + (a2-2 (-> obj root-override-2 trans)) + (a3-0 (-> obj root-override-2 quat)) + (t0-0 (method-of-object obj rigid-body-object-method-29)) + ) + (rigid-body-method-25 (-> v1-5 state) a1-3 a2-2 a3-0 t0-0) ) + (set! (-> obj player-bonk-timeout) (the-as uint (current-time))) + (set! (-> obj player-force quad) (-> *null-vector* quad)) + (set! (-> obj player-velocity quad) (-> *null-vector* quad)) + (set! (-> obj player-velocity-prev quad) (-> *null-vector* quad)) + (set! (-> obj root-override-2 max-iteration-count) (the-as uint 4)) + (set! (-> obj max-time-step) (-> arg0 extra max-time-step)) + (set! (-> obj water-anim) (the-as water-anim (entity-actor-lookup (-> obj entity) 'water-actor 0))) + 0 + (none) ) (defmethod allocate-and-init-cshape rigid-body-platform ((obj rigid-body-platform)) diff --git a/goal_src/jak2/engine/common_objs/voicebox.gc b/goal_src/jak2/engine/common_objs/voicebox.gc index a41c33a41f..b9ec8d6d44 100644 --- a/goal_src/jak2/engine/common_objs/voicebox.gc +++ b/goal_src/jak2/engine/common_objs/voicebox.gc @@ -165,9 +165,7 @@ (set! (-> a1-2 quad) (-> self parent-override 0 trans quad)) (vector-lerp! (-> self root trans) a1-2 s5-0 (-> self blend)) ) - (+! (-> self root trans y) - (* 1638.4 (sin (* 54.613335 (the float (mod (-> self clock frame-counter) 1200))))) - ) + (+! (-> self root trans y) (* 1638.4 (sin (* 54.613335 (the float (mod (current-time) 1200)))))) (let ((s5-1 (new 'stack-no-clear 'quaternion))) (forward-up->quaternion s5-1 @@ -364,14 +362,13 @@ :virtual #t :code (behavior () (remove-setting! 'sound-flava) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self seeker target) 1.0) - (while (and (< (-> self blend) 0.9999) - (not (and (not (handle->process (-> self hint))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - (-> *setting-control* user-current hint) - ) - ) + (while (and (< (-> self blend) 0.9999) (not (and (not (handle->process (-> self hint))) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) + (-> *setting-control* user-current hint) + ) + ) ) (update! (-> self seeker) 0.0) (set! (-> self blend) (-> self seeker value)) diff --git a/goal_src/jak2/engine/common_objs/water.gc b/goal_src/jak2/engine/common_objs/water.gc index c0b25ee0d2..5974c86512 100644 --- a/goal_src/jak2/engine/common_objs/water.gc +++ b/goal_src/jak2/engine/common_objs/water.gc @@ -754,7 +754,7 @@ (and (>= (-> obj height) (-> obj bottom 0 y)) (logtest? (water-flags touch-water) (-> s5-0 flags))) ) (if (logtest? (-> (the-as collide-shape-moving (-> obj process control)) status) (collide-status on-water)) - (set! (-> obj on-water-time) (-> pp clock frame-counter)) + (set! (-> obj on-water-time) (current-time)) ) (when (not (logtest? (-> obj flags) (water-flags dark-eco lava))) (set! (-> obj drip-wetness) 1.0) @@ -776,9 +776,7 @@ ) (set! (-> obj flags) (logior (water-flags break-surface) (-> obj flags))) (set! (-> s3-0 y) (+ 40.96 (-> obj surface-height))) - (when (and (not (handle->process (-> obj ripple))) - (>= (+ (-> pp clock frame-counter) (seconds -1.5)) (-> obj enter-water-time)) - ) + (when (and (not (handle->process (-> obj ripple))) (>= (+ (current-time) (seconds -1.5)) (-> obj enter-water-time))) (let* ((s1-0 (get-process *default-dead-pool* manipy #x4000)) (s2-0 (when s1-0 @@ -907,7 +905,7 @@ ) (when (< (-> s3-1 y) (-> obj surface-height)) (set! (-> *part-id-table* 502 init-specs 16 initial-valuef) (-> obj surface-height)) - (let ((f0-72 (lerp-scale 12.0 0.4 (the float (- (-> pp clock frame-counter) (-> obj enter-water-time))) 0.0 600.0)) + (let ((f0-72 (lerp-scale 12.0 0.4 (the float (- (current-time) (-> obj enter-water-time))) 0.0 600.0)) (f1-26 0.00012207031) (v1-222 (-> obj process control transv)) ) @@ -947,7 +945,7 @@ s3-2 ) ) - (v1-237 (and v1-236 (< (- (-> pp clock frame-counter) (-> v1-236 last-time-on-surface)) (seconds 0.5)))) + (v1-237 (and v1-236 (< (- (current-time) (-> v1-236 last-time-on-surface)) (seconds 0.5)))) ) (if (and (logtest? (-> obj flags) (water-flags swim-ground)) (and v1-237 @@ -973,7 +971,7 @@ ) (< f0-84 (sqrtf (+ (* (-> a0-112 x) (-> a0-112 x)) (* (-> a0-112 z) (-> a0-112 z))))) ) - (< (+ (-> pp clock frame-counter) (seconds -0.2)) (-> obj enter-water-time)) + (< (+ (current-time) (seconds -0.2)) (-> obj enter-water-time)) (or (>= (+ (- 204.8 (fmin 6144.0 (+ (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)))) f30-1) (-> obj bottom 0 y) ) @@ -981,11 +979,11 @@ ) ) ) - (set! (-> obj swim-time) (-> pp clock frame-counter)) + (set! (-> obj swim-time) (current-time)) (send-event (-> obj process) 'swim) (set! (-> obj flags) (logior (water-flags swimming) (-> obj flags))) (if (not (logtest? (water-flags swimming) s4-0)) - (set! (-> obj enter-swim-time) (-> pp clock frame-counter)) + (set! (-> obj enter-swim-time) (current-time)) ) (cond ((and (logtest? (-> obj flags) (water-flags swim-ground)) @@ -1019,13 +1017,13 @@ ((begin (set! v1-237 (and (logtest? (-> obj flags) (water-flags can-wade)) - (or (not (!= (-> obj bob amp) 0.0)) (>= (- (-> pp clock frame-counter) (-> obj swim-time)) (seconds 0.05))) + (or (not (!= (-> obj bob amp) 0.0)) (>= (- (current-time) (-> obj swim-time)) (seconds 0.05))) (and (>= (- (-> obj height) (-> obj wade-height)) (-> obj bottom 0 y)) v1-237) ) ) v1-237 ) - (set! (-> obj wade-time) (-> pp clock frame-counter)) + (set! (-> obj wade-time) (current-time)) (send-event (-> obj process) 'wade) (set! (-> obj flags) (logior (water-flags wading) (-> obj flags))) ) @@ -1158,7 +1156,7 @@ (t9-35 a0-208 a1-61 a2-22 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) - (set! (-> obj drip-time) (-> pp clock frame-counter)) + (set! (-> obj drip-time) (current-time)) (logclear! (-> obj flags) (water-flags spawn-drip)) (seek! (-> obj drip-wetness) 0.0 (* 0.001 (-> obj drip-speed))) (set! (-> obj drip-speed) (* 1.05 (-> obj drip-speed))) @@ -1166,9 +1164,7 @@ (set! (-> obj drip-height) 0.0) ) ) - ((>= (- (-> pp clock frame-counter) - (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) - ) + ((>= (- (current-time) (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult))))) (the int (-> obj drip-speed)) ) (let* ((s5-1 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1))) @@ -1286,7 +1282,7 @@ (with-pp (set! (-> obj flags) (logior (water-flags touch-water) (-> obj flags))) (logclear! (-> obj flags) (water-flags jump-out)) - (set! (-> obj enter-water-time) (-> pp clock frame-counter)) + (set! (-> obj enter-water-time) (current-time)) (set-vector! (-> obj enter-water-pos) (-> obj bottom 0 x) (-> obj surface-height) (-> obj bottom 0 z) 1.0) (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) @@ -1413,41 +1409,39 @@ ) (defmethod spawn-ripples water-control ((obj water-control) (arg0 float) (arg1 vector) (arg2 int) (arg3 vector) (arg4 symbol)) - (with-pp - (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) - (let ((s4-1 (vector+float*! (new 'stack-no-clear 'vector) arg1 arg3 0.05))) - (set! (-> s4-1 y) (+ 40.96 (-> obj surface-height))) - (if (>= (- (-> pp clock frame-counter) (-> obj distort-time)) (seconds 0.1)) - (splash-spawn arg0 s4-1 arg2) - ) - (when (and arg4 (>= (- (-> pp clock frame-counter) (-> obj distort-time)) (seconds 0.3))) - (set! (-> obj distort-time) (-> pp clock frame-counter)) - (let ((s3-1 (process-spawn - manipy - :init manipy-init - s4-1 - (-> obj process entity) - (art-group-get-by-name *level* "skel-generic-ripples" (the-as (pointer uint32) #f)) - #f - 0 - :to (-> obj process) - ) + (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) + (let ((s4-1 (vector+float*! (new 'stack-no-clear 'vector) arg1 arg3 0.05))) + (set! (-> s4-1 y) (+ 40.96 (-> obj surface-height))) + (if (>= (- (current-time) (-> obj distort-time)) (seconds 0.1)) + (splash-spawn arg0 s4-1 arg2) + ) + (when (and arg4 (>= (- (current-time) (-> obj distort-time)) (seconds 0.3))) + (set! (-> obj distort-time) (current-time)) + (let ((s3-1 (process-spawn + manipy + :init manipy-init + s4-1 + (-> obj process entity) + (art-group-get-by-name *level* "skel-generic-ripples" (the-as (pointer uint32) #f)) + #f + 0 + :to (-> obj process) ) - ) - (when s3-1 - (send-event (ppointer->process s3-1) 'anim-mode 'play1) - (send-event (ppointer->process s3-1) 'anim "idle") - (let ((f0-4 (fmax 0.6 (fmin 1.0 (* 2.0 arg0))))) - (set-vector! (-> (the-as process-drawable (-> s3-1 0)) root scale) f0-4 0.5 f0-4 1.0) - ) + ) + ) + (when s3-1 + (send-event (ppointer->process s3-1) 'anim-mode 'play1) + (send-event (ppointer->process s3-1) 'anim "idle") + (let ((f0-4 (fmax 0.6 (fmin 1.0 (* 2.0 arg0))))) + (set-vector! (-> (the-as process-drawable (-> s3-1 0)) root scale) f0-4 0.5 f0-4 1.0) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) (defun water-info<-region ((arg0 water-info) (arg1 drawable-region-prim) (arg2 collide-shape) (arg3 collide-action)) diff --git a/goal_src/jak2/engine/debug/default-menu.gc b/goal_src/jak2/engine/debug/default-menu.gc index 2a9eb91114..71e3fcad16 100644 --- a/goal_src/jak2/engine/debug/default-menu.gc +++ b/goal_src/jak2/engine/debug/default-menu.gc @@ -4280,34 +4280,30 @@ "Clear map" #f ,(lambda () - (let ((v1-1 - (process-spawn-function - process - (lambda () (with-pp - (set-master-mode 'game) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) - (suspend) - ) - ) - (until #f - (format *stdcon* "press x clear map, press circle cancel~%") - (cond - ((cpad-pressed? 0 x) - (initialize *bigmap*) - (return #f) - ) - ((cpad-pressed? 0 circle) - (return #f) - ) - ) - (suspend) - ) - #f - ) - ) - ) - ) + (let ((v1-1 (process-spawn-function process (lambda () + (set-master-mode 'game) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.3)) + (suspend) + ) + ) + (until #f + (format *stdcon* "press x clear map, press circle cancel~%") + (cond + ((cpad-pressed? 0 x) + (initialize *bigmap*) + (return #f) + ) + ((cpad-pressed? 0 circle) + (return #f) + ) + ) + (suspend) + ) + #f + ) + ) + ) ) (when v1-1 (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) diff --git a/goal_src/jak2/engine/debug/editable-player.gc b/goal_src/jak2/engine/debug/editable-player.gc index abd92e9e15..e41e6edc5d 100644 --- a/goal_src/jak2/engine/debug/editable-player.gc +++ b/goal_src/jak2/engine/debug/editable-player.gc @@ -1370,21 +1370,20 @@ (editable-array-method-9 obj (editable-command update-game) (the-as editable-array #f)) ) ((= arg0 (editable-command update-game)) - ;; TODO - waiting for lights/light-hash to be done - ;; (reset-light-hash *light-hash*) - ;; (let* ((s5-19 (-> obj length)) - ;; (s4-23 0) - ;; (a0-76 (-> obj data s4-23)) - ;; ) - ;; (while (< s4-23 s5-19) - ;; (if a0-76 - ;; (editable-method-23 a0-76) - ;; ) - ;; (+! s4-23 1) - ;; (set! a0-76 (-> obj data s4-23)) - ;; ) - ;; ) - ;; (update-light-hash *light-hash*) + (reset-light-hash *light-hash*) + (let* ((s5-19 (-> obj length)) + (s4-23 0) + (a0-76 (-> obj data s4-23)) + ) + (while (< s4-23 s5-19) + (if a0-76 + (editable-method-23 a0-76) + ) + (+! s4-23 1) + (set! a0-76 (-> obj data s4-23)) + ) + ) + (update-light-hash *light-hash*) ) ((or (= arg0 (editable-command exit)) (= arg0 (editable-command kill))) (deactivate self) @@ -1614,7 +1613,7 @@ (the-as object (deactivate self)) ) (('menu) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> event param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> event param 0)))) (set! (-> self close-menu-time) (the-as time-frame v0-0)) v0-0 ) @@ -1850,10 +1849,7 @@ (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons start)) ) ) - (when (or (and (= *master-mode* 'menu) - (> (-> self close-menu-time) 0) - (>= (-> self clock frame-counter) (-> self close-menu-time)) - ) + (when (or (and (= *master-mode* 'menu) (> (-> self close-menu-time) 0) (>= (current-time) (-> self close-menu-time))) (cpad-pressed? 1 start) ) (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) diff --git a/goal_src/jak2/engine/entity/entity.gc b/goal_src/jak2/engine/entity/entity.gc index 2e6441fb89..15e4e0a759 100644 --- a/goal_src/jak2/engine/entity/entity.gc +++ b/goal_src/jak2/engine/entity/entity.gc @@ -1204,117 +1204,115 @@ (sv-112 pointer) (sv-128 int) ) - (with-pp - (let ((s4-0 *debug-actor-info*)) - (set! (-> s4-0 process) #f) - (if (zero? (-> s4-0 handle pid)) - (set! (-> s4-0 handle) - (logior (logand (-> s4-0 handle) (shl (the-as uint #xffffffff) 32)) (shr (shl (the-as int #f) 32) 32)) - ) - ) - (let ((v0-0 (handle->process (-> s4-0 handle)))) - (when (not v0-0) - (if (-> s4-0 name) - (set! v0-0 (process-by-name (the-as string (-> s4-0 name)) *active-pool*)) + (let ((s4-0 *debug-actor-info*)) + (set! (-> s4-0 process) #f) + (if (zero? (-> s4-0 handle pid)) + (set! (-> s4-0 handle) + (logior (logand (-> s4-0 handle) (shl (the-as uint #xffffffff) 32)) (shr (shl (the-as int #f) 32) 32)) ) - ) - (set! (-> s4-0 process) v0-0) ) - (set! *debug-actor* (-> s4-0 process)) - ) - (set! sv-16 arg0) - (when (and sv-16 (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) - (cond - ((= sv-16 'process) - (let ((s5-1 draw-actor-marks)) - (iterate-process-tree *pusher-pool* (the-as (function object object) s5-1) *null-kernel-context*) - (iterate-process-tree *entity-pool* (the-as (function object object) s5-1) *null-kernel-context*) - ) - ) - (else - (dotimes (s5-2 (-> obj length)) - (let ((v1-25 (-> obj level s5-2))) - (when (= (-> v1-25 status) 'active) - (let ((s4-1 (-> v1-25 bsp level entity))) - (dotimes (s3-0 (-> s4-1 length)) - (let ((s2-0 (-> s4-1 data s3-0 entity))) - (set! sv-20 (-> s2-0 extra trans)) - (when (or (= sv-16 'full) (-> s2-0 extra process)) - (add-debug-x #t (bucket-id debug-no-zbuf1) sv-20 (if (-> s2-0 extra process) - (new 'static 'rgba :r #x80 :g #xff :b #x80 :a #x80) - (new 'static 'rgba :r #xff :a #x80) - ) - ) - (let ((s1-0 add-debug-text-3d) - (s0-0 #t) - ) - (set! sv-32 (the-as int (bucket-id debug-no-zbuf1))) - (let ((a2-4 (res-lump-struct s2-0 'name structure)) - (a3-2 sv-20) - (t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1)) - 1 - 5 - ) - ) - (t1-1 (new 'static 'vector2h :data (new 'static 'array int16 2 0 8))) - ) - (s1-0 s0-0 (the-as bucket-id sv-32) (the-as string a2-4) a3-2 (the-as font-color t0-1) t1-1) - ) - ) - ) - ) - ) - ) - ) - ) + (let ((v0-0 (handle->process (-> s4-0 handle)))) + (when (not v0-0) + (if (-> s4-0 name) + (set! v0-0 (process-by-name (the-as string (-> s4-0 name)) *active-pool*)) ) - ) ) + (set! (-> s4-0 process) v0-0) ) - (when (and *display-actor-vis* (not *debug-actor*)) - (let ((s5-3 *display-actor-vis*)) - (dotimes (s4-2 (-> obj length)) - (let ((s3-1 (-> obj level s4-2))) - (when (= (-> s3-1 status) 'active) - (let ((s2-1 (-> s3-1 bsp level entity))) - (dotimes (s1-1 (-> s2-1 length)) - (let ((s0-1 (-> s2-1 data s1-1 entity))) - (let ((v0-6 (res-lump-data s0-1 'visvol pointer)) - (a1-10 (-> s0-1 extra vis-id)) - ) - (when (and v0-6 (or (= s5-3 #t) (= s5-3 'box))) - (set! sv-48 add-debug-box) - (set! sv-64 #t) - (set! sv-80 (the-as int (bucket-id debug-no-zbuf1))) - (set! sv-96 (&+ v0-6 0)) - (set! sv-112 (&+ v0-6 16)) - (let ((t0-3 (if (is-object-visible? s3-1 a1-10) - (the-as uint #x80808000) - (the-as uint #x80800080) + (set! *debug-actor* (-> s4-0 process)) + ) + (set! sv-16 arg0) + (when (and sv-16 (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) + (cond + ((= sv-16 'process) + (let ((s5-1 draw-actor-marks)) + (iterate-process-tree *pusher-pool* (the-as (function object object) s5-1) *null-kernel-context*) + (iterate-process-tree *entity-pool* (the-as (function object object) s5-1) *null-kernel-context*) + ) + ) + (else + (dotimes (s5-2 (-> obj length)) + (let ((v1-25 (-> obj level s5-2))) + (when (= (-> v1-25 status) 'active) + (let ((s4-1 (-> v1-25 bsp level entity))) + (dotimes (s3-0 (-> s4-1 length)) + (let ((s2-0 (-> s4-1 data s3-0 entity))) + (set! sv-20 (-> s2-0 extra trans)) + (when (or (= sv-16 'full) (-> s2-0 extra process)) + (add-debug-x #t (bucket-id debug-no-zbuf1) sv-20 (if (-> s2-0 extra process) + (new 'static 'rgba :r #x80 :g #xff :b #x80 :a #x80) + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (let ((s1-0 add-debug-text-3d) + (s0-0 #t) + ) + (set! sv-32 (the-as int (bucket-id debug-no-zbuf1))) + (let ((a2-4 (res-lump-struct s2-0 'name structure)) + (a3-2 sv-20) + (t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1)) + 1 + 5 ) ) + (t1-1 (new 'static 'vector2h :data (new 'static 'array int16 2 0 8))) ) - (sv-48 sv-64 (the-as bucket-id sv-80) (the-as vector sv-96) (the-as vector sv-112) (the-as rgba t0-3)) + (s1-0 s0-0 (the-as bucket-id sv-32) (the-as string a2-4) a3-2 (the-as font-color t0-1) t1-1) ) ) ) - (when (or (= s5-3 #t) (= s5-3 'sphere)) - (let ((s0-2 (-> s0-1 extra process))) - (when s0-2 - (when (and (type? s0-2 process-drawable) (nonzero? (-> (the-as process-drawable s0-2) draw))) - (add-debug-x - #t - (bucket-id debug-no-zbuf1) - (-> (the-as process-drawable s0-2) root trans) - (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - ) - (add-debug-sphere - #t - (bucket-id debug2) - (-> (the-as process-drawable s0-2) draw origin) - (-> (the-as process-drawable s0-2) draw bounds w) - (new 'static 'rgba :r #x80 :a #x80) - ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (when (and *display-actor-vis* (not *debug-actor*)) + (let ((s5-3 *display-actor-vis*)) + (dotimes (s4-2 (-> obj length)) + (let ((s3-1 (-> obj level s4-2))) + (when (= (-> s3-1 status) 'active) + (let ((s2-1 (-> s3-1 bsp level entity))) + (dotimes (s1-1 (-> s2-1 length)) + (let ((s0-1 (-> s2-1 data s1-1 entity))) + (let ((v0-6 (res-lump-data s0-1 'visvol pointer)) + (a1-10 (-> s0-1 extra vis-id)) + ) + (when (and v0-6 (or (= s5-3 #t) (= s5-3 'box))) + (set! sv-48 add-debug-box) + (set! sv-64 #t) + (set! sv-80 (the-as int (bucket-id debug-no-zbuf1))) + (set! sv-96 (&+ v0-6 0)) + (set! sv-112 (&+ v0-6 16)) + (let ((t0-3 (if (is-object-visible? s3-1 a1-10) + (the-as uint #x80808000) + (the-as uint #x80800080) + ) + ) + ) + (sv-48 sv-64 (the-as bucket-id sv-80) (the-as vector sv-96) (the-as vector sv-112) (the-as rgba t0-3)) + ) + ) + ) + (when (or (= s5-3 #t) (= s5-3 'sphere)) + (let ((s0-2 (-> s0-1 extra process))) + (when s0-2 + (when (and (type? s0-2 process-drawable) (nonzero? (-> (the-as process-drawable s0-2) draw))) + (add-debug-x + #t + (bucket-id debug-no-zbuf1) + (-> (the-as process-drawable s0-2) root trans) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (add-debug-sphere + #t + (bucket-id debug2) + (-> (the-as process-drawable s0-2) draw origin) + (-> (the-as process-drawable s0-2) draw bounds w) + (new 'static 'rgba :r #x80 :a #x80) ) ) ) @@ -1327,247 +1325,247 @@ ) ) ) - (if *generate-actor-vis* - (update-vis-volumes obj) - ) - (cond - (*debug-actor* - (let* ((s4-3 *debug-actor*) - (s5-4 (if (type? s4-3 process-drawable) - s4-3 - ) - ) - ) - (when s5-4 - (if (nonzero? (-> (the-as process-drawable s5-4) skel)) - (debug-print-channels (-> (the-as process-drawable s5-4) skel) (the-as symbol *stdcon*)) - ) - (when (and (nonzero? (-> (the-as process-drawable s5-4) nav)) - (-> (the-as process-drawable s5-4) nav) - *display-nav-marks* - ) - (let ((s4-4 (-> (the-as process-drawable s5-4) nav state flags))) - (if (= (logand s4-4 (nav-state-flag in-target-poly)) (nav-state-flag in-target-poly)) - (format *stdcon* "in-target-poly ") - ) - (if (= (logand s4-4 (nav-state-flag directional-mode)) (nav-state-flag directional-mode)) - (format *stdcon* "directional-mode ") - ) - (if (= (logand s4-4 (nav-state-flag initialized)) (nav-state-flag initialized)) - (format *stdcon* "initialized ") - ) - (if (= (logand s4-4 (nav-state-flag display-marks)) (nav-state-flag display-marks)) - (format *stdcon* "display-marks ") - ) - (if (= (logand s4-4 (nav-state-flag recovery-mode)) (nav-state-flag recovery-mode)) - (format *stdcon* "recovery-mode ") - ) - (if (= (logand s4-4 (nav-state-flag touching-sphere)) (nav-state-flag touching-sphere)) - (format *stdcon* "touching-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag trapped-by-sphere)) (nav-state-flag trapped-by-sphere)) - (format *stdcon* "trapped-by-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag blocked)) (nav-state-flag blocked)) - (format *stdcon* "blocked ") - ) - (if (= (logand s4-4 (nav-state-flag avoiding-sphere)) (nav-state-flag avoiding-sphere)) - (format *stdcon* "avoiding-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag target-inside)) (nav-state-flag target-inside)) - (format *stdcon* "target-inside ") - ) - (if (= (logand s4-4 (nav-state-flag debug)) (nav-state-flag debug)) - (format *stdcon* "debug ") - ) - (if (= (logand s4-4 (nav-state-flag at-gap)) (nav-state-flag at-gap)) - (format *stdcon* "at-gap ") - ) - (if (= (logand s4-4 (nav-state-flag in-mesh)) (nav-state-flag in-mesh)) - (format *stdcon* "in-mesh ") - ) - (if (= (logand s4-4 (nav-state-flag at-target)) (nav-state-flag at-target)) - (format *stdcon* "at-target ") - ) - (if (= (logand s4-4 (nav-state-flag target-poly-dirty)) (nav-state-flag target-poly-dirty)) - (format *stdcon* "target-poly-dirty ") - ) - ) - (format *stdcon* "~%") - ) - (when *display-joint-axes* - (if (and (type? (the-as process-drawable s5-4) process-drawable) - (nonzero? (-> (the-as process-drawable s5-4) draw)) - ) - (draw-joint-axes (the-as process-drawable s5-4)) - ) - ) - (draw-actor-marks (the-as process-drawable s5-4)) - ) - ) - ) - (*display-nav-mesh* - (dotimes (s5-5 (-> obj length)) - (let ((v1-145 (-> obj level s5-5))) - (when (= (-> v1-145 status) 'active) - (let ((s4-5 (-> v1-145 bsp nav-meshes))) - (when (nonzero? s4-5) - (dotimes (s3-2 (-> s4-5 length)) - (let ((s2-2 (-> s4-5 s3-2))) - (if (name= *display-nav-mesh* (res-lump-struct s2-2 'name structure)) - (debug-draw s2-2) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (else - (when *display-nav-marks* - (dotimes (s5-6 (-> obj length)) - (let ((v1-163 (-> obj level s5-6))) - (when (= (-> v1-163 status) 'active) - (let ((s4-6 (-> v1-163 bsp nav-meshes))) - (when (nonzero? s4-6) - (dotimes (s3-3 (-> s4-6 length)) - (debug-draw (-> s4-6 s3-3)) - ) - ) - ) - ) - ) - ) - ) - (if (or *display-path-marks* *display-vol-marks*) - (iterate-process-tree - *active-pool* - (the-as (function object object) (lambda ((arg0 process-drawable)) - (when (type? arg0 process-drawable) - (if (nonzero? (-> arg0 path)) - (debug-draw (-> arg0 path)) - ) - (if (nonzero? (-> arg0 vol)) - (debug-draw (-> arg0 vol)) - ) - ) - (none) - ) - ) - *null-kernel-context* - ) - ) - ) - ) - (when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) - (if (not (paused?)) - (float-save-timeplot (if (< (the int (the float (mod (-> pp clock frame-counter) 600))) 300) - 1.0 - 0.0 - ) - ) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-redline - (new 'static 'vector4w :x #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-blueline - (new 'static 'vector4w :z #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-greenline - (new 'static 'vector4w :y #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - 0.0 - 409600.0 - float-lookup-yellowline - (new 'static 'vector4w :x #xff :y #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - 0.0 - 1.0 - float-lookup-timeplot - (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) - ) - ) - (when *display-split-boxes* - (dotimes (s5-7 (-> obj length)) - (let ((v1-193 (-> obj level s5-7))) - (when (= (-> v1-193 status) 'active) - (let ((s4-7 (-> v1-193 bsp region-tree))) - (when (nonzero? s4-7) - (let* ((s3-4 (-> s4-7 data2 (+ (-> s4-7 length) -1) length)) - (s2-3 0) - (a0-102 (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3)) - ) - (while (< s2-3 s3-4) - (debug-draw-region a0-102 0) - (+! s2-3 1) - (set! a0-102 - (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (when *display-region-marks* - (dotimes (s5-8 (-> obj length)) - (let ((s4-8 (-> obj level s5-8))) - (when (= (-> s4-8 status) 'active) - (when (nonzero? (-> s4-8 bsp region-trees)) - (let* ((s3-5 (-> s4-8 bsp region-trees length)) - (s2-4 0) - (s1-3 (-> s4-8 bsp region-trees s2-4)) - ) - (while (< s2-4 s3-5) - (let ((s0-4 (-> s1-3 data2 (+ (-> s1-3 length) -1) length))) - (set! sv-128 0) - (let ((a0-117 (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128))) - (while (< sv-128 s0-4) - (debug-draw-region a0-117 0) - (set! sv-128 (+ sv-128 1)) - (set! a0-117 - (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128) - ) - ) - ) - ) - (+! s2-4 1) - (set! s1-3 (-> s4-8 bsp region-trees s2-4)) - ) - ) - ) - ) - ) - ) - ) - 0 - (none) ) + (if *generate-actor-vis* + (update-vis-volumes obj) + ) + (cond + (*debug-actor* + (let* ((s4-3 *debug-actor*) + (s5-4 (if (type? s4-3 process-drawable) + s4-3 + ) + ) + ) + (when s5-4 + (if (nonzero? (-> (the-as process-drawable s5-4) skel)) + (debug-print-channels (-> (the-as process-drawable s5-4) skel) (the-as symbol *stdcon*)) + ) + (when (and (nonzero? (-> (the-as process-drawable s5-4) nav)) + (-> (the-as process-drawable s5-4) nav) + *display-nav-marks* + ) + (let ((s4-4 (-> (the-as process-drawable s5-4) nav state flags))) + (if (= (logand s4-4 (nav-state-flag in-target-poly)) (nav-state-flag in-target-poly)) + (format *stdcon* "in-target-poly ") + ) + (if (= (logand s4-4 (nav-state-flag directional-mode)) (nav-state-flag directional-mode)) + (format *stdcon* "directional-mode ") + ) + (if (= (logand s4-4 (nav-state-flag initialized)) (nav-state-flag initialized)) + (format *stdcon* "initialized ") + ) + (if (= (logand s4-4 (nav-state-flag display-marks)) (nav-state-flag display-marks)) + (format *stdcon* "display-marks ") + ) + (if (= (logand s4-4 (nav-state-flag recovery-mode)) (nav-state-flag recovery-mode)) + (format *stdcon* "recovery-mode ") + ) + (if (= (logand s4-4 (nav-state-flag touching-sphere)) (nav-state-flag touching-sphere)) + (format *stdcon* "touching-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag trapped-by-sphere)) (nav-state-flag trapped-by-sphere)) + (format *stdcon* "trapped-by-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag blocked)) (nav-state-flag blocked)) + (format *stdcon* "blocked ") + ) + (if (= (logand s4-4 (nav-state-flag avoiding-sphere)) (nav-state-flag avoiding-sphere)) + (format *stdcon* "avoiding-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag target-inside)) (nav-state-flag target-inside)) + (format *stdcon* "target-inside ") + ) + (if (= (logand s4-4 (nav-state-flag debug)) (nav-state-flag debug)) + (format *stdcon* "debug ") + ) + (if (= (logand s4-4 (nav-state-flag at-gap)) (nav-state-flag at-gap)) + (format *stdcon* "at-gap ") + ) + (if (= (logand s4-4 (nav-state-flag in-mesh)) (nav-state-flag in-mesh)) + (format *stdcon* "in-mesh ") + ) + (if (= (logand s4-4 (nav-state-flag at-target)) (nav-state-flag at-target)) + (format *stdcon* "at-target ") + ) + (if (= (logand s4-4 (nav-state-flag target-poly-dirty)) (nav-state-flag target-poly-dirty)) + (format *stdcon* "target-poly-dirty ") + ) + ) + (format *stdcon* "~%") + ) + (when *display-joint-axes* + (if (and (type? (the-as process-drawable s5-4) process-drawable) + (nonzero? (-> (the-as process-drawable s5-4) draw)) + ) + (draw-joint-axes (the-as process-drawable s5-4)) + ) + ) + (draw-actor-marks (the-as process-drawable s5-4)) + ) + ) + ) + (*display-nav-mesh* + (dotimes (s5-5 (-> obj length)) + (let ((v1-145 (-> obj level s5-5))) + (when (= (-> v1-145 status) 'active) + (let ((s4-5 (-> v1-145 bsp nav-meshes))) + (when (nonzero? s4-5) + (dotimes (s3-2 (-> s4-5 length)) + (let ((s2-2 (-> s4-5 s3-2))) + (if (name= *display-nav-mesh* (res-lump-struct s2-2 'name structure)) + (debug-draw s2-2) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (else + (when *display-nav-marks* + (dotimes (s5-6 (-> obj length)) + (let ((v1-163 (-> obj level s5-6))) + (when (= (-> v1-163 status) 'active) + (let ((s4-6 (-> v1-163 bsp nav-meshes))) + (when (nonzero? s4-6) + (dotimes (s3-3 (-> s4-6 length)) + (debug-draw (-> s4-6 s3-3)) + ) + ) + ) + ) + ) + ) + ) + (if (or *display-path-marks* *display-vol-marks*) + (iterate-process-tree + *active-pool* + (the-as (function object object) (lambda ((arg0 process-drawable)) + (when (type? arg0 process-drawable) + (if (nonzero? (-> arg0 path)) + (debug-draw (-> arg0 path)) + ) + (if (nonzero? (-> arg0 vol)) + (debug-draw (-> arg0 vol)) + ) + ) + (none) + ) + ) + *null-kernel-context* + ) + ) + ) + ) + (when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) + (if (not (paused?)) + (float-save-timeplot (if (< (the int (the float (mod (current-time) 600))) 300) + 1.0 + 0.0 + ) + ) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-redline + (new 'static 'vector4w :x #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-blueline + (new 'static 'vector4w :z #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-greenline + (new 'static 'vector4w :y #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + 0.0 + 409600.0 + float-lookup-yellowline + (new 'static 'vector4w :x #xff :y #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + 0.0 + 1.0 + float-lookup-timeplot + (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) + ) + ) + (when *display-split-boxes* + (dotimes (s5-7 (-> obj length)) + (let ((v1-193 (-> obj level s5-7))) + (when (= (-> v1-193 status) 'active) + (let ((s4-7 (-> v1-193 bsp region-tree))) + (when (nonzero? s4-7) + (let* ((s3-4 (-> s4-7 data2 (+ (-> s4-7 length) -1) length)) + (s2-3 0) + (a0-102 (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3)) + ) + (while (< s2-3 s3-4) + (debug-draw-region a0-102 0) + (+! s2-3 1) + (set! a0-102 + (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (when *display-region-marks* + (dotimes (s5-8 (-> obj length)) + (let ((s4-8 (-> obj level s5-8))) + (when (= (-> s4-8 status) 'active) + (when (nonzero? (-> s4-8 bsp region-trees)) + (let* ((s3-5 (-> s4-8 bsp region-trees length)) + (s2-4 0) + (s1-3 (-> s4-8 bsp region-trees s2-4)) + ) + (while (< s2-4 s3-5) + (let ((s0-4 (-> s1-3 data2 (+ (-> s1-3 length) -1) length))) + (set! sv-128 0) + (let ((a0-117 (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128))) + (while (< sv-128 s0-4) + (debug-draw-region a0-117 0) + (set! sv-128 (+ sv-128 1)) + (set! a0-117 + (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128) + ) + ) + ) + ) + (+! s2-4 1) + (set! s1-3 (-> s4-8 bsp region-trees s2-4)) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) ) (defmethod birth! entity-camera ((obj entity-camera)) diff --git a/goal_src/jak2/engine/game/effect-control.gc b/goal_src/jak2/engine/game/effect-control.gc index 9c0702f4c7..7bd7bc48cd 100644 --- a/goal_src/jak2/engine/game/effect-control.gc +++ b/goal_src/jak2/engine/game/effect-control.gc @@ -302,327 +302,301 @@ (sv-496 matrix) (sv-512 res-lump) ) - (with-pp - (cond - ((logtest? (-> obj flags) (effect-control-flag ecf2)) - (return #f) - ) - ((= arg0 'script) - (let ((gp-1 (get-property-struct - (-> obj res) - 'effect-script - 'exact - arg1 - (the-as structure #f) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (script-eval (the-as pair gp-1)) - ) - (return #f) - ) - ) - (let ((s3-0 (-> arg0 value)) - (s5-0 (cond - ((< arg2 0) - (let ((v0-5 (get-property-value - (-> obj res) - 'effect-joint - 'exact - arg1 - (the-as uint128 0) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (if (zero? v0-5) - 0 - (the-as int (+ v0-5 1)) - ) - ) - ) - (else - (empty) - arg2 - ) - ) - ) - ) - (when (logtest? (-> obj flags) (effect-control-flag ecf0)) - (if (send-event (-> obj process) 'effect-control arg0 arg1 s5-0) - (return 0) - ) - ) - (let ((v1-23 (symbol->string arg0))) - (cond - ((and (= (-> v1-23 data 0) 101) - (= (-> v1-23 data 1) 102) - (= (-> v1-23 data 2) 102) - (= (-> v1-23 data 3) 101) - (= (-> v1-23 data 4) 99) - (= (-> v1-23 data 5) 116) - (= (-> v1-23 data 6) 45) - ) - (let* ((s3-1 (-> obj process root)) - (v1-27 (if (type? s3-1 collide-shape-moving) - s3-1 - ) - ) - (t1-2 (if v1-27 - (-> (the-as collide-shape-moving v1-27) ground-pat) - *footstep-surface* - ) - ) - ) - (do-effect-for-surface obj arg0 arg1 s5-0 (-> obj res) t1-2) - ) - ) - ((let ((v1-31 (symbol->string arg0))) - (and (= (-> v1-31 data 0) 103) - (= (-> v1-31 data 1) 114) - (= (-> v1-31 data 2) 111) - (= (-> v1-31 data 3) 117) - (= (-> v1-31 data 4) 112) - (= (-> v1-31 data 5) 45) - ) - ) - (set! s3-0 (cond - ((zero? s3-0) - (let ((v0-10 (lookup-part-group-pointer-by-name (symbol->string arg0)))) - (when v0-10 - (set! (-> arg0 value) v0-10) - (set! s3-0 (-> v0-10 0)) - ) - ) - s3-0 - ) - (else - (-> (the-as (pointer object) s3-0) 0) - ) - ) - ) - (when (and (nonzero? s3-0) (= (-> (the-as basic s3-0) type) sparticle-launch-group)) - (if *debug-effect-control* - (format - #t - "(~5D) effect group ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 + (cond + ((logtest? (-> obj flags) (effect-control-flag ecf2)) + (return #f) + ) + ((= arg0 'script) + (let ((gp-1 (get-property-struct + (-> obj res) + 'effect-script + 'exact arg1 - s5-0 + (the-as structure #f) + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) - (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when s4-1 - (let ((t9-10 (method-of-type part-tracker activate))) - (t9-10 - (the-as part-tracker s4-1) - (-> obj process) - (symbol->string (-> part-tracker symbol)) - (the-as pointer #x70004000) - ) - ) - (let ((s2-1 run-function-in-process) - (s1-0 s4-1) - (s0-0 part-tracker-init) + ) + (script-eval (the-as pair gp-1)) + ) + (return #f) + ) + ) + (let ((s3-0 (-> arg0 value)) + (s5-0 (cond + ((< arg2 0) + (let ((v0-5 (get-property-value + (-> obj res) + 'effect-joint + 'exact + arg1 + (the-as uint128 0) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (if (zero? v0-5) + 0 + (the-as int (+ v0-5 1)) ) - (set! sv-320 0) - (set! sv-336 (the-as symbol #f)) - (set! sv-352 (the-as symbol #f)) - (set! sv-368 (the-as symbol #f)) - (set! sv-400 *launch-matrix*) - (set! sv-384 (-> sv-400 trans)) - (let ((v1-55 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) - (set! (-> sv-384 quad) v1-55) - ) - ((the-as (function object object object object object object object object none) s2-1) - s1-0 - s0-0 - s3-0 - sv-320 - sv-336 - sv-352 - sv-368 - sv-400 - ) ) - (-> s4-1 ppointer) ) - ) - ) - ) - ((let ((v1-58 (symbol->string arg0))) - (and (= (-> v1-58 data 0) 101) - (= (-> v1-58 data 1) 118) - (= (-> v1-58 data 2) 101) - (= (-> v1-58 data 3) 110) - (= (-> v1-58 data 4) 116) - (= (-> v1-58 data 5) 45) + (else + (empty) + arg2 ) - ) - (send-event (-> obj process) arg0 arg1 s5-0) + ) + ) + ) + (when (logtest? (-> obj flags) (effect-control-flag ecf0)) + (if (send-event (-> obj process) 'effect-control arg0 arg1 s5-0) + (return 0) + ) + ) + (let ((v1-23 (symbol->string arg0))) + (cond + ((and (= (-> v1-23 data 0) 101) + (= (-> v1-23 data 1) 102) + (= (-> v1-23 data 2) 102) + (= (-> v1-23 data 3) 101) + (= (-> v1-23 data 4) 99) + (= (-> v1-23 data 5) 116) + (= (-> v1-23 data 6) 45) + ) + (let* ((s3-1 (-> obj process root)) + (v1-27 (if (type? s3-1 collide-shape-moving) + s3-1 + ) + ) + (t1-2 (if v1-27 + (-> (the-as collide-shape-moving v1-27) ground-pat) + *footstep-surface* + ) + ) + ) + (do-effect-for-surface obj arg0 arg1 s5-0 (-> obj res) t1-2) ) - ((= arg0 'camera-shake) - (activate! *camera-smush-control* 819.2 15 75 1.0 0.9 (-> *display* camera-clock)) + ) + ((let ((v1-31 (symbol->string arg0))) + (and (= (-> v1-31 data 0) 103) + (= (-> v1-31 data 1) 114) + (= (-> v1-31 data 2) 111) + (= (-> v1-31 data 3) 117) + (= (-> v1-31 data 4) 112) + (= (-> v1-31 data 5) 45) + ) ) - ((zero? s3-0) - (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) - ) - ((= (-> (the-as basic s3-0) type) sparticle-launcher) + (set! s3-0 (cond + ((zero? s3-0) + (let ((v0-10 (lookup-part-group-pointer-by-name (symbol->string arg0)))) + (when v0-10 + (set! (-> arg0 value) v0-10) + (set! s3-0 (-> v0-10 0)) + ) + ) + s3-0 + ) + (else + (-> (the-as (pointer object) s3-0) 0) + ) + ) + ) + (when (and (nonzero? s3-0) (= (-> (the-as basic s3-0) type) sparticle-launch-group)) (if *debug-effect-control* - (format - #t - "(~5D) effect part ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) + (format #t "(~5D) effect group ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) ) - (format - #t - "-----> (~5D) effect part ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) - (let ((s4-2 sp-launch-particles-var) - (s2-2 *sp-particle-system-2d*) - (s0-2 *launch-matrix*) - ) - (set! (-> s0-2 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad) - ) - (s4-2 - s2-2 - (the-as sparticle-launcher s3-0) - s0-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - ) - ((= (-> (the-as basic s3-0) type) sparticle-launch-group) - (if *debug-effect-control* - (format - #t - "(~5D) effect group ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) - ) - (let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000))) - (when s4-3 - (let ((t9-23 (method-of-type part-tracker activate))) - (t9-23 - (the-as part-tracker s4-3) + (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when s4-1 + (let ((t9-10 (method-of-type part-tracker activate))) + (t9-10 + (the-as part-tracker s4-1) (-> obj process) (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000) ) ) - (let ((s2-3 run-function-in-process) - (s1-3 s4-3) - (s0-3 part-tracker-init) + (let ((s2-1 run-function-in-process) + (s1-0 s4-1) + (s0-0 part-tracker-init) ) - (set! sv-416 0) - (set! sv-432 (the-as symbol #f)) - (set! sv-448 (the-as symbol #f)) - (set! sv-464 (the-as symbol #f)) - (set! sv-496 *launch-matrix*) - (set! sv-480 (-> sv-496 trans)) - (let ((v1-95 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) - (set! (-> sv-480 quad) v1-95) + (set! sv-320 0) + (set! sv-336 (the-as symbol #f)) + (set! sv-352 (the-as symbol #f)) + (set! sv-368 (the-as symbol #f)) + (set! sv-400 *launch-matrix*) + (set! sv-384 (-> sv-400 trans)) + (let ((v1-55 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) + (set! (-> sv-384 quad) v1-55) ) - ((the-as (function object object object object object object object object none) s2-3) - s1-3 - s0-3 + ((the-as (function object object object object object object object object none) s2-1) + s1-0 + s0-0 s3-0 - sv-416 - sv-432 - sv-448 - sv-464 - sv-496 + sv-320 + sv-336 + sv-352 + sv-368 + sv-400 ) ) - (-> s4-3 ppointer) + (-> s4-1 ppointer) ) ) ) - ((= (-> (the-as basic s3-0) type) sound-spec) - (sound-play-by-spec - (the-as sound-spec s3-0) - (new-sound-id) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) - ) + ) + ((let ((v1-58 (symbol->string arg0))) + (and (= (-> v1-58 data 0) 101) + (= (-> v1-58 data 1) 118) + (= (-> v1-58 data 2) 101) + (= (-> v1-58 data 3) 110) + (= (-> v1-58 data 4) 116) + (= (-> v1-58 data 5) 45) + ) ) - ((= (-> (the-as basic s3-0) type) death-info) - (when (and (logtest? (-> obj flags) (effect-control-flag ecf1)) (zero? (-> obj process draw death-timer))) - (let ((v1-106 (-> obj process draw))) - (let ((a1-51 (-> (the-as death-info s3-0) vertex-skip)) - (a0-77 - (max - 2 - (the-as int (/ (-> (the-as death-info s3-0) timer) (the-as uint (the int (-> *display* time-factor))))) - ) - ) - ) - (when (= (-> *setting-control* user-current video-mode) 'pal) - (if (< (the-as uint 1) a1-51) - (set! a1-51 (/ (the-as uint (* (the-as uint 50) a1-51)) (the-as uint 60))) - ) - ) - (let ((a2-37 (-> *display* frames (-> *display* last-screen) run-time))) - (cond - ((< 9000 a2-37) - (set! a1-51 (* a1-51 4)) - ) - ((< 7000 a2-37) - (set! a1-51 (* a1-51 2)) - ) - ) - ) - (set! (-> v1-106 death-vertex-skip) a1-51) - (set! (-> v1-106 death-effect) (-> (the-as death-info s3-0) effect)) - (set! (-> v1-106 death-timer) (the-as uint (+ a0-77 1))) + (send-event (-> obj process) arg0 arg1 s5-0) + ) + ((= arg0 'camera-shake) + (activate! *camera-smush-control* 819.2 15 75 1.0 0.9 (-> *display* camera-clock)) + ) + ((zero? s3-0) + (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) + ) + ((= (-> (the-as basic s3-0) type) sparticle-launcher) + (if *debug-effect-control* + (format #t "(~5D) effect part ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) + ) + (format + #t + "-----> (~5D) effect part ~A ~A frame ~F joint ~D~%" + (current-time) + (-> obj process name) + arg0 + arg1 + s5-0 + ) + (let ((s4-2 sp-launch-particles-var) + (s2-2 *sp-particle-system-2d*) + (s0-2 *launch-matrix*) + ) + (set! (-> s0-2 trans quad) + (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad) ) - (set! (-> v1-106 death-timer-org) (-> v1-106 death-timer)) - (set! (-> v1-106 death-draw-overlap) (-> (the-as death-info s3-0) overlap)) - ) - (when (-> (the-as death-info s3-0) sound) - (let* ((s2-5 obj) - (s1-4 (method-of-object s2-5 play-effect-sound)) - (s0-4 (-> (the-as death-info s3-0) sound)) - ) - (set! sv-512 (-> obj res)) - (let ((t1-12 (string->sound-name (symbol->string (-> (the-as death-info s3-0) sound))))) - (s1-4 s2-5 s0-4 arg1 s5-0 sv-512 t1-12) - ) + (s4-2 + s2-2 + (the-as sparticle-launcher s3-0) + s0-2 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + ) + ) + ((= (-> (the-as basic s3-0) type) sparticle-launch-group) + (if *debug-effect-control* + (format #t "(~5D) effect group ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) + ) + (let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000))) + (when s4-3 + (let ((t9-23 (method-of-type part-tracker activate))) + (t9-23 + (the-as part-tracker s4-3) + (-> obj process) + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) ) ) - (send-event (-> obj process) 'death-start (the-as death-info s3-0)) + (let ((s2-3 run-function-in-process) + (s1-3 s4-3) + (s0-3 part-tracker-init) + ) + (set! sv-416 0) + (set! sv-432 (the-as symbol #f)) + (set! sv-448 (the-as symbol #f)) + (set! sv-464 (the-as symbol #f)) + (set! sv-496 *launch-matrix*) + (set! sv-480 (-> sv-496 trans)) + (let ((v1-95 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) + (set! (-> sv-480 quad) v1-95) + ) + ((the-as (function object object object object object object object object none) s2-3) + s1-3 + s0-3 + s3-0 + sv-416 + sv-432 + sv-448 + sv-464 + sv-496 + ) + ) + (-> s4-3 ppointer) ) ) - (else - (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) - ) + ) + ((= (-> (the-as basic s3-0) type) sound-spec) + (sound-play-by-spec + (the-as sound-spec s3-0) + (new-sound-id) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) + ) + ) + ((= (-> (the-as basic s3-0) type) death-info) + (when (and (logtest? (-> obj flags) (effect-control-flag ecf1)) (zero? (-> obj process draw death-timer))) + (let ((v1-106 (-> obj process draw))) + (let ((a1-51 (-> (the-as death-info s3-0) vertex-skip)) + (a0-77 + (max + 2 + (the-as int (/ (-> (the-as death-info s3-0) timer) (the-as uint (the int (-> *display* time-factor))))) + ) + ) + ) + (when (= (-> *setting-control* user-current video-mode) 'pal) + (if (< (the-as uint 1) a1-51) + (set! a1-51 (/ (the-as uint (* (the-as uint 50) a1-51)) (the-as uint 60))) + ) + ) + (let ((a2-37 (-> *display* frames (-> *display* last-screen) run-time))) + (cond + ((< 9000 a2-37) + (set! a1-51 (* a1-51 4)) + ) + ((< 7000 a2-37) + (set! a1-51 (* a1-51 2)) + ) + ) + ) + (set! (-> v1-106 death-vertex-skip) a1-51) + (set! (-> v1-106 death-effect) (-> (the-as death-info s3-0) effect)) + (set! (-> v1-106 death-timer) (the-as uint (+ a0-77 1))) + ) + (set! (-> v1-106 death-timer-org) (-> v1-106 death-timer)) + (set! (-> v1-106 death-draw-overlap) (-> (the-as death-info s3-0) overlap)) + ) + (when (-> (the-as death-info s3-0) sound) + (let* ((s2-5 obj) + (s1-4 (method-of-object s2-5 play-effect-sound)) + (s0-4 (-> (the-as death-info s3-0) sound)) + ) + (set! sv-512 (-> obj res)) + (let ((t1-12 (string->sound-name (symbol->string (-> (the-as death-info s3-0) sound))))) + (s1-4 s2-5 s0-4 arg1 s5-0 sv-512 t1-12) + ) + ) + ) + (send-event (-> obj process) 'death-start (the-as death-info s3-0)) + ) + ) + (else + (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod do-effect-for-surface effect-control ((obj effect-control) (arg0 symbol) (arg1 float) (arg2 int) (arg3 basic) (arg4 pat-surface)) @@ -1058,90 +1032,88 @@ (defmethod play-effect-sound effect-control ((obj effect-control) (arg0 symbol) (arg1 float) (arg2 int) (arg3 basic) (arg4 sound-name)) (local-vars (sv-112 res-tag) (sv-128 sound-name) (sv-144 basic) (sv-160 (function vector vector float))) - (with-pp - (set! sv-144 arg3) - (let ((s0-0 arg4) - (gp-0 (the-as object (new 'stack 'sound-spec))) - (s5-0 (if (< arg2 0) - (the-as vector #f) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data arg2)) - ) + (set! sv-144 arg3) + (let ((s0-0 arg4) + (gp-0 (the-as object (new 'stack 'sound-spec))) + (s5-0 (if (< arg2 0) + (the-as vector #f) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data arg2)) + ) + ) + ) + (set! (-> (the-as sound-spec gp-0) sound-name) s0-0) + (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask volume)) + (set! (-> (the-as sound-spec gp-0) pitch-mod) 0) + (set! (-> (the-as sound-spec gp-0) volume) 1024) + (set! sv-112 (new 'static 'res-tag)) + (let* ((t9-2 (method-of-type res-lump get-property-data)) + (a1-5 'effect-param) + (a2-1 'exact) + (a3-1 arg1) + (t0-1 #f) + (t1-1 (the-as (pointer res-tag) (& sv-112))) + (t2-0 *res-static-buf*) + (a1-6 (t9-2 (the-as res-lump sv-144) a1-5 a2-1 a3-1 (the-as pointer t0-1) t1-1 t2-0)) + ) + (when a1-6 + (effect-param->sound-spec + (the-as sound-spec gp-0) + (the-as (pointer float) a1-6) + (the-as int (-> sv-112 elt-count)) + (the-as process-focusable (-> obj process)) + ) + (if (logtest? (-> (the-as sound-spec gp-0) mask) (sound-mask unk)) + (return 0) + ) + ) + ) + (let ((f0-0 (-> *setting-control* user-current under-water-pitch-mod))) + (when (!= f0-0 0.0) + (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask pitch)) + (let ((f0-1 (* 2.0 f0-0))) + (set! (-> (the-as sound-spec gp-0) pitch-mod) + (- (-> (the-as sound-spec gp-0) pitch-mod) (the int (* 1524.0 f0-1))) ) ) - (set! (-> (the-as sound-spec gp-0) sound-name) s0-0) - (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask volume)) - (set! (-> (the-as sound-spec gp-0) pitch-mod) 0) - (set! (-> (the-as sound-spec gp-0) volume) 1024) - (set! sv-112 (new 'static 'res-tag)) - (let* ((t9-2 (method-of-type res-lump get-property-data)) - (a1-5 'effect-param) - (a2-1 'exact) - (a3-1 arg1) - (t0-1 #f) - (t1-1 (the-as (pointer res-tag) (& sv-112))) - (t2-0 *res-static-buf*) - (a1-6 (t9-2 (the-as res-lump sv-144) a1-5 a2-1 a3-1 (the-as pointer t0-1) t1-1 t2-0)) - ) - (when a1-6 - (effect-param->sound-spec - (the-as sound-spec gp-0) - (the-as (pointer float) a1-6) - (the-as int (-> sv-112 elt-count)) - (the-as process-focusable (-> obj process)) - ) - (if (logtest? (-> (the-as sound-spec gp-0) mask) (sound-mask unk)) - (return 0) - ) - ) ) - (let ((f0-0 (-> *setting-control* user-current under-water-pitch-mod))) - (when (!= f0-0 0.0) - (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask pitch)) - (let ((f0-1 (* 2.0 f0-0))) - (set! (-> (the-as sound-spec gp-0) pitch-mod) - (- (-> (the-as sound-spec gp-0) pitch-mod) (the int (* 1524.0 f0-1))) - ) - ) - ) - ) - (if (or (and (nonzero? (-> (the-as sound-spec gp-0) fo-max)) - (let ((f30-0 (* 4096.0 (the float (-> (the-as sound-spec gp-0) fo-max))))) - (set! sv-160 vector-vector-distance) - (let ((a0-8 (ear-trans 0)) - (a1-7 s5-0) - ) - (< f30-0 (sv-160 a0-8 a1-7)) - ) + ) + (if (or (and (nonzero? (-> (the-as sound-spec gp-0) fo-max)) + (let ((f30-0 (* 4096.0 (the float (-> (the-as sound-spec gp-0) fo-max))))) + (set! sv-160 vector-vector-distance) + (let ((a0-8 (ear-trans 0)) + (a1-7 s5-0) + ) + (< f30-0 (sv-160 a0-8 a1-7)) ) ) - (= (-> (the-as (pointer int8) gp-0) 9) 126) - ) - (return 0) - ) - (when *debug-effect-control* - (set! sv-128 s0-0) - (string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128))) - (format - #t - "(~5D) effect sound ~A ~A (~S) frame ~F joint ~D " - (-> pp clock frame-counter) - (-> obj process name) - arg0 - *temp-string* - arg1 - arg2 - ) - (format - #t - "volume: ~f pitch-mod: ~f~%" - (* 0.09765625 (the float (-> (the-as sound-spec gp-0) volume))) - (* 0.000656168 (the float (-> (the-as sound-spec gp-0) pitch-mod))) - ) + ) + (= (-> (the-as (pointer int8) gp-0) 9) 126) + ) + (return 0) + ) + (when *debug-effect-control* + (set! sv-128 s0-0) + (string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128))) + (format + #t + "(~5D) effect sound ~A ~A (~S) frame ~F joint ~D " + (current-time) + (-> obj process name) + arg0 + *temp-string* + arg1 + arg2 + ) + (format + #t + "volume: ~f pitch-mod: ~f~%" + (* 0.09765625 (the float (-> (the-as sound-spec gp-0) volume))) + (* 0.000656168 (the float (-> (the-as sound-spec gp-0) pitch-mod))) ) - (sound-play-by-spec (the-as sound-spec gp-0) (new-sound-id) s5-0) ) - 0 + (sound-play-by-spec (the-as sound-spec gp-0) (new-sound-id) s5-0) ) + 0 ) (defbehavior target-land-effect target () diff --git a/goal_src/jak2/engine/game/game-info.gc b/goal_src/jak2/engine/game/game-info.gc index e5298b78ed..0e04bd76ed 100644 --- a/goal_src/jak2/engine/game/game-info.gc +++ b/goal_src/jak2/engine/game/game-info.gc @@ -902,8 +902,8 @@ (set! (-> v1-9 origin z) (the float (/ (-> s3-0 z) 16))) ) (set! (-> s5-0 flags) (font-flags shadow kerning large)) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (+ arg2 -75)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (+ arg2 -75)) (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) (let ((s2-0 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) @@ -912,9 +912,9 @@ (suspend) ) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.25)) - (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) s4-1)) 0.0 150.0)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.25)) + (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (current-time) s4-1)) 0.0 150.0)) (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) (let ((s3-2 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) @@ -1339,8 +1339,8 @@ process (lambda :behavior process ((arg0 string)) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 10)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 10)) (format *stdcon* "~S~%" arg0) (suspend) ) diff --git a/goal_src/jak2/engine/game/main.gc b/goal_src/jak2/engine/game/main.gc index eba2313641..b48b332328 100644 --- a/goal_src/jak2/engine/game/main.gc +++ b/goal_src/jak2/engine/game/main.gc @@ -1230,8 +1230,8 @@ (set! (-> *setting-control* user-default music-volume) 0.0) (set! (-> *setting-control* user-default dialog-volume) 0.0) (set! (-> *setting-control* user-default ambient-volume) 0.0) - (let ((s5-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) s5-0) (seconds 0.1)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.1)) (suspend) ) ) diff --git a/goal_src/jak2/engine/game/task/task-control.gc b/goal_src/jak2/engine/game/task/task-control.gc index 701b833d15..07730fd042 100644 --- a/goal_src/jak2/engine/game/task/task-control.gc +++ b/goal_src/jak2/engine/game/task/task-control.gc @@ -1538,11 +1538,11 @@ ) ) (logior! (-> self flags) (fail-mission-flags famflags-1)) - (set! (-> self grabbed-time) (-> self clock frame-counter)) + (set! (-> self grabbed-time) (current-time)) (when (not (logtest? (-> self flags) (fail-mission-flags famflags-3))) (when (not (logtest? (-> self flags) (fail-mission-flags famflags-5))) - (while (< (- (-> self clock frame-counter) (-> self grabbed-time)) (seconds 1.5)) - (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self grabbed-time))) 0.0 450.0))) + (while (< (- (current-time) (-> self grabbed-time)) (seconds 1.5)) + (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self grabbed-time))) 0.0 450.0))) (set-filter-color! (lerp-scale 1.0 1.25 f30-0 0.0 1.0) (lerp-scale 1.0 0.875 f30-0 0.0 1.0) @@ -1565,7 +1565,7 @@ (((fail-mission-message fammsg-0)) (until #f (when (or (and (logtest? (-> self flags) (fail-mission-flags famflags-0)) - (>= (- (-> self clock frame-counter) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) + (>= (- (current-time) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) ) (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logtest? (-> self flags) (fail-mission-flags famflags-3)) @@ -1658,9 +1658,9 @@ ) :code (behavior () (local-vars (a1-10 basic)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) - (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 270.0))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) + (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 270.0))) (when *sound-player-enable* (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-6 command) (sound-command set-param)) @@ -1671,7 +1671,7 @@ ) ) ) - (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 300.0))) + (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 300.0))) (set-filter-color! (lerp-scale 1.0 1.25 f30-1 0.0 1.0) (lerp-scale 1.0 0.875 f30-1 0.0 1.0) @@ -1826,7 +1826,7 @@ (set! (-> self lev-name) arg1) (add-setting! 'task arg0 0.0 0) (add-setting! 'task-manager (process->ppointer self) 0.0 0) - (set! (-> self intro-time) (-> self clock frame-counter)) + (set! (-> self intro-time) (current-time)) (set! (-> self fail-on-death?) (not (logtest? (-> arg0 flags) (game-task-node-flag no-fail-on-death)))) (when arg1 (let* ((v1-15 (level-get *level* arg1)) @@ -1852,29 +1852,27 @@ ) (defmethod check-time task-manager ((obj task-manager)) - (with-pp - (when (nonzero? (-> obj start-time)) - (let ((v1-3 (handle->process (-> obj hud-timer)))) - (if (and *target* (not v1-3)) - (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) - ) + (when (nonzero? (-> obj start-time)) + (let ((v1-3 (handle->process (-> obj hud-timer)))) + (if (and *target* (not v1-3)) + (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) + ) + ) + (let ((v1-15 (- (-> obj time-limit) (- (current-time) (-> obj start-time))))) + (let ((a0-15 *game-info*)) + (set! (-> a0-15 timer) v1-15) + (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) ) - (let ((v1-15 (- (-> obj time-limit) (- (-> pp clock frame-counter) (-> obj start-time))))) - (let ((a0-15 *game-info*)) - (set! (-> a0-15 timer) v1-15) - (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) - ) - (when (< v1-15 0) - (if *debug-segment* - (format #t "task failed: ran out of time~%") - ) - (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) - (go (method-of-object obj fail)) - ) + (when (< v1-15 0) + (if *debug-segment* + (format #t "task failed: ran out of time~%") + ) + (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) + (go (method-of-object obj fail)) ) ) - 0 ) + 0 ) (defmethod initialize! task-manager ((obj task-manager)) @@ -2033,28 +2031,26 @@ ;; WARN: Return type mismatch object vs symbol. (defmethod task-manager-method-22 task-manager ((obj task-manager)) - (with-pp - (the-as - symbol - (and (or (not (logtest? (-> obj node-info flags) (game-task-node-flag city-wait))) - (let ((a0-2 (level-get-target-inside *level*))) - (cond - ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) - (set! (-> obj intro-time) (-> pp clock frame-counter)) - #f - ) - (else - #t - ) + (the-as + symbol + (and (or (not (logtest? (-> obj node-info flags) (game-task-node-flag city-wait))) + (let ((a0-2 (level-get-target-inside *level*))) + (cond + ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) + (set! (-> obj intro-time) (current-time)) + #f + ) + (else + #t ) ) ) - (or (zero? (-> obj info intro-delay)) - (>= (- (-> pp clock frame-counter) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) - ) - (and *target* (not (logtest? (focus-status dead teleporting) (-> *target* focus-status)))) - ) - ) + ) + (or (zero? (-> obj info intro-delay)) + (>= (- (current-time) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) + ) + (and *target* (not (logtest? (focus-status dead teleporting) (-> *target* focus-status)))) + ) ) ) @@ -2153,7 +2149,7 @@ (t9-3) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (logtest? (-> self info mask) (task-manager-mask resolution-scene)) (let ((gp-2 (ppointer->handle (process-spawn scene-player diff --git a/goal_src/jak2/engine/gfx/hw/display-h.gc b/goal_src/jak2/engine/gfx/hw/display-h.gc index d5d83391c3..802fe7ad76 100644 --- a/goal_src/jak2/engine/gfx/hw/display-h.gc +++ b/goal_src/jak2/engine/gfx/hw/display-h.gc @@ -132,10 +132,6 @@ At any point in time, there are 3 frames in progress: `(-> *display* frames (-> *display* on-screen)) ) -(defmacro current-time () - `(-> *display* base-frame-counter) - ) - (defmacro integral-current-time () `(-> *display* integral-frame-counter) ) diff --git a/goal_src/jak2/engine/gfx/mood/weather-part.gc b/goal_src/jak2/engine/gfx/mood/weather-part.gc index ef08540a65..80552e970c 100644 --- a/goal_src/jak2/engine/gfx/mood/weather-part.gc +++ b/goal_src/jak2/engine/gfx/mood/weather-part.gc @@ -748,7 +748,7 @@ ) (defbehavior cam-master-effect camera-master () - (when (not (or (movie?) (>= (+ (-> self clock frame-counter) (seconds -10)) (-> self water-drip-time)))) + (when (not (or (movie?) (>= (+ (current-time) (seconds -10)) (-> self water-drip-time)))) (set! (-> *part-id-table* 46 init-specs 1 initial-valuef) (-> self water-drip-mult)) (set! (-> *part-id-table* 45 init-specs 1 initial-valuef) (* 0.9 (-> self water-drip-mult))) (set! (-> *part-id-table* 43 init-specs 11 initial-valuef) (* -2.7306666 (-> self water-drip-speed))) diff --git a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc index a85d2926b6..de6f2b65ee 100644 --- a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc +++ b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc @@ -247,7 +247,11 @@ (def-mips2c particle-adgif (function adgif-shader texture-id none)) - +;; ERROR: Bad vector register dependency: vf16 +;; ERROR: Bad vector register dependency: vf17 +;; ERROR: Bad vector register dependency: vf18 +;; ERROR: Bad vector register dependency: vf19 +;; ERROR: Bad vector register dependency: vf20 (defun particle-adgif-callback ((arg0 adgif-shader) (arg1 texture-id)) "Callback to update the adgif of a particle, keeping only alpha and clamp. This is new for jak 2. @@ -374,14 +378,14 @@ (cond ((< (-> s5-0 w) 0.0) (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 vec quad)) + (.lvf vf2 (&-> s5-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 vec quad)) + (.lvf vf2 (&-> s5-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-2 vf1) @@ -498,12 +502,12 @@ ) (set! (-> s5-0 vector 1 y) 0.0) (set! (-> s5-0 vector 1 z) (the float (sar (shl (the int (-> s5-0 vector 1 z)) 48) 48))) - (.lvf vf4 (&-> s5-0 vector 2 quad)) - (.lvf vf5 (&-> s5-0 vector 0 quad)) + (.lvf vf4 (&-> s5-0 quad 2)) + (.lvf vf5 (&-> s5-0 quad 0)) (.min.x.vf vf4 vf4 vf31 :mask #b111) (.add.vf vf5 vf5 vf30 :mask #b111) - (.svf (&-> s5-0 vector 2 quad) vf4) - (.svf (&-> s5-0 vector 0 quad) vf5) + (.svf (&-> s5-0 quad 2) vf4) + (.svf (&-> s5-0 quad 0) vf5) (when (not *death-adgif*) (set! *death-adgif* (new 'static 'adgif-shader)) (particle-adgif *death-adgif* (new 'static 'texture-id :index #xc9 :page #xc)) @@ -526,19 +530,19 @@ ) (set! (-> gp-0 clock-index) (the-as uint 8)) (.lvf vf4 (&-> (-> *time-of-day-context* current-prt-color) quad)) - (.lvf vf5 (&-> s5-0 vector 2 quad)) + (.lvf vf5 (&-> s5-0 quad 2)) (.lvf vf6 (&-> gp-0 fade quad)) (.mul.vf vf5 vf5 vf4 :mask #b111) (.mul.vf vf6 vf6 vf4 :mask #b111) - (.svf (&-> s5-0 vector 2 quad) vf5) + (.svf (&-> s5-0 quad 2) vf5) (.svf (&-> gp-0 fade quad) vf6) (.mov v1-26 vf6) (set! (-> gp-0 key) (the-as sparticle-launch-control 0)) (set! (-> gp-0 binding) #f) (let ((v1-27 (-> gp-0 sprite))) - (.lvf vf1 (&-> s5-0 vector 0 quad)) - (.lvf vf2 (&-> s5-0 vector 1 quad)) - (.lvf vf3 (&-> s5-0 vector 2 quad)) + (.lvf vf1 (&-> s5-0 quad 0)) + (.lvf vf2 (&-> s5-0 quad 1)) + (.lvf vf3 (&-> s5-0 quad 2)) (.svf (&-> v1-27 x-y-z-sx quad) vf1) (.svf (&-> v1-27 flag-rot-sy quad) vf2) (.sub.w.vf vf3 vf0 vf0 :mask #b1000) @@ -755,87 +759,85 @@ ) (defmethod initialize sparticle-launch-control ((obj sparticle-launch-control) (arg0 sparticle-launch-group) (arg1 process)) - (with-pp - (let ((s5-0 0)) - (set! (-> obj group) arg0) - (set! (-> obj proc) (the-as process-drawable arg1)) - (set! (-> obj local-clock) 0) - (set! (-> obj fade) 1.0) - (set! (-> obj matrix) 0) - (set! (-> obj last-spawn-frame) (the-as int (+ (-> *display* real-frame-clock integral-frame-counter) -2))) - (set! (-> obj last-spawn-time) 0) - (if (logtest? (-> obj group flags) (sp-group-flag unk-4)) - (quaternion->matrix (-> obj origin) (-> (the-as process-drawable arg1) root quat)) - (matrix-identity! (-> obj origin)) - ) - (when (logtest? (-> arg0 flags) (sp-group-flag unk-6)) - (let ((f0-1 (-> arg0 rotate-x)) - (f1-0 (-> arg0 rotate-y)) - (f2-0 (-> arg0 rotate-z)) - (t9-2 matrix-rotate-xyz!) - (a0-3 (new 'stack-no-clear 'matrix)) - (a1-2 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-2 x) f0-1) - (set! (-> a1-2 y) f1-0) - (set! (-> a1-2 z) f2-0) - (set! (-> a1-2 w) 1.0) - (let ((a1-3 (t9-2 a0-3 a1-2))) - (matrix*! (-> obj origin) a1-3 (-> obj origin)) + (let ((s5-0 0)) + (set! (-> obj group) arg0) + (set! (-> obj proc) (the-as process-drawable arg1)) + (set! (-> obj local-clock) 0) + (set! (-> obj fade) 1.0) + (set! (-> obj matrix) 0) + (set! (-> obj last-spawn-frame) (the-as int (+ (-> *display* real-frame-clock integral-frame-counter) -2))) + (set! (-> obj last-spawn-time) 0) + (if (logtest? (-> obj group flags) (sp-group-flag unk-4)) + (quaternion->matrix (-> obj origin) (-> (the-as process-drawable arg1) root quat)) + (matrix-identity! (-> obj origin)) + ) + (when (logtest? (-> arg0 flags) (sp-group-flag unk-6)) + (let ((f0-1 (-> arg0 rotate-x)) + (f1-0 (-> arg0 rotate-y)) + (f2-0 (-> arg0 rotate-z)) + (t9-2 matrix-rotate-xyz!) + (a0-3 (new 'stack-no-clear 'matrix)) + (a1-2 (new 'stack-no-clear 'vector)) ) + (set! (-> a1-2 x) f0-1) + (set! (-> a1-2 y) f1-0) + (set! (-> a1-2 z) f2-0) + (set! (-> a1-2 w) 1.0) + (let ((a1-3 (t9-2 a0-3 a1-2))) + (matrix*! (-> obj origin) a1-3 (-> obj origin)) ) ) - (when (logtest? (-> arg0 flags) (sp-group-flag unk-7)) - (let ((a1-4 (new 'stack-no-clear 'vector))) - (set! (-> a1-4 x) (-> arg0 scale-x)) - (set! (-> a1-4 y) (-> arg0 scale-y)) - (set! (-> a1-4 z) (-> arg0 scale-z)) - (set! (-> a1-4 w) 1.0) - (set! (-> a1-4 w) 1.0) - (scale-matrix! (-> obj origin) a1-4 (-> obj origin)) - ) - ) - (dotimes (s3-0 (-> arg0 length)) - (let* ((a0-7 (-> arg0 launcher s3-0)) - (a1-6 (-> *part-id-table* (-> a0-7 launcher))) - (v1-29 (-> obj data s5-0)) - ) - (when (nonzero? a1-6) - (set! (-> v1-29 group-item) a0-7) - (cond - ((= (-> a1-6 type) sparticle-launcher) - (set! (-> v1-29 accum) 0.0) - (set! (-> v1-29 spawn-time) (the-as uint (+ (-> pp clock frame-counter) (seconds -100)))) - (set! (-> v1-29 offset) (the-as uint (-> a0-7 offset))) - (set! (-> v1-29 randomize) (the-as uint 0)) - (cond - ((logtest? (-> a0-7 flags) (sp-group-item-flag start-dead)) - (logclear! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) - (set! (-> v1-29 center) #f) - (set! (-> v1-29 sprite3d) #f) - (set! (-> v1-29 sprite) #f) - ) - (else - (logior! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) - (set! (-> v1-29 center) (-> obj origin trans)) - (set! (-> v1-29 sprite3d) #f) - (set! (-> v1-29 sprite) #f) - ) - ) - (+! s5-0 1) - ) - (else - (format 0 "initialize called with non-particle-launcher~%") - ) - ) - ) - ) - ) - (set! (-> obj length) s5-0) ) - 0 - (none) + (when (logtest? (-> arg0 flags) (sp-group-flag unk-7)) + (let ((a1-4 (new 'stack-no-clear 'vector))) + (set! (-> a1-4 x) (-> arg0 scale-x)) + (set! (-> a1-4 y) (-> arg0 scale-y)) + (set! (-> a1-4 z) (-> arg0 scale-z)) + (set! (-> a1-4 w) 1.0) + (set! (-> a1-4 w) 1.0) + (scale-matrix! (-> obj origin) a1-4 (-> obj origin)) + ) + ) + (dotimes (s3-0 (-> arg0 length)) + (let* ((a0-7 (-> arg0 launcher s3-0)) + (a1-6 (-> *part-id-table* (-> a0-7 launcher))) + (v1-29 (-> obj data s5-0)) + ) + (when (nonzero? a1-6) + (set! (-> v1-29 group-item) a0-7) + (cond + ((= (-> a1-6 type) sparticle-launcher) + (set! (-> v1-29 accum) 0.0) + (set! (-> v1-29 spawn-time) (the-as uint (+ (current-time) (seconds -100)))) + (set! (-> v1-29 offset) (the-as uint (-> a0-7 offset))) + (set! (-> v1-29 randomize) (the-as uint 0)) + (cond + ((logtest? (-> a0-7 flags) (sp-group-item-flag start-dead)) + (logclear! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) + (set! (-> v1-29 center) #f) + (set! (-> v1-29 sprite3d) #f) + (set! (-> v1-29 sprite) #f) + ) + (else + (logior! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) + (set! (-> v1-29 center) (-> obj origin trans)) + (set! (-> v1-29 sprite3d) #f) + (set! (-> v1-29 sprite) #f) + ) + ) + (+! s5-0 1) + ) + (else + (format 0 "initialize called with non-particle-launcher~%") + ) + ) + ) + ) + ) + (set! (-> obj length) s5-0) ) + 0 + (none) ) ;; WARN: Return type mismatch object vs sparticle-launch-control. @@ -916,14 +918,14 @@ (defmethod spawn-with-matrix sparticle-launch-control ((obj sparticle-launch-control) (arg0 matrix)) (let* ((a2-0 (-> obj origin)) (a3-0 arg0) - (v1-0 (-> a3-0 vector 0 quad)) - (a0-1 (-> a3-0 vector 1 quad)) - (a1-1 (-> a3-0 vector 2 quad)) + (v1-0 (-> a3-0 quad 0)) + (a0-1 (-> a3-0 quad 1)) + (a1-1 (-> a3-0 quad 2)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> a2-0 vector 0 quad) v1-0) - (set! (-> a2-0 vector 1 quad) a0-1) - (set! (-> a2-0 vector 2 quad) a1-1) + (set! (-> a2-0 quad 0) v1-0) + (set! (-> a2-0 quad 1) a0-1) + (set! (-> a2-0 quad 2) a1-1) (set! (-> a2-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -962,14 +964,14 @@ (defmethod spawn-with-cspace sparticle-launch-control ((obj sparticle-launch-control) (arg0 cspace)) (let* ((v1-0 (-> obj origin)) (a3-0 (-> arg0 bone transform)) - (a0-2 (-> a3-0 vector 0 quad)) - (a1-1 (-> a3-0 vector 1 quad)) - (a2-0 (-> a3-0 vector 2 quad)) + (a0-2 (-> a3-0 quad 0)) + (a1-1 (-> a3-0 quad 1)) + (a2-0 (-> a3-0 quad 2)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> v1-0 vector 0 quad) a0-2) - (set! (-> v1-0 vector 1 quad) a1-1) - (set! (-> v1-0 vector 2 quad) a2-0) + (set! (-> v1-0 quad 0) a0-2) + (set! (-> v1-0 quad 1) a1-1) + (set! (-> v1-0 quad 2) a2-0) (set! (-> v1-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -1005,13 +1007,14 @@ (none) ) +;; WARN: Function (method 11 sparticle-launch-control) has a return type of none, but the expression builder found a return statement. (defmethod spawn sparticle-launch-control ((obj sparticle-launch-control) (arg0 vector)) (with-pp (set! (-> obj origin trans quad) (-> arg0 quad)) (if (not (or (is-visible? obj arg0) (logtest? (-> obj group flags) (sp-group-flag always-draw screen-space)))) (return 0) ) - (let ((s4-0 (the-as int (-> pp clock frame-counter))) + (let ((s4-0 (the-as int (current-time))) (s5-0 (-> obj last-spawn-time)) ) (let ((v1-10 (-> *display* real-frame-clock integral-frame-counter))) @@ -1348,14 +1351,14 @@ (cond ((< (-> gp-0 w) 0.0) (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 vec quad)) + (.lvf vf2 (&-> gp-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 vec quad)) + (.lvf vf2 (&-> gp-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-2 vf1) @@ -1396,14 +1399,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-5 vf1) ) (else (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-6 vf1) @@ -1459,14 +1462,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-18 vf1) ) (else (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-19 vf1) @@ -1909,14 +1912,14 @@ (cond ((< (-> s5-1 w) 0.0) (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 vec quad)) + (.lvf vf2 (&-> s5-1 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-0 vf1) ) (else (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 vec quad)) + (.lvf vf2 (&-> s5-1 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-1 vf1) @@ -1943,14 +1946,14 @@ (cond ((< (-> v1-0 w) 0.0) (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 vec quad)) + (.lvf vf2 (&-> v1-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-2 vf1) ) (else (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 vec quad)) + (.lvf vf2 (&-> v1-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-3 vf1) diff --git a/goal_src/jak2/engine/load/load-state.gc b/goal_src/jak2/engine/load/load-state.gc index f6144e774a..cac9fe8310 100644 --- a/goal_src/jak2/engine/load/load-state.gc +++ b/goal_src/jak2/engine/load/load-state.gc @@ -290,7 +290,7 @@ (return #f) ) (if *display-load-commands* - (format 0 "NOTICE: ~D: ~f: execute command ~A~%" (-> pp clock frame-counter) f0-0 s3-0) + (format 0 "NOTICE: ~D: ~f: execute command ~A~%" (current-time) f0-0 s3-0) ) (cond ((pair? (car s3-0)) diff --git a/goal_src/jak2/engine/load/loader.gc b/goal_src/jak2/engine/load/loader.gc index bdf3bd3fb2..4c9eca87a5 100644 --- a/goal_src/jak2/engine/load/loader.gc +++ b/goal_src/jak2/engine/load/loader.gc @@ -858,7 +858,7 @@ (set-setting! 'spooling (process->ppointer self) 0.0 0) (set-setting! 'spool-anim (-> gp-0 anim) 0.0 0) (apply-settings *setting-control*) - (set! (-> gp-0 old-time) (-> self clock frame-counter)) + (set! (-> gp-0 old-time) (current-time)) (while (< (-> gp-0 part) (-> gp-0 anim parts)) (when (> (-> gp-0 part) 0) (while (let ((v1-99 (file-status *art-control* (-> gp-0 anim name) (-> gp-0 part)))) @@ -1004,13 +1004,13 @@ (f28-0 (+ (-> gp-0 part-audio-start) (/ (the float (+ (-> s5-8 frames num-frames) -1)) f30-0))) ) (set! sv-176 (current-str-pos (-> gp-0 sid))) - (set! (-> gp-0 good-time) (-> self clock frame-counter)) + (set! (-> gp-0 good-time) (current-time)) (until (>= (the float v0-59) f28-0) (if (= (-> self skel root-channel 0) (-> self skel channel)) (logior! (-> self skel status) (joint-control-status valid-spooled-frame)) ) (if (or ((-> gp-0 break-func) self) - (and (<= sv-176 0) (>= (- (-> self clock frame-counter) (-> gp-0 good-time)) (seconds 4))) + (and (<= sv-176 0) (>= (- (current-time) (-> gp-0 good-time)) (seconds 4))) (and (< 300 (-> gp-0 good-count)) (<= sv-176 0)) ) (goto cfg-130) @@ -1041,15 +1041,15 @@ (execute-commands-up-to *load-state* (ja-aframe-num 0)) (cond ((and (< (-> gp-0 old-pos) sv-176) (< -1 sv-176)) - (+! (-> gp-0 good-count) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) - (set! (-> gp-0 good-time) (-> self clock frame-counter)) + (+! (-> gp-0 good-count) (- (current-time) (-> self clock old-frame-counter))) + (set! (-> gp-0 good-time) (current-time)) ) (else 0 ) ) (set! (-> gp-0 old-pos) sv-176) - (set! (-> gp-0 old-time) (-> self clock frame-counter)) + (set! (-> gp-0 old-time) (current-time)) (suspend) (let* ((f26-0 (* (- (the float (current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0)) (f0-16 (if (str-id-is-playing? (the-as int (-> gp-0 sid))) diff --git a/goal_src/jak2/engine/math/transformq.gc b/goal_src/jak2/engine/math/transformq.gc index 8615a8f5e5..0755599719 100644 --- a/goal_src/jak2/engine/math/transformq.gc +++ b/goal_src/jak2/engine/math/transformq.gc @@ -47,20 +47,19 @@ (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) ) (let ((f0-2 (-> obj old-y-angle-diff))) - (set! f30-0 (cond - ((or (= f0-2 0.0) - (and (< 0.0 f30-0) (< 0.0 f0-2)) - (or (and (< f30-0 0.0) (< f0-2 0.0)) - (>= (- (-> pp clock frame-counter) (-> obj angle-change-time)) (seconds 0.2)) - ) - ) - (set! (-> obj angle-change-time) (-> pp clock frame-counter)) - f30-0 - ) - (else - (* 0.000000001 f30-0) - ) - ) + (set! f30-0 + (cond + ((or (= f0-2 0.0) + (and (< 0.0 f30-0) (< 0.0 f0-2)) + (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) + ) + (set! (-> obj angle-change-time) (current-time)) + f30-0 + ) + (else + (* 0.000000001 f30-0) + ) + ) ) ) (set! (-> obj old-y-angle-diff) f30-0) @@ -256,11 +255,11 @@ (defun transformq-copy! ((arg0 transformq) (arg1 transformq)) "Set arg0 = arg1" (let ((v1-0 (-> arg1 trans quad)) - (a2-0 (-> arg1 quat vec quad)) + (a2-0 (-> arg1 quat quad)) (a1-1 (-> arg1 scale quad)) ) (set! (-> arg0 trans quad) v1-0) - (set! (-> arg0 quat vec quad) a2-0) + (set! (-> arg0 quat quad) a2-0) (set! (-> arg0 scale quad) a1-1) ) arg0 @@ -285,17 +284,17 @@ (else (.lvf vf1 (&-> arg1 scale quad)) (.lvf vf2 (&-> arg1 trans quad)) - (.lvf vf3 (&-> arg0 vector 0 quad)) - (.lvf vf4 (&-> arg0 vector 1 quad)) - (.lvf vf5 (&-> arg0 vector 2 quad)) + (.lvf vf3 (&-> arg0 quad 0)) + (.lvf vf4 (&-> arg0 quad 1)) + (.lvf vf5 (&-> arg0 quad 2)) (.mov.vf vf2 vf0 :mask #b1000) (.mul.x.vf vf3 vf3 vf1) (.mul.y.vf vf4 vf4 vf1) (.mul.z.vf vf5 vf5 vf1) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf3) - (.svf (&-> arg0 vector 1 quad) vf4) - (.svf (&-> arg0 vector 2 quad) vf5) + (.svf (&-> arg0 quad 0) vf3) + (.svf (&-> arg0 quad 1) vf4) + (.svf (&-> arg0 quad 2) vf5) (.mov v1-1 vf5) ) ) @@ -315,17 +314,17 @@ (init-vf0-vector) (quaternion->matrix arg0 (-> arg1 quat)) (.lvf vf1 (&-> arg1 scale quad)) - (.lvf vf3 (&-> arg0 vector 0 quad)) - (.lvf vf4 (&-> arg0 vector 1 quad)) - (.lvf vf5 (&-> arg0 vector 2 quad)) + (.lvf vf3 (&-> arg0 quad 0)) + (.lvf vf4 (&-> arg0 quad 1)) + (.lvf vf5 (&-> arg0 quad 2)) (.mov.vf vf2 vf0) (.mul.x.vf vf3 vf3 vf1) (.mul.y.vf vf4 vf4 vf1) (.mul.z.vf vf5 vf5 vf1) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf3) - (.svf (&-> arg0 vector 1 quad) vf4) - (.svf (&-> arg0 vector 2 quad) vf5) + (.svf (&-> arg0 quad 0) vf3) + (.svf (&-> arg0 quad 1) vf4) + (.svf (&-> arg0 quad 2) vf5) arg0 ) ) @@ -346,9 +345,9 @@ (.lvf vf1 (&-> arg1 scale quad)) (.lvf vf2 (&-> arg1 trans quad)) (.lvf vf6 (&-> arg2 quad)) - (.lvf vf3 (&-> arg0 vector 0 quad)) - (.lvf vf4 (&-> arg0 vector 1 quad)) - (.lvf vf5 (&-> arg0 vector 2 quad)) + (.lvf vf3 (&-> arg0 quad 0)) + (.lvf vf4 (&-> arg0 quad 1)) + (.lvf vf5 (&-> arg0 quad 2)) (.mov.vf vf2 vf0 :mask #b1000) (.mul.x.vf vf3 vf3 vf1) (.mul.y.vf vf4 vf4 vf1) @@ -358,9 +357,9 @@ (.add.mul.z.vf acc vf5 vf6 acc) (.add.mul.w.vf vf2 vf2 vf0 acc :mask #b111) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf3) - (.svf (&-> arg0 vector 1 quad) vf4) - (.svf (&-> arg0 vector 2 quad) vf5) + (.svf (&-> arg0 quad 0) vf3) + (.svf (&-> arg0 quad 1) vf4) + (.svf (&-> arg0 quad 2) vf5) arg0 ) ) @@ -380,18 +379,18 @@ (.lvf vf1 (&-> arg1 scale quad)) (.lvf vf2 (&-> arg1 trans quad)) (.lvf vf6 (&-> arg2 quad)) - (.lvf vf3 (&-> arg0 vector 0 quad)) - (.lvf vf4 (&-> arg0 vector 1 quad)) - (.lvf vf5 (&-> arg0 vector 2 quad)) + (.lvf vf3 (&-> arg0 quad 0)) + (.lvf vf4 (&-> arg0 quad 1)) + (.lvf vf5 (&-> arg0 quad 2)) (.mov.vf vf2 vf0 :mask #b1000) (.mul.x.vf vf3 vf3 vf1) (.mul.y.vf vf4 vf4 vf1) (.mul.z.vf vf5 vf5 vf1) (.add.vf vf2 vf2 vf6 :mask #b111) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf3) - (.svf (&-> arg0 vector 1 quad) vf4) - (.svf (&-> arg0 vector 2 quad) vf5) + (.svf (&-> arg0 quad 0) vf3) + (.svf (&-> arg0 quad 1) vf4) + (.svf (&-> arg0 quad 2) vf5) arg0 ) ) @@ -416,9 +415,9 @@ (.lvf vf1 (&-> arg1 scale quad)) (.lvf vf2 (&-> arg1 trans quad)) (.mov.vf vf2 vf0 :mask #b1000) - (.lvf vf4 (&-> arg0 vector 0 quad)) - (.lvf vf5 (&-> arg0 vector 1 quad)) - (.lvf vf6 (&-> arg0 vector 2 quad)) + (.lvf vf4 (&-> arg0 quad 0)) + (.lvf vf5 (&-> arg0 quad 1)) + (.lvf vf6 (&-> arg0 quad 2)) (.mul.x.vf vf4 vf4 vf1) (.mul.y.vf vf5 vf5 vf1) (.mul.z.vf vf6 vf6 vf1) @@ -428,9 +427,9 @@ (.mul.vf vf5 vf5 vf3) (.mul.vf vf6 vf6 vf3) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf4) - (.svf (&-> arg0 vector 1 quad) vf5) - (.svf (&-> arg0 vector 2 quad) vf6) + (.svf (&-> arg0 quad 0) vf4) + (.svf (&-> arg0 quad 1) vf5) + (.svf (&-> arg0 quad 2) vf6) (.mov v1-1 vf6) arg0 ) @@ -453,9 +452,9 @@ (.lvf vf1 (&-> arg1 scale quad)) (.lvf vf2 (&-> arg1 trans quad)) (.lvf vf6 (&-> arg2 quad)) - (.lvf vf3 (&-> arg0 vector 0 quad)) - (.lvf vf4 (&-> arg0 vector 1 quad)) - (.lvf vf5 (&-> arg0 vector 2 quad)) + (.lvf vf3 (&-> arg0 quad 0)) + (.lvf vf4 (&-> arg0 quad 1)) + (.lvf vf5 (&-> arg0 quad 2)) (.mov.vf vf2 vf0 :mask #b1000) (.mul.x.vf vf3 vf3 vf1) (.mul.y.vf vf4 vf4 vf1) @@ -463,16 +462,12 @@ (.mul.x.vf acc vf3 vf6) (.add.mul.y.vf acc vf4 vf6 acc) (.add.mul.z.vf acc vf5 vf6 acc) - (.sub.mul.w.vf acc vf6 vf0 acc) ;; this line is added compared to the +trans! one + (.sub.mul.w.vf acc vf6 vf0 acc) (.add.mul.w.vf vf2 vf2 vf0 acc :mask #b111) (.svf (&-> arg0 trans quad) vf2) - (.svf (&-> arg0 vector 0 quad) vf3) - (.svf (&-> arg0 vector 1 quad) vf4) - (.svf (&-> arg0 vector 2 quad) vf5) + (.svf (&-> arg0 quad 0) vf3) + (.svf (&-> arg0 quad 1) vf4) + (.svf (&-> arg0 quad 2) vf5) arg0 ) ) - - - - diff --git a/goal_src/jak2/engine/nav/nav-enemy.gc b/goal_src/jak2/engine/nav/nav-enemy.gc index 32ee0e0701..d4e0dc08d3 100644 --- a/goal_src/jak2/engine/nav/nav-enemy.gc +++ b/goal_src/jak2/engine/nav/nav-enemy.gc @@ -222,83 +222,81 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> pp clock frame-counter)) - ) - (enemy-method-129 self) - (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) - (if (-> self nav) - (enemy-method-100 self) - (enemy-method-103 self) - ) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (current-time)) ) - (when *target* - (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) - :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - )) - ) - (when (nonzero? (-> self neck)) - (cond - ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) - (let ((a0-10 (handle->process (-> self focus handle)))) - (if a0-10 - (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) - ) - ) - ) - ((logtest? (-> self enemy-flags) (enemy-flag death-start)) - (let ((s5-1 (-> self move-dest)) - (v1-47 (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data (-> self enemy-info-override neck-joint)) - ) - ) - (a1-6 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-6 x) (-> s5-1 x)) - (set! (-> a1-6 y) (-> v1-47 y)) - (set! (-> a1-6 z) (-> s5-1 z)) - (set! (-> a1-6 w) 1.0) - (target-set! (-> self neck) a1-6) - ) - ) + (enemy-method-129 self) + (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (if (-> self nav) + (enemy-method-100 self) + (enemy-method-103 self) ) - ) - (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) - ) - (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) - (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) - (let ((v1-62 0)) - (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) - (set! v1-62 (logior (shl 1 32) v1-62)) - ) - (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) - ) - ) - (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 self) - ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) - (enemy-method-54 self) - ) - (let ((v1-73 (-> self restore-nav-radius-time))) - (when (nonzero? v1-73) - (when (>= (-> pp clock frame-counter) v1-73) - (set! (-> self restore-nav-radius-time) 0) - (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) - ) - ) - ) - (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) - (joint-mod-debug-draw (-> self neck)) - ) - (ja-post) - 0 - (none) ) + (when *target* + (target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core)) + :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking + )) + ) + (when (nonzero? (-> self neck)) + (cond + ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-10 (handle->process (-> self focus handle)))) + (if a0-10 + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) + ) + ) + ) + ((logtest? (-> self enemy-flags) (enemy-flag death-start)) + (let ((s5-1 (-> self move-dest)) + (v1-47 (vector<-cspace! + (new 'stack-no-clear 'vector) + (-> self node-list data (-> self enemy-info-override neck-joint)) + ) + ) + (a1-6 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-6 x) (-> s5-1 x)) + (set! (-> a1-6 y) (-> v1-47 y)) + (set! (-> a1-6 z) (-> s5-1 z)) + (set! (-> a1-6 w) 1.0) + (target-set! (-> self neck) a1-6) + ) + ) + ) + ) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (current-time) (-> self auto-reset-penetrate-time)) (seconds 0.1)) + ) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) + (let ((v1-62 0)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) + (set! v1-62 (logior (shl 1 32) v1-62)) + ) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) + ) + ) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) + ) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) + ) + (let ((v1-73 (-> self restore-nav-radius-time))) + (when (nonzero? v1-73) + (when (>= (current-time) v1-73) + (set! (-> self restore-nav-radius-time) 0) + (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) + ) + ) + ) + (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) + ) + (ja-post) + 0 + (none) ) (defmethod nav-enemy-method-177 nav-enemy ((obj nav-enemy)) @@ -343,7 +341,7 @@ (cond ((logtest? (-> s5-0 state flags) (nav-state-flag blocked)) (if (zero? (-> obj blocked-start-time)) - (set! (-> obj blocked-start-time) (-> self clock frame-counter)) + (set! (-> obj blocked-start-time) (current-time)) ) ) (else @@ -958,43 +956,39 @@ ) (defmethod nav-enemy-method-161 nav-enemy ((obj nav-enemy)) - (with-pp - (set! (-> obj enemy-flags) (the-as enemy-flag (logclear (-> obj enemy-flags) (enemy-flag enemy-flag39)))) - (set! (-> obj frustration-time) (-> pp clock frame-counter)) - (let ((v1-7 (handle->process (-> obj focus handle)))) - (if v1-7 - (set! (-> obj frustration-point quad) (-> (get-trans (the-as process-focusable v1-7) 1) quad)) - ) - ) - 0 - (none) + (set! (-> obj enemy-flags) (the-as enemy-flag (logclear (-> obj enemy-flags) (enemy-flag enemy-flag39)))) + (set! (-> obj frustration-time) (current-time)) + (let ((v1-7 (handle->process (-> obj focus handle)))) + (if v1-7 + (set! (-> obj frustration-point quad) (-> (get-trans (the-as process-focusable v1-7) 1) quad)) + ) ) + 0 + (none) ) (defmethod nav-enemy-method-160 nav-enemy ((obj nav-enemy)) - (with-pp - (let ((s5-0 (handle->process (-> obj focus handle)))) - (cond - ((or (not s5-0) - (< 6144.0 (vector-vector-distance (get-trans (the-as process-focusable s5-0) 1) (-> obj frustration-point))) - (< (-> obj enemy-info-override frustration-distance) - (vector-vector-xz-distance (get-trans (the-as process-focusable s5-0) 0) (-> obj root-override2 trans)) - ) - ) - (nav-enemy-method-161 obj) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj frustration-time)) - (+ (-> obj reaction-time) (-> obj enemy-info-override frustration-time)) - ) - (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag39) (-> obj enemy-flags)))) - 0 - ) + (let ((s5-0 (handle->process (-> obj focus handle)))) + (cond + ((or (not s5-0) + (< 6144.0 (vector-vector-distance (get-trans (the-as process-focusable s5-0) 1) (-> obj frustration-point))) + (< (-> obj enemy-info-override frustration-distance) + (vector-vector-xz-distance (get-trans (the-as process-focusable s5-0) 0) (-> obj root-override2 trans)) + ) + ) + (nav-enemy-method-161 obj) + ) + (else + (when (>= (- (current-time) (-> obj frustration-time)) + (+ (-> obj reaction-time) (-> obj enemy-info-override frustration-time)) + ) + (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag39) (-> obj enemy-flags)))) + 0 ) ) ) - (none) ) + (none) ) (defmethod nav-enemy-method-162 nav-enemy ((obj nav-enemy)) @@ -1004,10 +998,8 @@ ) (defmethod nav-enemy-method-163 nav-enemy ((obj nav-enemy)) - (with-pp - (let ((v1-0 (-> obj blocked-start-time))) - (and (nonzero? v1-0) (>= (- (-> pp clock frame-counter) v1-0) (-> obj enemy-info-override blocked-time))) - ) + (let ((v1-0 (-> obj blocked-start-time))) + (and (nonzero? v1-0) (>= (- (current-time) v1-0) (-> obj enemy-info-override blocked-time))) ) ) @@ -1452,10 +1444,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs time-frame. (defmethod nav-enemy-method-144 nav-enemy ((obj nav-enemy)) (set! (-> obj root-override2 nav-radius) 4.096) - (let ((s5-1 - (max (-> obj restore-nav-radius-time) (+ (-> self clock frame-counter) (get-rand-int-range obj 1500 2400))) - ) - ) + (let ((s5-1 (max (-> obj restore-nav-radius-time) (+ (current-time) (get-rand-int-range obj 1500 2400))))) (set! (-> obj restore-nav-radius-time) (the-as time-frame s5-1)) (the-as time-frame s5-1) ) @@ -1479,7 +1468,7 @@ This commonly includes things such as: (nav-enemy-method-176 self) (if (and (nav-enemy-method-163 self) (zero? (-> self restore-nav-radius-time)) - (>= (- (-> self clock frame-counter) (-> self blocked-start-time)) (seconds 4)) + (>= (- (current-time) (-> self blocked-start-time)) (seconds 4)) ) (nav-enemy-method-144 self) ) @@ -1494,14 +1483,14 @@ This commonly includes things such as: (defbehavior nav-enemy-turn-to-face-dir nav-enemy ((arg0 vector) (arg1 float)) (local-vars (v1-18 symbol)) - (let ((s4-0 (-> self clock frame-counter))) + (let ((s4-0 (current-time))) (ja :group! (-> self draw art-group data (-> self enemy-info-override turn-anim))) (ja :num-func num-func-identity :frame-num 0.0) (until v1-18 (seek-toward-heading-vec! (-> self root-override2) arg0 (-> self nav max-rotation-rate) (seconds 0.02)) (suspend) (ja :num! (loop! 0.75)) - (set! v1-18 (or (>= (- (-> self clock frame-counter) s4-0) (seconds 10)) (enemy-method-94 self arg0 arg1))) + (set! v1-18 (or (>= (- (current-time) s4-0) (seconds 10)) (enemy-method-94 self arg0 arg1))) ) ) (forward-up->quaternion (-> self root-override2 quat) arg0 *y-vector*) @@ -1896,7 +1885,7 @@ This commonly includes things such as: (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (nav-enemy-method-163 self) (go-stare2 self) ) @@ -1932,7 +1921,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((a1-0 (new 'stack-no-clear 'vector))) (let ((a2-0 (-> self nav state))) (set! (-> a1-0 quad) (-> a2-0 target-post quad)) @@ -1967,14 +1956,14 @@ This commonly includes things such as: (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (nav-enemy-method-163 self) (go-stare2 self) ) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-virtual active) ) ) @@ -1985,7 +1974,7 @@ This commonly includes things such as: (go-flee self) ) (else - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-stare self) ) ) @@ -2035,7 +2024,7 @@ This commonly includes things such as: 0 (nav-enemy-method-167 self) (vector-reset! (-> self root-override2 transv)) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :exit (behavior () @@ -2096,11 +2085,9 @@ This commonly includes things such as: ) (let ((gp-0 (-> self focus aware))) (if (< (the-as int gp-0) 2) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (not (nav-enemy-method-163 self)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (not (nav-enemy-method-163 self))) (cond ((>= 1 (the-as int gp-0)) (go-virtual active) @@ -2109,7 +2096,7 @@ This commonly includes things such as: (if (and (get-enemy-target self) (not (and (-> self enemy-info-override use-frustration) (logtest? (enemy-flag enemy-flag39) (-> self enemy-flags))) ) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (go-hostile self) ) @@ -2122,7 +2109,7 @@ This commonly includes things such as: ) ((and (= gp-0 (enemy-aware enemy-aware-2)) (-> self enemy-info-override use-pacing) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (go-virtual pacing) ) @@ -2171,9 +2158,7 @@ This commonly includes things such as: ) :exit (-> (method-of-type nav-enemy stare) exit) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (not (nav-enemy-method-163 self)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (not (nav-enemy-method-163 self))) (let ((v1-6 (-> self focus aware))) (cond ((>= 1 (the-as int v1-6)) @@ -2191,14 +2176,14 @@ This commonly includes things such as: (ja-channel-push! 1 (seconds 0.2)) (let ((f30-0 (get-rand-float-range self 0.8 1.2))) (let ((gp-0 (get-rand-int-range self 60 210)) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) (f28-0 f30-0) ) (ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override idle-anim)) :num! (loop! f28-0) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) s5-0) gp-0) + (until (>= (- (current-time) s5-0) gp-0) (suspend) (ja :num! (loop! f28-0)) ) @@ -2233,7 +2218,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -2252,7 +2237,7 @@ This commonly includes things such as: (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self move-dest quad) (-> self root-override2 trans quad)) (set! (-> self state-timeout) (the-as time-frame (get-rand-int-range self 2100 3300))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (if (zero? (get-rand-int self 2)) (set! (-> self enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag40) (-> self enemy-flags)))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag40)))) @@ -2273,16 +2258,14 @@ This commonly includes things such as: ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 1 (the-as int gp-1)) (go-virtual active) ) (when (= gp-1 (enemy-aware enemy-aware-3)) - (when (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) - ) + (when (and (get-enemy-target self) (>= (- (current-time) (-> self starting-time)) (-> self reaction-time))) (nav-enemy-method-161 self) (go-virtual hostile) ) @@ -2293,16 +2276,14 @@ This commonly includes things such as: (if (nav-enemy-method-163 self) (go-stare2 self) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (nav-enemy-method-161 self) (go-stare2 self) ) ) ) (when (>= 1024.0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (zero? (get-rand-int self 3)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (zero? (get-rand-int self 3))) (nav-enemy-method-161 self) (go-stare2 self) ) @@ -2376,7 +2357,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -2411,7 +2392,7 @@ This commonly includes things such as: ) (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :trans (behavior () @@ -2422,9 +2403,9 @@ This commonly includes things such as: ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (when (>= 1 (the-as int gp-1)) (nav-enemy-method-161 self) (if (-> self enemy-info-override use-stop-chase) @@ -2434,7 +2415,7 @@ This commonly includes things such as: ) (when (and (= gp-1 (enemy-aware enemy-aware-3)) (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (nav-enemy-method-161 self) (go-hostile self) @@ -2538,7 +2519,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (let ((v1-3 (-> self focus aware))) (if (!= v1-3 (enemy-aware unaware)) (go-stare self) @@ -2829,7 +2810,7 @@ This commonly includes things such as: (let ((s5-1 2)) (logior! (-> self focus-status) (focus-status in-air)) (until (enemy-method-86 self) - (+! (-> gp-0 hang-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> gp-0 hang-time) (- (current-time) (-> self clock old-frame-counter))) (enemy-method-90 self s5-1 gp-0) (enemy-method-91 self s5-1 gp-0) (enemy-method-92 self s5-1 (the-as nav-poly gp-0)) diff --git a/goal_src/jak2/engine/physics/chain-physics.gc b/goal_src/jak2/engine/physics/chain-physics.gc index de6651f779..d1c321471d 100644 --- a/goal_src/jak2/engine/physics/chain-physics.gc +++ b/goal_src/jak2/engine/physics/chain-physics.gc @@ -63,7 +63,7 @@ ) (defmethod turn-off chain-physics ((obj chain-physics) (arg0 time-frame)) - (set! (-> obj turn-off-start) (-> self clock frame-counter)) + (set! (-> obj turn-off-start) (current-time)) (set! (-> obj turn-off-duration) arg0) 0 (none) @@ -125,11 +125,9 @@ 0.0 (fmin 1.0 - (parameter-ease-sin-clamp (- 1.0 (/ (the float (- (-> self clock frame-counter) (-> obj turn-off-start))) - (the float (-> obj turn-off-duration)) - ) - ) - ) + (parameter-ease-sin-clamp + (- 1.0 (/ (the float (- (current-time) (-> obj turn-off-start))) (the float (-> obj turn-off-duration)))) + ) ) ) ) diff --git a/goal_src/jak2/engine/physics/rigid-body.gc b/goal_src/jak2/engine/physics/rigid-body.gc index 098be253cb..ebe203f6a8 100644 --- a/goal_src/jak2/engine/physics/rigid-body.gc +++ b/goal_src/jak2/engine/physics/rigid-body.gc @@ -1082,7 +1082,7 @@ This commonly includes things such as: (defmethod rigid-body-object-method-42 rigid-body-object ((obj rigid-body-object)) (logior! (-> obj flags) (rigid-body-object-flag disturbed)) - (set! (-> obj disturbed-time) (-> self clock frame-counter)) + (set! (-> obj disturbed-time) (current-time)) (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) (rigid-body-object-method-38 obj) ) @@ -1323,7 +1323,7 @@ This commonly includes things such as: (when s3-0 (when (logtest? (-> s3-0 mask) (process-mask target)) (logior! (-> obj flags) (rigid-body-object-flag player-touching)) - (set! (-> obj player-touch-time) (-> self clock frame-counter)) + (set! (-> obj player-touch-time) (current-time)) (rigid-body-object-method-42 obj) ) (if (not (logtest? (-> s3-0 mask) (process-mask target))) diff --git a/goal_src/jak2/engine/physics/trajectory.gc b/goal_src/jak2/engine/physics/trajectory.gc index 651f96f091..6953a853c6 100644 --- a/goal_src/jak2/engine/physics/trajectory.gc +++ b/goal_src/jak2/engine/physics/trajectory.gc @@ -134,7 +134,7 @@ ) (defmethod initialize impact-control ((obj impact-control) (arg0 process-drawable) (arg1 int) (arg2 float) (arg3 collide-spec)) - (set! (-> obj start-time) (-> self clock frame-counter)) + (set! (-> obj start-time) (current-time)) (set! (-> obj process) (the-as (pointer process-drawable) (process->ppointer arg0))) (set! (-> obj joint) arg1) (set! (-> obj radius) arg2) diff --git a/goal_src/jak2/engine/process-drawable/process-drawable.gc b/goal_src/jak2/engine/process-drawable/process-drawable.gc index 9e09500053..50a3b1221b 100644 --- a/goal_src/jak2/engine/process-drawable/process-drawable.gc +++ b/goal_src/jak2/engine/process-drawable/process-drawable.gc @@ -639,14 +639,7 @@ (s2-0 (bucket-id debug-no-zbuf1)) ) (format (clear *temp-string*) "~2j~s error for ~s" arg0 (-> self name)) - (s4-0 - s3-0 - (the-as bucket-id s2-0) - *temp-string* - (the-as vector s5-1) - (font-color red) - (the-as vector2h #f) - ) + (s4-0 s3-0 (the-as bucket-id s2-0) *temp-string* (the-as vector s5-1) (font-color red) (the-as vector2h #f)) ) ) ) @@ -980,7 +973,7 @@ (set! (-> s5-0 root-channel) (-> s5-0 channel)) (set! (-> s5-0 blend-index) (the-as uint -1)) (dotimes (v1-19 arg0) - (set! (-> s5-0 root-channel v1-19 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> s5-0 root-channel v1-19 eval-time) (the-as uint (current-time))) (set! (-> s5-0 root-channel v1-19 group-sub-index) v1-19) (set! (-> s5-0 root-channel v1-19 command) (if (zero? v1-19) (joint-control-command push) @@ -1045,7 +1038,7 @@ ) (set! (-> s5-0 active-channels) (the-as uint (+ arg0 1 (-> s5-0 active-channels)))) (dotimes (v1-38 arg0) - (set! (-> s5-0 root-channel v1-38 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> s5-0 root-channel v1-38 eval-time) (the-as uint (current-time))) (set! (-> s5-0 root-channel v1-38 group-sub-index) v1-38) (set! (-> s5-0 root-channel v1-38 command) (if (zero? v1-38) (joint-control-command push) @@ -1102,7 +1095,7 @@ (else (let ((v0-1 (-> self skel channel (+ (-> self skel active-channels) (-> self skel float-channels))))) (+! (-> self skel float-channels) 1) - (set! (-> v0-1 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> v0-1 eval-time) (the-as uint (current-time))) (set! (-> v0-1 group-sub-index) 0) (set! (-> v0-1 command) (joint-control-command float)) (set! (-> v0-1 frame-interp 0) arg2) @@ -1162,7 +1155,7 @@ (defbehavior ja-eval process-drawable () (let ((gp-0 (-> self skel root-channel 0)) (s5-0 (-> self skel channel (+ (-> self skel active-channels) (-> self skel float-channels)))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) (while (< (the-as int gp-0) (the-as int s5-0)) (cond @@ -1183,7 +1176,7 @@ (defbehavior ja-blend-eval process-drawable () (let ((gp-0 (-> self skel root-channel)) (s5-0 (the-as joint-control-channel (-> self skel channel))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) (when (and (nonzero? (-> self skel active-channels)) (!= gp-0 s5-0)) (while (< (the-as int s5-0) (the-as int gp-0)) @@ -1241,92 +1234,92 @@ (none) ) +;; ERROR: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] +;; ERROR: Unsupported inline assembly instruction kind - [jr ra] (defmethod evaluate-joint-control process-drawable ((obj process-drawable)) (local-vars (s1-0 joint-control-channel) (s2-0 int) (s4-0 uint) (s7-0 none) (ra-0 int)) - (with-pp - (let ((gp-0 (-> obj skel))) - (let ((a0-1 (-> gp-0 top-anim))) - (b! (not a0-1) cfg-2 :delay (empty-form)) - (update a0-1) - ) - (until (= s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) - (label cfg-2) - (set! s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) - (let ((s3-0 (-> pp clock frame-counter))) - (b! (logtest? (-> obj draw status) (draw-control-status no-draw)) cfg-45 :delay (empty-form)) - (set! s2-0 0) - (b! #t cfg-30 :delay (nop!)) - (label cfg-4) - (set! s1-0 (-> gp-0 channel s2-0)) - (b! - (not (and (logtest? (-> s1-0 command) (joint-control-command thirty-two)) (!= (-> s1-0 eval-time) s3-0))) - cfg-10 - :delay (empty-form) - ) + (let ((gp-0 (-> obj skel))) + (let ((a0-1 (-> gp-0 top-anim))) + (b! (not a0-1) cfg-2 :delay (empty-form)) + (update a0-1) + ) + (until (= s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) + (label cfg-2) + (set! s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) + (let ((s3-0 (current-time))) + (b! (logtest? (-> obj draw status) (draw-control-status no-draw)) cfg-45 :delay (empty-form)) + (set! s2-0 0) + (b! #t cfg-30 :delay (nop!)) + (label cfg-4) + (set! s1-0 (-> gp-0 channel s2-0)) + (b! + (not (and (logtest? (-> s1-0 command) (joint-control-command thirty-two)) (!= (-> s1-0 eval-time) s3-0))) + cfg-10 + :delay (empty-form) ) - (joint-control-channel-eval s1-0) ) - (label cfg-10) - (let ((v1-19 (-> s1-0 command))) - (b! (!= v1-19 (joint-control-command stack)) cfg-12 :delay (nop!)) - (b! #t cfg-29 :delay (nop!)) - (label cfg-12) - (cond - ((= v1-19 (joint-control-command stack1)) - (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 0) (-> s1-0 frame-interp 0)) - (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 1) (-> s1-0 frame-interp 1)) - ) - (else - (let ((s0-0 (-> s1-0 frame-group))) - (when (not (and s0-0 (nonzero? s0-0) (= (logand (the-as int s0-0) 7) 4) (= (-> s0-0 type) art-joint-anim))) - (go process-drawable-art-error "joint-anim") - (abandon-thread) - 0 - ) - (when (nonzero? (-> s0-0 frames flags)) - (cond - ((logtest? (-> s0-0 frames flags) 2) - (update-time-stamp *anim-manager* s0-0) - ) - ((logtest? (-> s0-0 frames flags) 1) - (decompress *anim-manager* s0-0) - ) - ) - ) - (set! (-> s1-0 frame-num) - (fmax 0.0 (fmin (-> s1-0 frame-num) (the float (+ (-> s0-0 frames num-frames) -1)))) - ) + (joint-control-channel-eval s1-0) + ) + (label cfg-10) + (let ((v1-19 (-> s1-0 command))) + (b! (!= v1-19 (joint-control-command stack)) cfg-12 :delay (nop!)) + (b! #t cfg-29 :delay (nop!)) + (label cfg-12) + (cond + ((= v1-19 (joint-control-command stack1)) + (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 0) (-> s1-0 frame-interp 0)) + (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 1) (-> s1-0 frame-interp 1)) + ) + (else + (let ((s0-0 (-> s1-0 frame-group))) + (when (not (and s0-0 (nonzero? s0-0) (= (logand (the-as int s0-0) 7) 4) (= (-> s0-0 type) art-joint-anim))) + (go process-drawable-art-error "joint-anim") + (abandon-thread) + 0 ) + (when (nonzero? (-> s0-0 frames flags)) + (cond + ((logtest? (-> s0-0 frames flags) 2) + (update-time-stamp *anim-manager* s0-0) + ) + ((logtest? (-> s0-0 frames flags) 1) + (decompress *anim-manager* s0-0) + ) + ) + ) + (set! (-> s1-0 frame-num) + (fmax 0.0 (fmin (-> s1-0 frame-num) (the float (+ (-> s0-0 frames num-frames) -1)))) + ) ) ) ) - (label cfg-29) - (+! s2-0 1) - (label cfg-30) - (b! (< s2-0 (the-as int s4-0)) cfg-4) - (dotimes (v1-56 (the-as int s4-0)) - (set! (-> gp-0 channel v1-56 frame-interp 0) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 0)))) - (set! (-> gp-0 channel v1-56 frame-interp 1) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 1)))) - ) - (if (or (zero? s4-0) (or (not (-> gp-0 root-channel 0 frame-group)) (zero? (-> gp-0 active-channels)))) - (logior! (-> obj draw status) (draw-control-status no-draw-temp)) - ) - (if (logtest? (-> obj skel status) (joint-control-status blend-shape blend-shape-valid)) - (merc-blend-shape obj) - ) - (if (logtest? (-> obj skel status) (joint-control-status eye-anim-valid eye-anim)) - (merc-eye-anim obj) - ) - (label cfg-45) - (let ((a0-26 (-> gp-0 effect))) - (if a0-26 - (update-effects a0-26) - ) - ) ) - 0 - (none) + (label cfg-29) + (+! s2-0 1) + (label cfg-30) + (b! (< s2-0 (the-as int s4-0)) cfg-4) + (dotimes (v1-56 (the-as int s4-0)) + (set! (-> gp-0 channel v1-56 frame-interp 0) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 0)))) + (set! (-> gp-0 channel v1-56 frame-interp 1) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 1)))) + ) + (if (or (zero? s4-0) (or (not (-> gp-0 root-channel 0 frame-group)) (zero? (-> gp-0 active-channels)))) + (logior! (-> obj draw status) (draw-control-status no-draw-temp)) + ) + (if (logtest? (-> obj skel status) (joint-control-status blend-shape blend-shape-valid)) + (merc-blend-shape obj) + ) + (if (logtest? (-> obj skel status) (joint-control-status eye-anim-valid eye-anim)) + (merc-eye-anim obj) + ) + (label cfg-45) + (let ((a0-26 (-> gp-0 effect))) + (if a0-26 + (update-effects a0-26) + ) + ) ) + 0 + (none) ) ;; WARN: Function ja-post has a return type of none, but the expression builder found a return statement. @@ -1455,33 +1448,31 @@ (arg5 float) (arg6 symbol) ) - (with-pp - (when (!= (-> obj interp) 0.0) - (let ((v1-1 obj)) - (set! (-> v1-1 frame-targ) arg0) - (set! (-> v1-1 frame-speed) arg4) - (set! (-> v1-1 frame-start) (/ arg1 (-> arg0 artist-step))) - (set! (-> v1-1 frame-blend) (if (zero? arg2) - 0.0 - (/ 5.0 (+ 5.0 (the float arg2))) - ) - ) - (set! (-> v1-1 frame-post-blend) (if (zero? arg3) - 0.0 - (/ 5.0 (+ 5.0 (the float arg3))) - ) - ) - (set! (-> v1-1 frame-post-end) (/ arg5 (-> arg0 artist-step))) - (set! (-> v1-1 frame-push-time) (-> pp clock frame-counter)) - (set! (-> v1-1 frame-post-put-away) #f) - ) - (if arg6 - (sound-play-by-spec (the-as sound-spec arg6) (new-sound-id) (the-as vector #t)) - ) + (when (!= (-> obj interp) 0.0) + (let ((v1-1 obj)) + (set! (-> v1-1 frame-targ) arg0) + (set! (-> v1-1 frame-speed) arg4) + (set! (-> v1-1 frame-start) (/ arg1 (-> arg0 artist-step))) + (set! (-> v1-1 frame-blend) (if (zero? arg2) + 0.0 + (/ 5.0 (+ 5.0 (the float arg2))) + ) + ) + (set! (-> v1-1 frame-post-blend) (if (zero? arg3) + 0.0 + (/ 5.0 (+ 5.0 (the float arg3))) + ) + ) + (set! (-> v1-1 frame-post-end) (/ arg5 (-> arg0 artist-step))) + (set! (-> v1-1 frame-push-time) (current-time)) + (set! (-> v1-1 frame-post-put-away) #f) ) - 0 - (none) + (if arg6 + (sound-play-by-spec (the-as sound-spec arg6) (new-sound-id) (the-as vector #t)) + ) ) + 0 + (none) ) (defmethod update top-anim-joint-control ((obj top-anim-joint-control)) @@ -1491,230 +1482,228 @@ (the-as process-drawable (-> v1-0 0 self)) ) ) + (s3-0 (get-channel obj 1)) + (s5-0 (get-channel obj 0)) + (s4-0 (-> obj base-anim)) ) - (let ((s3-0 (get-channel obj 1)) - (s5-0 (get-channel obj 0)) - (s4-0 (-> obj base-anim)) - ) - (set! (-> obj frame-group-push) #f) - (cond - ((= (-> obj interp) 0.0) - (when s5-0 - (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) - (if s3-0 - (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) - ) - (when (= (-> s5-0 frame-interp 1) 0.0) - (set! (-> obj frame-post-put-away) #f) - (when (= (-> obj interp) 0.0) - (joint-channel-float-delete! s5-0) - (set! (-> obj frame-group) #f) - (set! (-> obj frame-num) 0.0) - (set! (-> pp skel generate-frame-function) create-interpolated-joint-animation-frame) - ) - (when s3-0 - (joint-channel-float-delete! s3-0) - (set! (-> obj frame-group-push) #f) - ) + (set! (-> obj frame-group-push) #f) + (cond + ((= (-> obj interp) 0.0) + (when s5-0 + (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) + (if s3-0 + (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) + ) + (when (= (-> s5-0 frame-interp 1) 0.0) + (set! (-> obj frame-post-put-away) #f) + (when (= (-> obj interp) 0.0) + (joint-channel-float-delete! s5-0) + (set! (-> obj frame-group) #f) + (set! (-> obj frame-num) 0.0) + (set! (-> pp skel generate-frame-function) create-interpolated-joint-animation-frame) + ) + (when s3-0 + (joint-channel-float-delete! s3-0) + (set! (-> obj frame-group-push) #f) ) ) ) - (else - (when (or (not s5-0) - (or (and (-> obj frame-targ) - (and (!= (-> obj frame-blend) 0.0) - (or (!= (-> s5-0 frame-group) (-> obj frame-targ)) (< (-> obj update-time) (-> obj frame-push-time))) - ) - ) - (and (not (-> obj frame-targ)) - (!= (-> s5-0 frame-group) s4-0) - (set! (-> obj frame-blend) (-> obj frame-post-blend)) - ) - ) + ) + (else + (when (or (not s5-0) + (or (and (-> obj frame-targ) + (and (!= (-> obj frame-blend) 0.0) + (or (!= (-> s5-0 frame-group) (-> obj frame-targ)) (< (-> obj update-time) (-> obj frame-push-time))) + ) + ) + (and (not (-> obj frame-targ)) + (!= (-> s5-0 frame-group) s4-0) + (set! (-> obj frame-blend) (-> obj frame-post-blend)) + ) + ) + ) + (when s3-0 + (joint-channel-float-delete! s3-0) + (set! (-> obj frame-group-push) #f) + (set! s5-0 (get-channel obj 0)) + (set! (-> s5-0 frame-interp 1) (-> obj interp)) + ) + (set! (-> pp skel generate-frame-function) create-interpolated2-joint-animation-frame) + (let ((s2-0 (the-as basic (-> obj frame-targ)))) + (set! s2-0 (cond + ((the-as art-joint-anim s2-0) + (empty) + s2-0 + ) + (else + s4-0 + ) + ) + ) + (set! s3-0 s5-0) + (if s3-0 + (set! (-> obj frame-group-push) (-> s3-0 frame-group)) + ) + (cond + ((= s4-0 s2-0) + (let ((v1-30 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 (when v1-30 + (set! (-> v1-30 param 0) 1.0) + (set! (-> v1-30 num-func) num-func-loop!) + v1-30 + ) + ) + ) + (when s5-0 + (set! (-> s5-0 frame-num) (-> obj frame-start)) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + ) + ((>= (-> obj frame-speed) 0.0) + (let ((v1-35 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 + (when v1-35 + (set! (-> v1-35 param 0) + (- (the float (+ (-> (the-as art-joint-anim s2-0) frames num-frames) -1)) (-> obj frame-post-end)) + ) + (set! (-> v1-35 param 1) (-> obj frame-speed)) + (set! (-> v1-35 num-func) num-func-seek!) + v1-35 + ) + ) + ) + (if s5-0 + (set! (-> s5-0 frame-num) (-> obj frame-start)) + ) + ) + (else + (when s5-0 + (let ((v1-39 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 (when v1-39 + (set! (-> v1-39 param 0) 0.0) + (set! (-> v1-39 param 1) (fabs (-> obj frame-speed))) + (set! (-> v1-39 num-func) num-func-seek!) + v1-39 + ) + ) ) - (when s3-0 + (when s5-0 + (set! (-> s5-0 frame-num) (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-start))) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + ) + ) + ) + ) + (when s5-0 + (set! (-> obj frame-group) (-> s5-0 frame-group)) + (set! (-> obj frame-num) (-> s5-0 frame-num)) + (set! (-> obj frame-cur-blend) (-> obj frame-blend)) + ) + ) + (when s5-0 + (set! (-> pp skel interp-select 0) (the-as int (-> obj interp-select 0))) + (set! (-> pp skel interp-select 1) (the-as int (-> obj interp-select 1))) + (let ((f0-35 (cond + ((not (-> obj frame-targ)) + (-> obj base-anim-blend) + ) + (s3-0 + (-> obj frame-cur-blend) + ) + (else + 0.1333333 + ) + ) + ) + ) + (if (= f0-35 0.0) + (set! (-> s5-0 frame-interp 1) (-> obj interp)) + (seek! (-> s5-0 frame-interp 1) (-> obj interp) (* f0-35 (-> pp clock time-adjust-ratio))) + ) + ) + (when s3-0 + (set! (-> obj frame-group-push) (-> s3-0 frame-group)) + (set! (-> s3-0 frame-interp 1) (-> obj interp)) + (if (!= (-> s3-0 eval-time) (current-time)) + (joint-control-channel-eval s3-0) + ) + (when (= (-> s5-0 frame-interp 1) (-> obj interp)) (joint-channel-float-delete! s3-0) (set! (-> obj frame-group-push) #f) (set! s5-0 (get-channel obj 0)) (set! (-> s5-0 frame-interp 1) (-> obj interp)) ) - (set! (-> pp skel generate-frame-function) create-interpolated2-joint-animation-frame) - (let ((s2-0 (the-as basic (-> obj frame-targ)))) - (set! s2-0 (cond - ((the-as art-joint-anim s2-0) - (empty) - s2-0 - ) - (else - s4-0 - ) - ) - ) - (set! s3-0 s5-0) - (if s3-0 - (set! (-> obj frame-group-push) (-> s3-0 frame-group)) - ) - (cond - ((= s4-0 s2-0) - (let ((v1-30 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 (when v1-30 - (set! (-> v1-30 param 0) 1.0) - (set! (-> v1-30 num-func) num-func-loop!) - v1-30 - ) - ) - ) - (when s5-0 - (set! (-> s5-0 frame-num) (-> obj frame-start)) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - ) - ((>= (-> obj frame-speed) 0.0) - (let ((v1-35 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 - (when v1-35 - (set! (-> v1-35 param 0) - (- (the float (+ (-> (the-as art-joint-anim s2-0) frames num-frames) -1)) (-> obj frame-post-end)) - ) - (set! (-> v1-35 param 1) (-> obj frame-speed)) - (set! (-> v1-35 num-func) num-func-seek!) - v1-35 - ) - ) - ) - (if s5-0 - (set! (-> s5-0 frame-num) (-> obj frame-start)) - ) - ) - (else - (when s5-0 - (let ((v1-39 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 (when v1-39 - (set! (-> v1-39 param 0) 0.0) - (set! (-> v1-39 param 1) (fabs (-> obj frame-speed))) - (set! (-> v1-39 num-func) num-func-seek!) - v1-39 - ) - ) - ) - (when s5-0 - (set! (-> s5-0 frame-num) (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-start))) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - ) - ) - ) - ) - (when s5-0 - (set! (-> obj frame-group) (-> s5-0 frame-group)) - (set! (-> obj frame-num) (-> s5-0 frame-num)) - (set! (-> obj frame-cur-blend) (-> obj frame-blend)) - ) ) - (when s5-0 - (set! (-> pp skel interp-select 0) (the-as int (-> obj interp-select 0))) - (set! (-> pp skel interp-select 1) (the-as int (-> obj interp-select 1))) - (let ((f0-35 (cond - ((not (-> obj frame-targ)) - (-> obj base-anim-blend) - ) - (s3-0 - (-> obj frame-cur-blend) - ) - (else - 0.1333333 - ) - ) - ) - ) - (if (= f0-35 0.0) - (set! (-> s5-0 frame-interp 1) (-> obj interp)) - (seek! (-> s5-0 frame-interp 1) (-> obj interp) (* f0-35 (-> pp clock time-adjust-ratio))) - ) - ) - (when s3-0 - (set! (-> obj frame-group-push) (-> s3-0 frame-group)) - (set! (-> s3-0 frame-interp 1) (-> obj interp)) - (if (!= (-> s3-0 eval-time) (-> pp clock frame-counter)) - (joint-control-channel-eval s3-0) - ) - (when (= (-> s5-0 frame-interp 1) (-> obj interp)) - (joint-channel-float-delete! s3-0) - (set! (-> obj frame-group-push) #f) - (set! s5-0 (get-channel obj 0)) - (set! (-> s5-0 frame-interp 1) (-> obj interp)) - ) - ) - (let ((v1-70 (-> obj frame-targ))) - (cond - (v1-70 - (cond - ((= (-> s5-0 frame-group) v1-70) - (if (!= (-> s5-0 eval-time) (-> pp clock frame-counter)) - (joint-control-channel-eval s5-0) - ) - (when (= (-> s5-0 frame-num) (-> s5-0 param 0)) - (set! (-> obj frame-targ) #f) - (set! (-> obj frame-start) 0.0) - (cond - ((-> obj frame-post-put-away) - (set! (-> obj interp) 0.0) - (set! (-> obj frame-post-put-away) #f) - ) - ((!= (-> obj frame-post-blend) 0.0) - (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group frames num-frames) -1))) - ) - (else - (set! (-> s5-0 frame-num) 0.0) - (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) - (set! (-> s5-0 num-func) num-func-loop!) - (set! (-> s5-0 param 0) 1.0) - ) + (let ((v1-70 (-> obj frame-targ))) + (cond + (v1-70 + (cond + ((= (-> s5-0 frame-group) v1-70) + (if (!= (-> s5-0 eval-time) (current-time)) + (joint-control-channel-eval s5-0) + ) + (when (= (-> s5-0 frame-num) (-> s5-0 param 0)) + (set! (-> obj frame-targ) #f) + (set! (-> obj frame-start) 0.0) + (cond + ((-> obj frame-post-put-away) + (set! (-> obj interp) 0.0) + (set! (-> obj frame-post-put-away) #f) + ) + ((!= (-> obj frame-post-blend) 0.0) + (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group frames num-frames) -1))) + ) + (else + (set! (-> s5-0 frame-num) 0.0) + (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) + (set! (-> s5-0 num-func) num-func-loop!) + (set! (-> s5-0 param 0) 1.0) ) ) ) - (else - (set! (-> s5-0 eval-time) (the-as uint (-> pp clock frame-counter))) - (set! (-> s5-0 frame-group) v1-70) - (set! (-> s5-0 frame-num) (if (< (-> obj frame-speed) 0.0) - (- (the float (+ (-> v1-70 frames num-frames) -1)) (-> obj frame-start)) - (set! (-> s5-0 frame-num) (-> obj frame-start)) - ) - ) - (set! (-> s5-0 num-func) num-func-seek!) - (if (>= (-> obj frame-speed) 0.0) - (set! (-> s5-0 param 0) - (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-post-end)) - ) - (set! (-> s5-0 param 0) 0.0) + ) + (else + (set! (-> s5-0 eval-time) (the-as uint (current-time))) + (set! (-> s5-0 frame-group) v1-70) + (set! (-> s5-0 frame-num) (if (< (-> obj frame-speed) 0.0) + (- (the float (+ (-> v1-70 frames num-frames) -1)) (-> obj frame-start)) + (set! (-> s5-0 frame-num) (-> obj frame-start)) + ) ) - (set! (-> s5-0 param 1) (fabs (-> obj frame-speed))) - ) + (set! (-> s5-0 num-func) num-func-seek!) + (if (>= (-> obj frame-speed) 0.0) + (set! (-> s5-0 param 0) + (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-post-end)) + ) + (set! (-> s5-0 param 0) 0.0) + ) + (set! (-> s5-0 param 1) (fabs (-> obj frame-speed))) ) ) - (else - (when (!= (-> s5-0 frame-group) s4-0) - (set! (-> s5-0 frame-num) 0.0) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) - (set! (-> s5-0 num-func) num-func-loop!) - (set! (-> s5-0 param 0) (-> obj base-anim-speed)) - (set! (-> obj frame-post-blend) 0.1333333) - ) + ) + (else + (when (!= (-> s5-0 frame-group) s4-0) + (set! (-> s5-0 frame-num) 0.0) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) + (set! (-> s5-0 num-func) num-func-loop!) + (set! (-> s5-0 param 0) (-> obj base-anim-speed)) + (set! (-> obj frame-post-blend) 0.1333333) ) ) - (set! (-> obj frame-group) (-> s5-0 frame-group)) - (set! (-> obj frame-num) (-> s5-0 frame-num)) ) + (set! (-> obj frame-group) (-> s5-0 frame-group)) + (set! (-> obj frame-num) (-> s5-0 frame-num)) ) ) ) - (set! (-> obj update-time) (-> pp clock frame-counter)) ) + (set! (-> obj update-time) (current-time)) 0 (none) ) @@ -1791,7 +1780,7 @@ (while (and *target* (focus-test? *target* in-air)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-grab? *target* #f) (while (or (-> *setting-control* user-current talking) (-> *setting-control* user-current spooling) @@ -1800,7 +1789,7 @@ ) (suspend) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) arg0) + (while (< (- (current-time) (-> self state-time)) arg0) (suspend) ) (process-release? *target*) diff --git a/goal_src/jak2/engine/process-drawable/process-taskable.gc b/goal_src/jak2/engine/process-drawable/process-taskable.gc index f974b8a40d..9176520a54 100644 --- a/goal_src/jak2/engine/process-drawable/process-taskable.gc +++ b/goal_src/jak2/engine/process-drawable/process-taskable.gc @@ -78,7 +78,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (the-as object (case event-type (('say) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self want-to-say) v0-0) v0-0 ) @@ -87,7 +87,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw-bounds)) (let ((v1-6 (-> self root-override root-prim))) (set! (-> v1-6 prim-core collide-as) (collide-spec)) @@ -108,7 +108,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (let ((v1-1 (get-current-task-event (-> self task)))) (if (and (nonzero? (-> v1-1 action)) (or (not (logtest? (-> self draw status) (draw-control-status on-screen))) (logtest? (-> v1-1 flags) (game-task-flags gatflag-01)) - (< (- (-> self clock frame-counter) (-> self birth-time)) (seconds 0.1)) + (< (- (current-time) (-> self birth-time)) (seconds 0.1)) ) ) (go-virtual idle) @@ -156,7 +156,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) ) (('say) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self want-to-say) (the-as time-frame v0-0)) v0-0 ) @@ -164,7 +164,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -221,7 +221,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (< (vector-vector-distance (target-pos 0) s5-0) f30-0)) ) ) - (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) + (< (- (current-time) (-> self want-to-say)) (seconds 4)) ) (or (not (load-in-progress? *level*)) (= (-> gp-0 action) (game-task-action say))) (and (not (movie?)) @@ -241,9 +241,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) (process-taskable-method-34 self) ) - (when (or (= (-> gp-0 action) (game-task-action say)) - (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) - ) + (when (or (= (-> gp-0 action) (game-task-action say)) (< (- (current-time) (-> self want-to-say)) (seconds 4))) (case (-> gp-0 action) (((game-task-action play)) (go-virtual play-game gp-0) @@ -320,7 +318,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) :exit (behavior () (set! (-> self last-talk) (-> *display* game-clock frame-counter)) - (if (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) + (if (< (- (current-time) (-> self want-to-say)) (seconds 4)) (set! (-> self will-talk) #t) (set! (-> self will-talk) #f) ) @@ -360,8 +358,8 @@ Seen take in - `true-func` which takes no args TODO - seems fishy :enter (-> (method-of-type process-taskable active) enter) :exit (-> (method-of-type process-taskable active) exit) :code (behavior ((arg0 game-task-event)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) diff --git a/goal_src/jak2/engine/scene/scene.gc b/goal_src/jak2/engine/scene/scene.gc index a13372c9e7..caa7cd124a 100644 --- a/goal_src/jak2/engine/scene/scene.gc +++ b/goal_src/jak2/engine/scene/scene.gc @@ -756,7 +756,7 @@ (defstate wait (scene-player) :virtual #t :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (or (-> self scene) (-> self preload-continue)) (let ((gp-0 (scene-decode-continue (the-as basic (if (-> self scene) (-> self scene load-point-obj) @@ -847,12 +847,12 @@ (and (-> *target* next-state) (= (-> *target* next-state name) 'target-flop-hit-ground)) ) (-> self scene) - (< (- (-> self clock frame-counter) (-> self state-time)) (-> self scene wait-air-time)) + (< (- (current-time) (-> self state-time)) (-> self scene wait-air-time)) ) (suspend) ) (suspend) - (let ((s5-0 (-> self clock frame-counter))) + (let ((s5-0 (current-time))) (when (and *target* (not (logtest? (-> *target* focus-status) (focus-status grabbed)))) (label cfg-44) (when (not (process-grab? *target* #f)) @@ -885,11 +885,10 @@ ) ) (when arg0 - (while (and (-> self scene) - (not (or (>= (- (-> self clock frame-counter) s5-0) (-> self scene wait-ground-time)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self scene wait-max-time)) - ) - ) + (while (and (-> self scene) (not (or (>= (- (current-time) s5-0) (-> self scene wait-ground-time)) + (>= (- (current-time) (-> self state-time)) (-> self scene wait-max-time)) + ) + ) ) (suspend) ) @@ -987,8 +986,8 @@ (* 30.0 (-> self clock seconds-per-frame)) (bucket-id screen-filter) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.05)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.05)) (suspend) ) ) @@ -1152,7 +1151,7 @@ (suspend) (scene-player-method-25 self 0.0) (set! (-> self cur-speed) 0.0) - (set! (-> self scene-start-time) (-> self clock frame-counter)) + (set! (-> self scene-start-time) (current-time)) (ja-play-spooled-anim (-> self anim) (the-as art-joint-anim #f) @@ -1325,10 +1324,10 @@ ) (when (cpad-pressed? 0 square) (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) - (set! (-> self subtitle-change-time) (-> self clock frame-counter)) + (set! (-> self subtitle-change-time) (current-time)) ) - (when (and (< (- (-> self clock frame-counter) (-> self subtitle-change-time)) (seconds 2)) - (< (mod (- (-> self clock frame-counter) (-> self subtitle-change-time)) 300) 210) + (when (and (< (- (current-time) (-> self subtitle-change-time)) (seconds 2)) + (< (mod (- (current-time) (-> self subtitle-change-time)) 300) 210) ) (let ((gp-6 (new 'stack 'font-context *font-default-matrix* 36 60 0.0 (font-color default) (font-flags shadow kerning)) @@ -1370,31 +1369,31 @@ (cond ((cpad-hold? 0 r1) (if (cpad-pressed? 0 circle) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) ) (seek! (-> self speed-change-speed) 8.0 - (* (lerp-scale 0.01 0.3 (the float (- (-> self clock frame-counter) (-> self speed-press-time))) 0.0 300.0) + (* (lerp-scale 0.01 0.3 (the float (- (current-time) (-> self speed-press-time))) 0.0 300.0) (-> self clock time-adjust-ratio) ) ) ) ((cpad-hold? 0 l1) (if (cpad-pressed? 0 square) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) ) (seek! (-> self speed-change-speed) -8.0 - (* (lerp-scale 0.01 0.3 (the float (- (-> self clock frame-counter) (-> self speed-press-time))) 0.0 300.0) + (* (lerp-scale 0.01 0.3 (the float (- (current-time) (-> self speed-press-time))) 0.0 300.0) (-> self clock time-adjust-ratio) ) ) ) ((cpad-hold? 0 x) (when (cpad-pressed? 0 x) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) (cond ((= (-> self cur-speed) 0.0) (set! (-> self speed-change-speed) -1000.0) @@ -1427,12 +1426,12 @@ ) (set! (-> self targ-speed) 0.0) (set! (-> self cur-speed) 0.0) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) ) ) ((= (-> self speed-change-speed) -1000.0) (when (!= (-> self cur-speed) -1000.0) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) (set! (-> self targ-speed) -1000.0) (set! (-> self cur-speed) -1000.0) (sound-pause (-> gp-7 id)) @@ -1445,7 +1444,7 @@ (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (-> self clock seconds-per-frame)))) ) ) - (if (< (- (-> self clock frame-counter) (-> self speed-change-time)) (seconds 3)) + (if (< (- (current-time) (-> self speed-change-time)) (seconds 3)) (format *stdcon* "id ~d speed ~f~%" @@ -1457,8 +1456,8 @@ ) ) (when (and gp-7 (and (!= (-> self targ-speed) (-> self cur-speed)) - (< (-> self speed-change-time) (-> self clock frame-counter)) - (>= (- (-> self clock frame-counter) (-> self scene-start-time)) (seconds 1)) + (< (-> self speed-change-time) (current-time)) + (>= (- (current-time) (-> self scene-start-time)) (seconds 1)) ) ) (when *sound-player-enable* @@ -1471,7 +1470,7 @@ ) ) (set! (-> self cur-speed) (-> self targ-speed)) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) ) ) ) diff --git a/goal_src/jak2/engine/sound/gsound.gc b/goal_src/jak2/engine/sound/gsound.gc index 4f784a41eb..5968476bdc 100644 --- a/goal_src/jak2/engine/sound/gsound.gc +++ b/goal_src/jak2/engine/sound/gsound.gc @@ -672,10 +672,10 @@ otherwise, an explicit [[vector]] can be provided" ) (cond ((-> obj spec) - (when (or (< (-> obj time-base) 0) (>= (-> pp clock frame-counter) (-> obj play-time))) + (when (or (< (-> obj time-base) 0) (>= (current-time) (-> obj play-time))) (when (>= (-> obj time-base) 0) (set! (-> obj play-time) - (+ (-> pp clock frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) + (+ (current-time) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) (set! (-> obj playing-id) (new-sound-id)) ) @@ -697,7 +697,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (when (and *debug-effect-control* (>= (-> obj time-base) 0)) - (format #t "(~5D) effect sound ~A ~G " (-> pp clock frame-counter) (-> pp name) (&-> s5-1 sound-name)) + (format #t "(~5D) effect sound ~A ~G " (current-time) (-> pp name) (&-> s5-1 sound-name)) (format #t "volume: ~f pitch-mod: ~f~%" @@ -731,7 +731,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (else - (when (>= (-> pp clock frame-counter) (-> obj play-time)) + (when (>= (current-time) (-> obj play-time)) (set! (-> obj playing-id) (sound-play-by-name (-> obj name) @@ -744,7 +744,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (set! (-> obj play-time) - (+ (-> pp clock frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) + (+ (current-time) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) ) ) @@ -984,32 +984,31 @@ otherwise, an explicit [[vector]] can be provided" (defun sound-bank-reload () (process-spawn-function process - (lambda () (with-pp - (let ((gp-0 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 3))) - (dotimes (v1-0 3) - (set! (-> gp-0 v1-0) (the-as symbol (-> *level* sound-bank v1-0))) - ) - (let ((a1-3 (new 'stack-no-clear 'array 'symbol 4))) - (set! (-> a1-3 2) 'empty2) - (set! (-> a1-3 1) 'empty1) - (set! (-> a1-3 0) 'empty0) - (want-sound-banks *load-state* a1-3) - ) - (let ((s5-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) s5-0) (seconds 1)) - (suspend) - ) - ) - (let ((a1-4 (new 'stack-no-clear 'array 'symbol 4))) - (set! (-> a1-4 2) (-> gp-0 2)) - (set! (-> a1-4 1) (-> gp-0 1)) - (set! (-> a1-4 0) (-> gp-0 0)) - (want-sound-banks *load-state* a1-4) - ) - ) - (none) - ) + (lambda () + (let ((gp-0 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 3))) + (dotimes (v1-0 3) + (set! (-> gp-0 v1-0) (the-as symbol (-> *level* sound-bank v1-0))) + ) + (let ((a1-3 (new 'stack-no-clear 'array 'symbol 4))) + (set! (-> a1-3 2) 'empty2) + (set! (-> a1-3 1) 'empty1) + (set! (-> a1-3 0) 'empty0) + (want-sound-banks *load-state* a1-3) + ) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) + (suspend) ) + ) + (let ((a1-4 (new 'stack-no-clear 'array 'symbol 4))) + (set! (-> a1-4 2) (-> gp-0 2)) + (set! (-> a1-4 1) (-> gp-0 1)) + (set! (-> a1-4 0) (-> gp-0 0)) + (want-sound-banks *load-state* a1-4) + ) + ) + (none) + ) :to *display-pool* ) 0 diff --git a/goal_src/jak2/engine/sound/speech.gc b/goal_src/jak2/engine/sound/speech.gc index 573de5faa5..d9bc46bfd7 100644 --- a/goal_src/jak2/engine/sound/speech.gc +++ b/goal_src/jak2/engine/sound/speech.gc @@ -55,10 +55,10 @@ (let ((s4-0 (handle->process (-> obj request handle)))) (when s4-0 (when (or (and (>= (-> obj request priority) 0.0) - (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) + (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) ) - (and (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) - (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> obj delay))) + (and (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) + (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> obj delay))) ) ) (let ((s3-0 (-> s5-1 list length)) @@ -85,7 +85,7 @@ (set! (-> s5-1 play-index) v1-44) (let ((s3-1 (-> s5-1 list v1-44))) (mem-copy! (the-as pointer (-> obj last-request)) (the-as pointer (-> obj request)) 21) - (set! (-> obj start-time) (-> pp clock frame-counter)) + (set! (-> obj start-time) (current-time)) (set! (-> obj delay) (the-as uint (rand-vu-int-range (the-as int (-> s5-1 min-delay)) (the-as int (-> s5-1 max-delay)))) ) @@ -106,7 +106,7 @@ ) ) ) - (set! (-> obj update-time) (-> pp clock frame-counter)) + (set! (-> obj update-time) (current-time)) (when (nonzero? (-> obj id)) (let ((s4-1 (handle->process (-> obj last-request handle)))) (cond @@ -152,7 +152,7 @@ ) (case (get-status *gui-control* (-> obj id)) (((gui-status pending)) - (when (>= (- (-> pp clock frame-counter) (-> obj start-time)) (seconds 1)) + (when (>= (- (current-time) (-> obj start-time)) (seconds 1)) (set-action! *gui-control* (gui-action stop) @@ -180,27 +180,25 @@ ) (defmethod speech-channel-method-9 speech-channel ((obj speech-channel) (arg0 process-drawable) (arg1 speech-type)) - (with-pp - (let ((f0-0 (vector-vector-distance-squared (-> arg0 root trans) (-> obj target-pos))) - (f1-0 245760.0) - ) - (when (< f0-0 (* f1-0 f1-0)) - (let* ((f1-3 -1.0) - (f2-0 409600.0) - (f0-2 (+ (* f0-0 (/ f1-3 (* f2-0 f2-0))) (the float (-> obj speech-table arg1 priority)))) - ) - (when (< (-> obj request priority) f0-2) - (set! (-> obj request priority) f0-2) - (set! (-> obj request handle) (process->handle arg0)) - (set! (-> obj request speech-type) arg1) - (set! (-> obj request time) (-> pp clock frame-counter)) - ) + (let ((f0-0 (vector-vector-distance-squared (-> arg0 root trans) (-> obj target-pos))) + (f1-0 245760.0) + ) + (when (< f0-0 (* f1-0 f1-0)) + (let* ((f1-3 -1.0) + (f2-0 409600.0) + (f0-2 (+ (* f0-0 (/ f1-3 (* f2-0 f2-0))) (the float (-> obj speech-table arg1 priority)))) + ) + (when (< (-> obj request priority) f0-2) + (set! (-> obj request priority) f0-2) + (set! (-> obj request handle) (process->handle arg0)) + (set! (-> obj request speech-type) arg1) + (set! (-> obj request time) (current-time)) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod speech-channel-method-10 speech-channel ((obj speech-channel) (arg0 handle)) diff --git a/goal_src/jak2/engine/target/board/board-h.gc b/goal_src/jak2/engine/target/board/board-h.gc index 89e83f5051..3bb2b4c7a9 100644 --- a/goal_src/jak2/engine/target/board/board-h.gc +++ b/goal_src/jak2/engine/target/board/board-h.gc @@ -265,13 +265,13 @@ (not (logtest? (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons l2))) ) (not *pause-lock*) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-debug-heal)) (seconds 0.1)) + (>= (- (current-time) (-> self control time-of-last-debug-heal)) (seconds 0.1)) (>= (-> self control last-time-on-surface) (-> self control time-of-last-debug-float)) ) (-> self board latch?) ) (not (focus-test? self dead hit grabbed in-head edge-grab pole board pilot mech dark)) - (or (zero? (-> self board)) (>= (- (-> self clock frame-counter) (-> self board board-time)) (seconds 0.5))) + (or (zero? (-> self board)) (>= (- (current-time) (-> self board board-time)) (seconds 0.5))) (not (logtest? (state-flags prevent-board) (-> self state-flags))) (< (-> self board board-time) (-> self control list-time-on-ground)) (not (logtest? (surface-flag no-board) (-> self control current-surface flags))) @@ -320,10 +320,7 @@ #f #t ) - (begin - (set! (-> self board latch?) #t) - (>= (- (-> self clock frame-counter) (-> self gun gun-time)) (seconds 0.4)) - ) + (begin (set! (-> self board latch?) #t) (>= (- (current-time) (-> self gun gun-time)) (seconds 0.4))) ) ) ) diff --git a/goal_src/jak2/engine/target/board/board-states.gc b/goal_src/jak2/engine/target/board/board-states.gc index 36f8ddee9e..81864f88d1 100644 --- a/goal_src/jak2/engine/target/board/board-states.gc +++ b/goal_src/jak2/engine/target/board/board-states.gc @@ -90,7 +90,7 @@ ) (when (and (or (< (* f30-0 (-> self board turn-anim-targ)) 0.0) (= f30-0 0.0)) (and (< (* 0.2 (-> *TARGET_BOARD-bank* turn-frames)) (fabs (- f30-0 (-> self board turn-anim-targ)))) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (>= (current-time) (-> self control turn-lockout-end-time)) ) ) (let ((v1-50 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) @@ -107,9 +107,7 @@ ) (set! (-> self board turn-anim-duck-vel) (* 0.98 (-> self board turn-anim-duck-vel))) (+! (-> self board turn-anim-duck-vel) (* -8.0 (-> self clock seconds-per-frame))) - (when (and (board-on-ground?) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.2)) - ) + (when (and (board-on-ground?) (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2))) (if (logtest? (-> self control status) (collide-status impact-surface)) (+! (-> self board turn-anim-duck-vel) (lerp-scale 0.0 15.0 (-> self control normal-impact-vel) 0.0 81920.0)) ) @@ -128,31 +126,30 @@ (defbehavior target-board-spin-check target () (when (and (or (cpad-pressed? (-> self control cpad number) r1) (and (cpad-hold? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self board spin-check-time)) (seconds 0.3)) + (>= (- (current-time) (-> self board spin-check-time)) (seconds 0.3)) ) ) (not (and (and (-> self next-state) (let ((v1-24 (-> self next-state name))) (or (= v1-24 'target-board-trickx) (= v1-24 'target-board-hold)) ) ) - (< (- (-> self clock frame-counter) (-> self board spin-start-time)) (seconds 0.5)) + (< (- (current-time) (-> self board spin-start-time)) (seconds 0.5)) ) ) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self board spin-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-start-time) (current-time)) (set! (-> self board spin-start-dir quad) (-> self node-list data 3 bone transform vector 2 quad)) (vector-flatten! (-> self control turn-to-alt-heading) (-> self control c-R-w vector 2) *up-vector*) (vector-normalize! (-> self control turn-to-alt-heading) 1.0) (rot->dir-targ! (-> self control)) - (set! (-> self board trotyv-max) - (lerp-scale - 218453.33 - 91022.22 - (the float (- (-> self clock frame-counter) (-> self control last-time-on-surface))) - 0.0 - 300.0 - ) + (set! (-> self board trotyv-max) (lerp-scale + 218453.33 + 91022.22 + (the float (- (current-time) (-> self control last-time-on-surface))) + 0.0 + 300.0 + ) ) (set! (-> self board trotyv) 0.0) (set! (-> self board troty) 0.0) @@ -164,14 +161,14 @@ (cond ((and (cpad-hold? (-> self control cpad number) r1) (and (or (= (-> self control mod-surface name) 'spin) - (< (- (-> self clock frame-counter) (-> self board spin-time)) (seconds 0.05)) + (< (- (current-time) (-> self board spin-time)) (seconds 0.05)) ) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) ) ) (set! (-> self board turn-anim-tilt?) #f) (set! (-> self control mod-surface) *board-spin-mods*) - (set! (-> self board spin-time) (-> self clock frame-counter)) + (set! (-> self board spin-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 x) (* -0.0078125 (+ -128.0 (the float (-> self control cpad leftx))))) (set! (-> gp-0 y) 0.0) @@ -217,7 +214,7 @@ (set! (-> self control mod-surface) (the-as surface (-> self board mods-backup))) ) ) - (set! (-> self board spin-check-time) (-> self clock frame-counter)) + (set! (-> self board spin-check-time) (current-time)) (when (and (or (cpad-pressed? (-> self control cpad number) l1) (< (-> self control last-time-on-surface) (-> self board unknown-time-frame06)) ) @@ -225,7 +222,7 @@ ) (set! (-> self board turn-anim-tilt?) #f) (set! (-> self control mod-surface) *board-spin-mods*) - (set! (-> self board unknown-time-frame03) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame03) (current-time)) (let ((gp-2 (new 'stack-no-clear 'vector))) (set! (-> gp-2 x) (* -0.0078125 (+ -128.0 (the float (-> self control cpad leftx))))) (set! (-> gp-2 y) 0.0) @@ -243,7 +240,7 @@ (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (and (>= (target-height-above-ground) 4096.0) (< (seconds 0.165) (target-time-to-ground)) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame05)) (seconds 0.05)) + (>= (- (current-time) (-> self board unknown-time-frame05)) (seconds 0.05)) (< (-> self board unknown-time-frame05) (-> self board unknown-time-frame06)) ) ) @@ -267,7 +264,7 @@ (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (and (>= (target-height-above-ground) 4096.0) (< (seconds 0.165) (target-time-to-ground)) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame05)) (seconds 0.05)) + (>= (- (current-time) (-> self board unknown-time-frame05)) (seconds 0.05)) ) ) ) @@ -335,7 +332,7 @@ ) (set! (-> self board troty-cum) 0.0) (set! (-> self board flip-count) 0) - (if (>= (- (-> self clock frame-counter) (-> self board in-air-time)) (seconds 0.2)) + (if (>= (- (current-time) (-> self board in-air-time)) (seconds 0.2)) (flush-trick-list (-> self board)) ) 0 @@ -350,7 +347,7 @@ (f28-0 (vector-y-angle (-> self control transv))) (f0-2 (y-angle (-> self control))) ) - (if (< (- (-> self clock frame-counter) (-> self board halfpipe-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self board halfpipe-time)) (seconds 0.1)) (set! f28-0 (+ 32768.0 f28-0)) ) (let ((f0-5 (fabs (deg-diff f0-2 f28-0)))) @@ -456,7 +453,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (and (< (-> self control surface-angle) 0.3) (zero? (-> self board halfpipe-side-time))) ) - (set! (-> self board halfpipe-side-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-side-time) (current-time)) (set! v0-3 (logior (-> self control root-prim prim-core action) (collide-action no-normal-reset))) (set! (-> self control root-prim prim-core action) v0-3) v0-3 @@ -464,11 +461,11 @@ (else (if (and (not (board-on-ground?)) (nonzero? (-> self board halfpipe-side-time)) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-side-time)) (seconds 0.05)) + (>= (- (current-time) (-> self board halfpipe-side-time)) (seconds 0.05)) ) (go target-board-halfpipe) ) - (when (>= (- (-> self clock frame-counter) (-> self board halfpipe-side-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board halfpipe-side-time)) (seconds 0.2)) (set! (-> self board halfpipe-side-time) 0) (set! v0-3 (logclear (-> self control root-prim prim-core action) (collide-action no-normal-reset))) (set! (-> self control root-prim prim-core action) v0-3) @@ -480,11 +477,11 @@ ) (defbehavior target-board-jump-trans target () - (when (and (!= (-> self state-time) (-> self clock frame-counter)) (jump-hit-ground-stuck?)) - (set! (-> self board jump-land-time) (-> self clock frame-counter)) + (when (and (!= (-> self state-time) (current-time)) (jump-hit-ground-stuck?)) + (set! (-> self board jump-land-time) (current-time)) (go target-board-hit-ground) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (target-board-smack-surface?) ) (if (and (cpad-pressed? (-> self control cpad number) x) @@ -530,8 +527,8 @@ (< 0.0 (vector-dot (-> self control transv) s5-0)) ) ) - (set! (-> self board halfpipe-lip-time) (-> self clock frame-counter)) - (set! (-> self board halfpipe-side-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-lip-time) (current-time)) + (set! (-> self board halfpipe-side-time) (current-time)) (set! (-> self board halfpipe-lip-event) (the-as symbol (-> event param 0))) (let ((v0-2 (the-as object (logior (-> self control root-prim prim-core action) (collide-action no-normal-reset)))) ) @@ -586,7 +583,7 @@ :trans (behavior () (if (and (cpad-hold? (-> self control cpad number) l1) (not (logtest? (-> self state-flags) (state-flags prevent-duck))) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) ) @@ -610,7 +607,7 @@ ) (vector-normalize! gp-0 1.0) (cond - ((and (< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((and (< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (= (-> self control ground-pat mode) (pat-mode halfpipe)) ) ) @@ -618,7 +615,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (< (-> self control surface-angle) 0.5) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (else @@ -629,14 +626,14 @@ ) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> self board spin-ground-press-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-press-time) (current-time)) ) (if (and (cpad-hold? (-> self control cpad number) r1) (can-feet? #t) - (< (- (-> self clock frame-counter) (-> self board spin-ground-press-time)) (seconds 0.3)) + (< (- (current-time) (-> self board spin-ground-press-time)) (seconds 0.3)) (turn-around?) ) - (set! (-> self board spin-ground-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-start-time) (current-time)) ) (target-board-halfpipe-check) (if (target-board-smack-surface?) @@ -649,7 +646,7 @@ (set! (-> self control mod-surface) *board-walk-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) ) - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (or (= (-> self control mod-surface name) 'spin) (< 4096.0 (target-height-above-ground))) ) (set! (-> self control mod-surface) *board-jump-mods*) @@ -780,7 +777,7 @@ :trans (behavior () (if (and (or (not (cpad-hold? (-> self control cpad number) l1)) (logtest? (-> self state-flags) (state-flags prevent-duck)) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) ) @@ -806,7 +803,7 @@ ) (vector-normalize! gp-0 1.0) (cond - ((and (< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((and (< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (= (-> self control ground-pat mode) (pat-mode halfpipe)) ) ) @@ -814,7 +811,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (< (-> self control surface-angle) 0.5) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (else @@ -834,14 +831,14 @@ ) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> self board spin-ground-press-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-press-time) (current-time)) ) (if (and (cpad-hold? (-> self control cpad number) r1) (can-feet? #t) - (< (- (-> self clock frame-counter) (-> self board spin-ground-press-time)) (seconds 0.3)) + (< (- (current-time) (-> self board spin-ground-press-time)) (seconds 0.3)) (turn-around?) ) - (set! (-> self board spin-ground-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-start-time) (current-time)) ) (target-board-halfpipe-check) (if (target-board-smack-surface?) @@ -855,7 +852,7 @@ (set! (-> self control mod-surface) *board-duck-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) ) - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (or (= (-> self control mod-surface name) 'spin) (< 4096.0 (target-height-above-ground))) ) (set! (-> self control mod-surface) *board-duck-jump-mods*) @@ -875,7 +872,7 @@ (defstate target-board-jump (target) :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) - (if (and (= event-type 'edge-grab) (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1))) + (if (and (= event-type 'edge-grab) (< (- (current-time) (-> self state-time)) (seconds 0.1))) (return #f) ) (target-board-handler proc arg1 event-type event) @@ -888,7 +885,7 @@ (if (= arg2 'hit) (set! arg2 #f) ) - (when (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.5)) + (when (< (- (current-time) (-> self board ride-time)) (seconds 0.5)) (set! arg2 (the-as symbol *board-ride-jump-mods*)) (let ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> self control transv) 1.0))) (forward-up-nopitch->quaternion @@ -897,19 +894,19 @@ (vector-y-quaternion! (new-stack-vector0) (-> self control dir-targ)) ) (set! (-> self control turn-lockout-end-time) - (+ (-> self clock frame-counter) + (+ (current-time) (the int (lerp-scale 225.0 0.0 (vector-dot s2-0 (-> self control c-R-w vector 2)) -1.0 1.0)) ) ) ) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((f30-0 0.0)) (cond ((and (< 0.0 (-> self board shock-offsetv)) - (< (- (-> self clock frame-counter) (-> self board jump-land-time)) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.5)) + (< (- (current-time) (-> self board jump-land-time)) (seconds 0.5)) + (>= (- (current-time) (-> self board ride-time)) (seconds 0.5)) ) (let ((s3-2 (new 'stack-no-clear 'vector))) (set! (-> s3-2 quad) (-> self control trans quad)) @@ -1001,7 +998,7 @@ #t #f (-> self control transv) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (if (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) 2.0 0.0 ) @@ -1166,7 +1163,7 @@ ) :enter (behavior () (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action no-normal-reset)) (set! (-> self control mod-surface) *board-halfpipe-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -1242,7 +1239,7 @@ ) :trans (behavior () (when (and (or (= (the-as int (-> self control did-move-to-pole-or-max-jump-height)) #t) - (and (< (- (-> self clock frame-counter) (-> self board halfpipe-lip-time)) (seconds 0.1)) + (and (< (- (current-time) (-> self board halfpipe-lip-time)) (seconds 0.1)) (= (-> self board halfpipe-lip-event) 'lipramp) ) ) @@ -1268,22 +1265,20 @@ ) ) ) - (set! (-> self board halfpipe-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-time) (current-time)) (if (= (-> self control gspot-pat-surfce mode) (pat-mode halfpipe)) - (set! (-> self board halfpipe-gspot-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-gspot-time) (current-time)) ) (when (jump-hit-ground-stuck?) (vector-float*! (-> self control transv) (-> self control transv) 1.5) (go target-board-turn-to (-> self control transv) (seconds 0.5)) ) (when (and (cpad-pressed? (-> self control cpad number) x) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.6)) - (< (- (-> self clock frame-counter) (-> self state-time)) - (the-as time-frame (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.6)) + (< (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* ground-timeout))) (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (target-board-spin-check) @@ -1296,7 +1291,7 @@ (set! (-> gp-0 y) 0.0) (vector-normalize! gp-0 1.0) (if (< 0.7 (vector-dot (-> self control to-target-pt-xz) gp-0)) - (+! (-> self control sliding-start-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self control sliding-start-time) (- (current-time) (-> self clock old-frame-counter))) (set! (-> self control sliding-start-time) 1) ) ) @@ -1313,7 +1308,7 @@ ) ) (when (or (>= (-> self control sliding-start-time) (seconds 0.05)) - (and (>= (- (-> self clock frame-counter) (-> self board halfpipe-gspot-time)) (seconds 0.5)) + (and (>= (- (current-time) (-> self board halfpipe-gspot-time)) (seconds 0.5)) (< (-> self board halfpipe-lip-time) (+ (-> self state-time) (seconds -0.2))) ) ) @@ -1326,7 +1321,7 @@ ) :code (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (ja-channel-push! 1 (seconds 0.05)) (ja-no-eval :group! (-> self draw art-group data 155) :num! (seek! (ja-aframe 8.0 0) 0.5) :frame-num 0.0) (until (ja-done? 0) @@ -1444,7 +1439,7 @@ (defstate target-board-jump-kick (target) :event target-board-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-jump-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (sound-play "board-k-jump") @@ -1457,10 +1452,10 @@ ) (target-board-smack-surface?) (cond - ((< (- (-> self clock frame-counter) (-> self board smack-surface-time)) (seconds 0.2)) + ((< (- (current-time) (-> self board smack-surface-time)) (seconds 0.2)) (go target-board-wall-kick (-> self board smack-normal) (-> self board smack-speed)) ) - ((< (- (-> self clock frame-counter) (-> self board glance-time)) (seconds 0.2)) + ((< (- (current-time) (-> self board glance-time)) (seconds 0.2)) (go target-board-wall-kick (vector-normalize-copy! (-> self control unknown-vector38) (-> self board glance-out-transv) 1.0) @@ -1506,7 +1501,7 @@ (* 0.008333334 (- (-> self control dynam gravity-length))) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-wall-kick-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (set! (-> self board smack-surface-time) 0) @@ -1551,7 +1546,7 @@ (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (cond ((= arg2 'halfpipe) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) @@ -1732,8 +1727,8 @@ (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self board unknown-time-frame04) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self board unknown-time-frame04) (current-time)) (cond ((= arg2 'halfpipe) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) @@ -1754,7 +1749,7 @@ ) :exit (behavior () (set! (-> self board unknown-float01) 0.0) - (set! (-> self board unknown-time-frame05) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame05) (current-time)) (let ((v1-3 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-3 command) (sound-command set-param)) (set! (-> v1-3 id) (-> self board unknown-sound-id01)) @@ -1946,7 +1941,7 @@ (mod-var-jump #t #f (cpad-hold? (-> self control cpad number) x) (-> self control transv)) ) (when (jump-hit-ground-stuck?) - (set! (-> self board jump-land-time) (-> self clock frame-counter)) + (set! (-> self board jump-land-time) (current-time)) (go target-board-hit-ground) ) (set! (-> self board slow-transv quad) (-> self control transv quad)) @@ -2141,7 +2136,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-turn-to-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (set! (-> self control sliding-start-time) arg1) @@ -2151,7 +2146,7 @@ (-> self control unknown-vector38) (vector-y-quaternion! (new-stack-vector0) (-> self control dir-targ)) ) - (set! (-> self control turn-lockout-end-time) (+ (-> self clock frame-counter) arg1)) + (set! (-> self control turn-lockout-end-time) (+ (current-time) arg1)) (none) ) :exit target-board-exit @@ -2168,7 +2163,7 @@ (flush-trick-list (-> self board)) (go target-board-jump (-> *TARGET_BOARD-bank* jump-height-min) (-> *TARGET_BOARD-bank* jump-height-max) #f) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self control sliding-start-time)) + (if (>= (- (current-time) (-> self state-time)) (-> self control sliding-start-time)) (go target-board-stance) ) (target-board-anim-trans) @@ -2193,7 +2188,7 @@ ) (('end-mode) (when (-> event param 0) - (let ((v1-6 (/ (- (-> self clock frame-counter) (-> self board ride-start-time)) 300))) + (let ((v1-6 (/ (- (current-time) (-> self board ride-start-time)) 300))) (if (> v1-6 0) (add-to-trick-list (-> self board) (board-tricks board-rail) (* 100.0 (the float v1-6))) ) @@ -2207,7 +2202,7 @@ ) ) :enter (behavior ((arg0 symbol) (arg1 object) (arg2 object) (arg3 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self focus-status) (logior (focus-status rail) (-> self focus-status))) (logior! (-> self control root-prim prim-core action) (collide-action can-ride)) (set! (-> self control mod-surface) *board-ride-mods*) @@ -2316,7 +2311,7 @@ ) (can-jump? 'board) ) - (let ((v1-15 (/ (- (-> self clock frame-counter) (-> self board ride-start-time)) 300))) + (let ((v1-15 (/ (- (current-time) (-> self board ride-start-time)) 300))) (if (> v1-15 0) (add-to-trick-list (-> self board) (board-tricks board-rail) (* 100.0 (the float v1-15))) ) @@ -2333,7 +2328,7 @@ (set! (-> self control unknown-word04) (the-as uint #f)) ) (if (-> self control unknown-spool-anim00) - (set! (-> self board ride-button-time) (-> self clock frame-counter)) + (set! (-> self board ride-button-time) (current-time)) ) (set! (-> self board turn-anim-targ) (* (-> self board ride-lean) (- (-> *TARGET_BOARD-bank* turn-frames)))) (cond @@ -2419,13 +2414,11 @@ (until #f (ja :num-func num-func-identity :frame-num (ja-aframe - (fmax - -5.0 - (fmin 5.0 (+ (* 3.0 (-> self board ride-lean)) - (* 0.5 (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time)))))) - ) - ) - ) + (fmax -5.0 (fmin 5.0 (+ (* 3.0 (-> self board ride-lean)) + (* 0.5 (sin (* 145.63556 (the float (- (current-time) (-> self state-time)))))) + ) + ) + ) 0 ) ) @@ -2454,7 +2447,7 @@ :enter (behavior ((arg0 handle)) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) (set! (-> self control unknown-handle02) arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action no-normal-reset)) (set! (-> self control mod-surface) *board-halfpipe-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -2484,11 +2477,11 @@ (none) ) :trans (behavior () - (set! (-> self board halfpipe-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-time) (current-time)) (if (= (-> self control gspot-pat-surfce mode) (pat-mode halfpipe)) - (set! (-> self board halfpipe-gspot-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-gspot-time) (current-time)) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (vector+float*! (-> self control transv) (-> self control transv) @@ -2500,7 +2493,7 @@ (vector-float*! (-> self control transv) (-> self control transv) 1.5) (go target-board-turn-to (-> self control transv) (seconds 0.5)) ) - (when (>= (- (-> self clock frame-counter) (-> self board halfpipe-gspot-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self board halfpipe-gspot-time)) (seconds 0.5)) (+! (-> self control transv x) (* 20480.0 (-> self control edge-grab-across-edge-dir x))) (+! (-> self control transv z) (* 20480.0 (-> self control edge-grab-across-edge-dir z))) (go target-board-stance) @@ -2569,7 +2562,7 @@ ) :enter (behavior () (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *board-jump-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -2721,7 +2714,7 @@ :enter (behavior ((arg0 handle)) (logclear! (-> self focus-status) (focus-status halfpipe)) (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (none) ) @@ -2814,7 +2807,7 @@ ) (logclear! (-> self focus-status) (focus-status halfpipe)) (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) (new 'static 'surface :name 'jump @@ -3116,7 +3109,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-board-stance) ) @@ -3126,7 +3119,7 @@ :code (behavior ((arg0 vector) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) (logclear! (-> self focus-status) (focus-status halfpipe)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self attack-info))) (let ((s5-0 (new 'stack-no-clear 'vector))) (let ((v1-6 gp-0)) @@ -3175,7 +3168,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -3183,8 +3176,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/engine/target/board/target-board.gc b/goal_src/jak2/engine/target/board/target-board.gc index a050857cd1..eff8584f3f 100644 --- a/goal_src/jak2/engine/target/board/target-board.gc +++ b/goal_src/jak2/engine/target/board/target-board.gc @@ -221,7 +221,7 @@ (case arg3 ((1) (if (< 0.9 (-> self control surface-angle)) - (set! (-> self board on-flat-time) (-> self clock frame-counter)) + (set! (-> self board on-flat-time) (current-time)) ) (set! (-> self board slip-factor) (lerp-scale 1.0 (-> arg0 slip-factor) (fabs (-> self control ctrl-slope-heading)) 0.0 1.0) @@ -229,41 +229,33 @@ (set! (-> arg0 slip-factor) (-> self board slip-factor)) (set! (-> arg0 slope-up-factor) (-> arg1 slope-up-factor)) (set! (-> arg0 slope-down-factor) (-> arg1 slope-down-factor)) - (set! (-> arg0 seek0) (lerp-scale - (* 0.1 (-> arg0 seek0)) - (-> arg0 seek0) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 seek0) + (lerp-scale + (* 0.1 (-> arg0 seek0)) + (-> arg0 seek0) + (the float (- (current-time) (-> self board spin-time))) + 0.0 + 600.0 + ) ) - (set! (-> arg0 seek90) (lerp-scale - (* 0.1 (-> arg0 seek90)) - (-> arg0 seek90) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 seek90) + (lerp-scale + (* 0.1 (-> arg0 seek90)) + (-> arg0 seek90) + (the float (- (current-time) (-> self board spin-time))) + 0.0 + 600.0 + ) ) - (set! (-> arg0 vel-turn) (lerp-scale - 131072.0 - (-> arg1 vel-turn) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 vel-turn) + (lerp-scale 131072.0 (-> arg1 vel-turn) (the float (- (current-time) (-> self board spin-time))) 0.0 600.0) ) - (set! (-> arg0 turnv) (lerp-scale - 91022.22 - (-> arg1 turnv) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 turnv) + (lerp-scale 91022.22 (-> arg1 turnv) (the float (- (current-time) (-> self board spin-time))) 0.0 600.0) ) - (when (< (- (-> self clock frame-counter) (-> self board spin-ground-start-time)) (seconds 0.3)) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) - (set! (-> self board spin-ground-time) (-> self clock frame-counter)) + (when (< (- (current-time) (-> self board spin-ground-start-time)) (seconds 0.3)) + (set! (-> self control last-attack-end-time) (current-time)) + (set! (-> self board spin-ground-time) (current-time)) (set! (-> arg0 seek0) (* 0.1 (-> arg0 seek0))) (set! (-> arg0 seek90) (* 0.1 (-> arg0 seek90))) (set! (-> arg0 vel-turn) 131072.0) @@ -455,43 +447,42 @@ (set! *board-flip-mods* v1-14) ) -(define *board-wall-kick-mods* - (new 'static 'surface - :name 'jump - :tiltv 65536.0 - :tiltvv 262144.0 - :transv-max 143360.0 - :target-speed 102400.0 - :seek180 0.8 - :fric 0.2 - :nonlin-fric-dist 1.0 - :slip-factor 1.0 - :slide-factor 1.0 - :slope-slip-angle 1.0 - :impact-fric 0.8 - :bend-factor 1.0 - :bend-speed 1.0 - :alignv 1.0 - :slope-up-traction 1.0 - :align-speed 1.0 - :tiltvf 150.0 - :tiltvvf 60.0 - :mult-hook (lambda :behavior target - ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) - (case arg3 - ((1) - (when (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - (set! (-> arg0 turnv) 0.0) - (set! (-> arg0 turnvf) 0.0) - ) - ) +(define *board-wall-kick-mods* (new 'static 'surface + :name 'jump + :tiltv 65536.0 + :tiltvv 262144.0 + :transv-max 143360.0 + :target-speed 102400.0 + :seek180 0.8 + :fric 0.2 + :nonlin-fric-dist 1.0 + :slip-factor 1.0 + :slide-factor 1.0 + :slope-slip-angle 1.0 + :impact-fric 0.8 + :bend-factor 1.0 + :bend-speed 1.0 + :alignv 1.0 + :slope-up-traction 1.0 + :align-speed 1.0 + :tiltvf 150.0 + :tiltvvf 60.0 + :mult-hook (lambda :behavior target + ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) + (case arg3 + ((1) + (when (< (- (current-time) (-> self state-time)) (seconds 0.05)) + (set! (-> arg0 turnv) 0.0) + (set! (-> arg0 turnvf) 0.0) + ) + ) + ) + (none) + ) + :mode 'air + :flags (surface-flag no-turn-around turn-to-vel air) + ) ) - (none) - ) - :mode 'air - :flags (surface-flag no-turn-around turn-to-vel air) - ) - ) (define *board-halfpipe-mods* (new 'static 'surface :name 'jump @@ -706,7 +697,7 @@ (a2-3 (-> gp-1 world-vertex 1)) (f0-2 (t9-8 s5-1 (the-as vector a1-8) a2-3)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.4)) + (if (and (>= (- (current-time) (-> self board ride-time)) (seconds 0.4)) (>= f0-2 0.0) (>= 1.0 f0-2) (not (and (-> self next-state) (= (-> self next-state name) 'target-board-duck-stance))) @@ -863,10 +854,10 @@ (set! (-> self board unknown-sound-id00) (new 'static 'sound-id)) (set-setting! 'mode-sound-bank 'board 0.0 0) (set-setting! 'sound-flava #f 30.0 2) - (set! (-> self board board-get-on-time) (-> self clock frame-counter)) + (set! (-> self board board-get-on-time) (current-time)) (set! (-> self board stick-lock) #f) (set! (-> self board stick-off) #f) - (set! (-> self board unstuck-time) (-> self clock frame-counter)) + (set! (-> self board unstuck-time) (current-time)) (set! (-> self board stuck-count) 0) (set! (-> self board slip-factor) 1.0) (set! (-> self board unknown-symbol00) #f) @@ -1019,14 +1010,14 @@ (defbehavior target-board-smack-surface? target () (when (and (logtest? (-> self control status) (collide-status touch-wall)) - (< (+ (-> self clock frame-counter) (seconds -0.05)) (-> self control last-time-touching-actor)) + (< (+ (current-time) (seconds -0.05)) (-> self control last-time-touching-actor)) (< 0.7 (-> self control touch-angle)) (< 73728.0 (-> self control ctrl-xz-vel)) (and (< (vector-dot (-> self control wall-contact-normal) (-> self control dynam gravity-normal)) 0.3) (not (logtest? (-> self control status) (collide-status touch-actor))) ) ) - (set! (-> self board smack-surface-time) (-> self clock frame-counter)) + (set! (-> self board smack-surface-time) (current-time)) (set! (-> self board smack-speed) (-> self control ctrl-xz-vel)) (set! (-> self board smack-normal quad) (-> self control wall-contact-normal quad)) #t @@ -1101,14 +1092,14 @@ (set! f0-28 0.0) (set! f1-23 0.0) ) - (when (and (< (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 1)) + (when (and (< (- (current-time) (-> self control last-time-touching-actor)) (seconds 1)) (>= f28-0 0.5) (< (vector-dot (-> self control wall-contact-normal) (-> self control to-target-pt-xz)) -0.7) (logtest? (-> self control mod-surface flags) (surface-flag air)) (< 0.0 (-> gp-0 y)) ) (cond - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.1)) (< 0.3 (-> self control blocked-factor)) ) (set! f0-28 f1-23) @@ -1210,7 +1201,7 @@ (logtest? (state-flags prevent-board) (-> self state-flags)) (not (logtest? (-> *game-info* features) (game-feature board))) ) - (and (>= (- (-> self clock frame-counter) (-> self board board-get-on-time)) (seconds 1)) + (and (>= (- (current-time) (-> self board board-get-on-time)) (seconds 1)) (< (-> self board board-get-on-time) (max (-> self control list-time-on-ground) (-> self control last-time-of-stuck)) ) @@ -1377,7 +1368,7 @@ (defbehavior target-board-physics target ((arg0 vector)) (let ((f30-0 0.5)) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.3)) + (if (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.3)) (+! (-> self board shock-offsetv) (* (- (-> arg0 y) (-> self control transv y)) f30-0)) (set! (-> self board up-vector 1 quad) (-> self board up-vector 0 quad)) ) @@ -1395,7 +1386,7 @@ (set! (-> self board shock-offsetv) 0.0) (set! (-> self board shock-offset) (* 0.96 (-> self board shock-offset))) ) - ((and (or (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.2)) + ((and (or (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.2)) (< (-> self board shock-offset) 0.0) ) (!= (-> self control mod-surface mode) 'air) @@ -1578,7 +1569,7 @@ (not (and (-> self next-state) (= (-> self next-state name) 'target-board-smack))) (not (focus-test? self halfpipe)) (!= (-> self control ground-pat mode) 3) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-time)) (seconds 0.1)) + (>= (- (current-time) (-> self board halfpipe-time)) (seconds 0.1)) ) ) (let ((s5-3 (new 'stack-no-clear 'vector))) @@ -1599,7 +1590,7 @@ (s3-3 (vector-matrix*! (new 'stack-no-clear 'vector) s3-2 (-> self control w-R-c))) ) (logior! (-> self control status) (collide-status glance)) - (set! (-> self board glance-time) (-> self clock frame-counter)) + (set! (-> self board glance-time) (current-time)) (let ((v1-99 s2-2)) (set! (-> self board glance-speed) (sqrtf (+ (* (-> v1-99 x) (-> v1-99 x)) (* (-> v1-99 z) (-> v1-99 z))))) ) @@ -1628,10 +1619,7 @@ ) (else (set! (-> self control turn-lockout-end-time) - (the-as - time-frame - (max (+ (-> self clock frame-counter) (seconds 0.1)) (-> self control turn-lockout-end-time)) - ) + (the-as time-frame (max (+ (current-time) (seconds 0.1)) (-> self control turn-lockout-end-time))) ) ) ) @@ -1670,7 +1658,7 @@ (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) ) 0 (none) @@ -1696,7 +1684,7 @@ (not (logtest? (-> self control status) (collide-status on-surface))) ) (begin - (set! (-> self board in-air-time) (-> self clock frame-counter)) + (set! (-> self board in-air-time) (current-time)) (and (not (and (-> self next-state) (let ((v1-12 (-> self next-state name))) (or (= v1-12 'target-board-stance) (= v1-12 'target-board-duck-stance) (= v1-12 'target-board-turn-to)) @@ -1735,7 +1723,7 @@ ) ) ) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.2)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.2)) ) ) ) @@ -1746,7 +1734,7 @@ (else (set! (-> self control bend-speed) 1024.0) (set! (-> self control bend-target) 1.0) - (when (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (when (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) (forward-up-nopitch->quaternion (-> self control dir-targ) (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) @@ -1800,7 +1788,7 @@ (#f (set! (-> self control dynam gravity-length) 245760.0) ) - ((>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (-> self clock seconds-per-frame))) ) (else @@ -1849,17 +1837,15 @@ ) (when (and (zero? (shr (shl (-> self board unknown-int00) 54) 61)) (!= (shr (shl (-> self board unknown-int00) 40) 58) 13) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.2)) + (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2)) (< 819.2 (- f30-0 f0-36)) (or (< (-> self board unknown-time-frame01) (-> self control last-time-on-surface)) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame01)) (seconds 0.2)) + (< (- (current-time) (-> self board unknown-time-frame01)) (seconds 0.2)) ) (< 0.98 (vector-dot (-> self board unknown-vector01) (-> self control standard-dynamics gravity-normal))) (< f26-0 8192.0) (< f30-0 8192.0) - (or (< (* 0.2 f28-0) f30-0) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - ) + (or (< (* 0.2 f28-0) f30-0) (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1))) ) (vector+float*! (-> self control transv) @@ -1867,25 +1853,25 @@ (-> self control dynam gravity-normal) (* 7.0 (fmin 4096.0 f30-0)) ) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - (set! (-> self board unknown-time-frame01) (-> self clock frame-counter)) + (if (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) + (set! (-> self board unknown-time-frame01) (current-time)) ) - (set! (-> self board unknown-time-frame00) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame00) (current-time)) ) ) (when (and (not (logtest? (-> self control status) (collide-status on-surface))) (< 0.0 f28-0) (or (and (or (< (target-height-above-ground) 4096.0) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (< 8192.0 (- f28-0 (vector-dot (-> self control dynam gravity-normal) (-> self board slow-transv)))) ) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.1)) + (< (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.1)) ) (>= 204.8 f30-0) (not (and (-> self next-state) (= (-> self next-state name) 'target-board-jump))) ) - (set! (-> self board unknown-time-frame02) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame02) (current-time)) (vector-length (-> self control transv)) (let ((v1-303 (new-stack-vector0)) (f0-51 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1953,16 +1939,16 @@ (turn-to-vector s5-0 (-> self control pad-magnitude)) ) (if (and (= (-> self control pad-magnitude) 0.0) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (>= (current-time) (-> self control turn-lockout-end-time)) (not (logtest? (-> self control current-surface flags) (surface-flag turn-to-vel))) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (rot->dir-targ! (-> self control)) ) - (when (and (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (when (and (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) + (>= (current-time) (-> self control turn-lockout-end-time)) (not (logtest? (-> self control current-surface flags) (surface-flag turn-to-vel))) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (let* ((s3-0 (vector-flatten! @@ -1988,7 +1974,7 @@ ) ) (if (cpad-pressed? (-> self control cpad number) l1) - (set! (-> self board unknown-time-frame06) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame06) (current-time)) ) (board-add-thrust) (add-gravity) @@ -2062,7 +2048,7 @@ (set! (-> self board trotyv) 0.0) ) ((and (= (-> self control danger-mode) 'board-spin) - (or (board-on-ground?) (>= (- (-> self clock frame-counter) (-> self board spin-time)) (seconds 0.5))) + (or (board-on-ground?) (>= (- (current-time) (-> self board spin-time)) (seconds 0.5))) ) (target-danger-set! 'harmless #f) ) @@ -2158,7 +2144,7 @@ (joint-points) (do-target-gspot) (target-powerup-process) - (set! (-> self board board-time) (-> self clock frame-counter)) + (set! (-> self board board-time) (current-time)) (target-board-exit-check) (target-board-effect) (when (board-on-ground?) @@ -2214,9 +2200,9 @@ (return (the-as time-frame #f)) ) (vector-normalize-copy! (-> self board ride-dir) (-> self board ride-segment) 1.0) - (when (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (set! (-> self board ride-lock-on) #f) - (set! (-> self board ride-start-time) (-> self clock frame-counter)) + (set! (-> self board ride-start-time) (current-time)) (vector-normalize-copy! (-> self board ride-dir) (-> self control transv) 1.0) (dotimes (v1-25 3) (vector-reset! (-> self board ride-vertex-old v1-25)) @@ -2308,7 +2294,7 @@ ) ) (when (and (< (-> self board ride-vertex-index) 0.0) - (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (< (- (current-time) (-> self board ride-time)) (seconds 0.2)) (zero? s3-3) ) (+! s3-3 1) @@ -2336,7 +2322,7 @@ (dotimes (v1-127 3) (set! (-> self board ride-vertex v1-127 w) 1.0) ) - (when (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (set! (-> self board ride-rot-abs 0) (vector-y-angle (-> self board ride-segment))) (set! (-> self board ride-rtv-abs) 0.0) ) @@ -2383,9 +2369,7 @@ ) ) (let ((s4-3 0)) - (if (and (< (fabs f30-2) 16384.0) - (< (- (-> self clock frame-counter) (-> self board ride-start-time)) (seconds 0.1)) - ) + (if (and (< (fabs f30-2) 16384.0) (< (- (current-time) (-> self board ride-start-time)) (seconds 0.1))) (set! s4-3 (logior s4-3 1)) ) (if (or (< (vector-dot @@ -2483,7 +2467,7 @@ (set! s4-3 (logior s4-3 8)) ) ) - (if (>= (- (-> self clock frame-counter) (-> self board ride-button-time)) (seconds 0.05)) + (if (>= (- (current-time) (-> self board ride-button-time)) (seconds 0.05)) (set! s4-3 (logior s4-3 16)) ) (if (< (vector-length (-> self board ride-segment)) @@ -2495,7 +2479,7 @@ (set! s4-3 (logior s4-3 64)) ) (logclear! (-> self control status) (collide-status probe-hit)) - (when (and (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) (nonzero? s4-3)) + (when (and (< (- (current-time) (-> self board ride-time)) (seconds 0.2)) (nonzero? s4-3)) (if (logtest? s4-3 1) (format #t "exit speed ~M~%" f30-2) ) @@ -2571,12 +2555,12 @@ (-> self control to-target-pt-xz) (+ (-> self board ride-rot) (* -2730.6667 (-> self board ride-lean))) ) - (set! (-> self board ride-time) (-> self clock frame-counter)) + (set! (-> self board ride-time) (current-time)) (set! (-> self board ride-speed) f30-2) ) ) ) - (let ((v0-3 (-> self clock frame-counter))) + (let ((v0-3 (current-time))) (set! (-> self control last-time-on-surface) v0-3) v0-3 ) @@ -2729,7 +2713,7 @@ (when (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags two)) (cond - ((>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + ((>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags one)) (set! (-> *collide-edge-board-spec* touching-segment) #f) ) @@ -2855,7 +2839,7 @@ (target-powerup-process) (target-board-exit-check) (target-board-effect) - (set! (-> self board board-time) (-> self clock frame-counter)) + (set! (-> self board board-time) (current-time)) 0 (none) ) @@ -2936,7 +2920,7 @@ (fmin (-> self board turn-anim-frame) (+ -1.0 (-> *TARGET_BOARD-bank* turn-frames))) (- (+ -1.0 (-> *TARGET_BOARD-bank* turn-frames))) ) - (* (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (* (sin (* 145.63556 (the float (- (current-time) (-> self state-time))))) (lerp-scale 1.0 2.0 (fabs (-> self board turn-anim-frame)) 0.0 (-> *TARGET_BOARD-bank* turn-frames)) ) ) @@ -2947,20 +2931,15 @@ arg0 ) ) - (let ((f0-59 (fmin - (if (logtest? (-> self control status) (collide-status on-surface)) - (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) - (-> self board turn-anim-duck) - ) - (lerp-scale - 0.0 - -1.0 - (the float (- (-> self clock frame-counter) (-> self control last-time-on-surface))) - 30.0 - 120.0 - ) - ) - ) + (let ((f0-59 + (fmin + (if (logtest? (-> self control status) (collide-status on-surface)) + (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) + (-> self board turn-anim-duck) + ) + (lerp-scale 0.0 -1.0 (the float (- (current-time) (-> self control last-time-on-surface))) 30.0 120.0) + ) + ) ) (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (-> self clock seconds-per-frame))) (cond diff --git a/goal_src/jak2/engine/target/collide-reaction-target.gc b/goal_src/jak2/engine/target/collide-reaction-target.gc index 16c79c24ee..cf37f67f08 100644 --- a/goal_src/jak2/engine/target/collide-reaction-target.gc +++ b/goal_src/jak2/engine/target/collide-reaction-target.gc @@ -55,151 +55,149 @@ (tangent vector) (overhang-nrm vector) ) - (with-pp - (set! contact-normal arg2) - (set! sv-20 arg3) - (set! sv-24 arg4) - (set! sv-28 arg5) - (set! sv-32 (-> arg3 0)) - (set! sv-40 (-> arg4 0)) - (set! sv-48 (-> arg5 0)) - (set! tangent (-> arg0 low-coverage-tangent)) - (set! overhang-nrm - (vector-cross! (-> arg0 low-coverage-overhang-plane-normal) (-> arg0 poly-normal) contact-normal) - ) - (vector-normalize! overhang-nrm 1.0) - (if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) overhang-nrm)) 0.866) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf09))) + (set! contact-normal arg2) + (set! sv-20 arg3) + (set! sv-24 arg4) + (set! sv-28 arg5) + (set! sv-32 (-> arg3 0)) + (set! sv-40 (-> arg4 0)) + (set! sv-48 (-> arg5 0)) + (set! tangent (-> arg0 low-coverage-tangent)) + (set! overhang-nrm + (vector-cross! (-> arg0 low-coverage-overhang-plane-normal) (-> arg0 poly-normal) contact-normal) ) - (vector-cross! tangent contact-normal overhang-nrm) - (if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) tangent)) - (vector-negate! tangent tangent) + (vector-normalize! overhang-nrm 1.0) + (if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) overhang-nrm)) 0.866) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf09))) + ) + (vector-cross! tangent contact-normal overhang-nrm) + (if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) tangent)) + (vector-negate! tangent tangent) + ) + (vector-normalize! tangent 1.0) + (let ((s4-0 (new 'stack-no-clear 'collide-query))) + (let ((s3-0 (vector-flatten! (-> arg0 low-coverage-tangent-xz) tangent (-> arg0 dynam gravity-normal)))) + (let ((v1-19 s4-0)) + (set! (-> v1-19 radius) 409.6) + (set! (-> v1-19 collide-with) (-> arg1 best-my-prim prim-core collide-with)) + (set! (-> v1-19 ignore-process0) #f) + (set! (-> v1-19 ignore-process1) #f) + (set! (-> v1-19 ignore-pat) (-> arg0 pat-ignore-mask)) + (set! (-> v1-19 action-mask) (collide-action solid)) ) - (vector-normalize! tangent 1.0) - (let ((s4-0 (new 'stack-no-clear 'collide-query))) - (let ((s3-0 (vector-flatten! (-> arg0 low-coverage-tangent-xz) tangent (-> arg0 dynam gravity-normal)))) - (let ((v1-19 s4-0)) - (set! (-> v1-19 radius) 409.6) - (set! (-> v1-19 collide-with) (-> arg1 best-my-prim prim-core collide-with)) - (set! (-> v1-19 ignore-process0) #f) - (set! (-> v1-19 ignore-process1) #f) - (set! (-> v1-19 ignore-pat) (-> arg0 pat-ignore-mask)) - (set! (-> v1-19 action-mask) (collide-action solid)) + (vector-normalize! s3-0 1.0) + (if (< (vector-dot s3-0 contact-normal) 0.0) + (vector-negate! s3-0 s3-0) ) - (vector-normalize! s3-0 1.0) - (if (< (vector-dot s3-0 contact-normal) 0.0) - (vector-negate! s3-0 s3-0) - ) - (set! (-> arg0 low-coverage-slope-to-next1) 4095996000.0) - (set! (-> arg0 low-coverage-dist-to-next2) 4095996000.0) - (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) s3-0 2867.2) - (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) - (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 4096.0) - (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) - (set! (-> arg0 low-coverage-slope-to-next1) - (vector-dot - (-> arg0 dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> s4-0 best-other-tri intersect)) - ) - ) - (set! (-> arg0 low-coverage-pat-next1) (-> s4-0 best-other-tri pat)) - (set! (-> arg0 low-coverage-norm-of-next1 quad) (-> s4-0 best-other-tri normal quad)) - 0 - ) - (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) (-> arg0 dynam gravity-normal) 819.2) - (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) - (vector+float*! (-> s4-0 start-pos) (-> s4-0 start-pos) s3-0 -819.2) - (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 -4096.0) - ) + (set! (-> arg0 low-coverage-slope-to-next1) 4095996000.0) + (set! (-> arg0 low-coverage-dist-to-next2) 4095996000.0) + (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) s3-0 2867.2) + (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) + (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 4096.0) (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) - (set! (-> arg0 low-coverage-dist-to-next2) - (vector-vector-distance (-> s4-0 start-pos) (-> s4-0 best-other-tri intersect)) + (set! (-> arg0 low-coverage-slope-to-next1) + (vector-dot + (-> arg0 dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> s4-0 best-other-tri intersect)) + ) ) - (set! (-> arg0 low-coverage-pat-next2) (-> s4-0 best-other-tri pat)) - (set! (-> arg0 low-coverage-norm-of-next2 quad) (-> s4-0 best-other-tri normal quad)) + (set! (-> arg0 low-coverage-pat-next1) (-> s4-0 best-other-tri pat)) + (set! (-> arg0 low-coverage-norm-of-next1 quad) (-> s4-0 best-other-tri normal quad)) 0 ) + (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) (-> arg0 dynam gravity-normal) 819.2) + (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) + (vector+float*! (-> s4-0 start-pos) (-> s4-0 start-pos) s3-0 -819.2) + (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 -4096.0) ) - (when (and (not (logtest? sv-32 (cshape-reaction-flags csrf09))) - (and (or (< (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) - (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode wall)) - ) - (and (< (-> arg0 low-coverage-dist-to-next2) (* 2.0 (-> arg1 best-my-prim local-sphere w))) - (or (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode ground)) - (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode halfpipe)) - ) - ) - ) - ) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf07))) - (set! (-> arg0 time-of-last-lc-touch-edge) (-> pp clock frame-counter)) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) - (let ((f30-0 (vector-dot tangent (-> arg0 turn-to-target))) - (f0-27 (if (logtest? sv-32 (cshape-reaction-flags csrf01)) - (cos (- 16384.0 (acos (-> arg0 coverage)))) - (-> arg0 coverage) - ) - ) - (f1-11 (vector-dot - (-> arg0 dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-other-tri intersect)) - ) - ) + (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) + (set! (-> arg0 low-coverage-dist-to-next2) + (vector-vector-distance (-> s4-0 start-pos) (-> s4-0 best-other-tri intersect)) ) - (if (or (not (logtest? sv-32 (cshape-reaction-flags csrf05))) (< 0.5 f0-27)) - (set! sv-48 (the-as symbol #f)) - ) - (when (and (or (and (< f0-27 0.95) (>= f30-0 0.0)) - (and (logtest? sv-32 (cshape-reaction-flags csrf05)) (< f0-27 0.3)) - (< f1-11 (* -0.25 (-> arg1 best-my-prim local-sphere w))) - ) - (>= (vector-dot tangent contact-normal) -0.000001) - ) - (set! (-> arg0 surf) *edge-surface*) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf10))) - (set! sv-48 (the-as symbol #f)) - (when (logtest? sv-32 (cshape-reaction-flags csrf05)) - (set! sv-48 #t) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf12))) - ) - ) - ) + (set! (-> arg0 low-coverage-pat-next2) (-> s4-0 best-other-tri pat)) + (set! (-> arg0 low-coverage-norm-of-next2 quad) (-> s4-0 best-other-tri normal quad)) + 0 ) - (if (< (-> arg0 surface-angle) 0.0) - (set! sv-48 #t) - ) - (when sv-48 - (cond - ((and (or (or (= (-> arg0 poly-pat mode) (pat-mode ground)) (= (-> arg0 poly-pat mode) (pat-mode halfpipe))) - (and (logtest? sv-32 (cshape-reaction-flags csrf03)) - (>= (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) - (or (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode ground)) - (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode halfpipe)) + ) + (when (and (not (logtest? sv-32 (cshape-reaction-flags csrf09))) + (and (or (< (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) + (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode wall)) + ) + (and (< (-> arg0 low-coverage-dist-to-next2) (* 2.0 (-> arg1 best-my-prim local-sphere w))) + (or (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode ground)) + (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode halfpipe)) ) - (< 0.3 (fabs (-> arg0 surface-angle))) ) ) - (not (logtest? sv-32 (cshape-reaction-flags csrf07))) - ) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) - (set! sv-48 (the-as symbol #f)) - ) - (#t - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) + ) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf07))) + (set! (-> arg0 time-of-last-lc-touch-edge) (current-time)) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + (let ((f30-0 (vector-dot tangent (-> arg0 turn-to-target))) + (f0-27 (if (logtest? sv-32 (cshape-reaction-flags csrf01)) + (cos (- 16384.0 (acos (-> arg0 coverage)))) + (-> arg0 coverage) + ) + ) + (f1-11 (vector-dot + (-> arg0 dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-other-tri intersect)) + ) + ) + ) + (if (or (not (logtest? sv-32 (cshape-reaction-flags csrf05))) (< 0.5 f0-27)) + (set! sv-48 (the-as symbol #f)) + ) + (when (and (or (and (< f0-27 0.95) (>= f30-0 0.0)) + (and (logtest? sv-32 (cshape-reaction-flags csrf05)) (< f0-27 0.3)) + (< f1-11 (* -0.25 (-> arg1 best-my-prim local-sphere w))) + ) + (>= (vector-dot tangent contact-normal) -0.000001) + ) + (set! (-> arg0 surf) *edge-surface*) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf10))) + (set! sv-48 (the-as symbol #f)) + (when (logtest? sv-32 (cshape-reaction-flags csrf05)) + (set! sv-48 #t) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf12))) ) ) ) - (set! (-> sv-24 0) sv-40) - (set! (-> sv-20 0) sv-32) - (set! (-> sv-28 0) sv-48) - 0 - (none) ) + (if (< (-> arg0 surface-angle) 0.0) + (set! sv-48 #t) + ) + (when sv-48 + (cond + ((and (or (or (= (-> arg0 poly-pat mode) (pat-mode ground)) (= (-> arg0 poly-pat mode) (pat-mode halfpipe))) + (and (logtest? sv-32 (cshape-reaction-flags csrf03)) + (>= (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) + (or (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode ground)) + (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode halfpipe)) + ) + (< 0.3 (fabs (-> arg0 surface-angle))) + ) + ) + (not (logtest? sv-32 (cshape-reaction-flags csrf07))) + ) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + (set! sv-48 (the-as symbol #f)) + ) + (#t + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + ) + ) + ) + (set! (-> sv-24 0) sv-40) + (set! (-> sv-20 0) sv-32) + (set! (-> sv-28 0) sv-48) + 0 + (none) ) (defbehavior target-collision-reaction target ((arg0 control-info) (arg1 collide-query) (arg2 vector) (arg3 vector)) @@ -370,7 +368,7 @@ (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> arg0 grount-touch-point)) ) ) - (< (- (-> self clock frame-counter) (-> arg0 list-time-on-ground)) (seconds 0.3)) + (< (- (current-time) (-> arg0 list-time-on-ground)) (seconds 0.3)) ) (logtest? sv-104 (cshape-reaction-flags csrf15)) ) @@ -441,7 +439,7 @@ (set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad)) (set! (-> arg0 ground-contact-normal quad) (-> sv-84 quad)) (set! (-> arg0 ground-local-norm-dot-grav) (vector-dot sv-84 (-> arg0 dynam gravity-normal))) - (set! (-> arg0 list-time-on-ground) (-> self clock frame-counter)) + (set! (-> arg0 list-time-on-ground) (current-time)) (set! (-> arg0 ground-pat) (-> arg0 poly-pat)) (set! (-> arg0 grount-touch-point quad) (-> arg1 best-other-tri intersect quad)) (set! (-> arg0 ground-contact-sphere-center quad) (-> arg1 best-my-prim prim-core world-sphere quad)) @@ -564,7 +562,7 @@ ) (defbehavior rail-surface-touch target () - (when (>= (- (-> self clock frame-counter) (-> self control time-of-last-surface-change)) (seconds 0.2)) + (when (>= (- (current-time) (-> self control time-of-last-surface-change)) (seconds 0.2)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags one send-event)) (set! (-> *collide-edge-board-spec* touching-segment) #f) (do-edge-grabs *target* *collide-cache* *collide-edge-board-spec*) diff --git a/goal_src/jak2/engine/target/gun/gun-dark-shot.gc b/goal_src/jak2/engine/target/gun/gun-dark-shot.gc index 602ad5c92d..90102029a9 100644 --- a/goal_src/jak2/engine/target/gun/gun-dark-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-dark-shot.gc @@ -208,7 +208,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (cond ((or (and *target* @@ -219,10 +219,8 @@ ) (go-virtual dissipate) ) - ((or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) (cpad-hold? 0 r1)) - (set! (-> self size-t) - (fmin 1.0 (* 0.016666668 (the float (- (-> self clock frame-counter) (-> self state-time))))) - ) + ((or (< (- (current-time) (-> self state-time)) (seconds 0.3)) (cpad-hold? 0 r1)) + (set! (-> self size-t) (fmin 1.0 (* 0.016666668 (the float (- (current-time) (-> self state-time)))))) (let ((t9-1 vector<-cspace!) (a0-13 (-> self root-override trans)) (v1-26 (-> self parent)) @@ -299,7 +297,7 @@ (vector-float*! (-> self spin-vector) (-> self spin-vector) (/ 1.0 f0-5)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-2 (get-process *default-dead-pool* part-tracker #x4000))) (when gp-2 (let ((t9-4 (method-of-type part-tracker activate))) @@ -371,7 +369,7 @@ (vector-flatten! (-> self spin-vector) (-> self spin-vector) s4-0) (matrix-axis-angle! s5-0 s4-0 (* 2002.4889 (-> self clock time-adjust-ratio))) (vector-matrix*! (-> self spin-vector) (-> self spin-vector) s5-0) - (let ((f0-9 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let ((f0-9 (the float (- (current-time) (-> self state-time)))) (f30-0 0.0) ) (cond @@ -522,11 +520,11 @@ (defstate fizzle (gun-dark-shot) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (deactivate self) ) (process-drawable-shock-effect @@ -624,7 +622,7 @@ (sv-320 process-drawable) (sv-336 process-drawable) ) - (if (< (- (-> self clock frame-counter) (-> self spawn-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self spawn-time)) (seconds 0.1)) (send-event (ppointer->process (-> self parent)) 'release) ) (sound-stop (the-as sound-id (-> self trail-sound))) @@ -789,7 +787,7 @@ ((arg0 handle)) (let ((s5-0 (-> self parent)) (s4-0 0) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) ) (set! (-> self clock) (-> s5-0 0 clock)) (while (and (nonzero? (-> (the-as process-drawable (-> s5-0 0)) skel)) @@ -821,18 +819,18 @@ ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 0.1)) + (< (- (current-time) s3-0) (seconds 0.1)) ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 5)) + (< (- (current-time) s3-0) (seconds 5)) (not (logtest? (-> (the-as process-drawable (-> s5-0 0)) draw status) (draw-control-status no-draw no-draw-temp)) ) ) ) ) - (when (>= (- (-> self clock frame-counter) (the-as time-frame s4-0)) (seconds 0.05)) - (set! s4-0 (the-as int (-> self clock frame-counter))) + (when (>= (- (current-time) (the-as time-frame s4-0)) (seconds 0.05)) + (set! s4-0 (the-as int (current-time))) (if (handle->process arg0) (process-drawable-shock-effect-bullseye (the-as process-focusable (handle->process arg0)) @@ -862,8 +860,8 @@ (-> self result-array (+ gp-2 -1)) :to s4-1 ) - (let ((s4-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-2) (seconds 0.1)) + (let ((s4-2 (current-time))) + (until (>= (- (current-time) s4-2) (seconds 0.1)) (suspend) ) ) @@ -872,9 +870,9 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) + (let ((gp-3 (current-time))) (while (or (-> self child) (and (nonzero? (get-status *gui-control* (the-as sound-id (-> self explode-sound)))) - (< (- (-> self clock frame-counter) gp-3) (seconds 10)) + (< (- (current-time) gp-3) (seconds 10)) ) ) (suspend) diff --git a/goal_src/jak2/engine/target/gun/gun-h.gc b/goal_src/jak2/engine/target/gun/gun-h.gc index f8699787d7..e4566d416c 100644 --- a/goal_src/jak2/engine/target/gun/gun-h.gc +++ b/goal_src/jak2/engine/target/gun/gun-h.gc @@ -133,7 +133,7 @@ (defbehavior want-to-gun? process ((arg0 target) (arg1 symbol)) (local-vars (v1-36 symbol)) (and (logtest? (-> arg0 game features) (game-feature gun)) - (>= (- (-> self clock frame-counter) (-> arg0 gun gun-time)) (seconds 0.1)) + (>= (- (current-time) (-> arg0 gun gun-time)) (seconds 0.1)) (not (focus-test? arg0 dead hit board mech dark teleporting)) (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> arg0 control current-surface flags))) (not (logtest? (state-flags prevent-gun) (-> arg0 state-flags))) @@ -155,7 +155,7 @@ (-> arg0 gun latch?) ) (not (-> arg0 skel top-anim frame-group)) - (>= (- (-> self clock frame-counter) (-> arg0 control time-of-last-debug-float)) (seconds 0.1)) + (>= (- (current-time) (-> arg0 control time-of-last-debug-float)) (seconds 0.1)) ) ) diff --git a/goal_src/jak2/engine/target/gun/gun-red-shot.gc b/goal_src/jak2/engine/target/gun/gun-red-shot.gc index 720988fe1d..bd39b6e67e 100644 --- a/goal_src/jak2/engine/target/gun/gun-red-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-red-shot.gc @@ -441,8 +441,8 @@ (defstate debug-idle (gun-red-shot) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 3)) (let ((gp-0 (new 'stack-no-clear 'vector))) (dotimes (s5-0 (-> self probe-count)) (vector-float*! gp-0 (-> self probe-dir s5-0) 61440.0) diff --git a/goal_src/jak2/engine/target/gun/gun-states.gc b/goal_src/jak2/engine/target/gun/gun-states.gc index 15dae66e60..e3374ec196 100644 --- a/goal_src/jak2/engine/target/gun/gun-states.gc +++ b/goal_src/jak2/engine/target/gun/gun-states.gc @@ -48,7 +48,7 @@ (set! (-> self state-flags) (logior (state-flags lleg-still rleg-still) (-> self state-flags))) (set! (-> self control mod-surface) *gun-walk-mods*) (set! (-> self control unknown-word04) (the-as uint #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -236,7 +236,7 @@ (suspend) (ja :num! (loop!)) (when (can-play-stance-amibent?) - (set! (-> self ambient-time) (-> self clock frame-counter)) + (set! (-> self ambient-time) (current-time)) (target-gun-end-mode #t) ) (cond @@ -317,7 +317,7 @@ (defstate target-gun-walk (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *gun-walk-mods*) (case (-> self gun gun-type) (((pickup-type eco-yellow) (pickup-type eco-blue)) diff --git a/goal_src/jak2/engine/target/gun/gun-util.gc b/goal_src/jak2/engine/target/gun/gun-util.gc index 20450756ac..d072252ebb 100644 --- a/goal_src/jak2/engine/target/gun/gun-util.gc +++ b/goal_src/jak2/engine/target/gun/gun-util.gc @@ -487,7 +487,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self draw shadow) (-> self shadow-backup)) (logior! (-> self skel status) (joint-control-status sync-math)) (none) @@ -521,7 +521,7 @@ ((begin (set! a0-14 (!= (-> (the-as target (-> self parent 0)) game gun-type) (-> self gun-type))) (and (the-as symbol a0-14) (let ((v1-16 (-> self state-time))) - (set! a0-14 (-> self clock frame-counter)) + (set! a0-14 (current-time)) (!= v1-16 (the-as time-frame a0-14)) ) ) diff --git a/goal_src/jak2/engine/target/logic-target.gc b/goal_src/jak2/engine/target/logic-target.gc index b4855cf672..f4c829cec3 100644 --- a/goal_src/jak2/engine/target/logic-target.gc +++ b/goal_src/jak2/engine/target/logic-target.gc @@ -31,7 +31,7 @@ (defbehavior build-conversions target ((arg0 vector)) (when (!= (-> self control prev-surf) (-> self control surf)) (set! (-> self control prev-surf) (-> self control surf)) - (set! (-> self control time-of-last-surface-change) (-> self clock frame-counter)) + (set! (-> self control time-of-last-surface-change) (current-time)) ) (surface-mult! (-> self control current-surface) (-> self control mod-surface) (-> self control surf)) (when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 3) @@ -474,7 +474,7 @@ arg1 "~0ky:~,,2M t:~d cy: ~,,2M my: ~,,2M impv:~,,2M " (-> arg0 control last-trans-any-surf y) - (- (-> (the-as target pp) clock frame-counter) (-> arg0 control last-time-on-surface)) + (- (current-time) (-> arg0 control last-time-on-surface)) (- (-> arg0 control trans y) (-> arg0 control last-trans-any-surf y)) (- (-> arg0 control highest-jump-mark y) (-> arg0 control last-trans-leaving-surf y)) (-> arg0 control ground-impact-vel) @@ -535,7 +535,7 @@ (set! (-> arg0 w) 0.0) (set! (-> self control pad-xz-dir quad) (-> arg0 quad)) (set! (-> self control pad-magnitude) (-> self control cpad stick0-speed)) - (when (< (-> self control update-cam-R-w-start-time) (-> self clock frame-counter)) + (when (< (-> self control update-cam-R-w-start-time) (current-time)) (let ((s5-0 (-> self control cam-R-w)) (t9-2 matrix-local->world) (a0-13 #t) @@ -641,14 +641,14 @@ (set! (-> self control idx-of-fastest-xz-vel) a0-3) (set! (-> self control average-xz-vel) f1-1) (if (logtest? (-> self control current-surface flags) (surface-flag no-turn-around)) - (set! (-> v1-7 0) (-> self clock frame-counter)) + (set! (-> v1-7 0) (current-time)) ) - (and (>= (the-as uint (- (-> self clock frame-counter) (-> v1-7 0))) (the-as uint 300)) + (and (>= (the-as uint (- (current-time) (-> v1-7 0))) (the-as uint 300)) (< f0-1 0.0) (< 32768.0 f1-1) (< 0.7 (-> self control pad-magnitude)) - (>= (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.3)) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-lc)) (seconds 0.3)) + (>= (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.3)) + (>= (- (current-time) (-> self control time-of-last-lc)) (seconds 0.3)) (logtest? (-> self control status) (collide-status on-surface)) (and (< 0.7 (-> self control surface-angle)) #t) ) @@ -670,13 +670,11 @@ ) ) ) - (if (>= (- (-> self clock frame-counter) (-> self control time-of-last-wall-hide-first-check-pass)) (seconds 0.1)) - (set! (-> self control time-of-first-wall-hide-first-check-pass) (-> self clock frame-counter)) + (if (>= (- (current-time) (-> self control time-of-last-wall-hide-first-check-pass)) (seconds 0.1)) + (set! (-> self control time-of-first-wall-hide-first-check-pass) (current-time)) ) - (set! (-> self control time-of-last-wall-hide-first-check-pass) (-> self clock frame-counter)) - (when (>= (- (-> self clock frame-counter) (-> self control time-of-first-wall-hide-first-check-pass)) - (seconds 0.5) - ) + (set! (-> self control time-of-last-wall-hide-first-check-pass) (current-time)) + (when (>= (- (current-time) (-> self control time-of-first-wall-hide-first-check-pass)) (seconds 0.5)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) (let ((v1-34 (-> gp-0 bbox)) (a0-13 (-> self control trans)) @@ -732,7 +730,7 @@ (defbehavior target-log-trans target () (let ((v1-1 (-> self control trans-log-idx))) - (set! (-> self control trans-log-times v1-1) (-> self clock frame-counter)) + (set! (-> self control trans-log-times v1-1) (current-time)) (set! (-> self control trans-log-trans v1-1 quad) (-> self control trans quad)) (set! (-> self control trans-log-idx) (logand (+ v1-1 1) 127)) ) @@ -749,7 +747,7 @@ (let* ((v1-0 127) (a1-2 (logand (+ (-> s4-0 trans-log-idx) v1-0) 127)) ) - (while (and (< (- (-> self clock frame-counter) (-> s4-0 trans-log-times a1-2)) arg0) (> v1-0 0)) + (while (and (< (- (current-time) (-> s4-0 trans-log-times a1-2)) arg0) (> v1-0 0)) (vector+! s5-0 s5-0 (-> s4-0 trans-log-trans a1-2)) (+! gp-0 1) (+! v1-0 -1) @@ -994,9 +992,9 @@ ) ) ) - (set! (-> self control time-of-last-clear-wall-in-jump) (-> self clock frame-counter)) + (set! (-> self control time-of-last-clear-wall-in-jump) (current-time)) ) - (if (< (- (-> self clock frame-counter) (-> self control time-of-last-clear-wall-in-jump)) (seconds 0.2)) + (if (< (- (current-time) (-> self control time-of-last-clear-wall-in-jump)) (seconds 0.2)) (set! f30-0 (+ 204800.0 f30-0)) ) (if (and (not (logtest? (-> self control status) (collide-status touch-wall))) @@ -1139,14 +1137,14 @@ (collide-status on-surface touch-surface) ) ) - (< (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.5)) + (< (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.5)) (not (and (-> self next-state) (let ((v1-15 (-> self next-state name))) (or (= v1-15 'target-walk) (= v1-15 'target-gun-walk)) ) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) - (< (- (-> self clock frame-counter) (-> self control time-of-last-lc)) (seconds 0.5)) + (< (- (current-time) (-> self state-time)) (seconds 0.5)) + (< (- (current-time) (-> self control time-of-last-lc)) (seconds 0.5)) (logtest? (-> self control current-surface flags) (surface-flag turn-to-pad)) (!= (-> self control force-turn-to-strength) 0.0) ) @@ -1171,9 +1169,7 @@ s4-0 s3-1 (cond - ((and (or (>= 0.0 (-> self control turn-to-magnitude)) - (< (-> self clock frame-counter) (-> self control turn-lockout-end-time)) - ) + ((and (or (>= 0.0 (-> self control turn-to-magnitude)) (< (current-time) (-> self control turn-lockout-end-time))) (not (logtest? (-> self control current-surface flags) (surface-flag turn-when-centered))) ) 0.0 @@ -1513,7 +1509,7 @@ ) (defbehavior pre-collide-setup target () - (if (>= (-> self clock frame-counter) (-> self control additional-decaying-velocity-decay-start-time)) + (if (>= (current-time) (-> self control additional-decaying-velocity-decay-start-time)) (vector-normalize! (-> self control additional-decaying-velocity) (seek @@ -1525,9 +1521,7 @@ ) (cond ((logtest? (-> self control old-status) (collide-status on-surface)) - (if (>= (+ (-> self clock frame-counter) (seconds -0.035)) - (-> self control additional-decaying-velocity-end-time) - ) + (if (>= (+ (current-time) (seconds -0.035)) (-> self control additional-decaying-velocity-end-time)) (vector-reset! (-> self control additional-decaying-velocity)) ) ) @@ -1559,7 +1553,7 @@ (set! (-> self current-level) (level-get-target-inside *level*)) (if (-> self current-level) (+! (-> self game task-in-times (-> self current-level info task-level)) - (- (-> self clock frame-counter) (-> self clock old-frame-counter)) + (- (current-time) (-> self clock old-frame-counter)) ) ) (if (and (-> self current-level) (or (not gp-0) (!= (-> gp-0 name) (-> self current-level name)))) @@ -1574,15 +1568,13 @@ (cond ((= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) (if (zero? (-> self control time-between-zero-inputs)) - (set! (-> self control time-between-zero-inputs) - (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) - ) + (set! (-> self control time-between-zero-inputs) (- (current-time) (-> self control time-of-last-zero-input))) ) - (set! (-> self control time-of-last-zero-input) (-> self clock frame-counter)) + (set! (-> self control time-of-last-zero-input) (current-time)) (quaternion-copy! (-> self control last-nonzero-input-dir-targ) (-> self control dir-targ)) ) (else - (set! (-> self control time-of-last-nonzero-input) (-> self clock frame-counter)) + (set! (-> self control time-of-last-nonzero-input) (current-time)) (set! (-> self control time-between-zero-inputs) 0) 0 ) @@ -1593,7 +1585,7 @@ ((-> self control current-surface active-hook)) (cond ((logtest? (-> self control status) (collide-status on-surface)) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) (if (and (>= (-> self control coverage) 1.0) (not (logtest? (-> self control status) (collide-status touch-actor on-water))) @@ -1631,7 +1623,7 @@ (logtest? (-> self control mod-surface flags) (surface-flag look-around)) (not (focus-test? self edge-grab pole flut tube board pilot dark)) (-> *setting-control* user-current allow-look-around) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-look-around-wait))) (seconds 0.05)) + (>= (- (current-time) (the-as int (-> self no-look-around-wait))) (seconds 0.05)) (not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control ctrl-xz-vel))) ) ) @@ -1687,7 +1679,7 @@ ) ) (send-event *camera* 'reset-follow) - (set! (-> self control time-of-last-debug-float) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-float) (current-time)) (cond ((focus-test? self mech indax) (if (not (and (-> self next-state) (let ((v1-179 (-> self next-state name))) @@ -1771,9 +1763,7 @@ ) ) (let ((v1-229 (-> self current-level))) - (when (and (or (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 2)) - (focus-test? self pilot) - ) + (when (and (or (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 2)) (focus-test? self pilot)) (and v1-229 (< (-> self control trans y) (-> v1-229 info buttom-height)) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) @@ -1823,19 +1813,19 @@ (defbehavior post-flag-setup target () (if (logtest? (-> self control status) (collide-status touch-wall touch-actor)) - (set! (-> self control last-time-touching-actor) (-> self clock frame-counter)) + (set! (-> self control last-time-touching-actor) (current-time)) ) (when (logtest? (-> self state-flags) (state-flags tinvul1)) - (if (< (logand (- (-> self clock frame-counter) (-> self control invul1-on-time)) 3) 1) + (if (< (logand (- (current-time) (-> self control invul1-on-time)) 3) 1) (logior! (-> self draw status) (draw-control-status no-draw-bounds)) (logclear! (-> self draw status) (draw-control-status no-draw-bounds)) ) - (if (>= (- (-> self clock frame-counter) (-> self control invul1-on-time)) (-> self control invul1-off-time)) + (if (>= (- (current-time) (-> self control invul1-on-time)) (-> self control invul1-off-time)) (target-timed-invulnerable-off self 1) ) ) (when (logtest? (state-flags tinvul2) (-> self state-flags)) - (if (>= (- (-> self clock frame-counter) (-> self control invul2-on-time)) (-> self control invul2-off-time)) + (if (>= (- (current-time) (-> self control invul2-on-time)) (-> self control invul2-off-time)) (target-timed-invulnerable-off self 2) ) ) @@ -2059,7 +2049,7 @@ (set! (-> self control hand-to-edge-dist) (vector-length s4-1)) (cond ((and (< 819.2 (-> self control hand-to-edge-dist)) - (>= (- (-> self clock frame-counter) (-> self control last-successful-compute-edge-time)) (seconds 0.2)) + (>= (- (current-time) (-> self control last-successful-compute-edge-time)) (seconds 0.2)) ) (cond ((-> s5-0 pilot-edge-grab?) @@ -2105,7 +2095,7 @@ ) ) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (vector+! s3-1 s3-1 (-> self control cspace-offset)) (move-to-point! (-> self control) s3-1) ) @@ -2118,9 +2108,9 @@ (move-by-vector! (-> self control) a1-20) ) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) - (if (and (>= (- (-> self clock frame-counter) (-> self control edge-grab-start-time)) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self control last-successful-compute-edge-time)) (seconds 0.5)) + (set! (-> self control rider-time) (current-time)) + (if (and (>= (- (current-time) (-> self control edge-grab-start-time)) (seconds 0.5)) + (>= (- (current-time) (-> self control last-successful-compute-edge-time)) (seconds 0.5)) ) (send-event self 'end-mode) ) @@ -2131,13 +2121,13 @@ (let ((a1-23 (new 'stack-no-clear 'vector))) (vector-! a1-23 (-> s5-0 center-hold) (-> self control ctrl-to-hands-offset)) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (vector+! a1-23 a1-23 (-> self control cspace-offset)) (move-to-point! (-> self control) a1-23) ) (set! (-> self control hand-to-edge-dist) 0.0) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) - (set! (-> self control last-successful-compute-edge-time) (-> self clock frame-counter)) + (set! (-> self control last-successful-compute-edge-time) (current-time)) ) ) ) @@ -2208,7 +2198,7 @@ ) (let ((a1-15 (vector-! (new-stack-vector0) (-> gp-0 center-hold) (-> gp-0 center-hold-old)))) (vector-float*! (-> self control rider-last-move) a1-15 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (move-by-vector! (-> self control) a1-15) ) ) @@ -2246,7 +2236,7 @@ (send-event *camera* 'ease-in #x3f000000 v1-10) ) (vector-segment-distance-point! (-> self control midpoint-of-hands) s4-1 s3-1 s5-0) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (if (< (- (current-time) (-> self state-time)) (seconds 0.05)) (set! (-> self control hand-to-edge-dist) (fmax 0.0 (fmin 1.0 (/ (vector-vector-distance s4-1 s5-0) (* 2.0 (-> (the-as swingpole s2-0) edge-length))))) ) @@ -2342,7 +2332,7 @@ ) (vector<-cspace! gp-0 (-> self node-list data 6)) (cond - ((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame26)) + ((>= (+ (current-time) (seconds -2)) (-> self control unknown-time-frame26)) (set! (-> self control camera-pos quad) (-> s5-0 quad)) ) ((not (and (logtest? (-> self water flags) (water-flags under-water)) @@ -2353,7 +2343,7 @@ (-> self control camera-pos) gp-0 s5-0 - (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame26)))) + (* 0.0016666667 (the float (- (current-time) (-> self control unknown-time-frame26)))) ) ) (else @@ -2361,13 +2351,7 @@ (-> self control camera-pos) s5-0 gp-0 - (fmax - 0.0 - (fmin - 1.0 - (* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame27)))) - ) - ) + (fmax 0.0 (fmin 1.0 (* 0.0011111111 (the float (- (current-time) (-> self control unknown-time-frame27)))))) ) ) ) @@ -3077,7 +3061,7 @@ (set! (-> self control bent-gravity-normal quad) (-> self control standard-dynamics gravity-normal quad)) (quaternion-identity! (-> self control override-quat)) (set! (-> self control override-quat-alpha) 0.0) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (set! (-> self control bend-amount) 0.0) (set! (-> self control bend-speed) 32.0) (set! (-> self cam-user-mode) 'normal) @@ -3310,9 +3294,9 @@ (set! (-> obj current-level) #f) (level-setup) (set! (-> obj pre-joint-hook) (the-as (function none :behavior target) nothing)) - (set! (-> obj init-time) (-> self clock frame-counter)) + (set! (-> obj init-time) (current-time)) (set! (-> obj spool-anim) (the-as spool-anim #t)) - (set! (-> obj ambient-time) (-> self clock frame-counter)) + (set! (-> obj ambient-time) (current-time)) 0 (none) ) diff --git a/goal_src/jak2/engine/target/mech_suit/carry-h.gc b/goal_src/jak2/engine/target/mech_suit/carry-h.gc index 2bc56c6262..4266e84947 100644 --- a/goal_src/jak2/engine/target/mech_suit/carry-h.gc +++ b/goal_src/jak2/engine/target/mech_suit/carry-h.gc @@ -437,10 +437,10 @@ Returns `-1.0` if it exceeds the maximum allowed" (let* ((a1-8 (quaternion-normalize! (matrix->quaternion (new 'stack-no-clear 'quaternion) s5-1))) (s5-3 (quaternion-normalize! (quaternion*! a1-8 a1-8 (-> obj grab-quat)))) (v1-19 (vector-! (new 'stack-no-clear 'vector) (-> s4-0 point) s3-2)) - (f30-0 (* 0.033333335 (the float (- (-> self clock frame-counter) (-> obj pickup-time))))) + (f30-0 (* 0.033333335 (the float (- (current-time) (-> obj pickup-time))))) ) (cond - ((>= (- (-> self clock frame-counter) (-> obj pickup-time)) (seconds 1)) + ((>= (- (current-time) (-> obj pickup-time)) (seconds 1)) (set! (-> obj process 0 control trans quad) (-> v1-19 quad)) (quaternion-copy! (-> obj process 0 control quat) s5-3) ) diff --git a/goal_src/jak2/engine/target/mech_suit/grunt-mech.gc b/goal_src/jak2/engine/target/mech_suit/grunt-mech.gc index b04c14312f..40f4a9ebb5 100644 --- a/goal_src/jak2/engine/target/mech_suit/grunt-mech.gc +++ b/goal_src/jak2/engine/target/mech_suit/grunt-mech.gc @@ -94,74 +94,70 @@ ) (defmethod grunt-mech-info-method-10 grunt-mech-info ((obj grunt-mech-info)) - (with-pp - (let ((s5-0 (-> pp clock frame-counter))) - (when (!= (-> obj last-update-time) s5-0) - (when (< s5-0 (-> obj last-update-time)) - (countdown (v1-4 6) - (let ((a0-4 (-> obj holds v1-4))) - (set! (-> a0-4 grunt-handle) (the-as handle #f)) - (set! (-> a0-4 timeout) (the-as uint 0)) - ) - 0 + (let ((s5-0 (current-time))) + (when (!= (-> obj last-update-time) s5-0) + (when (< s5-0 (-> obj last-update-time)) + (countdown (v1-4 6) + (let ((a0-4 (-> obj holds v1-4))) + (set! (-> a0-4 grunt-handle) (the-as handle #f)) + (set! (-> a0-4 timeout) (the-as uint 0)) ) - (set! (-> obj reserved-mask) (the-as uint 0)) 0 ) - (set! (-> obj last-update-time) s5-0) - (let ((v1-8 *target*)) - (cond - ((and v1-8 (focus-test? v1-8 mech)) - (let ((s4-0 (-> v1-8 manipy 0 node-list data 3))) - (dotimes (s3-0 6) - (let ((s2-0 (-> obj holds s3-0))) - (matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform)) - (vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w))) - (when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout)))) - (set! (-> s2-0 grunt-handle) (the-as handle #f)) - (logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask)) - ) + (set! (-> obj reserved-mask) (the-as uint 0)) + 0 + ) + (set! (-> obj last-update-time) s5-0) + (let ((v1-8 *target*)) + (cond + ((and v1-8 (focus-test? v1-8 mech)) + (let ((s4-0 (-> v1-8 manipy 0 node-list data 3))) + (dotimes (s3-0 6) + (let ((s2-0 (-> obj holds s3-0))) + (matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform)) + (vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w))) + (when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout)))) + (set! (-> s2-0 grunt-handle) (the-as handle #f)) + (logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask)) ) ) ) ) - (else - (countdown (v1-25 6) - (let ((a0-16 (-> obj holds v1-25))) - (set! (-> a0-16 grunt-handle) (the-as handle #f)) - (set! (-> a0-16 timeout) (the-as uint 0)) - ) - 0 + ) + (else + (countdown (v1-25 6) + (let ((a0-16 (-> obj holds v1-25))) + (set! (-> a0-16 grunt-handle) (the-as handle #f)) + (set! (-> a0-16 timeout) (the-as uint 0)) ) - (set! (-> obj reserved-mask) (the-as uint 0)) 0 ) + (set! (-> obj reserved-mask) (the-as uint 0)) + 0 ) ) ) ) - (none) ) + (none) ) (defmethod grunt-mech-info-method-9 grunt-mech-info ((obj grunt-mech-info) (arg0 int) (arg1 process) (arg2 symbol)) - (with-pp - (grunt-mech-info-method-10 obj) - (let ((v1-2 *target*)) - (when (and v1-2 (focus-test? v1-2 mech) (not (logtest? (-> v1-2 focus-status) (focus-status dead ignore)))) - (let ((v1-8 (-> obj holds arg0))) - (when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1)) - (set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5)))) - (return #t) - ) - (when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask))) - (when (not arg2) - (logior! (-> obj reserved-mask) (-> v1-8 reserve-mask)) - (set! (-> v1-8 grunt-handle) (process->handle arg1)) - (set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5)))) - ) - #t + (grunt-mech-info-method-10 obj) + (let ((v1-2 *target*)) + (when (and v1-2 (focus-test? v1-2 mech) (not (logtest? (-> v1-2 focus-status) (focus-status dead ignore)))) + (let ((v1-8 (-> obj holds arg0))) + (when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1)) + (set! (-> v1-8 timeout) (the-as uint (+ (current-time) (seconds 0.5)))) + (return #t) + ) + (when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask))) + (when (not arg2) + (logior! (-> obj reserved-mask) (-> v1-8 reserve-mask)) + (set! (-> v1-8 grunt-handle) (process->handle arg1)) + (set! (-> v1-8 timeout) (the-as uint (+ (current-time) (seconds 0.5)))) ) + #t ) ) ) @@ -559,23 +555,21 @@ ;; WARN: Return type mismatch object vs none. (defmethod grunt-mech-method-191 grunt-mech ((obj grunt-mech)) - (with-pp - (if (>= (-> pp clock frame-counter) (-> obj state-timeout)) - (go (method-of-object obj mech-dismount)) - ) - (none) - ) + (if (>= (current-time) (-> obj state-timeout)) + (go (method-of-object obj mech-dismount)) + ) + (none) ) (defstate mech-hold (grunt-mech) :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) (set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec)) (stop-looking-at-target! self) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 450 900))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 450 900))) (logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere)) (none) ) @@ -714,7 +708,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec)) (let* ((v1-4 (-> self nav)) (a1-0 (-> self dismount-dest)) @@ -807,7 +801,7 @@ :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () ((-> (method-of-type grunt circling) enter)) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 750 1200))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 750 1200))) (none) ) :trans (behavior () @@ -818,9 +812,9 @@ ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (when (>= 1 (the-as int gp-1)) (nav-enemy-method-161 self) (if (-> self enemy-info-override use-stop-chase) @@ -833,13 +827,13 @@ (when v1-33 (cond ((focus-test? v1-33 mech) - (when (>= (-> self clock frame-counter) (-> self state-timeout)) + (when (>= (current-time) (-> self state-timeout)) (nav-enemy-method-161 self) (go-hostile self) ) ) (else - (when (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) (nav-enemy-method-161 self) (go-hostile self) ) @@ -867,7 +861,7 @@ :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () ((-> (method-of-type grunt-mech mech-post-circling) enter)) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 900 1800))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 900 1800))) (none) ) :trans (-> (method-of-type grunt-mech mech-post-circling) trans) diff --git a/goal_src/jak2/engine/target/mech_suit/mech-states.gc b/goal_src/jak2/engine/target/mech_suit/mech-states.gc index 647af0d262..bfba3d2cd3 100644 --- a/goal_src/jak2/engine/target/mech_suit/mech-states.gc +++ b/goal_src/jak2/engine/target/mech_suit/mech-states.gc @@ -62,7 +62,7 @@ ) 1820.4445 ) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.05)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.05)) ) ) (go target-mech-walk) @@ -354,7 +354,7 @@ *null-vector* *null-vector* (the-as process #f) - (-> self clock frame-counter) + (current-time) ) (let* ((s4-0 (get-trans self 3)) (a0-4 (the-as process-focusable (combo-tracker-method-13 @@ -523,7 +523,7 @@ ) (when (send-event-function (-> s4-1 cshape process) a1-6) (set! (-> self control send-attack-dest) (process->handle s5-2)) - (set! (-> self control send-attack-time) (-> self clock frame-counter)) + (set! (-> self control send-attack-time) (current-time)) #t ) ) @@ -535,7 +535,7 @@ (set! (-> self mech forward-vel) 0.0) (set! (-> self mech forward-vel) -40960.0) ) - (when (or (not s5-2) (= (-> self control send-attack-time) (-> self clock frame-counter))) + (when (or (not s5-2) (= (-> self control send-attack-time) (current-time))) (let ((s5-3 (get-process *default-dead-pool* part-tracker #x4000))) (when s5-3 (let ((t9-7 (method-of-type part-tracker activate))) @@ -583,7 +583,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-punch-mods*) (set! (-> self mech state-impact? 0) #f) (rot->dir-targ! (-> self control)) @@ -592,7 +592,7 @@ :exit (behavior () (set! (-> *mech-punch-mods* turnvv) 0.0) (set! (-> self mech state-impact? 0) #f) - (set! (-> self control last-running-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-running-attack-end-time) (current-time)) (target-exit) (target-mech-exit) (none) @@ -685,14 +685,14 @@ ) (+! gp-0 1) (target-mech-punch-pick (the-as symbol gp-0)) - (set! (-> self state-time) (+ (-> self clock frame-counter) (seconds -0.465))) + (set! (-> self state-time) (+ (current-time) (seconds -0.465))) (set! (-> self mech forward-vel) (fmax 0.0 (-> self mech forward-vel))) (set! s4-0 159) (set! s5-0 #f) ) ) ) - (let ((v1-142 (- (-> self clock frame-counter) (-> self state-time))) + (let ((v1-142 (- (current-time) (-> self state-time))) (s3-2 #t) (f30-4 1.0) ) @@ -746,9 +746,8 @@ ) ) ) - (set! s3-2 (and (>= (- (-> self clock frame-counter) (-> self state-time)) s4-0) - (and (>= (-> self mech forward-vel) 0.0) s3-2) - ) + (set! s3-2 + (and (>= (- (current-time) (-> self state-time)) s4-0) (and (>= (-> self mech forward-vel) 0.0) s3-2)) ) (set! (-> self mech state-impact? 0) s3-2) (set-forward-vel (-> self mech forward-vel)) @@ -782,7 +781,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-jump-mods*) (set! (-> self mech jump-thrust) 0.0) (let* ((v1-4 *game-info*) @@ -811,7 +810,7 @@ ) (when (if (and (and v1-9 (= v1-9 (-> self draw art-group data 330))) (< f0-0 (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -852,11 +851,7 @@ (set! (-> self mech thruster-flame-length) 20480.0) ) ) - (seek! - (-> self mech jump-thrust-fuel) - 0.0 - (the float (- (-> self clock frame-counter) (-> self clock old-frame-counter))) - ) + (seek! (-> self mech jump-thrust-fuel) 0.0 (the float (- (current-time) (-> self clock old-frame-counter)))) ) (else (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (-> self clock seconds-per-frame))) @@ -918,7 +913,7 @@ (defstate target-mech-jump (target) :event (-> target-mech-falling event) :enter (behavior ((arg0 float) (arg1 float) (arg2 surface)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (let* ((v1-4 *game-info*) (a2-5 (+ (-> v1-4 attack-id) 1)) @@ -960,7 +955,7 @@ (-> v1-0 id) ) (set! (-> self mech jump-thrust-fuel) (-> *TARGET-bank* mech-jump-thrust-fuel)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (cond ((= arg0 'stuck) ) @@ -992,7 +987,7 @@ (if (and (cpad-pressed? (-> self control cpad number) circle square) (can-hands? #t)) (go target-mech-punch) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.25)) (if (move-legs?) (go target-mech-walk) ) @@ -1043,7 +1038,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-mech-stance) ) @@ -1052,7 +1047,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self attack-info)) (s5-0 (new 'stack-no-clear 'vector)) ) @@ -1099,7 +1094,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -1107,8 +1102,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) @@ -1251,8 +1246,8 @@ ) (ja-channel-push! 1 (seconds 0.3)) (ja-no-eval :group! (-> self draw art-group data 330) :num! (loop! 0.5) :frame-num 0.0) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.8)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.8)) (ja :group! (-> self draw art-group data 330) :num! (loop! 0.5)) (suspend) ) @@ -1382,8 +1377,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 2)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 2)) (suspend) ) ) @@ -1394,7 +1389,7 @@ (if (!= (-> self game mode) 'play) (go target-jump 16384.0 16384.0 (the-as surface #f)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) (none) ) @@ -1486,7 +1481,7 @@ :enter (behavior () (set! (-> self control mod-surface) *mech-pickup-mods*) (set! (-> self mech stick-off) (the-as basic #t)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self carry other) (the-as handle #f)) (set! (-> self carry other-value) 100000000000.0) @@ -1733,7 +1728,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *mech-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self mech stick-off) (the-as basic #t)) (none) @@ -1900,7 +1895,7 @@ (set! (-> self control mod-surface turnvv) 20024.889) (set! (-> self control did-move-to-pole-or-max-jump-height) 0.0) (rot->dir-targ! (-> self control)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1915,13 +1910,13 @@ ) 1820.4445 ) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.05)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.05)) ) ) (go target-mech-carry-walk) ) (if (and (cpad-pressed? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.1)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.1)) ) (go target-mech-carry-drop) ) @@ -1995,7 +1990,7 @@ (defstate target-mech-carry-walk (target) :event (-> target-mech-carry-stance event) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-carry-walk-mods*) (set! (-> self control unknown-word04) (the-as uint 0.0)) (none) @@ -2019,7 +2014,7 @@ ) ) (if (and (cpad-pressed? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.1)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.1)) ) (go target-mech-carry-drop) ) @@ -2107,9 +2102,7 @@ (case event-type (('push) (when (zero? (-> self control sliding-start-time)) - (set! (-> self control sliding-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> event param 0))) - ) + (set! (-> self control sliding-start-time) (+ (current-time) (the-as time-frame (-> event param 0)))) (let ((v0-0 (the-as object #t))) (set! (-> self control unknown-word04) (the-as uint v0-0)) v0-0 @@ -2129,7 +2122,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control sliding-start-time) 0) (set! (-> self control unknown-word04) (the-as uint #f)) (set! (-> self control mod-surface) *mech-carry-drag-mods*) @@ -2163,7 +2156,7 @@ ) :trans (behavior () (when (and (not (cpad-hold? (-> self control cpad number) r1)) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.5)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.5)) ) (sound-play "mech-drag-off") (if (or (and (>= (-> self mech back-touch-time) (-> self state-time)) @@ -2216,9 +2209,7 @@ ) (f26-0 0.0) ) - (if (and (nonzero? (-> self control sliding-start-time)) - (< (-> self control sliding-start-time) (-> self clock frame-counter)) - ) + (if (and (nonzero? (-> self control sliding-start-time)) (< (-> self control sliding-start-time) (current-time))) (send-event self 'drop) (set! f28-0 (cond @@ -2345,7 +2336,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *mech-carry-jump-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (-> target-mech-carry-pickup exit) @@ -2354,7 +2345,7 @@ (go target-mech-carry-hit-ground #f) ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) #t @@ -2468,7 +2459,7 @@ (defstate target-mech-carry-jump (target) :event (-> target-mech-carry-falling event) :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *mech-carry-jump-mods*) @@ -2543,7 +2534,7 @@ :event (-> target-mech-carry-drop event) :enter (behavior () (set! (-> self control mod-surface) *mech-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self mech stick-off) (the-as basic #t)) (none) diff --git a/goal_src/jak2/engine/target/mech_suit/mech.gc b/goal_src/jak2/engine/target/mech_suit/mech.gc index 30fbf35b7c..278e2b294e 100644 --- a/goal_src/jak2/engine/target/mech_suit/mech.gc +++ b/goal_src/jak2/engine/target/mech_suit/mech.gc @@ -152,7 +152,7 @@ (let ((f30-0 20480.0)) (until #f (when (and (logtest? (-> self draw status) (draw-control-status on-screen)) - (>= (- (-> self clock frame-counter) (-> self probe-time)) (seconds 1)) + (>= (- (current-time) (-> self probe-time)) (seconds 1)) ) (move-to-ground (-> self root-override) @@ -161,7 +161,7 @@ #t (collide-spec backgnd obstacle hit-by-player-list hit-by-others-list pusher) ) - (set! (-> self probe-time) (-> self clock frame-counter)) + (set! (-> self probe-time) (current-time)) ) (when (and (and *target* (and (>= f30-0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) @@ -268,8 +268,8 @@ (mech-method-24 self) (suspend) ) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 1)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) (mech-method-24 self) (suspend) ) @@ -419,7 +419,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('look-at-point) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (go-virtual active) ) ) @@ -453,7 +453,7 @@ This commonly includes things such as: :virtual #t :event (-> (method-of-type mech-target idle) event) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -463,7 +463,7 @@ This commonly includes things such as: ) (not (logtest? (focus-status mech) (-> *target* focus-status))) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (>= (- (current-time) (-> self state-time)) (seconds 10)) ) (go-virtual idle) ) diff --git a/goal_src/jak2/engine/target/mech_suit/target-mech.gc b/goal_src/jak2/engine/target/mech_suit/target-mech.gc index 440ea7ece2..8da0fb2770 100644 --- a/goal_src/jak2/engine/target/mech_suit/target-mech.gc +++ b/goal_src/jak2/engine/target/mech_suit/target-mech.gc @@ -477,7 +477,7 @@ (defbehavior target-mech-get-off? target () (when (and (mech-on-ground?) - (< (-> self mech no-get-off-time) (-> self clock frame-counter)) + (< (-> self mech no-get-off-time) (current-time)) (-> *setting-control* user-current pilot-exit) ) (let ((gp-0 (new 'stack-no-clear 'collide-query)) @@ -771,7 +771,7 @@ ) ) (('target-mech-get-off) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0)))) (set! (-> self mech no-get-off-time) (the-as time-frame v0-0)) v0-0 ) @@ -1121,9 +1121,9 @@ (set! (-> self board latch?) #f) (set! (-> self mech stick-lock) #f) (set! (-> self mech stick-off) #f) - (set! (-> self mech unstuck-time) (-> self clock frame-counter)) + (set! (-> self mech unstuck-time) (current-time)) (set! (-> self mech stuck-count) 0) - (set! (-> self mech mech-start-time) (-> self clock frame-counter)) + (set! (-> self mech mech-start-time) (current-time)) (set! (-> self mech jump-thrust) 0.0) (set! (-> self mech jump-thrust-fuel) (-> *TARGET-bank* mech-jump-thrust-fuel)) (set! (-> self mech state-impact? 0) #f) @@ -1625,7 +1625,7 @@ (let ((v1-98 (vector-! (new 'stack-no-clear 'vector) (-> self control wall-contact-pt) (-> self control trans)))) (set! (-> v1-98 y) 0.0) (when (< (vector-dot v1-98 (-> self control c-R-w vector 2)) 0.0) - (set! (-> self mech back-touch-time) (-> self clock frame-counter)) + (set! (-> self mech back-touch-time) (current-time)) (set! (-> self mech back-touch-point quad) (-> self control wall-contact-pt quad)) (set! (-> self mech back-touch-trans quad) (-> self control trans quad)) ) @@ -1760,7 +1760,7 @@ (quaternion-copy! (the-as quaternion (-> self mech mech-quat)) (-> self control quat)) (set! (-> self mech mech-scale quad) (-> self control scale quad)) (vector+! (-> self alt-cam-pos) (-> self control camera-pos) (new 'static 'vector :y 4096.0 :w 1.0)) - (set! (-> self mech mech-time) (-> self clock frame-counter)) + (set! (-> self mech mech-time) (current-time)) (target-mech-effect) 0 (none) diff --git a/goal_src/jak2/engine/target/sidekick.gc b/goal_src/jak2/engine/target/sidekick.gc index 8d00e420d3..a8d997a7ff 100644 --- a/goal_src/jak2/engine/target/sidekick.gc +++ b/goal_src/jak2/engine/target/sidekick.gc @@ -73,7 +73,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self special-anim-time)) (seconds 1)) + (when (>= (- (current-time) (-> self special-anim-time)) (seconds 1)) (set! (-> self special-anim-interp) 0.0) (set! (-> self special-anim-frame) 0.0) ) @@ -83,7 +83,7 @@ ) (case arg2 ((1) - (set! (-> self special-anim-time) (-> self clock frame-counter)) + (set! (-> self special-anim-time) (current-time)) (cond ((= (-> gp-0 control mod-surface name) 'spin) (set! (-> arg1 z) diff --git a/goal_src/jak2/engine/target/target-anim.gc b/goal_src/jak2/engine/target/target-anim.gc index ee6d44cd76..500b0777e5 100644 --- a/goal_src/jak2/engine/target/target-anim.gc +++ b/goal_src/jak2/engine/target/target-anim.gc @@ -596,9 +596,9 @@ (let ((v1-52 (ja-group))) (cond ((and v1-52 (= v1-52 (-> self draw art-group data 61))) - (let ((s5-0 (-> self clock frame-counter))) - (while (or (= arg0 -1) (< (- (-> self clock frame-counter) s5-0) arg0)) - (when (>= (- (-> self clock frame-counter) s5-0) (seconds 0.01)) + (let ((s5-0 (current-time))) + (while (or (= arg0 -1) (< (- (current-time) s5-0) arg0)) + (when (>= (- (current-time) s5-0) (seconds 0.01)) (let ((v1-62 (ja-group))) (when (not (and v1-62 (= v1-62 (-> self draw art-group data 27)))) (ja-channel-push! 1 (seconds 0.1)) @@ -646,10 +646,9 @@ ) ) (ja-no-eval :group! (-> self draw art-group data 27) :num! (loop!) :frame-num 0.0) - (let ((s5-1 (-> self clock frame-counter))) - (while (or (= arg0 -1) (and (< (- (-> self clock frame-counter) s5-1) arg0) - (not (logtest? (-> self control status) (collide-status on-surface))) - ) + (let ((s5-1 (current-time))) + (while (or (= arg0 -1) + (and (< (- (current-time) s5-1) arg0) (not (logtest? (-> self control status) (collide-status on-surface)))) ) (suspend) (ja :group! (-> self draw art-group data 27) :num! (loop!)) @@ -1111,7 +1110,7 @@ ) ) ) - (let ((s4-10 (-> self clock frame-counter)) + (let ((s4-10 (current-time)) (f24-2 (if (and (using-gun? self) (or (= (-> self gun gun-type) (pickup-type eco-yellow)) (= (-> self gun gun-type) (pickup-type eco-blue))) @@ -1121,7 +1120,7 @@ ) ) ) - (until (and (>= arg0 0) (>= (- (-> self clock frame-counter) s4-10) arg0)) + (until (and (>= arg0 0) (>= (- (current-time) s4-10) arg0)) (let ((f20-0 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control local-slope-z))))) (f22-1 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control local-slope-x))))) ) @@ -1331,7 +1330,7 @@ ) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.4))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.4))) (if (using-gun? self) (go target-high-jump @@ -1771,7 +1770,7 @@ (f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) ) (while (not (or (and (< (fabs (/ f0-11 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.7)) + (>= (- (current-time) (-> self state-time)) (seconds 1.7)) ) ) (quaternion-rotate-y! diff --git a/goal_src/jak2/engine/target/target-carry.gc b/goal_src/jak2/engine/target/target-carry.gc index 3162819590..3a9f5ae4b9 100644 --- a/goal_src/jak2/engine/target/target-carry.gc +++ b/goal_src/jak2/engine/target/target-carry.gc @@ -152,7 +152,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self carry other) (the-as handle #f)) (set! (-> self carry other-value) 100000000000.0) @@ -295,7 +295,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (none) ) @@ -421,7 +421,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *carry-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -482,7 +482,7 @@ (defstate target-carry-walk (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *carry-walk-mods*) (none) ) @@ -549,7 +549,7 @@ :event target-jump-event-handler :enter (behavior () (set! (-> self control mod-surface) *carry-jump-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -566,7 +566,7 @@ ) (when (if (and (< f0-0 (-> *TARGET-bank* stuck-distance)) (and (>= v1-12 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) v1-12) + (>= (- (current-time) (-> self state-time)) v1-12) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -668,7 +668,7 @@ (defstate target-carry-jump (target) :event target-jump-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -736,7 +736,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (none) ) diff --git a/goal_src/jak2/engine/target/target-darkjak.gc b/goal_src/jak2/engine/target/target-darkjak.gc index ea5488fea1..cd496f7253 100644 --- a/goal_src/jak2/engine/target/target-darkjak.gc +++ b/goal_src/jak2/engine/target/target-darkjak.gc @@ -59,7 +59,7 @@ ) ) (or (and (not (and (focus-test? self dark) (nonzero? (-> self darkjak)))) - (and (>= (- (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) + (and (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) (seconds 0.05) ) (>= (-> self game eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default)) @@ -114,7 +114,7 @@ ) (target-danger-set! (-> self control danger-mode) #f) (update-transforms (-> self control)) - (if (and (or (>= (- (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) + (if (and (or (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) ) (not (-> *setting-control* user-current darkjak)) @@ -189,9 +189,9 @@ (set! (-> a3-7 w) 1.0) (t9-14 a0-43 (the-as vector a1-11) (the-as quaternion a2-8) a3-7) ) - ;; (set-darkjak-texture-morph! f30-0) + (set-darkjak-texture-morph! f30-0) (cond - ((and (= f30-0 0.0) (< (- (-> self clock frame-counter) (-> self teleport-time)) (seconds 0.5))) + ((and (= f30-0 0.0) (< (- (current-time) (-> self teleport-time)) (seconds 0.5))) (set! (-> self skel override 0) 0.00001) (set! (-> self skel override 41) 0.000001) ) @@ -315,12 +315,12 @@ (set! (-> self darkjak want-stage) (-> self darkjak stage)) (set! (-> self neck flex-blend) 0.0) (set! (-> self control mod-surface) *darkjak-trans-mods*) - (set! (-> self darkjak start-time) (-> self clock frame-counter)) + (set! (-> self darkjak start-time) (current-time)) (set! (-> self darkjak attack-count) (the-as uint 0)) (set! (-> self darkjak-giant-interp) 1.0) (set-setting! 'sound-flava #f 30.0 4) (set! (-> self focus-status) (logior (focus-status dark) (-> self focus-status))) - (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (-> self clock frame-counter)) + (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (current-time)) (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) (seconds 20)) (if (logtest? (-> self darkjak stage) 16) (logior! (-> self state-flags) (state-flags sf4)) @@ -335,7 +335,7 @@ (let ((s5-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! s5-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! s5-0 (- (current-time) (-> self clock old-frame-counter))) (if (>= s5-0 300) (go target-falling #f) ) @@ -468,7 +468,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (if (>= gp-0 300) (go target-falling #f) ) @@ -665,9 +665,9 @@ (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2)) (< sv-32 2) ) - (set! sv-40 (the-as int (-> self clock frame-counter))) + (set! sv-40 (the-as int (current-time))) ) - (when (>= (- (-> self clock frame-counter) (the-as time-frame sv-40)) (seconds 0.5)) + (when (>= (- (current-time) (the-as time-frame sv-40)) (seconds 0.5)) (set! sv-40 0) 0 ) @@ -697,7 +697,7 @@ (-> self control trans) (get-trans s4-0 3) s4-0 - (-> self clock frame-counter) + (current-time) ) ) (target-start-attack) @@ -736,13 +736,13 @@ (cond ((and (>= (ja-frame-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-falling #f) @@ -762,10 +762,8 @@ ) (let ((s5-1 (get-trans (the-as process-focusable gp-0) 3))) (when (and (< 2048.0 (vector-vector-distance (-> self control trans) s5-1)) - (or (and (= gp-0 (handle->process sv-56)) - (< (- (-> self clock frame-counter) (the-as time-frame sv-64)) (seconds 0.1)) - ) - (>= (- (-> self clock frame-counter) (the-as time-frame sv-64)) (seconds 1)) + (or (and (= gp-0 (handle->process sv-56)) (< (- (current-time) (the-as time-frame sv-64)) (seconds 0.1))) + (>= (- (current-time) (the-as time-frame sv-64)) (seconds 1)) ) ) (forward-up-nopitch->quaternion @@ -779,9 +777,7 @@ (new 'stack-no-clear 'vector) (-> self control trans) s5-1 - (* 0.009107469 - (the float (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time))) - ) + (* 0.009107469 (the float (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)))) ) ) ) @@ -792,7 +788,7 @@ ) (when (!= gp-0 (handle->process sv-56)) (set! sv-56 (process->handle gp-0)) - (set! sv-64 (the-as int (-> self clock frame-counter))) + (set! sv-64 (the-as int (current-time))) ) ) ) @@ -801,13 +797,13 @@ (set-forward-vel sv-16) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) (zero? sv-32) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.2)) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.2)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -949,7 +945,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) (the-as float sv-48)))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 sv-24) @@ -958,7 +954,7 @@ (set! sv-24 (+ sv-24 1)) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1801,11 +1797,11 @@ ) ) (set! sv-64 0) - (set! sv-72 (-> self clock frame-counter)) - (set! sv-80 (-> self clock frame-counter)) + (set! sv-72 (current-time)) + (set! sv-80 (current-time)) (set! sv-88 (the-as float 0.0)) (set! sv-92 0.0) - (set! sv-96 (-> self clock frame-counter)) + (set! sv-96 (current-time)) (let* ((v1-70 (-> self game)) (a0-33 (+ (-> v1-70 attack-id) 1)) ) @@ -1815,7 +1811,7 @@ (ja-channel-push! 2 (seconds 0.05)) (ja :group! (-> self draw art-group data 419)) (ja :chan 1 :group! (-> self draw art-group data 420)) - (while (or (< sv-64 sv-48) (< (- (-> self clock frame-counter) sv-80) (seconds 1.5))) + (while (or (< sv-64 sv-48) (< (- (current-time) sv-80) (seconds 1.5))) (let ((v1-77 (new-stack-vector0))) (let ((f0-8 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) 0.0 @@ -1835,11 +1831,11 @@ (set! (-> self darkjak clock-vel) -4.0) (set! (-> self darkjak clock-on) #t) (send-event *camera* 'joystick -1098907648 #x3f800000) - (when (>= (- (-> self clock frame-counter) sv-72) (seconds 0.1)) - (set! sv-72 (-> self clock frame-counter)) + (when (>= (- (current-time) sv-72) (seconds 0.1)) + (set! sv-72 (current-time)) (target-bomb1-fire-shot sv-60 sv-64 sv-48 (the-as int sv-104)) (set! sv-64 (+ sv-64 1)) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! sv-92 1.0) ) ) @@ -1872,7 +1868,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self gun surpress-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (current-time)) (send-event (handle->process (-> self notify)) 'notify 'attack 17) (go target-darkjak-get-off) (none) diff --git a/goal_src/jak2/engine/target/target-death.gc b/goal_src/jak2/engine/target/target-death.gc index de3c52aac4..22f86f100e 100644 --- a/goal_src/jak2/engine/target/target-death.gc +++ b/goal_src/jak2/engine/target/target-death.gc @@ -96,7 +96,7 @@ (apply-settings *setting-control*) (logclear! (-> self focus-status) (focus-status teleporting)) (set! (-> self mode-cache) #f) - (set! (-> self teleport-time) (-> self clock frame-counter)) + (set! (-> self teleport-time) (current-time)) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) (set! (-> self game kiosk-timeout) (the-as uint (-> *display* game-clock frame-counter))) (none) @@ -105,7 +105,7 @@ (local-vars (v1-96 symbol)) (set! *spawn-actors* #f) (set! (-> self control unknown-word04) (the-as uint #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self focus-status) (logior (focus-status teleporting) (-> self focus-status))) (let ((a0-3 (get-continue-by-name (-> self game) (-> arg0 name)))) (cond @@ -300,8 +300,8 @@ ) ) ) - (let ((s5-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-6) (seconds 0.05)) + (let ((s5-6 (current-time))) + (until (>= (- (current-time) s5-6) (seconds 0.05)) (suspend) ) ) @@ -327,8 +327,8 @@ (intro-play) ) ((logtest? (-> arg0 flags) (continue-flags cf7)) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 0.05)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 0.05)) (suspend) ) ) @@ -361,8 +361,8 @@ (go target-grab 'stance) ) (else - (let ((s5-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-9) (seconds 0.05)) + (let ((s5-9 (current-time))) + (until (>= (- (current-time) s5-9) (seconds 0.05)) (suspend) ) ) @@ -674,7 +674,7 @@ (if (and (cpad-pressed? (-> self control cpad number) square) (and (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -698,7 +698,7 @@ ) ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* stuck-time))) + (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* stuck-time))) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -953,7 +953,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-stance) ) @@ -963,7 +963,7 @@ :code (behavior ((arg0 symbol) (arg1 attack-info)) (local-vars (sv-32 attack-info) (sv-36 vector)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! sv-32 (-> self attack-info)) (set! sv-36 (new 'stack-no-clear 'vector)) @@ -1018,7 +1018,7 @@ ((= arg0 'attack) (send-event (handle->process (-> self notify)) 'notify 'hit (-> sv-32 mode)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> sv-32 mode) (('endlessfall) (cond @@ -1026,8 +1026,8 @@ (let ((gp-1 (new-stack-vector0))) (set! (-> gp-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 1)) (suspend) ) ) @@ -1475,7 +1475,7 @@ (the-as game-save #f) (the-as string #f) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) 0 (none) @@ -1667,8 +1667,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-3) (seconds 2)) + (let ((s5-3 (current-time))) + (until (>= (- (current-time) s5-3) (seconds 2)) (suspend) ) ) @@ -1748,7 +1748,7 @@ (ja :num! (seek!)) ) (while (not (or (logtest? (-> self control status) (collide-status on-surface)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (>= (- (current-time) (-> self state-time)) (seconds 2)) ) ) (suspend) @@ -1788,8 +1788,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 2)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 2)) (suspend) ) ) @@ -1841,8 +1841,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-10) (seconds 2)) + (let ((s5-10 (current-time))) + (until (>= (- (current-time) s5-10) (seconds 2)) (suspend) ) ) @@ -1861,8 +1861,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-11 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-11) (seconds 1.2)) + (let ((s5-11 (current-time))) + (until (>= (- (current-time) s5-11) (seconds 1.2)) (suspend) ) ) @@ -1903,8 +1903,8 @@ (target-falling-anim 30 (seconds 0.33)) (ja-channel-push! 1 (seconds 0.3)) (ja-no-eval :group! (-> self draw art-group data 32) :num! (loop! 0.5) :frame-num 0.0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.8)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.8)) (when (and (logtest? (-> self control status) (collide-status on-surface)) (!= (-> self control cur-pat event) 2)) (set! v1-24 'target-hit-ground-hard) (goto cfg-17) @@ -1952,8 +1952,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) @@ -2064,8 +2064,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s5-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-13) (seconds 2)) + (let ((s5-13 (current-time))) + (until (>= (- (current-time) s5-13) (seconds 2)) (suspend) ) ) @@ -2088,7 +2088,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (if (-> self control unknown-spool-anim00) (return #f) ) diff --git a/goal_src/jak2/engine/target/target-gun.gc b/goal_src/jak2/engine/target/target-gun.gc index e7745b0d5f..ff2ab1b8f1 100644 --- a/goal_src/jak2/engine/target/target-gun.gc +++ b/goal_src/jak2/engine/target/target-gun.gc @@ -85,9 +85,7 @@ (set! (-> arg0 turnvf) f0-15) ) (cond - ((and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + ((and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> arg0 turnvv) 0.0) (set! (-> arg0 turnvvf) 0.0) (set! (-> arg0 seek0) 0.0) @@ -209,7 +207,7 @@ (set! (-> self gun top-anim-twist-reset) (the-as uint 0)) (set! (-> gp-0 gun-type) (pickup-type eco-yellow)) (target-gun-type-set! arg0) - (set! (-> gp-0 gun-get-on-time) (-> self clock frame-counter)) + (set! (-> gp-0 gun-get-on-time) (current-time)) ) (set! (-> self board latch?) #f) (set! (-> self gun put-away?) #f) @@ -1178,7 +1176,7 @@ (set! (-> self gun track?) (logand -9 (-> self gun track?))) ) (let ((gp-0 (the-as basic #f))) - (when (and (or (< (- (-> self clock frame-counter) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) + (when (and (or (< (- (current-time) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) (and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) ) @@ -1186,7 +1184,7 @@ (= (-> self gun gun-type) (pickup-type eco-dark)) ) ) - (>= (-> self clock frame-counter) (-> self gun track-target-hold-time)) + (>= (current-time) (-> self gun track-target-hold-time)) ) (target-gun-build-track-list) (let ((t2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 8)))) @@ -1260,9 +1258,9 @@ (the-as focus (-> self gun track-target)) (the-as process-focusable gp-0) ) - (set! (-> self gun track-start-time) (-> self clock frame-counter)) - (if (< (- (-> self clock frame-counter) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) - (set! (-> self gun track-press-start-time) (-> self clock frame-counter)) + (set! (-> self gun track-start-time) (current-time)) + (if (< (- (current-time) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) + (set! (-> self gun track-press-start-time) (current-time)) ) ) (if (logtest? (process-mask enemy guard) (-> (the-as process-focusable gp-0) mask)) @@ -1274,9 +1272,7 @@ (cond ((or (not s5-1) (or (and (focus-test? (the-as process-focusable s5-1) dead) (zero? (-> self gun track-target-hold-time))) - (and (not (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + (and (not (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) ) (and (not (logtest? (surface-flag spin) (-> self control current-surface flags))) (let ((f30-0 21845.334) @@ -1465,7 +1461,7 @@ ) (set! (-> self gun top-anim-low-high) 1.0) (if (zero? (-> self gun fire-pending)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) ) (((pickup-type eco-blue)) @@ -1513,8 +1509,8 @@ (defbehavior target-gun-combo-start target ((arg0 int) (arg1 time-frame)) (target-top-anim-base-mode arg0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) arg0)) - (set! (-> self gun track-target-hold-time) (+ (-> self clock frame-counter) arg1)) + (set! (-> self gun surpress-time) (+ (current-time) arg0)) + (set! (-> self gun track-target-hold-time) (+ (current-time) arg1)) 0 (none) ) @@ -1523,14 +1519,14 @@ (if (!= (not (logtest? (-> self game features) (game-feature gun))) (not (-> self gun gun))) (target-gun-setup (logtest? (-> self game features) (game-feature gun))) ) - (if (and (>= (- (-> self clock frame-counter) (-> self gun combo-window-start)) (seconds 0.7)) + (if (and (>= (- (current-time) (-> self gun combo-window-start)) (seconds 0.7)) (zero? (-> self gun fire-pending)) ) (set! (-> self gun combo-window-state) #f) ) (cond ((and (cpad-pressed? (-> self control cpad number) r1) - (< (- (-> self clock frame-counter) (-> self gun combo-window-start)) (seconds 0.7)) + (< (- (current-time) (-> self gun combo-window-start)) (seconds 0.7)) (not (focus-test? self mech dark)) (not (logtest? (surface-flag gun-off) (-> self control current-surface flags))) (not (logtest? (state-flags prevent-gun) (-> self state-flags))) @@ -1556,7 +1552,7 @@ (-> self control trans) (get-trans (the-as process-focusable gp-0) 3) (the-as process-focusable gp-0) - (-> self clock frame-counter) + (current-time) ) ((method-of-type focus try-update-focus) (the-as focus (-> self gun track-target)) @@ -1568,7 +1564,7 @@ (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) (target-gun-combo-start 20 (seconds 0.4)) (send-event self 'gun-combo #t) (case (-> self gun combo-window-state) @@ -1591,17 +1587,15 @@ (logtest? (surface-flag gun-turn-fast) (-> self control current-surface flags)) (not (logtest? (state-flags prevent-gun) (-> self state-flags))) (zero? (-> self gun track-target-hold-time)) - (or (zero? (-> self gun turn-fast-hold-time)) - (>= (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + (or (zero? (-> self gun turn-fast-hold-time)) (>= (current-time) (-> self gun turn-fast-hold-time))) ) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) (target-top-anim-base-mode 60) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) - (set! (-> self gun turn-fast-hold-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) + (set! (-> self gun turn-fast-hold-time) (+ (current-time) (seconds 0.2))) (send-event self 'gun-combo #t) ) ) @@ -1612,14 +1606,14 @@ (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) ) ) ) (cond ((using-gun? self) (when (and (nonzero? (-> self gun top-anim-twist-reset)) - (< (the-as time-frame (-> self gun top-anim-twist-reset)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self gun top-anim-twist-reset)) (current-time)) ) (quat<-gun! (the-as quaternion (-> self gun top-anim-twist-targ)) (the-as quaternion (-> self gun gun-type))) (set! (-> self gun top-anim-twist-reset) (the-as uint 0)) @@ -1721,12 +1715,8 @@ (the-as vector #f) ) (cond - ((or (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) - (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + ((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) + (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) (and (logtest? (-> self gun track?) 1) (logtest? (-> self gun track?) 4)) (or (logtest? (surface-flag gun-strafe) (-> self control current-surface flags)) (focus-test? self pilot-riding) @@ -1789,7 +1779,7 @@ ((and (logtest? (-> self gun track?) 1) (logtest? (process-mask enemy guard) (-> (handle->process (-> self gun track-target 0 handle)) mask)) ) - (if (and (< (- (-> self clock frame-counter) (-> self gun track-press-start-time)) (seconds 0.5)) + (if (and (< (- (current-time) (-> self gun track-press-start-time)) (seconds 0.5)) (< (-> self control time-between-zero-inputs) (seconds 0.5)) (and (= (-> self control turn-to-magnitude) 0.0) (not (logtest? (-> self control current-surface flags) (surface-flag air attack))) @@ -1803,12 +1793,8 @@ ) ) (cond - ((or (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) - (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + ((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) + (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) ) (set! (-> self gun track?) (the-as uint 7)) (set! (-> self gun upper-body twist-max y) 21845.334) @@ -1874,7 +1860,7 @@ ) ) (set! (-> self gun upper-body track-mode) (the-as track-mode (-> self gun track?))) - (when (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.5)) + (when (< (- (current-time) (-> self gun fire-time)) (seconds 1.5)) (let ((v1-459 (-> self neck))) (set! (-> v1-459 blend) 0.0) ) @@ -1940,7 +1926,7 @@ (-> self draw art-group data 245) ) (else - (when (and (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.5)) + (when (and (>= (- (current-time) (-> self gun fire-time)) (seconds 1.5)) (let ((v1-50 (-> self skel top-anim frame-group))) (or (= v1-50 (-> self draw art-group data 247)) (= v1-50 (-> self draw art-group data 254))) ) @@ -1987,10 +1973,8 @@ (-> self draw art-group data 244) ) (else - (when (and (or (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2.5)) - (and (< 4096.0 (-> self control ctrl-xz-vel)) - (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.25)) - ) + (when (and (or (>= (- (current-time) (-> self gun fire-time)) (seconds 2.5)) + (and (< 4096.0 (-> self control ctrl-xz-vel)) (>= (- (current-time) (-> self gun fire-time)) (seconds 1.25))) ) (let ((v1-104 (-> self skel top-anim frame-group))) (or (= v1-104 (-> self draw art-group data 294)) @@ -2020,9 +2004,7 @@ (let ((v1-119 (ja-group))) (cond ((and (and v1-119 (or (= v1-119 self) (= v1-119 (-> self draw art-group data 261)))) - (and (< (-> self gun top-anim-low-high) 0.5) - (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 0.2)) - ) + (and (< (-> self gun top-anim-low-high) 0.5) (>= (- (current-time) (-> self gun fire-time)) (seconds 0.2))) ) (let ((s5-2 (get-channel (-> self skel top-anim) 0))) (set! gp-0 (if (< 0.9 (-> self control unknown-float002)) @@ -2159,8 +2141,8 @@ ) (set! (-> self gun active?) (and (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> self control current-surface flags))) - (and (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self gun surpress-time)) + (and (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (current-time) (-> self gun surpress-time)) (let ((v1-35 (-> self skel top-anim frame-group)) (f0-13 (-> self skel top-anim frame-num)) ) @@ -2227,19 +2209,19 @@ ) ) (if (-> self gun active?) - (set! (-> self gun active-time) (-> self clock frame-counter)) + (set! (-> self gun active-time) (current-time)) ) (set! (-> self gun laser-active?) (not (logtest? (surface-flag gun-inactive gun-hide gun-off laser-hide) (-> self control current-surface flags)) ) ) (when (and (not (and (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> self control current-surface flags))) - (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self gun surpress-time)) + (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (current-time) (-> self gun surpress-time)) ) ) - (and (>= (- (-> self clock frame-counter) (-> self gun fire-pending-time)) (seconds 0.2)) - (>= (- (-> self clock frame-counter) (-> self gun active-time)) (seconds 0.2)) + (and (>= (- (current-time) (-> self gun fire-pending-time)) (seconds 0.2)) + (>= (- (current-time) (-> self gun active-time)) (seconds 0.2)) (= (-> self gun fire-pending) 1) ) ) @@ -2303,7 +2285,7 @@ ) ) ) - (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) (let ((v1-110 (-> self skel top-anim frame-targ))) (or (not v1-110) (= v1-110 (-> self draw art-group data 304)) @@ -2489,7 +2471,7 @@ ) (set! (-> self gun top-anim-low-high) 0.0) ) - ((and (rand-vu-percent? 0.2) (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2))) + ((and (rand-vu-percent? 0.2) (< (- (current-time) (-> self gun fire-time)) (seconds 2))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 293)) @@ -2505,7 +2487,7 @@ ) ) ((and (or (rand-vu-percent? 0.2) (= (-> self skel top-anim frame-targ) (-> self draw art-group data 256))) - (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2)) + (< (- (current-time) (-> self gun fire-time)) (seconds 2)) ) (push-anim-to-targ (-> self skel top-anim) @@ -2622,23 +2604,23 @@ (set! (-> gp-0 combo-window-state) 'target-attack-air) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> gp-0 fire-start-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-start-time) (current-time)) ) (case (-> gp-0 gun-control) ((1) (when (and (cpad-pressed? (-> self control cpad number) r1) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (or (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (or (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (case (-> gp-0 combo-window-state) (('target-attack-air 'target-attack 'target-running-attack) - (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 combo-fire-delay))) + (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 combo-fire-delay))) ) ) ) @@ -2648,7 +2630,7 @@ (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2661,23 +2643,23 @@ ((2) (when (and (cpad-hold? (-> self control cpad number) r1) (and (not (handle->process (-> self gun charge-active?))) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (> (-> gp-0 fire-pending) 0) (-> self gun active?) ) (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2691,9 +2673,7 @@ (cond ((cpad-hold? (-> self control cpad number) r1) (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (-> self clock seconds-per-frame))) - (if (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + (if (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> gp-0 fire-spinv) 218453.33) ) ) @@ -2741,22 +2721,22 @@ ) (when (and (cpad-hold? (-> self control cpad number) r1) (-> self gun active?) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (> (-> gp-0 fire-pending) 0) (-> self gun active?) ) (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2795,7 +2775,7 @@ ) ) ) - (set! (-> gp-0 gun-time) (-> self clock frame-counter)) + (set! (-> gp-0 gun-time) (current-time)) ) ) 0 diff --git a/goal_src/jak2/engine/target/target-handler.gc b/goal_src/jak2/engine/target/target-handler.gc index ae33e91266..40868e17f5 100644 --- a/goal_src/jak2/engine/target/target-handler.gc +++ b/goal_src/jak2/engine/target/target-handler.gc @@ -272,7 +272,7 @@ ) (when sv-96 (set! (-> self control send-attack-dest) (process->handle arg0)) - (set! (-> self control send-attack-time) (-> self clock frame-counter)) + (set! (-> self control send-attack-time) (current-time)) (send-event self 'hit arg1 arg0 arg2) ;; TODO - manual fix? (set! arg0 (the process (and (and (logtest? (focus-status dark) (-> self focus-status)) @@ -293,7 +293,7 @@ (stack-size-set! (-> self main-thread) 512) ;; added (let ((gp-0 (-> self parent))) (let ((s4-0 0) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) ) (set! (-> self clock) (-> gp-0 0 clock)) (while (let ((v1-48 gp-0)) @@ -326,7 +326,7 @@ ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 15)) + (< (- (current-time) s3-0) (seconds 15)) (not (logtest? (-> (the-as process-focusable (-> gp-0 0)) draw status) (draw-control-status no-draw no-draw-temp)) ) ) @@ -355,10 +355,10 @@ ) ) (send-event (ppointer->process gp-0) 'color-effect 'dark 60) - (when (>= (- (-> self clock frame-counter) (the-as time-frame s4-0)) (seconds 0.05)) - (set! s4-0 (the-as int (-> self clock frame-counter))) + (when (>= (- (current-time) (the-as time-frame s4-0)) (seconds 0.05)) + (set! s4-0 (the-as int (current-time))) (cond - ((and (< (- (-> self clock frame-counter) s3-0) (seconds 0.5)) (handle->process arg0)) + ((and (< (- (current-time) s3-0) (seconds 0.5)) (handle->process arg0)) (process-drawable2-shock-effect (the-as process-drawable (handle->process arg0)) (the-as process-drawable (ppointer->process gp-0)) @@ -644,7 +644,7 @@ (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.2)) ) ((= v1-37 'darkjak) - (set! (-> self darkjak attack-time) (-> self clock frame-counter)) + (set! (-> self darkjak attack-time) (current-time)) (let* ((v1-160 *game-info*) (a0-102 (+ (-> v1-160 attack-id) 1)) ) @@ -792,7 +792,7 @@ (('release) (when (and (nonzero? (-> self gun)) (handle->process (-> self gun charge-active?))) (set! (-> self gun charge-active?) (the-as handle #f)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> self gun fire-time) (the-as time-frame v0-0)) v0-0 ) @@ -812,7 +812,7 @@ ) (rot->dir-targ! (-> self control)) (logior! (-> self control status) (collide-status on-surface on-ground touch-surface)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> self control last-time-on-surface) (the-as time-frame v0-0)) v0-0 ) @@ -828,7 +828,7 @@ ) (('color-effect) (set! (-> self color-effect) (the-as basic (-> arg3 param 0))) - (set! (-> self color-effect-start-time) (-> self clock frame-counter)) + (set! (-> self color-effect-start-time) (current-time)) (set! v0-0 (-> arg3 param 1)) (set! (-> self color-effect-duration) (the-as uint v0-0)) v0-0 @@ -1006,14 +1006,12 @@ ) ) (('no-load-wait) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0)))) (set! (-> self no-load-wait) (the-as uint v0-0)) v0-0 ) (('no-look-around) - (set! (-> self no-look-around-wait) - (the-as uint (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) - ) + (set! (-> self no-look-around-wait) (the-as uint (+ (current-time) (the-as time-frame (-> arg3 param 0))))) (if (and (-> self next-state) (= (-> self next-state name) 'target-look-around)) (send-event self 'end-mode) ) @@ -1107,18 +1105,18 @@ (.mul.x.vf vf1 vf1 vf2 :mask #b111) (.svf (&-> v1-15 quad) vf1) ) - (set! (-> self control additional-decaying-velocity-end-time) (-> self clock frame-counter)) + (set! (-> self control additional-decaying-velocity-end-time) (current-time)) (set! (-> self control additional-decaying-velocity-decay-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 1))) + (+ (current-time) (the-as time-frame (-> arg3 param 1))) ) (set! v0-0 #t) (b! #t cfg-291 :delay (nop!)) (label cfg-23) (b! (!= v1-0 'push-transv) cfg-25 :delay (nop!)) (set! (-> self control additional-decaying-velocity quad) (-> (the-as vector (-> arg3 param 0)) quad)) - (set! (-> self control additional-decaying-velocity-end-time) (-> self clock frame-counter)) + (set! (-> self control additional-decaying-velocity-end-time) (current-time)) (set! (-> self control additional-decaying-velocity-decay-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 1))) + (+ (current-time) (the-as time-frame (-> arg3 param 1))) ) (set! v0-0 #t) (b! #t cfg-291 :delay (nop!)) @@ -1133,7 +1131,7 @@ ) (or (logtest? (-> self state-flags) (state-flags sf1)) (focus-test? self dead dangerous hit grabbed in-head edge-grab pole flut tube board pilot mech) - (>= (the-as time-frame (-> self no-load-wait)) (-> self clock frame-counter)) + (>= (the-as time-frame (-> self no-load-wait)) (current-time)) ) ) ) @@ -1266,7 +1264,7 @@ ) ((logtest? (-> arg3 param 2) 128) (set! (-> self darkjak stage) (logand -2 (-> self darkjak stage))) - (set! v0-0 (+ (- (seconds 20) (-> self fact-override darkjak-start-time)) (-> self clock frame-counter))) + (set! v0-0 (+ (- (seconds 20) (-> self fact-override darkjak-start-time)) (current-time))) (set! (-> self fact-override darkjak-effect-time) (the-as time-frame v0-0)) v0-0 ) diff --git a/goal_src/jak2/engine/target/target-part.gc b/goal_src/jak2/engine/target/target-part.gc index 8c19de9411..0c32d3887e 100644 --- a/goal_src/jak2/engine/target/target-part.gc +++ b/goal_src/jak2/engine/target/target-part.gc @@ -2111,13 +2111,13 @@ (defbehavior process-drawable-burn-effect target ((arg0 time-frame)) (sound-play "get-burned") (let ((s5-1 (new 'stack 'rgbaf)) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) (s4-1 (-> self parent)) ) (set! (-> s5-1 quad) (-> (the-as process-drawable (-> s4-1 0)) draw color-mult quad)) (let ((s2-1 (vector-float*! (the-as vector (new 'stack 'rgbaf)) (the-as vector s5-1) 0.0))) - (while (< (- (-> self clock frame-counter) s3-0) arg0) - (let ((v1-8 (- (-> self clock frame-counter) s3-0))) + (while (< (- (current-time) s3-0) arg0) + (let ((v1-8 (- (current-time) s3-0))) (if (< v1-8 (the-as time-frame (/ arg0 2))) (vector-lerp! (-> (the-as process-drawable (-> s4-1 0)) draw color-mult) @@ -2459,98 +2459,96 @@ (sv-736 int) (sv-752 lightning-tracker) ) - (with-pp - (set! sv-640 arg6) - (let ((s5-0 *lightning-probe-vars*)) - (if (= arg4 256) - (set! sv-656 arg4) - (set! sv-656 (rand-vu-int-range 3 (/ (+ (-> arg0 node-list length) -1) 2))) - ) - (set! sv-672 (new 'stack-no-clear 'matrix)) - (set! sv-688 (new 'stack-no-clear 'collide-query)) - (set! sv-704 (the-as symbol #f)) - (when (nonzero? arg4) + (set! sv-640 arg6) + (let ((s5-0 *lightning-probe-vars*)) + (if (= arg4 256) (set! sv-656 arg4) - sv-656 + (set! sv-656 (rand-vu-int-range 3 (/ (+ (-> arg0 node-list length) -1) 2))) ) - (if (= arg4 256) - (set! (-> sv-688 start-pos quad) (-> arg0 root trans quad)) - (vector<-cspace! (-> sv-688 start-pos) (-> arg0 node-list data sv-656)) - ) - (set! sv-720 (-> sv-688 move-dist)) - (set! (-> sv-720 x) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 y) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 z) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 w) 1.0) - (matrix-rotate-zyx! sv-672 (-> sv-688 move-dist)) - (set! sv-736 6) - (while (nonzero? sv-736) - (set! sv-736 (+ sv-736 -1)) - (vector-rotate*! (-> sv-688 move-dist) (-> s5-0 probe-dirs sv-736) sv-672) - (vector-normalize! (-> sv-688 move-dist) sv-640) - (let ((v1-29 sv-688)) - (set! (-> v1-29 radius) 409.6) - (set! (-> v1-29 collide-with) (collide-spec backgnd crate obstacle hit-by-others-list pusher)) - (set! (-> v1-29 ignore-process0) arg0) - (set! (-> v1-29 ignore-process1) #f) - (set! (-> v1-29 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-29 action-mask) (collide-action solid)) - ) - (when (>= (fill-and-probe-using-line-sphere *collide-cache* sv-688) 0.0) - (set! (-> s5-0 last-valid-time) (-> pp clock frame-counter)) - (set! (-> s5-0 src-joint-index) (the-as uint sv-656)) - (set! (-> s5-0 end-pos quad) (-> sv-688 best-other-tri intersect quad)) - (when (< 8192.0 (vector-vector-distance (-> s5-0 end-pos) (-> sv-688 start-pos))) - (set! sv-704 #t) - (goto cfg-15) - ) + (set! sv-672 (new 'stack-no-clear 'matrix)) + (set! sv-688 (new 'stack-no-clear 'collide-query)) + (set! sv-704 (the-as symbol #f)) + (when (nonzero? arg4) + (set! sv-656 arg4) + sv-656 + ) + (if (= arg4 256) + (set! (-> sv-688 start-pos quad) (-> arg0 root trans quad)) + (vector<-cspace! (-> sv-688 start-pos) (-> arg0 node-list data sv-656)) + ) + (set! sv-720 (-> sv-688 move-dist)) + (set! (-> sv-720 x) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 y) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 z) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 w) 1.0) + (matrix-rotate-zyx! sv-672 (-> sv-688 move-dist)) + (set! sv-736 6) + (while (nonzero? sv-736) + (set! sv-736 (+ sv-736 -1)) + (vector-rotate*! (-> sv-688 move-dist) (-> s5-0 probe-dirs sv-736) sv-672) + (vector-normalize! (-> sv-688 move-dist) sv-640) + (let ((v1-29 sv-688)) + (set! (-> v1-29 radius) 409.6) + (set! (-> v1-29 collide-with) (collide-spec backgnd crate obstacle hit-by-others-list pusher)) + (set! (-> v1-29 ignore-process0) arg0) + (set! (-> v1-29 ignore-process1) #f) + (set! (-> v1-29 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-29 action-mask) (collide-action solid)) + ) + (when (>= (fill-and-probe-using-line-sphere *collide-cache* sv-688) 0.0) + (set! (-> s5-0 last-valid-time) (current-time)) + (set! (-> s5-0 src-joint-index) (the-as uint sv-656)) + (set! (-> s5-0 end-pos quad) (-> sv-688 best-other-tri intersect quad)) + (when (< 8192.0 (vector-vector-distance (-> s5-0 end-pos) (-> sv-688 start-pos))) + (set! sv-704 #t) + (goto cfg-15) ) ) - (label cfg-15) - (when sv-704 - (set! sv-752 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000))) - (set! sv-624 - (when sv-752 - (let ((t9-11 (method-of-type lightning-tracker activate))) - (t9-11 sv-752 arg0 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000)) - ) - (run-now-in-process - sv-752 - lightning-tracker-init - arg1 - arg5 - arg2 - arg0 - (if (= arg4 256) - (-> arg0 root trans) - (-> s5-0 src-joint-index) - ) - (-> s5-0 end-pos) - ) - (-> sv-752 ppointer-override) + ) + (label cfg-15) + (when sv-704 + (set! sv-752 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000))) + (set! sv-624 + (when sv-752 + (let ((t9-11 (method-of-type lightning-tracker activate))) + (t9-11 sv-752 arg0 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000)) ) + (run-now-in-process + sv-752 + lightning-tracker-init + arg1 + arg5 + arg2 + arg0 + (if (= arg4 256) + (-> arg0 root trans) + (-> s5-0 src-joint-index) + ) + (-> s5-0 end-pos) + ) + (-> sv-752 ppointer-override) ) - (when sv-624 - (set! (-> sv-624 0 user-time 0) 0) - (when arg3 - (let ((v1-62 (get-field-spec-by-id arg3 (sp-field-id spt-timer)))) - (if v1-62 - (set! (-> v1-62 initial-valuef) (the-as float (-> sv-624 0 duration))) - ) - ) - (let ((t9-14 sp-launch-particles-var) - (a0-29 *sp-particle-system-2d*) - (a2-7 *launch-matrix*) - ) - (set! (-> a2-7 trans quad) (-> s5-0 end-pos quad)) - (t9-14 a0-29 arg3 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + ) + (when sv-624 + (set! (-> sv-624 0 user-time 0) 0) + (when arg3 + (let ((v1-62 (get-field-spec-by-id arg3 (sp-field-id spt-timer)))) + (if v1-62 + (set! (-> v1-62 initial-valuef) (the-as float (-> sv-624 0 duration))) + ) + ) + (let ((t9-14 sp-launch-particles-var) + (a0-29 *sp-particle-system-2d*) + (a2-7 *launch-matrix*) + ) + (set! (-> a2-7 trans quad) (-> s5-0 end-pos quad)) + (t9-14 a0-29 arg3 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) ) ) - (the-as object 0) ) + (the-as object 0) ) ;; ERROR: function was not converted to expressions. Cannot decompile. diff --git a/goal_src/jak2/engine/target/target-swim.gc b/goal_src/jak2/engine/target/target-swim.gc index 154888c88c..a4d369cbd0 100644 --- a/goal_src/jak2/engine/target/target-swim.gc +++ b/goal_src/jak2/engine/target/target-swim.gc @@ -10,7 +10,7 @@ (defstate target-wade-stance (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *wade-mods*) (set-zero! (-> self water bob)) (none) @@ -27,7 +27,7 @@ :trans (behavior () ((-> self state-hook)) (when (and (not (logtest? (water-flags wading) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water wade-time)) (seconds 0.05)) + (>= (- (current-time) (-> self water wade-time)) (seconds 0.05)) ) (if (logtest? (water-flags swimming) (-> self water flags)) (go target-swim-stance) @@ -81,7 +81,7 @@ :trans (behavior () ((-> self state-hook)) (when (and (not (logtest? (water-flags wading) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water wade-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water wade-time)) (seconds 0.1)) ) (if (logtest? (water-flags swimming) (-> self water flags)) (go target-swim-stance) @@ -308,7 +308,7 @@ (ja :chan 2 :num! (chan 0)) (ja :chan 3 :num! (chan 0)) (ja :chan 4 :num! (chan 0)) - (when (and (>= (- (-> self clock frame-counter) (the-as time-frame gp-6)) (seconds 0.2)) + (when (and (>= (- (current-time) (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)) @@ -321,7 +321,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) #f ) - (set! gp-6 (the-as int (-> self clock frame-counter))) + (set! gp-6 (the-as int (current-time))) ) ((46 47 48 49) (spawn-ripples @@ -332,7 +332,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) #f ) - (set! gp-6 (the-as int (-> self clock frame-counter))) + (set! gp-6 (the-as int (current-time))) ) ) ) @@ -379,7 +379,7 @@ (defstate target-swim-stance (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *swim-mods*) (logior! (-> self water flags) (water-flags swim-ground)) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) @@ -426,7 +426,7 @@ (set-zero! (-> self water bob)) ) (when (and (not (logtest? (water-flags swimming) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) (if (logtest? (water-flags wading) (-> self water flags)) (go target-wade-stance) @@ -441,7 +441,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> self clock frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -535,7 +535,7 @@ :enter (behavior () ((-> target-swim-stance enter)) (die-on-next-update! (-> self water bob)) - (set! (-> self control unknown-word04) (the-as uint (-> self clock frame-counter))) + (set! (-> self control unknown-word04) (the-as uint (current-time))) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) (none) ) @@ -548,7 +548,7 @@ (set-zero! (-> self water bob)) ) (when (and (not (logtest? (water-flags swimming) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water swim-time)) (seconds 0.1)) ) (if (logtest? (water-flags wading) (-> self water flags)) (go target-wade-stance) @@ -563,7 +563,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> self clock frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -582,14 +582,12 @@ ) (cond ((= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (if (>= (the-as uint (- (-> self clock frame-counter) (the-as int (-> self control unknown-word04)))) - (the-as uint 15) - ) + (if (>= (the-as uint (- (current-time) (the-as int (-> self control unknown-word04)))) (the-as uint 15)) (go target-swim-stance) ) ) (else - (set! (-> self control unknown-word04) (the-as uint (-> self clock frame-counter))) + (set! (-> self control unknown-word04) (the-as uint (current-time))) ) ) (target-swim-tilt 0.0 2.0 0.0 1.0) @@ -697,13 +695,13 @@ (target-standard-event-handler proc arg1 event-type event) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) (logclear! (-> self water flags) (water-flags swim-ground)) (set! (-> self control mod-surface) *dive-mods*) (set! (-> self control dynam gravity-max) 16384.0) (set! (-> self control dynam gravity-length) 16384.0) - (set! (-> self water swim-time) (-> self clock frame-counter)) + (set! (-> self water swim-time) (current-time)) (set! (-> self control unknown-word04) (the-as uint #f)) (set! (-> self neck flex-blend) 0.0) (none) @@ -743,11 +741,11 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self water swim-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self water swim-time)) (seconds 0.5)) (go target-stance) ) (cond - ((>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (set! (-> self control mod-surface) *dive-mods*) (if (and (-> self next-state) (= (-> self next-state name) 'target-swim-down)) (target-swim-tilt -0.9 1.0 0.0 0.5) @@ -834,21 +832,21 @@ ) ) (until #f - (when (and (!= (-> self tobot?) 'tobot) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05))) + (when (and (!= (-> self tobot?) 'tobot) (>= (- (current-time) (-> self state-time)) (seconds 0.05))) (if (and (or (not (cpad-hold? (-> self control cpad number) circle square)) (-> self control unknown-spool-anim00)) - (>= (- (-> self clock frame-counter) (-> self state-time)) gp-0) + (>= (- (current-time) (-> self state-time)) gp-0) ) (go target-swim-up) ) - (if (or (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame27)) s5-0) + (if (or (>= (- (current-time) (-> self control unknown-time-frame27)) s5-0) (and (logtest? (-> self control status) (collide-status on-surface)) - (and (< (-> self water swim-depth) 8192.0) (>= (- (-> self clock frame-counter) (-> self state-time)) gp-0)) + (and (< (-> self water swim-depth) 8192.0) (>= (- (current-time) (-> self state-time)) gp-0)) ) ) (go target-swim-up) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (sound-play "water-bubbles" :id (-> self control bubbles-sound)) ) (let ((s4-3 (new-stack-vector0)) @@ -897,7 +895,7 @@ (the-as surface #f) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 10)) (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (let ((a1-3 (new 'stack-no-clear 'event-message-block))) @@ -919,11 +917,11 @@ ) ) (if (and (cpad-pressed? (-> self control cpad number) circle square) - (or (< (- (-> self clock frame-counter) (-> self control unknown-time-frame27)) (seconds 10)) + (or (< (- (current-time) (-> self control unknown-time-frame27)) (seconds 10)) (logtest? (-> self control status) (collide-status touch-ceiling)) ) (and (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) ) (go target-swim-down) @@ -1010,9 +1008,9 @@ #f (label cfg-51) (logior! (-> self water flags) (water-flags swim-ground)) - (set! (-> self water swim-time) (-> self clock frame-counter)) + (set! (-> self water swim-time) (current-time)) (start-bobbing! (-> self water) -4096.0 600 1500) - (set! (-> self water bob start-time) (+ (-> self clock frame-counter) (seconds -0.05))) + (set! (-> self water bob start-time) (+ (current-time) (seconds -0.05))) (go target-swim-stance) (none) ) @@ -1025,7 +1023,7 @@ :exit target-exit :trans (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + ((< (- (current-time) (-> self state-time)) (seconds 0.5)) (set! (-> self water flags) (logior (water-flags jump-out) (-> self water flags))) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) ) diff --git a/goal_src/jak2/engine/target/target-tube.gc b/goal_src/jak2/engine/target/target-tube.gc index 9017511bf8..d6f6b13b9f 100644 --- a/goal_src/jak2/engine/target/target-tube.gc +++ b/goal_src/jak2/engine/target/target-tube.gc @@ -584,7 +584,7 @@ (set! (-> self tube entity) (-> a0-4 entity)) ) ) - (set! (-> self tube start-time) (-> self clock frame-counter)) + (set! (-> self tube start-time) (current-time)) (set! (-> self tube tube-sound-id) (new-sound-id)) (set! (-> self tube tube-sound-vol) 0.0) (set! (-> self tube tube-sound-pitch) 0.0) @@ -672,7 +672,7 @@ (ja :group! (-> self draw art-group data 111) :num! (identity (ja-aframe (+ (-> self tube turn-anim-frame) - (* 5.0 (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (* 5.0 (sin (* 145.63556 (the float (- (current-time) (-> self state-time)))))) ) 0 ) @@ -741,7 +741,7 @@ (defstate target-tube-jump (target) :event (-> target-tube-start event) :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *tube-jump-mods*) @@ -820,9 +820,9 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (let ((gp-0 (-> self attack-info))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (when (not (logtest? (-> arg1 mask) (attack-info-mask vector))) (vector-! (-> arg1 vector) @@ -871,7 +871,7 @@ (when (= arg0 'attack) (send-event (handle->process (-> self notify)) 'notify 'hit (-> gp-0 mode)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('bot) (pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f)) @@ -955,10 +955,10 @@ ) (set! (-> self control transv quad) (the-as uint128 0)) (initialize! (-> self game) 'life (the-as game-save #f) (the-as string #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until v1-42 (suspend) - (set! v1-42 (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) + (set! v1-42 (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-tube) (none) diff --git a/goal_src/jak2/engine/target/target-turret.gc b/goal_src/jak2/engine/target/target-turret.gc index c4252d0e9b..8c826a9f97 100644 --- a/goal_src/jak2/engine/target/target-turret.gc +++ b/goal_src/jak2/engine/target/target-turret.gc @@ -1067,110 +1067,108 @@ :virtual #t :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (let ((v1-0 event-type)) - (the-as - object - (cond - ((= v1-0 'draw) - (cond - ((-> event param 0) - (ja-channel-set! 1) - (ja :group! (-> self draw art-group data 2)) - (transform-post) - ) - (else - (ja-channel-set! 0) - (transform-post) - ) - ) - ) - ((= v1-0 'fire-down) - (cond - ((>= (-> self heat) 1.0) - (let ((v1-8 (- (-> self clock frame-counter) (-> self fire-time))) - (a0-7 6) - (a1-1 (-> self fire-time-interval)) - ) - (when (>= v1-8 (* a0-7 a1-1)) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self a1-1 event-type)) - ) - ) - ) - (else - (when (>= (- (-> self clock frame-counter) (-> self fire-time)) (-> self fire-time-interval)) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self arg1 event-type)) - ) - ) - ) - ) - ((= v1-0 'fire-pressed) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self arg1 event-type)) - ) - ((= v1-0 'bonk) - #f - ) - ((or (= v1-0 'touch) (= v1-0 'attack)) - (let* ((gp-0 (-> event param 0)) - (s5-0 (the-as object (-> event param 1))) - (s4-0 proc) - (v1-21 (if (type? s4-0 projectile) - s4-0 + (the-as object (cond + ((= v1-0 'draw) + (cond + ((-> event param 0) + (ja-channel-set! 1) + (ja :group! (-> self draw art-group data 2)) + (transform-post) + ) + (else + (ja-channel-set! 0) + (transform-post) + ) + ) + ) + ((= v1-0 'fire-down) + (cond + ((>= (-> self heat) 1.0) + (let ((v1-8 (- (current-time) (-> self fire-time))) + (a0-7 6) + (a1-1 (-> self fire-time-interval)) + ) + (when (>= v1-8 (* a0-7 a1-1)) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self a1-1 event-type)) + ) ) + ) + (else + (when (>= (- (current-time) (-> self fire-time)) (-> self fire-time-interval)) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self arg1 event-type)) + ) + ) + ) + ) + ((= v1-0 'fire-pressed) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self arg1 event-type)) + ) + ((= v1-0 'bonk) + #f + ) + ((or (= v1-0 'touch) (= v1-0 'attack)) + (let* ((gp-0 (-> event param 0)) + (s5-0 (the-as object (-> event param 1))) + (s4-0 proc) + (v1-21 (if (type? s4-0 projectile) + s4-0 + ) + ) + ) + (when (and gp-0 v1-21) + (case (-> (the-as attack-info s5-0) mode) + (('wasp-shot 'guard-shot) + (seek! (-> self health) 0.0 0.25) + (activate! (-> self smush-control) 0.2 15 75 1.0 0.9 (-> *display* entity-clock)) + (sound-play "turret-take-hit") + (let ((v0-1 (the-as object (+ (current-time) (seconds 0.08))))) + (set! (-> self red-filter-timer) (the-as time-frame v0-1)) + v0-1 + ) + ) + (('drill-ship-shot) + (seek! (-> self health) 0.0 0.5) + (activate! (-> self smush-control) 0.2 24 144 1.0 0.9 (-> *display* entity-clock)) + (sound-play "turret-take-hit") + ) + ) + ) + ) + ) + ((= v1-0 'test) + (set! (-> self health) (seek (-> self health) 0.0 (the-as float (-> event param 0)))) + ) + ((= v1-0 'exit-valid) + (let ((v1-33 (-> self path-mode))) + (cond + ((or (zero? v1-33) (= v1-33 5) (= v1-33 1)) + (base-turret-method-41 self (the-as vector (-> event param 0))) + #t + ) + (else + #f + ) + ) + ) + ) + ((= v1-0 'exit) + (let ((v1-37 (-> self path-mode))) + (when (if (or (zero? v1-37) (= v1-37 5) (= v1-37 1)) + #t + ) + (go-virtual shutdown) + #f + ) + ) + ) + (else + (turret-handler proc arg1 event-type event) ) - ) - (when (and gp-0 v1-21) - (case (-> (the-as attack-info s5-0) mode) - (('wasp-shot 'guard-shot) - (seek! (-> self health) 0.0 0.25) - (activate! (-> self smush-control) 0.2 15 75 1.0 0.9 (-> *display* entity-clock)) - (sound-play "turret-take-hit") - (let ((v0-1 (the-as object (+ (-> self clock frame-counter) (seconds 0.08))))) - (set! (-> self red-filter-timer) (the-as time-frame v0-1)) - v0-1 - ) - ) - (('drill-ship-shot) - (seek! (-> self health) 0.0 0.5) - (activate! (-> self smush-control) 0.2 24 144 1.0 0.9 (-> *display* entity-clock)) - (sound-play "turret-take-hit") - ) - ) - ) - ) - ) - ((= v1-0 'test) - (set! (-> self health) (seek (-> self health) 0.0 (the-as float (-> event param 0)))) - ) - ((= v1-0 'exit-valid) - (let ((v1-33 (-> self path-mode))) - (cond - ((or (zero? v1-33) (= v1-33 5) (= v1-33 1)) - (base-turret-method-41 self (the-as vector (-> event param 0))) - #t - ) - (else - #f - ) - ) - ) - ) - ((= v1-0 'exit) - (let ((v1-37 (-> self path-mode))) - (when (if (or (zero? v1-37) (= v1-37 5) (= v1-37 1)) - #t ) - (go-virtual shutdown) - #f - ) - ) - ) - (else - (turret-handler proc arg1 event-type event) - ) - ) - ) + ) ) ) :enter (behavior () @@ -1281,8 +1279,8 @@ :post (behavior () (when (nonzero? (-> self red-filter-timer)) (cond - ((< (-> self clock frame-counter) (-> self red-filter-timer)) - (let* ((v1-5 (- (-> self red-filter-timer) (-> self clock frame-counter))) + ((< (current-time) (-> self red-filter-timer)) + (let* ((v1-5 (- (-> self red-filter-timer) (current-time))) (f0-1 (- 1.0 (* 0.041666668 (the float v1-5)))) ) (set-filter-color! 1.0 f0-1 f0-1) @@ -1551,8 +1549,8 @@ (sound-stop (-> self sound-id 1)) (sound-stop (-> self sound-id 2)) (set! (-> self focus-status) (focus-status disable ignore inactive)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.8)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.8)) (suspend) ) ) diff --git a/goal_src/jak2/engine/target/target-util.gc b/goal_src/jak2/engine/target/target-util.gc index 1de2c24985..345c79b3ce 100644 --- a/goal_src/jak2/engine/target/target-util.gc +++ b/goal_src/jak2/engine/target/target-util.gc @@ -1083,7 +1083,7 @@ (>= (- (-> *display* base-clock frame-counter) (-> self control cpad change-time)) (seconds 60)) (>= (- (-> *display* game-clock frame-counter) (the-as int (-> self game kiosk-timeout))) (seconds 60)) ) - (and (>= (- (-> self clock frame-counter) (-> self ambient-time)) (seconds 30)) + (and (>= (- (current-time) (-> self ambient-time)) (seconds 30)) (not (logtest? (-> self control status) (collide-status touch-actor))) (logtest? (-> self control status) (collide-status on-surface)) (not (or (logtest? (water-flags touch-water) (-> self water flags)) @@ -1125,15 +1125,15 @@ (defbehavior can-jump? target ((arg0 symbol)) (and (or (logtest? (-> self control status) (collide-status on-surface)) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (and (logtest? (-> self control status) (collide-status on-surface)) (< 0.866 (-> self control surface-angle)) ) (and (= arg0 'board) - (or (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.05)) - (and (< (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) (seconds 0.5)) + (or (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.05)) + (and (< (- (current-time) (-> self control last-time-of-stuck)) (seconds 0.5)) (< (target-height-above-ground) 2048.0) ) ) @@ -1165,7 +1165,7 @@ (when (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) #t ) ) @@ -1189,15 +1189,13 @@ ;; WARN: Return type mismatch object vs none. (defbehavior fall-test target ((arg0 (state symbol target)) (arg1 float)) (when (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) arg1) ) - (if (< (- (-> self clock frame-counter) (-> self control rider-time)) - (the-as time-frame (-> *TARGET-bank* ground-timeout)) - ) + (if (< (- (current-time) (-> self control rider-time)) (the-as time-frame (-> *TARGET-bank* ground-timeout))) (send-event self 'push-transv (-> self control rider-last-move) #x7530) ) (go arg0 #f) @@ -1208,7 +1206,7 @@ ;; WARN: Return type mismatch object vs none. (defbehavior slide-down-test target () (if (and (not (logtest? (-> self control status) (collide-status on-surface touch-edge))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (logtest? (-> self control status) (collide-status touch-surface)) @@ -1236,13 +1234,11 @@ (< (-> self control local-slope-z) 0.7) (not (logtest? (-> self state-flags) (state-flags prevent-attack prevent-duck))) (not (and (focus-test? self dark) (nonzero? (-> self darkjak)))) - (>= (- (-> self clock frame-counter) (the-as int (-> *TARGET-bank* roll-timeout))) - (-> self control last-roll-end-time) - ) + (>= (- (current-time) (the-as int (-> *TARGET-bank* roll-timeout))) (-> self control last-roll-end-time)) (or (not (enabled-gun? self)) (not (-> *TARGET-bank* strafe-duck-jump)) (and (< 0.3 (vector-dot (-> self control to-target-pt-xz) (-> self control c-R-w vector 2))) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.3)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.3)) ) ) (not (and (not (using-gun? self)) (!= (-> self skel top-anim interp) 0.0))) @@ -1302,13 +1298,13 @@ #f ) ((and (or (not arg0) - (and (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (and (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (< (-> self control local-slope-z) 0.7) ) ) - (>= (- (-> self clock frame-counter) (-> self control last-running-attack-end-time)) + (>= (- (current-time) (-> self control last-running-attack-end-time)) (the-as time-frame (if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 1) (>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0) ) @@ -1321,7 +1317,7 @@ #t ) (else - (set! (-> self control last-hands-attempt-time) (-> self clock frame-counter)) + (set! (-> self control last-hands-attempt-time) (current-time)) #f ) ) @@ -1334,13 +1330,13 @@ ) #f ) - ((>= (- (-> self clock frame-counter) (-> self control last-attack-end-time)) + ((>= (- (current-time) (-> self control last-attack-end-time)) (the-as time-frame (-> *TARGET-bank* attack-timeout)) ) #t ) (else - (set! (-> self control last-feet-attempt-time) (-> self clock frame-counter)) + (set! (-> self control last-feet-attempt-time) (current-time)) #f ) ) @@ -1414,24 +1410,22 @@ ) (defun target-timed-invulnerable ((arg0 time-frame) (arg1 target) (arg2 int)) - (with-pp - (case arg2 - ((1) - (logior! (-> arg1 state-flags) (state-flags tinvul1)) - (set! (-> arg1 control invul1-on-time) (-> pp clock frame-counter)) - (set! (-> arg1 control invul1-off-time) arg0) - ) - ((2) - (set! (-> arg1 state-flags) (logior (state-flags tinvul2) (-> arg1 state-flags))) - (set! (-> arg1 control invul2-on-time) (-> pp clock frame-counter)) - (set! (-> arg1 control invul2-off-time) arg0) - ) - ) - (modify-collide-as! (-> arg1 control) 2 (collide-spec jak-vulnerable) (collide-spec)) - (logior! (-> arg1 focus-status) (focus-status ignore)) - 0 - (none) + (case arg2 + ((1) + (logior! (-> arg1 state-flags) (state-flags tinvul1)) + (set! (-> arg1 control invul1-on-time) (current-time)) + (set! (-> arg1 control invul1-off-time) arg0) + ) + ((2) + (set! (-> arg1 state-flags) (logior (state-flags tinvul2) (-> arg1 state-flags))) + (set! (-> arg1 control invul2-on-time) (current-time)) + (set! (-> arg1 control invul2-off-time) arg0) + ) ) + (modify-collide-as! (-> arg1 control) 2 (collide-spec jak-vulnerable) (collide-spec)) + (logior! (-> arg1 focus-status) (focus-status ignore)) + 0 + (none) ) (defun target-timed-invulnerable-off ((arg0 target) (arg1 int)) @@ -1464,7 +1458,7 @@ (dotimes (a2-2 8) (let ((v1-9 (-> self attack-info-old a2-2))) (when (= (-> arg0 id) (-> v1-9 id)) - (if (< (- (-> self clock frame-counter) (-> v1-9 attack-time)) + (if (< (- (current-time) (-> v1-9 attack-time)) (the-as time-frame (-> *TARGET-bank* same-attack-invulnerable-timeout)) ) (return #f) diff --git a/goal_src/jak2/engine/target/target.gc b/goal_src/jak2/engine/target/target.gc index 8e38fb559c..647bcfc6e1 100644 --- a/goal_src/jak2/engine/target/target.gc +++ b/goal_src/jak2/engine/target/target.gc @@ -19,7 +19,7 @@ ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (>= arg1 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) arg1) + (>= (- (current-time) (-> self state-time)) arg1) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) #t @@ -27,7 +27,7 @@ (logior! (-> self control status) (collide-status on-surface)) (go target-hit-ground 'stuck) ) - (if (!= (-> self state-time) (-> self clock frame-counter)) + (if (!= (-> self state-time) (current-time)) (slide-down-test) ) 0 @@ -49,7 +49,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -150,7 +150,7 @@ (if (and (using-gun? self) (-> self next-state) (= (-> self next-state name) 'target-walk)) (go target-gun-walk) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *walk-mods*) (none) ) @@ -223,7 +223,7 @@ ) (go target-running-attack) ) - (when (and (turn-around?) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3))) + (when (and (turn-around?) (>= (- (current-time) (-> self state-time)) (seconds 0.3))) (set! (-> self control transv quad) (-> self control transv-history (-> self control idx-of-fastest-xz-vel) quad) ) @@ -291,7 +291,7 @@ (go target-running-attack) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.08)) + (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.08)) ) (go target-falling #f) ) @@ -327,7 +327,7 @@ (none) ) :exit (behavior () - (set! (-> self control unknown-time-frame13) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame13) (current-time)) (none) ) :trans (behavior () @@ -443,7 +443,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *slide-down-mods*) (set! (-> self control sliding-start-time) 0) (set! (-> self control force-turn-to-strength) 1.0) @@ -453,7 +453,7 @@ :exit (behavior () (target-effect-exit) (target-exit) - (set! (-> self control unknown-time-frame13) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame13) (current-time)) (none) ) :trans (behavior () @@ -473,7 +473,7 @@ ) (zero? (-> self control sliding-start-time)) ) - (set! (-> self control sliding-start-time) (-> self clock frame-counter)) + (set! (-> self control sliding-start-time) (current-time)) ) (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) @@ -483,7 +483,7 @@ (pad-buttons x) ) (can-jump? #f) - (!= (-> self state-time) (-> self clock frame-counter)) + (!= (-> self state-time) (current-time)) ) (forward-up-nopitch->quaternion (-> self control dir-targ) @@ -501,7 +501,7 @@ (pad-buttons circle) ) (can-feet? #t) - (!= (-> self state-time) (-> self clock frame-counter)) + (!= (-> self state-time) (current-time)) ) (go target-attack) ) @@ -513,8 +513,8 @@ (pad-buttons square) ) (can-hands? #t) - (>= (- (-> self clock frame-counter) (-> self control last-running-attack-end-time)) (seconds 0.7)) - (!= (-> self state-time) (-> self clock frame-counter)) + (>= (- (current-time) (-> self control last-running-attack-end-time)) (seconds 0.7)) + (!= (-> self state-time) (current-time)) ) (go target-running-attack) ) @@ -562,7 +562,7 @@ (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (-> self clock seconds-per-frame))) ) ) - (set! (-> self control turn-lockout-end-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self control turn-lockout-end-time) (+ (current-time) (seconds 0.1))) (target-post) (none) ) @@ -574,7 +574,7 @@ (set! arg1 (* arg1 (-> self darkjak-giant-interp))) ) (logclear! (-> self control status) (collide-status touch-ceiling-sticky)) - (set! (-> self control unknown-time-frame19) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame19) (current-time)) (delete-back-vel) (let* ((f0-4 arg5) (f1-2 0.0) @@ -586,7 +586,7 @@ (s3-1 (+ arg0 f0-5)) ) (let ((s2-1 (+ arg1 f0-5))) - (when (< (- (-> self clock frame-counter) (-> self control rider-time)) (seconds 0.05)) + (when (< (- (current-time) (-> self control rider-time)) (seconds 0.05)) (let ((f0-8 (fmax 0.0 @@ -645,7 +645,7 @@ (defbehavior mod-var-jump target ((arg0 symbol) (arg1 symbol) (arg2 symbol) (arg3 vector)) (local-vars (v0-1 vector)) - (let ((f0-1 (* 0.033333335 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (let ((f0-1 (* 0.033333335 (the float (- (current-time) (-> self state-time)))))) (cond ((or (< 1.0 f0-1) (< (-> self control unknown-float36) 0.0) (not arg2)) (set! (-> self control unknown-float36) -1.0) @@ -774,7 +774,7 @@ :event target-standard-event-handler :enter (behavior ((arg0 symbol)) (if (not arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self control bend-target) 1.0) (set! (-> self control mod-surface) *duck-mods*) @@ -863,7 +863,7 @@ (set! (-> self neck base-joint) (the-as uint 8)) (cond ((using-gun? self) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.7))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.7))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 283)) @@ -944,7 +944,7 @@ :event target-standard-event-handler :enter (behavior ((arg0 symbol)) (if (not arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self control bend-target) 1.0) (target-collide-set! 'duck 1.0) @@ -1095,7 +1095,7 @@ (go target-launch (the-as float a0-7) (the-as symbol a1-3) a2-3 (-> self control unknown-dword10)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -1153,7 +1153,7 @@ (* 26624.0 (-> self darkjak-giant-interp) (-> self darkjak-giant-interp)) ) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1383,7 +1383,7 @@ (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-0 (-> self control unknown-dword10)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (if (!= (-> self control mod-surface) *slide-jump-mods*) @@ -1407,7 +1407,7 @@ (if (and (cpad-pressed? (-> self control cpad number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1426,7 +1426,7 @@ ) ) ) - (if (!= (-> self state-time) (-> self clock frame-counter)) + (if (!= (-> self state-time) (current-time)) (mod-var-jump #t #t (cpad-hold? (-> self control cpad number) x) (-> self control transv)) ) (seek! @@ -1523,7 +1523,7 @@ (if (or (= arg2 'duck) (= arg2 'launch)) (go target-duck-high-jump arg0 arg1 (the-as symbol arg2)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (sound-play "jump" :pitch 0.3) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) @@ -1566,7 +1566,7 @@ ) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1600,7 +1600,7 @@ (defstate target-duck-high-jump (target) :event target-standard-event-handler :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *turn-around-mods*) (case arg2 @@ -1652,7 +1652,7 @@ :event target-jump-event-handler :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) (set! (-> self control unknown-symbol03) (the-as float arg2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 80 :pitch -0.4) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -1807,7 +1807,7 @@ ) ) (set! (-> self control unknown-word04) (the-as uint arg0)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -2052,18 +2052,17 @@ (let ((v1-25 (copy *attack-mods* 'global))) (set! (-> v1-25 flags) (surface-flag attack spin gun-turn-fast)) - (set! (-> v1-25 mult-hook) (lambda :behavior target - ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) - ((-> *attack-mods* mult-hook) arg0 arg1 arg2 arg3) - (when (= arg3 1) - (if (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) - (set-quaternion! (-> self control) (-> self control dir-targ)) - ) - ) - (none) - ) + (set! (-> v1-25 mult-hook) + (lambda :behavior target + ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) + ((-> *attack-mods* mult-hook) arg0 arg1 arg2 arg3) + (when (= arg3 1) + (if (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) + (set-quaternion! (-> self control) (-> self control dir-targ)) + ) + ) + (none) + ) ) (set! *attack-end-mods* v1-25) ) @@ -2086,7 +2085,7 @@ (the-as int (-> self control attack-count)) (-> self control penetrate-using) ) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (let ((v0-2 (the-as object (-> self state name)))) (set! (-> self gun combo-window-state) (the-as symbol v0-2)) v0-2 @@ -2119,7 +2118,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (target-start-attack) (target-danger-set! 'spin #f) (set! (-> self control mod-surface) *attack-mods*) @@ -2143,7 +2142,7 @@ (if (zero? (-> self gun track-target-hold-time)) (quaternion-copy! (-> self control dir-targ) (-> self control unknown-quaternion04)) ) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-attack-end-time) (current-time)) (target-exit) (none) ) @@ -2345,8 +2344,8 @@ ) ) (when gp-1 - (set! (-> self control sliding-start-time) (-> self clock frame-counter)) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self control sliding-start-time) (current-time)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (let ((v1-13 (if (type? proc process-focusable) proc @@ -2371,7 +2370,7 @@ ) (cond ((or (= gp-1 'die) (= gp-1 'push)) - (let ((v0-2 (the-as object (-> self clock frame-counter)))) + (let ((v0-2 (the-as object (current-time)))) (set! (-> self control unknown-time-frame18) (the-as time-frame v0-2)) v0-2 ) @@ -2413,13 +2412,13 @@ ) (logclear! (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons square)) (logclear! (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (pad-buttons square)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (combo-tracker-method-12 (-> self control unknown-combo-tracker00) *null-vector* *null-vector* (the-as process #f) - (-> self clock frame-counter) + (current-time) ) (set! (-> self control sliding-start-time) 0) (set! (-> self control unknown-time-frame18) 0) @@ -2449,19 +2448,19 @@ (set! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length)) (set! (-> *run-attack-mods* turnv) 0.0) (set! (-> *run-attack-mods* turnvv) 0.0) - (set! (-> self control last-running-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-running-attack-end-time) (current-time)) (target-exit) (none) ) :trans (behavior () - (when (!= (-> self state-time) (-> self clock frame-counter)) + (when (!= (-> self state-time) (current-time)) (when (and (or (smack-surface? #t) (and (>= (-> self control surface-slope-z) 0.7) (not (logtest? (-> self control status) (collide-status touch-actor))) ) ) (begin - (set! (-> self control unknown-time-frame18) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame18) (current-time)) (set! (-> self control bend-target) 0.0) (let ((v1-11 (new-stack-vector0)) (f0-3 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -2482,14 +2481,14 @@ #t ) (or (zero? (-> self control sliding-start-time)) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) (!= (-> self control unknown-word04) 1) ) ) (if (and (cpad-pressed? (-> self control cpad number) x) (< 4096.0 (-> self control ctrl-xz-vel)) - (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (or (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (not (logtest? (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons square))) ) (not (logtest? (-> self state-flags) (state-flags prevent-jump prevent-attack))) @@ -2509,7 +2508,7 @@ ) ) (if (and (logtest? (water-flags touch-water) (-> self water flags)) - (zero? (mod (- (-> self clock frame-counter) (-> self state-time)) 21)) + (zero? (mod (- (current-time) (-> self state-time)) 21)) ) (spawn-ripples (-> self water) @@ -2598,13 +2597,13 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-falling #f) @@ -2614,14 +2613,12 @@ (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) - (seconds 0.05) - ) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -2719,8 +2716,8 @@ ) ) (let ((t1-6 (if (using-gun? self) - (static-sound-name "gun-punch-w-hit") - (static-sound-name "punch-w-hit") + (the-as sound-name (static-sound-name "gun-punch-w-hit")) + (the-as sound-name (static-sound-name "punch-w-hit")) ) ) ) @@ -2730,7 +2727,7 @@ -1.0 (-> self control impact-ctrl joint) (the-as basic #f) - (the-as sound-name t1-6) + t1-6 ) ) (activate! *camera-smush-control* 819.2 15 75 1.0 0.9 (-> *display* camera-clock)) @@ -2741,7 +2738,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) f28-0))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -2751,7 +2748,7 @@ ) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -2762,7 +2759,7 @@ (when (and (using-gun? self) (or (< (-> self control pad-magnitude) 0.7) (= (-> self gun gun-type) (pickup-type eco-blue))) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.5))) (when (zero? (-> self gun track-target-hold-time)) (case (-> self gun gun-type) (((pickup-type eco-blue)) @@ -2863,7 +2860,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (target-start-attack) (target-danger-set! 'spin-air #f) @@ -2940,7 +2937,7 @@ :exit (behavior () (set! (-> self control dynam gravity-max) (-> self control standard-dynamics gravity-max)) (set! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length)) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-attack-end-time) (current-time)) (target-exit) (none) ) @@ -2949,14 +2946,14 @@ (set-quaternion! (-> self control) (-> self control dir-targ)) (go target-hit-ground #f) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (seek! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length) (* 245760.0 (-> self clock seconds-per-frame)) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (< (vector-dot (-> self control dynam gravity-normal) (-> self control last-transv)) (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) ) @@ -3044,12 +3041,12 @@ (defstate target-attack-uppercut (target) :event target-dangerous-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (target-start-attack) (target-danger-set! 'uppercut #f) (set! (-> self control mod-surface) *uppercut-mods*) (set! (-> self neck flex-blend) 0.0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.15))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.15))) (if (using-gun? self) (target-top-anim-base-mode 37) ) @@ -3189,7 +3186,7 @@ ) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.5))) (go target-falling 'uppercut) ) #t @@ -3203,14 +3200,14 @@ (if (and (= (-> self control ground-pat material) (pat-material ice)) (< 32768.0 (-> self control ctrl-xz-vel))) (set-forward-vel 32768.0) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self neck flex-blend) 0.0) (set! (-> self control mod-surface) *uppercut-jump-mods*) (target-start-attack) (target-danger-set! 'uppercut #f) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (set! (-> self gun track-target-hold-time) 0) 0 @@ -3224,7 +3221,7 @@ (when (and (cpad-pressed? (-> self control cpad number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -3292,7 +3289,7 @@ (-> self align) (the-as align-opts (cond ((>= 30.0 (ja-aframe-num 0)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) (if (nonzero? (-> self gun track-target-hold-time)) 2 18 @@ -3315,7 +3312,7 @@ (-> self align) (the-as align-opts (cond ((>= 35.0 (ja-aframe-num 0)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) (if (nonzero? (-> self gun track-target-hold-time)) 2 18 @@ -3337,7 +3334,7 @@ ) ) ) - (set! (-> self gun surpress-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (current-time)) (go target-falling #f) (none) ) @@ -3389,7 +3386,7 @@ (set-forward-vel arg2) (set-forward-vel (-> self control ctrl-xz-vel)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *flop-mods*) (set! (-> self neck flex-blend) 0.0) @@ -3445,7 +3442,7 @@ (not (logtest? (-> self control status) (collide-status touch-actor))) (>= (-> self control unknown-word04) (the-as uint 2)) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) (set! gp-1 'stuck) ) ) @@ -3608,9 +3605,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) - (the-as time-frame (-> *TARGET-bank* fall-timeout)) - ) + (if (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* fall-timeout))) (!= (-> self tobot?) 'tobot) ) (go target-falling #f) @@ -3662,7 +3657,7 @@ ) (target-land-effect) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control unknown-word04) (the-as uint arg0)) (set-forward-vel 0.0) (set! (-> self control mod-surface) *flop-land-mods*) @@ -3679,9 +3674,7 @@ ) :exit target-exit :trans (behavior () - (when (and (!= (-> self control unknown-spool-anim00) 'stuck) - (!= (-> self state-time) (-> self clock frame-counter)) - ) + (when (and (!= (-> self control unknown-spool-anim00) 'stuck) (!= (-> self state-time) (current-time))) (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) ) @@ -3697,7 +3690,7 @@ (when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2) (>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (< (- (current-time) (-> self state-time)) (seconds 0.25)) ) (do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5) 22 @@ -3749,7 +3742,7 @@ ) :enter (behavior () (target-collide-set! 'duck 1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! (-> self neck base-joint) (the-as uint 8)) (set! (-> self control mod-surface) *roll-mods*) @@ -3770,7 +3763,7 @@ :exit (behavior () (when (not (and (-> self next-state) (= (-> self next-state name) 'target-roll))) (set! (-> self control unknown-word02) 0) - (set! (-> self control last-roll-end-time) (-> self clock frame-counter)) + (set! (-> self control last-roll-end-time) (current-time)) ) (target-exit) (target-collide-set! 'normal 0.0) @@ -3805,18 +3798,16 @@ ) (until (ja-done? 0) (if (cpad-pressed? (-> self control cpad number) x) - (set! gp-0 (the-as int (-> self clock frame-counter))) + (set! gp-0 (the-as int (current-time))) ) - (when (and (not s4-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2))) + (when (and (not s4-0) (>= (- (current-time) (-> self state-time)) (seconds 0.2))) (set! s4-0 #t) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) ) (when (and (or (smack-surface? #f) (>= (-> self control surface-slope-z) 0.7)) - (>= (the-as uint (- (-> self clock frame-counter) (the-as int (-> self control unknown-word04)))) - (the-as uint 3) - ) - (>= (- (-> self clock frame-counter) (-> self state-time)) 1) + (>= (the-as uint (- (current-time) (the-as int (-> self control unknown-word04)))) (the-as uint 3)) + (>= (- (current-time) (-> self state-time)) 1) ) (when (>= 6.0 (ja-aframe-num 0)) (if (using-gun? self) @@ -3830,11 +3821,11 @@ ) ) (if (zero? s5-0) - (set! s5-0 (the-as int (-> self clock frame-counter))) + (set! s5-0 (the-as int (current-time))) ) ) (if (cpad-pressed? (-> self control cpad number) square) - (-> self clock frame-counter) + (current-time) ) (compute-alignment! (-> self align)) (cond @@ -3854,9 +3845,7 @@ (set! f30-0 (* f30-0 (fmin 1.0 (-> self control zx-vel-frac)))) ) ) - (if (and (or (< (- (-> self clock frame-counter) (the-as time-frame gp-0)) - (the-as time-frame (-> *TARGET-bank* roll-jump-pre-window)) - ) + (if (and (or (< (- (current-time) (the-as time-frame gp-0)) (the-as time-frame (-> *TARGET-bank* roll-jump-pre-window))) (cpad-pressed? (-> self control cpad number) x) ) (can-jump? 'target-roll-flip) @@ -3864,14 +3853,12 @@ (go target-roll-flip (-> *TARGET-bank* roll-flip-height) (-> *TARGET-bank* roll-flip-dist)) ) ) - (set! (-> self state-hook-time) (-> self clock frame-counter)) + (set! (-> self state-hook-time) (current-time)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> self clock frame-counter) (-> self state-hook-time)) - (the-as time-frame (-> *TARGET-bank* roll-jump-post-window)) - ) + ((>= (- (current-time) (-> self state-hook-time)) (the-as time-frame (-> *TARGET-bank* roll-jump-post-window))) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else @@ -3891,7 +3878,7 @@ (none) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (go target-duck-stance 'roll) (none) ) @@ -3923,7 +3910,7 @@ (set! (-> self neck flex-blend) 0.0) (set! (-> self neck base-joint) (the-as uint 8)) (set! (-> self gun track-target-hold-time) 0) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (target-collide-set! 'duck 1.0) (none) @@ -3937,7 +3924,7 @@ (if (and (or (smack-surface? #f) (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) - (and (!= (-> self state-time) (-> self clock frame-counter)) (not (using-gun? self))) + (and (!= (-> self state-time) (current-time)) (not (using-gun? self))) ) (target-shoved (-> *TARGET-bank* smack-surface-dist) @@ -4009,9 +3996,9 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> self control status) (collide-status on-surface))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.01)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.01)) (let ((v1-50 (ja-group))) (when (not (and v1-50 (= v1-50 (-> self draw art-group data 27)))) (ja-channel-push! 1 (seconds 0.1)) @@ -4044,13 +4031,13 @@ ) ) (target-land-effect) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) - (set! (-> self state-hook-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) + (set! (-> self state-hook-time) (current-time)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> self clock frame-counter) (-> self state-hook-time)) (seconds 0.1)) + ((>= (- (current-time) (-> self state-hook-time)) (seconds 0.1)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else diff --git a/goal_src/jak2/engine/target/target2.gc b/goal_src/jak2/engine/target/target2.gc index 437c44f669..2cae873709 100644 --- a/goal_src/jak2/engine/target/target2.gc +++ b/goal_src/jak2/engine/target/target2.gc @@ -19,7 +19,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('loading) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else @@ -30,8 +30,8 @@ :exit target-exit :code (behavior () (set! (-> self control mod-surface) *trip-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 0.05)) (ja-channel-push! 1 (seconds 0.1)) (ja-no-eval :group! (-> self draw art-group data 63) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 63)) frames num-frames) -1))) @@ -53,8 +53,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.3)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.3)) (suspend) (ja :num! (seek! (ja-aframe 19.0 0) 0.05)) (suspend) @@ -137,11 +137,11 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () - (set! (-> self ambient-time) (-> self clock frame-counter)) + (set! (-> self ambient-time) (current-time)) (let ((a0-0 (-> self spool-anim))) (when (and a0-0 (= (-> *setting-control* user-current spooling) (process->ppointer self))) (ja-abort-spooled-anim a0-0 (the-as art-joint-anim #f) -1) @@ -205,10 +205,8 @@ (set! (-> a1-0 from) (process->ppointer self)) (set! (-> a1-0 num-params) 0) (set! (-> a1-0 message) 'dist-from-interp-src) - (and (or (< (send-event-function *camera* a1-0) 4915.2) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - ) - (and (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.07)) (zero? (ja-group-size))) + (and (or (< (send-event-function *camera* a1-0) 4915.2) (< (- (current-time) (-> self state-time)) (seconds 0.05))) + (and (< (- (current-time) (-> self state-time)) (seconds 0.07)) (zero? (ja-group-size))) ) ) (suspend) @@ -390,7 +388,7 @@ (none) ) :exit (behavior () - (set! (-> self ambient-time) (-> self clock frame-counter)) + (set! (-> self ambient-time) (current-time)) (logclear! (-> self state-flags) (state-flags sf2)) (target-exit) (none) @@ -400,7 +398,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (suspend) ) (if (or (> gp-0 0) (let ((v1-10 (ja-group))) @@ -555,7 +553,7 @@ ) :enter (behavior ((arg0 handle)) (set! (-> self control anim-handle) arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *pole-mods*) (logior! (-> self focus-status) (focus-status pole)) (target-collide-set! 'pole 0.0) @@ -581,7 +579,7 @@ (pad-buttons x) ) (not (logtest? (-> self state-flags) (state-flags prevent-jump))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.4)) + (>= (- (current-time) (-> self state-time)) (seconds 0.4)) ) (set! (-> self control transv quad) (the-as uint128 0)) (cond @@ -792,11 +790,11 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> *edge-grab-info* pilot-edge-grab?) #f) (set! (-> self control unknown-handle000) (the-as handle #f)) (set! (-> self control mod-surface) *edge-grab-mods*) - (set! (-> self control edge-grab-start-time) (-> self clock frame-counter)) + (set! (-> self control edge-grab-start-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action dont-push-away)) (logior! (-> self focus-status) (focus-status edge-grab)) (set! (-> self control unknown-vector37 quad) (-> self control transv quad)) @@ -831,7 +829,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) ) @@ -1027,7 +1025,7 @@ (set! (-> self control transv quad) (the-as uint128 0)) (set! (-> self control time-of-last-clear-wall-in-jump) 0) (set-forward-vel 16384.0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (send-event *camera* 'damp-up) (go target-jump-forward arg0 arg1) (none) @@ -1069,9 +1067,9 @@ (set! (-> self control transv quad) (the-as uint128 0)) (logclear! (-> self focus-status) (focus-status edge-grab)) (logclear! (-> self control root-prim prim-core action) (collide-action dont-push-away)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (vector-float*! (-> self control transv) (-> self control edge-grab-across-edge-dir) -40960.0) - (if (< (- (-> self clock frame-counter) (-> self control rider-time)) (seconds 0.2)) + (if (< (- (current-time) (-> self control rider-time)) (seconds 0.2)) (send-event self 'push-transv (-> self control rider-last-move) #x7530) ) (go target-falling 'target-edge-grab) @@ -1183,7 +1181,7 @@ (-> self control wall-contact-normal) (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control quat)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1202,7 +1200,7 @@ (go target-ice-stance) ) (if (and (move-legs?) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (let ((f0-1 (vector-dot (-> self control to-target-pt-xz) (-> self control wall-contact-normal)))) (< 0.1 f0-1) ) @@ -1322,8 +1320,8 @@ (until #f (let ((s5-0 (rand-vu-int-range 30 600))) (ja :group! (-> self draw art-group data 85)) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) s5-0) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) s5-0) (gp-0) (suspend) ) @@ -1383,9 +1381,9 @@ (ja :num! (seek! max f30-0)) ) (let ((s5-2 (rand-vu-int-range 60 300)) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) s5-2) + (until (>= (- (current-time) s4-2) s5-2) (gp-0) (suspend) ) @@ -1411,9 +1409,9 @@ (ja :num! (seek! 0.0 f30-0)) ) (let ((s5-3 (rand-vu-int-range 60 300)) - (s4-3 (-> self clock frame-counter)) + (s4-3 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-3) s5-3) + (until (>= (- (current-time) s4-3) s5-3) (gp-0) (suspend) ) @@ -1449,7 +1447,7 @@ ) ) :code (behavior ((arg0 float) (arg1 symbol) (arg2 vector) (arg3 int)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *turn-around-mods*) (ja-channel-push! 1 (seconds 0.15)) (set-forward-vel 0.0) @@ -1467,13 +1465,13 @@ (lambda :behavior target ((arg0 vector) (arg1 time-frame) (arg2 float)) (local-vars (sv-32 time-frame) (sv-40 vector) (sv-44 symbol)) - (set! sv-32 (-> self clock frame-counter)) + (set! sv-32 (current-time)) (let ((v1-2 (new-stack-vector0))) (set! (-> v1-2 quad) (-> arg0 quad)) (set! sv-40 v1-2) ) (set! sv-44 #t) - (until (>= (- (-> self clock frame-counter) sv-32) arg1) + (until (>= (- (current-time) sv-32) arg1) (let ((s4-0 (ppointer->process (-> self parent)))) (cond ((and sv-44 @@ -1489,7 +1487,7 @@ ) (else (if sv-44 - (set! sv-32 (-> self clock frame-counter)) + (set! sv-32 (current-time)) ) (set! sv-44 (the-as symbol #f)) (when (and (-> (the-as target s4-0) next-state) @@ -1622,7 +1620,7 @@ ) (rot->dir-targ! (-> self control)) (logior! (-> self control status) (collide-status on-surface on-ground touch-surface)) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (ja-channel-set! 0) (ja-post) (target-exit) @@ -1689,7 +1687,7 @@ (none) ) :trans (behavior () - (set! (-> self control time-of-last-debug-float) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-float) (current-time)) (cond ((and (cpad-hold? (-> self control cpad number) r2) (not *pause-lock*)) ;; no debug hover when paused. diff --git a/goal_src/jak2/engine/ui/credits.gc b/goal_src/jak2/engine/ui/credits.gc index f1120b8217..e9b7d4033c 100644 --- a/goal_src/jak2/engine/ui/credits.gc +++ b/goal_src/jak2/engine/ui/credits.gc @@ -100,9 +100,9 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) + (let ((gp-1 (current-time))) (while (let ((a0-9 (level-get *level* 'outrocst))) - (and a0-9 (not (draw-end-credits a0-9 (* 0.15 (the float (- (-> self clock frame-counter) gp-1)))))) + (and a0-9 (not (draw-end-credits a0-9 (* 0.15 (the float (- (current-time) gp-1)))))) ) (suspend) ) diff --git a/goal_src/jak2/engine/ui/minimap.gc b/goal_src/jak2/engine/ui/minimap.gc index f2be73e9ca..a54e395008 100644 --- a/goal_src/jak2/engine/ui/minimap.gc +++ b/goal_src/jak2/engine/ui/minimap.gc @@ -841,167 +841,163 @@ ) (defmethod debug-draw minimap ((obj minimap)) - (with-pp - (when *trail-graph* - (dotimes (s5-0 6) - (let ((s4-0 (-> obj trail s5-0))) - (when (and (-> s4-0 used-by) - (>= (-> s4-0 node-count) 0) - (< (- (-> pp clock frame-counter) (the-as int (-> s4-0 last-updated))) (seconds 5)) - ) - (let* ((a3-0 (target-pos 0)) - (v1-12 s5-0) - (t1-0 (cond - ((zero? v1-12) - *color-green* - ) - ((= v1-12 1) - *color-blue* - ) - ((= v1-12 2) - *color-white* - ) - ((= v1-12 3) - *color-red* - ) - (else - *color-magenta* - ) + (when *trail-graph* + (dotimes (s5-0 6) + (let ((s4-0 (-> obj trail s5-0))) + (when (and (-> s4-0 used-by) + (>= (-> s4-0 node-count) 0) + (< (- (current-time) (the-as int (-> s4-0 last-updated))) (seconds 5)) + ) + (let* ((a3-0 (target-pos 0)) + (v1-12 s5-0) + (t1-0 (cond + ((zero? v1-12) + *color-green* + ) + ((= v1-12 1) + *color-blue* + ) + ((= v1-12 2) + *color-white* + ) + ((= v1-12 3) + *color-red* + ) + (else + *color-magenta* ) ) - ) - (debug-draw-path - *trail-graph* - (-> s4-0 node-count) - (-> s4-0 node-id) - a3-0 - (-> s4-0 cached-info orig-goal-pos) - t1-0 - (* 1024.0 (the float s5-0)) - ) + ) + ) + (debug-draw-path + *trail-graph* + (-> s4-0 node-count) + (-> s4-0 node-id) + a3-0 + (-> s4-0 cached-info orig-goal-pos) + t1-0 + (* 1024.0 (the float s5-0)) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] (defmethod update-trails minimap ((obj minimap)) "Main function to do trail search per-frame" - (with-pp - (let ((s5-0 *trail-graph*)) - (when s5-0 - (.mtc0 Count 0) - (let ((v1-1 0)) - (while (< (the-as uint v1-1) (the-as uint #x605a)) - (let ((v1-2 (-> s5-0 mode))) - (cond - ((= v1-2 1) - (run-until-done-or-timeout s5-0 #x605a) - ) - ((zero? v1-2) - (let ((v1-5 -1)) - (let ((a0-5 0)) - (countdown (a1-1 6) - (let* ((a2-3 (-> obj trail a1-1)) - (a3-0 (-> a2-3 used-by)) - ) - (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) - (set! v1-5 a1-1) - (set! a0-5 (the-as int (-> a2-3 last-updated))) - ) - ) - ) - (let ((a1-5 (-> pp clock frame-counter))) - (if (or (< v1-5 0) (= a0-5 a1-5)) - (goto cfg-68) - ) - ) - ) - (let ((s4-0 (-> obj trail v1-5)) - (s3-0 (the-as object #f)) - ) - (let* ((v1-9 (-> s4-0 used-by)) - (s2-0 (-> v1-9 position)) + (let ((s5-0 *trail-graph*)) + (when s5-0 + (.mtc0 Count 0) + (let ((v1-1 0)) + (while (< (the-as uint v1-1) (the-as uint #x605a)) + (let ((v1-2 (-> s5-0 mode))) + (cond + ((= v1-2 1) + (run-until-done-or-timeout s5-0 #x605a) + ) + ((zero? v1-2) + (let ((v1-5 -1)) + (let ((a0-5 0)) + (countdown (a1-1 6) + (let* ((a2-3 (-> obj trail a1-1)) + (a3-0 (-> a2-3 used-by)) ) - (set! s3-0 (cond - ((= s2-0 #t) - (let* ((s2-1 (handle->process (-> v1-9 handle))) - (v1-13 (if (type? s2-1 process-drawable) - s2-1 - ) - ) - ) - (if v1-13 - (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) - ) - ) - s3-0 + (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) + (set! v1-5 a1-1) + (set! a0-5 (the-as int (-> a2-3 last-updated))) + ) + ) + ) + (let ((a1-5 (current-time))) + (if (or (< v1-5 0) (= a0-5 a1-5)) + (goto cfg-68) + ) + ) + ) + (let ((s4-0 (-> obj trail v1-5)) + (s3-0 (the-as object #f)) + ) + (let* ((v1-9 (-> s4-0 used-by)) + (s2-0 (-> v1-9 position)) + ) + (set! s3-0 (cond + ((= s2-0 #t) + (let* ((s2-1 (handle->process (-> v1-9 handle))) + (v1-13 (if (type? s2-1 process-drawable) + s2-1 + ) + ) + ) + (if v1-13 + (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) + ) ) - ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) - (let* ((v1-19 s2-0) - (s3-1 (if v1-19 - (-> (the-as entity-actor v1-19) extra process) - ) - ) - (v1-21 (if (type? s3-1 process-drawable) - s3-1 - ) - ) - ) - (if v1-21 - (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) - (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) - ) - ) - s3-0 + s3-0 + ) + ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) + (let* ((v1-19 s2-0) + (s3-1 (if v1-19 + (-> (the-as entity-actor v1-19) extra process) + ) + ) + (v1-21 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (if v1-21 + (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) + (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) + ) ) - (else - s2-0 - ) + s3-0 + ) + (else + s2-0 ) - ) - ) - (when s3-0 - (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) - (set! (-> s4-0 search-id) (-> s5-0 search-id)) - ) + ) + ) + ) + (when s3-0 + (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) + (set! (-> s4-0 search-id) (-> s5-0 search-id)) ) ) ) - ((or (= v1-2 3) (= v1-2 2)) - (countdown (v1-33 6) - (let ((s4-1 (-> obj trail v1-33))) - (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) - (set! (-> s4-1 node-count) - (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) - ) - (set! (-> s4-1 last-updated) (the-as uint (-> pp clock frame-counter))) - (goto cfg-64) - ) + ) + ((or (= v1-2 3) (= v1-2 2)) + (countdown (v1-33 6) + (let ((s4-1 (-> obj trail v1-33))) + (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) + (set! (-> s4-1 node-count) + (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) + ) + (set! (-> s4-1 last-updated) (the-as uint (current-time))) + (goto cfg-64) ) ) - (label cfg-64) - (reset-search-state s5-0) ) - ) + (label cfg-64) + (reset-search-state s5-0) + ) ) + ) ;; added in PC port: they timed stuff, we just allow it to run a fixed number of iterations. (+! v1-1 100) (.mfc0 v1-1 Count) - ) ) - (label cfg-68) - 0 ) + (label cfg-68) + 0 ) - 0 - (none) ) + 0 + (none) ) (defmethod get-trail-for-connection minimap ((obj minimap) (arg0 connection-minimap) (arg1 symbol)) @@ -1159,7 +1155,7 @@ (let ((f30-0 1.0)) (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) - (if (or (not v1-26) (>= (- (-> pp clock frame-counter) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) (set! f30-0 0.0001) ) ) @@ -2332,7 +2328,7 @@ (set! s2-0 #t) (set! (-> arg1 edge-ry) -131072.0) ) - ((>= (- (-> pp clock frame-counter) (the-as int (-> a2-2 last-updated))) (seconds 5)) + ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) (set! s2-0 #t) (set! (-> arg1 edge-ry) -131072.0) ) diff --git a/goal_src/jak2/engine/ui/progress/progress-draw.gc b/goal_src/jak2/engine/ui/progress/progress-draw.gc index a0aeb818ff..10aa51c6f9 100644 --- a/goal_src/jak2/engine/ui/progress/progress-draw.gc +++ b/goal_src/jak2/engine/ui/progress/progress-draw.gc @@ -116,7 +116,7 @@ (let ((a0-5 arg0)) (set! (-> a0-5 flags) (font-flags kerning middle large)) ) - (if (< (mod (-> self clock frame-counter) 300) 210) + (if (< (mod (current-time) 300) 210) (print-game-text (lookup-text! *common-text* (text-id progress-memcard-loading-data) #f) arg0 @@ -2413,60 +2413,58 @@ ) (defmethod draw-option menu-loading-option ((obj menu-loading-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol)) - (with-pp - (let ((f30-0 (* 2.0 (- 0.5 (-> arg0 menu-transition))))) - (set! (-> arg1 alpha) (- 1.0 (-> arg0 menu-transition))) - (let ((v1-3 arg1)) - (set! (-> v1-3 scale) 0.55) - ) - (let ((s4-0 arg1)) - (set! (-> s4-0 color) (progress-selected 0)) - ) - (let ((a0-3 arg1)) - (set! (-> a0-3 flags) (font-flags kerning middle left large)) - ) - (set! (-> arg1 origin x) 120.0) - (set! (-> arg1 origin y) 110.0) - (let ((v1-8 arg1)) - (set! (-> v1-8 width) (the float 270)) - ) - (let ((v1-9 arg1)) - (set! (-> v1-9 height) (the float 35)) - ) - (if (< f30-0 0.0) - 0.0 - ) + (let ((f30-0 (* 2.0 (- 0.5 (-> arg0 menu-transition))))) + (set! (-> arg1 alpha) (- 1.0 (-> arg0 menu-transition))) + (let ((v1-3 arg1)) + (set! (-> v1-3 scale) 0.55) ) - (when (or (< (mod (-> pp clock frame-counter) 300) 150) (!= (-> arg0 menu-transition) 0.0)) - (let ((a1-1 416)) - (case (-> arg0 current) - (('saving) - (set! a1-1 415) - ) - (('formatting) - (set! a1-1 417) - ) - (('creating) - (set! a1-1 418) - ) - ) - (print-game-text (lookup-text! *common-text* (the-as text-id a1-1) #f) arg1 #f 44 (bucket-id progress)) + (let ((s4-0 arg1)) + (set! (-> s4-0 color) (progress-selected 0)) + ) + (let ((a0-3 arg1)) + (set! (-> a0-3 flags) (font-flags kerning middle left large)) + ) + (set! (-> arg1 origin x) 120.0) + (set! (-> arg1 origin y) 110.0) + (let ((v1-8 arg1)) + (set! (-> v1-8 width) (the float 270)) + ) + (let ((v1-9 arg1)) + (set! (-> v1-9 height) (the float 35)) + ) + (if (< f30-0 0.0) + 0.0 ) - ) - (set! (-> arg1 origin y) (+ 45.0 (-> arg1 origin y))) - (let ((v1-25 arg1)) - (set! (-> v1-25 height) (the float 160)) - ) - (let ((a0-16 arg1)) - (set! (-> a0-16 color) (font-color #7efbfb)) - ) - (let ((s5-2 print-game-text)) - (format (clear *temp-string*) (lookup-text! *common-text* (text-id progress-memcard-dont-remove) #f) 1) - (s5-2 *temp-string* arg1 #f 44 (bucket-id progress)) - ) - 0 - (none) ) + (when (or (< (mod (current-time) 300) 150) (!= (-> arg0 menu-transition) 0.0)) + (let ((a1-1 416)) + (case (-> arg0 current) + (('saving) + (set! a1-1 415) + ) + (('formatting) + (set! a1-1 417) + ) + (('creating) + (set! a1-1 418) + ) + ) + (print-game-text (lookup-text! *common-text* (the-as text-id a1-1) #f) arg1 #f 44 (bucket-id progress)) + ) + ) + (set! (-> arg1 origin y) (+ 45.0 (-> arg1 origin y))) + (let ((v1-25 arg1)) + (set! (-> v1-25 height) (the float 160)) + ) + (let ((a0-16 arg1)) + (set! (-> a0-16 color) (font-color #7efbfb)) + ) + (let ((s5-2 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (text-id progress-memcard-dont-remove) #f) 1) + (s5-2 *temp-string* arg1 #f 44 (bucket-id progress)) + ) + 0 + (none) ) (defmethod draw-option menu-insufficient-space-option ((obj menu-insufficient-space-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol)) diff --git a/goal_src/jak2/engine/ui/progress/progress.gc b/goal_src/jak2/engine/ui/progress/progress.gc index 3e211c26c8..8c01c0c55f 100644 --- a/goal_src/jak2/engine/ui/progress/progress.gc +++ b/goal_src/jak2/engine/ui/progress/progress.gc @@ -1238,13 +1238,13 @@ (let ((gp-4 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *x-vector* - (* 182.04445 (* (-> self swing) (sin (the float (* 40 (-> self clock frame-counter)))))) + (* 182.04445 (* (-> self swing) (sin (the float (* 40 (current-time)))))) ) ) (s5-4 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *y-vector* - (* 182.04445 (* (-> self swing) (sin (the float (* 0 (-> self clock frame-counter)))))) + (* 182.04445 (* (-> self swing) (sin (the float (* 0 (current-time)))))) ) ) ) @@ -1881,8 +1881,8 @@ (set! f30-0 (-> (the-as (pointer float) gp-0))) ) ) - (when (< (seconds 0.03) (- (-> self clock frame-counter) (-> *progress-state* last-slider-sound))) - (set! (-> *progress-state* last-slider-sound) (-> self clock frame-counter)) + (when (< (seconds 0.03) (- (current-time) (-> *progress-state* last-slider-sound))) + (set! (-> *progress-state* last-slider-sound) (current-time)) (sound-play-by-name (static-sound-name "menu-slide") (new-sound-id) @@ -2401,7 +2401,7 @@ ) (else (sound-play "generic-beep") - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! (-> arg0 current) 'none) (set-next-state arg0 s3-0 0) ) @@ -2496,7 +2496,7 @@ (cond ((-> *progress-state* yes-no-choice) (set! (-> *setting-control* user-default video-mode) (-> *progress-state* video-mode-choice)) - (set! (-> *progress-state* video-mode-timeout) (-> self clock frame-counter)) + (set! (-> *progress-state* video-mode-timeout) (current-time)) (set-next-state arg0 'video-mode-ok 0) ) (else @@ -2549,7 +2549,7 @@ ) ) (when (and (nonzero? (-> *progress-state* video-mode-timeout)) - (< (seconds 10) (- (-> self clock frame-counter) (-> *progress-state* video-mode-timeout))) + (< (seconds 10) (- (current-time) (-> *progress-state* video-mode-timeout))) ) (set! (-> *progress-state* video-mode-timeout) 0) (set! (-> *progress-state* video-mode-choice) 'pal) @@ -2584,7 +2584,7 @@ (sound-play "generic-beep") (set-progressive-scan #t) (set! (-> *progress-state* graphic-options-progressive-scan) #t) - (set! (-> *progress-state* progressive-mode-timeout) (-> self clock frame-counter)) + (set! (-> *progress-state* progressive-mode-timeout) (current-time)) (set-next-state arg0 'progressive-mode-ok 0) ) (else @@ -2641,7 +2641,7 @@ ) ) (when (and (nonzero? (-> *progress-state* progressive-mode-timeout)) - (< (seconds 10) (- (-> self clock frame-counter) (-> *progress-state* progressive-mode-timeout))) + (< (seconds 10) (- (current-time) (-> *progress-state* progressive-mode-timeout))) ) (set! (-> *progress-state* progressive-mode-timeout) 0) (set! (-> *setting-control* user-default use-progressive-scan) #f) @@ -2846,10 +2846,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-index) 0) (set! s4-0 #t) (+! (-> obj task-index) -1) @@ -2858,10 +2858,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (let ((s3-0 -1)) (dotimes (s2-0 (-> *game-info* play-list length)) (let* ((v1-41 (-> *game-info* play-list s2-0)) @@ -2957,10 +2957,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-index) 0) (set! gp-0 #t) (+! (-> obj task-index) -1) @@ -2969,10 +2969,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj task-index) (+ (length s4-0) -1)) (set! gp-0 #t) (+! (-> obj task-index) 1) @@ -3026,10 +3026,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-line-index) 0) (set! s5-0 #t) (+! (-> obj task-line-index) -1) @@ -3038,10 +3038,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj task-line-index) (+ (-> *progress-state* total-num-tasks) -1)) (+! (-> obj task-line-index) 1) (set! (-> arg0 sliding-height) 1.0) @@ -3088,11 +3088,11 @@ (cond ((or (logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) (when (< 1 (get-num-highscores)) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! s5-0 #t) (set! (-> obj prev-page-index) (-> obj page-index)) (set! (-> obj page-index) (get-next-highscore (-> obj page-index))) @@ -3103,11 +3103,11 @@ ) ((or (logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) (when (< 1 (get-num-highscores)) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! (-> obj prev-page-index) (-> obj page-index)) (set! (-> obj page-index) (get-prev-highscore (-> obj page-index))) (set! s5-0 #t) @@ -3184,10 +3184,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj item-index) s2-0) (set! (-> obj prev-item-index) (-> obj item-index)) (set! s5-2 #t) @@ -3198,10 +3198,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< s3-0 (-> obj item-index)) (set! (-> obj prev-item-index) (-> obj item-index)) (+! (-> obj item-index) -1) @@ -3269,10 +3269,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (cond ((< (-> *progress-state* game-options-item-selected) 3) (+! (-> *progress-state* game-options-item-selected) 1) @@ -3285,10 +3285,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (if (> (-> *progress-state* game-options-item-selected) 0) (+! (-> *progress-state* game-options-item-selected) -1) (set! (-> *progress-state* game-options-item-selected) 3) @@ -3297,7 +3297,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* game-options-item-picked) (the-as basic #t)) (sound-play "generic-beep") ) @@ -3444,57 +3444,55 @@ ) (defun update-center-screen () - (with-pp - (let ((v1-0 #f)) - (cond - (#t - (cond - ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dx) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) -2) -96 96) - ) - (set! v1-0 #t) - ) - ((logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dx) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) 2) -96 96) - ) - (set! v1-0 #t) - ) - ((logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dy) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) -2) -48 48) - ) - (set! v1-0 #f) - ) - ((logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dy) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) 2) -48 48) - ) - (set! v1-0 #f) - ) - ((cpad-pressed? 0 triangle) - (set! (-> *setting-control* user-default display-dx) (-> *progress-state* center-x-backup)) - (set! (-> *setting-control* user-default display-dy) (-> *progress-state* center-y-backup)) - ) - ) - ) - (else - (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) - (set! (-> *progress-state* center-x-backup) (-> *setting-control* user-default display-dx)) - (set! (-> *progress-state* center-y-backup) (-> *setting-control* user-default display-dy)) - ) + (let ((v1-0 #f)) + (cond + (#t + (cond + ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dx) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) -2) -96 96) + ) + (set! v1-0 #t) + ) + ((logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dx) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) 2) -96 96) + ) + (set! v1-0 #t) + ) + ((logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dy) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) -2) -48 48) + ) + (set! v1-0 #f) + ) + ((logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dy) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) 2) -48 48) + ) + (set! v1-0 #f) + ) + ((cpad-pressed? 0 triangle) + (set! (-> *setting-control* user-default display-dx) (-> *progress-state* center-x-backup)) + (set! (-> *setting-control* user-default display-dy) (-> *progress-state* center-y-backup)) + ) ) ) - (when v1-0 - (when (< (seconds 0.3) (- (-> pp clock frame-counter) (-> *progress-state* last-slider-sound))) - (set! (-> *progress-state* last-slider-sound) (-> pp clock frame-counter)) - (sound-play "roll-over") + (else + (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (set! (-> *progress-state* center-x-backup) (-> *setting-control* user-default display-dx)) + (set! (-> *progress-state* center-y-backup) (-> *setting-control* user-default display-dy)) ) ) ) - 0 + (when v1-0 + (when (< (seconds 0.3) (- (current-time) (-> *progress-state* last-slider-sound))) + (set! (-> *progress-state* last-slider-sound) (current-time)) + (sound-play "roll-over") + ) + ) ) + 0 ) (defmethod respond-progress menu-graphic-option ((obj menu-graphic-option) (arg0 progress) (arg1 object)) @@ -3507,12 +3505,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* graphic-options-last-move))) - (seconds 0.5) - ) + (>= (- (current-time) (the-as int (-> *progress-state* graphic-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> arg0 selected-option) #f) (cond ((< (-> *progress-state* graphic-options-item-selected) (if (= (scf-get-territory) 1) @@ -3531,12 +3527,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* graphic-options-last-move))) - (seconds 0.5) - ) + (>= (- (current-time) (the-as int (-> *progress-state* graphic-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> arg0 selected-option) #f) (cond ((> (-> *progress-state* graphic-options-item-selected) 0) @@ -3556,7 +3550,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* graphic-options-item-picked) (the-as basic #t)) (set! (-> arg0 selected-option) #f) (sound-play "generic-beep") @@ -3744,10 +3738,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (cond ((< (-> *progress-state* qr-options-item-selected) 1) (+! (-> *progress-state* qr-options-item-selected) 1) @@ -3765,10 +3759,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (cond ((> (-> *progress-state* qr-options-item-selected) 0) (+! (-> *progress-state* qr-options-item-selected) -1) @@ -3785,7 +3779,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* qr-options-item-picked) (the-as basic #t)) (set! (-> arg0 selected-option) #t) (sound-play "generic-beep") diff --git a/goal_src/jak2/engine/util/smush-control-h.gc b/goal_src/jak2/engine/util/smush-control-h.gc index 85d0b67e3f..dd069caa1a 100644 --- a/goal_src/jak2/engine/util/smush-control-h.gc +++ b/goal_src/jak2/engine/util/smush-control-h.gc @@ -46,52 +46,48 @@ ) (defmethod update! smush-control ((obj smush-control)) - (with-pp - (cond - ((!= (-> obj amp) 0.0) - (let* ((f30-0 (the float (- (-> pp clock frame-counter) (-> obj start-time)))) - (f0-2 (-> obj period)) - (f28-0 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) - ) - (when (>= (- f30-0 (-> obj ticks)) (-> obj period)) - (set! (-> obj amp) (* (-> obj amp) (-> obj damp-amp))) - (set! (-> obj period) (* (-> obj period) (-> obj damp-period))) - (set! (-> obj ticks) f30-0) - (if (< (-> obj damp-period) 0.0) - (set-zero! obj) - ) - ) - (if (>= f30-0 (-> obj duration)) + (cond + ((!= (-> obj amp) 0.0) + (let* ((f30-0 (the float (- (current-time) (-> obj start-time)))) + (f0-2 (-> obj period)) + (f28-0 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) + ) + (when (>= (- f30-0 (-> obj ticks)) (-> obj period)) + (set! (-> obj amp) (* (-> obj amp) (-> obj damp-amp))) + (set! (-> obj period) (* (-> obj period) (-> obj damp-period))) + (set! (-> obj ticks) f30-0) + (if (< (-> obj damp-period) 0.0) (set-zero! obj) ) - (* (sin (/ (* 65536.0 f28-0) (-> obj period))) - (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) - ) ) + (if (>= f30-0 (-> obj duration)) + (set-zero! obj) + ) + (* (sin (/ (* 65536.0 f28-0) (-> obj period))) + (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + ) ) - (else - 0.0 - ) + ) + (else + 0.0 ) ) ) (defmethod get-no-update smush-control ((obj smush-control)) - (with-pp - (cond - ((!= (-> obj amp) 0.0) - (let* ((f30-0 (the float (- (-> pp clock frame-counter) (-> obj start-time)))) - (f0-2 (-> obj period)) - (f0-4 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) - ) - (* (sin (/ (* 65536.0 f0-4) (-> obj period))) - (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + (cond + ((!= (-> obj amp) 0.0) + (let* ((f30-0 (the float (- (current-time) (-> obj start-time)))) + (f0-2 (-> obj period)) + (f0-4 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) ) - ) + (* (sin (/ (* 65536.0 f0-4) (-> obj period))) + (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + ) ) - (else - 0.0 - ) + ) + (else + 0.0 ) ) ) diff --git a/goal_src/jak2/engine/util/sync-info.gc b/goal_src/jak2/engine/util/sync-info.gc index fc192b67bb..0cb6c60d5a 100644 --- a/goal_src/jak2/engine/util/sync-info.gc +++ b/goal_src/jak2/engine/util/sync-info.gc @@ -7,6 +7,7 @@ ;; DECOMP BEGINS +;; WARN: Return type mismatch object vs none. (defmethod initialize! sync-info ((obj sync-info) (arg0 sync-info-params)) "Set up a sync-info from params." (format 0 "ERROR: Invalid call to sync-info::initialize!~%") @@ -15,13 +16,11 @@ (defmethod get-current-phase-no-mod sync-info ((obj sync-info)) "Get the current value, with no fancy modifications." - (with-pp - (let* ((v1-0 (-> obj period)) - (f0-1 (the float v1-0)) - (f1-2 (+ (the float (mod (the-as uint (-> pp clock frame-counter)) v1-0)) (-> obj offset))) - ) - (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) - ) + (let* ((v1-0 (-> obj period)) + (f0-1 (the float v1-0)) + (f1-2 (+ (the float (mod (the-as uint (current-time)) v1-0)) (-> obj offset))) + ) + (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) ) ) @@ -32,19 +31,17 @@ (defmethod sync-now! sync-info ((obj sync-info) (arg0 float)) "Adjust our offset so our current phase is the given phase." - (with-pp - (let* ((a2-0 (-> obj period)) - (f0-1 (the float a2-0)) - (v1-0 (- arg0 (* (the float (the int (/ arg0 f0-1))) f0-1))) - (f1-4 (+ (the float (mod (the-as uint (-> pp clock frame-counter)) a2-0)) (-> obj offset))) - (f1-6 (/ (- f1-4 (* (the float (the int (/ f1-4 f0-1))) f0-1)) f0-1)) - (f1-10 (+ (* (- v1-0 f1-6) f0-1) f0-1 (-> obj offset))) - ) - (set! (-> obj offset) (- f1-10 (* (the float (the int (/ f1-10 f0-1))) f0-1))) - ) - 0 - (none) + (let* ((a2-0 (-> obj period)) + (f0-1 (the float a2-0)) + (v1-0 (- arg0 (* (the float (the int (/ arg0 f0-1))) f0-1))) + (f1-4 (+ (the float (mod (the-as uint (current-time)) a2-0)) (-> obj offset))) + (f1-6 (/ (- f1-4 (* (the float (the int (/ f1-4 f0-1))) f0-1)) f0-1)) + (f1-10 (+ (* (- v1-0 f1-6) f0-1) f0-1 (-> obj offset))) + ) + (set! (-> obj offset) (- f1-10 (* (the float (the int (/ f1-10 f0-1))) f0-1))) ) + 0 + (none) ) (defmethod get-norm! sync-info ((obj sync-info) (arg0 int)) @@ -60,19 +57,18 @@ (defmethod get-timeframe-offset! sync-info ((obj sync-info) (arg0 time-frame)) "Get the difference between the given time-frame and when this sync-info is at 0." - (with-pp - (if (zero? arg0) - (set! arg0 (-> pp clock frame-counter)) - ) - (let* ((v1-4 (-> obj period)) - (f0-1 (the float v1-4)) - (f1-2 (+ (the float (mod arg0 (the-as time-frame v1-4))) (-> obj offset))) - ) - (+ arg0 (the int (- f0-1 (* (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) f0-1)))) + (if (zero? arg0) + (set! arg0 (current-time)) ) + (let* ((v1-4 (-> obj period)) + (f0-1 (the float v1-4)) + (f1-2 (+ (the float (mod arg0 (the-as time-frame v1-4))) (-> obj offset))) + ) + (+ arg0 (the int (- f0-1 (* (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) f0-1)))) ) ) +;; WARN: Return type mismatch float vs none. (defmethod initialize! sync-linear ((obj sync-linear) (arg0 sync-info-params)) "Set up a sync-info from params." (local-vars (sv-16 res-tag)) @@ -110,29 +106,27 @@ (defmethod get-norm! sync-linear ((obj sync-linear) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f0-1 (the float v1-4)) - ) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f1-0 2.0) - (f2-2 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f0-3 (* f1-0 (/ (- f2-2 (* (the float (the int (/ f2-2 f0-1))) f0-1)) f0-1))) - ) - (if (>= f0-3 1.0) - (set! f0-3 (- 2.0 f0-3)) - ) - f0-3 - ) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f0-1 (the float v1-4)) ) - (else - (let ((f1-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset)))) - (/ (- f1-5 (* (the float (the int (/ f1-5 f0-1))) f0-1)) f0-1) - ) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f1-0 2.0) + (f2-2 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f0-3 (* f1-0 (/ (- f2-2 (* (the float (the int (/ f2-2 f0-1))) f0-1)) f0-1))) + ) + (if (>= f0-3 1.0) + (set! f0-3 (- 2.0 f0-3)) + ) + f0-3 + ) + ) + (else + (let ((f1-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset)))) + (/ (- f1-5 (* (the float (the int (/ f1-5 f0-1))) f0-1)) f0-1) ) ) ) @@ -144,6 +138,7 @@ (* (get-norm! obj arg1) arg0) ) +;; WARN: Return type mismatch float vs none. (defmethod initialize! sync-eased ((obj sync-eased) (arg0 sync-info-params)) "Set up a sync-info from params." (local-vars (sv-16 res-tag)) @@ -245,67 +240,65 @@ (defmethod get-norm! sync-eased ((obj sync-eased) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f3-0 (the float v1-4)) - (f0-1 (-> obj pause-in)) - (f2-0 (-> obj pause-out)) - (f1-1 (* 0.5 (- f3-0 (+ f0-1 f2-0)))) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f3-0 (the float v1-4)) + (f0-1 (-> obj pause-in)) + (f2-0 (-> obj pause-out)) + (f1-1 (* 0.5 (- f3-0 (+ f0-1 f2-0)))) + ) + (the int (+ f0-1 f2-0 f3-0)) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f4-7 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-2 (- f4-7 (* (the float (the int (/ f4-7 f3-0))) f3-0))) + (v1-6 #f) + ) + (when (>= f3-2 (+ f1-1 f0-1)) + (set! v1-6 #t) + (set! f3-2 (- f3-2 (+ f1-1 f0-1))) + f0-1 + (set! f0-1 f2-0) ) - (the int (+ f0-1 f2-0 f3-0)) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f4-7 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-2 (- f4-7 (* (the float (the int (/ f4-7 f3-0))) f3-0))) - (v1-6 #f) - ) - (when (>= f3-2 (+ f1-1 f0-1)) - (set! v1-6 #t) - (set! f3-2 (- f3-2 (+ f1-1 f0-1))) - f0-1 - (set! f0-1 f2-0) - ) - (cond - ((< f3-2 f0-1) - (set! f3-2 f0-1) - ) - ((< (+ f0-1 f1-1) f3-2) - (set! f3-2 (+ f0-1 f1-1)) - ) - ) - (let* ((f0-3 (/ (- f3-2 f0-1) f1-1)) - (f1-2 (-> obj tlo)) - (f0-8 (/ (cond - ((< f0-3 f1-2) - (* f0-3 f0-3) - ) - ((< f0-3 (-> obj thi)) - (+ (* 2.0 f1-2 (- f0-3 f1-2)) (-> obj ylo)) - ) - (else - (let ((f1-5 (- 1.0 f0-3))) - (- (-> obj yend) (* f1-5 f1-5 (-> obj m2))) - ) + (cond + ((< f3-2 f0-1) + (set! f3-2 f0-1) + ) + ((< (+ f0-1 f1-1) f3-2) + (set! f3-2 (+ f0-1 f1-1)) + ) + ) + (let* ((f0-3 (/ (- f3-2 f0-1) f1-1)) + (f1-2 (-> obj tlo)) + (f0-8 (/ (cond + ((< f0-3 f1-2) + (* f0-3 f0-3) + ) + ((< f0-3 (-> obj thi)) + (+ (* 2.0 f1-2 (- f0-3 f1-2)) (-> obj ylo)) + ) + (else + (let ((f1-5 (- 1.0 f0-3))) + (- (-> obj yend) (* f1-5 f1-5 (-> obj m2))) ) ) - (-> obj yend) ) - ) - ) - (if v1-6 - (set! f0-8 (- 1.0 f0-8)) - ) - f0-8 - ) + (-> obj yend) + ) + ) + ) + (if v1-6 + (set! f0-8 (- 1.0 f0-8)) + ) + f0-8 ) ) - (else - (format 0 "ERROR: Attempting to use sync-eased in unsupported non-pong mode.~%") - 0.0 - ) + ) + (else + (format 0 "ERROR: Attempting to use sync-eased in unsupported non-pong mode.~%") + 0.0 ) ) ) @@ -316,6 +309,7 @@ (* (get-norm! obj arg1) arg0) ) +;; WARN: Return type mismatch float vs none. (defmethod initialize! sync-paused ((obj sync-paused) (arg0 sync-info-params)) "Set up a sync-info from params." (local-vars (sv-16 res-tag)) @@ -379,46 +373,44 @@ (defmethod get-norm! sync-paused ((obj sync-paused) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f2-0 (the float v1-4)) - (f0-1 (-> obj pause-in)) - (f1-0 (-> obj pause-out)) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f2-0 (the float v1-4)) + (f0-1 (-> obj pause-in)) + (f1-0 (-> obj pause-out)) + ) + (the int (+ f0-1 f1-0 f2-0)) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f3-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-6 (- f3-5 (* (the float (the int (/ f3-5 f2-0))) f2-0))) + (f2-2 (* 0.5 (- f2-0 (+ f0-1 f1-0)))) + (v1-7 #f) + ) + (when (>= f3-6 (+ f2-2 f0-1)) + (set! v1-7 #t) + (set! f3-6 (- f3-6 (+ f2-2 f0-1))) + (set! f0-1 f1-0) ) - (the int (+ f0-1 f1-0 f2-0)) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f3-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-6 (- f3-5 (* (the float (the int (/ f3-5 f2-0))) f2-0))) - (f2-2 (* 0.5 (- f2-0 (+ f0-1 f1-0)))) - (v1-7 #f) + (let* ((f1-1 (/ (- f3-6 f0-1) f2-2)) + (f0-5 (fmax 0.0 (fmin 1.0 f1-1))) ) - (when (>= f3-6 (+ f2-2 f0-1)) - (set! v1-7 #t) - (set! f3-6 (- f3-6 (+ f2-2 f0-1))) - (set! f0-1 f1-0) - ) - (let* ((f1-1 (/ (- f3-6 f0-1) f2-2)) - (f0-5 (fmax 0.0 (fmin 1.0 f1-1))) - ) - (if v1-7 - (set! f0-5 (- 1.0 f0-5)) - ) - f0-5 - ) + (if v1-7 + (set! f0-5 (- 1.0 f0-5)) + ) + f0-5 ) ) - (else - (let* ((f3-9 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-10 (- f3-9 (* (the float (the int (/ f3-9 f2-0))) f2-0))) - (f1-5 (- f2-0 (+ f0-1 f1-0))) - (f1-6 (/ (- f3-10 f0-1) f1-5)) - ) - (fmax 0.0 (fmin 1.0 f1-6)) - ) + ) + (else + (let* ((f3-9 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-10 (- f3-9 (* (the float (the int (/ f3-9 f2-0))) f2-0))) + (f1-5 (- f2-0 (+ f0-1 f1-0))) + (f1-6 (/ (- f3-10 f0-1) f1-5)) + ) + (fmax 0.0 (fmin 1.0 f1-6)) ) ) ) @@ -441,31 +433,26 @@ ) (defmethod reset! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (set! (-> obj start-time) (-> pp clock frame-counter)) - (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) - (set! (-> obj value) (rand-vu-float-range (- (-> obj max-val)) (-> obj max-val))) - ) + (set! (-> obj start-time) (current-time)) + (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) + (set! (-> obj value) (rand-vu-float-range (- (-> obj max-val)) (-> obj max-val))) ) (defmethod update! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (reset! obj) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (reset! obj) + ) + (-> obj value) ) +;; WARN: Return type mismatch float vs none. (defmethod update-and-clear! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (reset! obj) - (set! (-> obj value) 0.0) - ) - (-> obj value) - (none) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (reset! obj) + (set! (-> obj value) 0.0) + ) + (-> obj value) + (none) ) (defmethod set-params! oscillating-float ((obj oscillating-float) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) @@ -547,33 +534,27 @@ ) (defmethod update-now! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (set! (-> obj start-time) (-> pp clock frame-counter)) - (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) - (set! (-> obj value x) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) - (set! (-> obj value y) (rand-vu-float-range (- (-> obj y-max)) (-> obj y-max))) - (set! (-> obj value z) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) - (-> obj value) - ) + (set! (-> obj start-time) (current-time)) + (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) + (set! (-> obj value x) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) + (set! (-> obj value y) (rand-vu-float-range (- (-> obj y-max)) (-> obj y-max))) + (set! (-> obj value z) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) + (-> obj value) ) (defmethod update-with-delay! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (update-now! obj) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (update-now! obj) + ) + (-> obj value) ) (defmethod update-with-delay-or-reset! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (update-now! obj) - (vector-reset! (-> obj value)) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (update-now! obj) + (vector-reset! (-> obj value)) + ) + (-> obj value) ) (defmethod set-params! oscillating-vector ((obj oscillating-vector) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) @@ -620,4 +601,3 @@ (-> obj value) ) ) - diff --git a/goal_src/jak2/kernel/gkernel-h.gc b/goal_src/jak2/kernel/gkernel-h.gc index 886a4adb6e..293548a4c4 100644 --- a/goal_src/jak2/kernel/gkernel-h.gc +++ b/goal_src/jak2/kernel/gkernel-h.gc @@ -739,3 +739,7 @@ "Create a pointer to an object on the scratchpad." `(the-as (pointer ,type) (&+ *fake-scratchpad-data* ,offset)) ) + +(defmacro current-time () + `(-> PP clock frame-counter) + ) diff --git a/goal_src/jak2/levels/atoll/ash1-course.gc b/goal_src/jak2/levels/atoll/ash1-course.gc index e0f49a9233..ae2ffb9846 100644 --- a/goal_src/jak2/levels/atoll/ash1-course.gc +++ b/goal_src/jak2/levels/atoll/ash1-course.gc @@ -90,12 +90,12 @@ ) ) ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) (let ((s5-0 (get-current-task-event (-> arg1 task)))) (cond ((and (nonzero? (-> arg1 waypoint-time0)) - (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) + (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) (let ((f0-0 143360.0)) (and (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) (= (-> s5-0 action) (game-task-action say)) @@ -194,19 +194,13 @@ (with-pp (when (not (channel-active? arg1 (the-as uint 0))) (cond - ((and (not (speech-playing? arg1 45)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) - ) + ((and (not (speech-playing? arg1 45)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5))) (play-speech arg1 45) ) - ((and (not (speech-playing? arg1 46)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 7)) - ) + ((and (not (speech-playing? arg1 46)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 7))) (play-speech arg1 46) ) - ((and (not (speech-playing? arg1 47)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 14)) - ) + ((and (not (speech-playing? arg1 47)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 14))) (play-speech arg1 47) ) ) @@ -241,22 +235,20 @@ ) ) :on-update (lambda ((arg0 ashelin-battle)) - (with-pp - (set-frontline-dist! arg0) - (let ((s5-0 (target-pos 0))) - (if (>= (-> s5-0 y) 176128.0) - (set! (-> arg0 player-in-bounds-time) (-> pp clock frame-counter)) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg0 player-in-bounds-time)) (seconds 4)) - (send-event arg0 'instant-death) - ) - (if (< (-> s5-0 y) 192512.0) - (logior! (-> arg0 bot-flags) (bot-flags bf10)) - (logclear! (-> arg0 bot-flags) (bot-flags bf10)) - ) - ) - (none) + (set-frontline-dist! arg0) + (let ((s5-0 (target-pos 0))) + (if (>= (-> s5-0 y) 176128.0) + (set! (-> arg0 player-in-bounds-time) (current-time)) + ) + (if (>= (- (current-time) (-> arg0 player-in-bounds-time)) (seconds 4)) + (send-event arg0 'instant-death) + ) + (if (< (-> s5-0 y) 192512.0) + (logior! (-> arg0 bot-flags) (bot-flags bf10)) + (logclear! (-> arg0 bot-flags) (bot-flags bf10)) + ) ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -305,18 +297,16 @@ (set! (-> v1-22 bytes 8) 7) (let ((v0-12 (lambda ((arg0 asht-wait-spot) (arg1 ashelin-battle)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - (let ((s5-0 (get-current-task-event (-> arg1 task)))) - (when (and (= (-> s5-0 action) (game-task-action say)) - (not (channel-active? arg1 (the-as uint 0))) - (scene-play arg1 (the-as string (-> s5-0 scene)) #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 5 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + (let ((s5-0 (get-current-task-event (-> arg1 task)))) + (when (and (= (-> s5-0 action) (game-task-action say)) + (not (channel-active? arg1 (the-as uint 0))) + (scene-play arg1 (the-as string (-> s5-0 scene)) #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 5 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) diff --git a/goal_src/jak2/levels/atoll/atoll-obs.gc b/goal_src/jak2/levels/atoll/atoll-obs.gc index 7fc3baf10c..de8f43e5bf 100644 --- a/goal_src/jak2/levels/atoll/atoll-obs.gc +++ b/goal_src/jak2/levels/atoll/atoll-obs.gc @@ -110,9 +110,7 @@ (+ (-> self init-height) (+ (-> self range-bottom) (get-scaled-val! (-> self sync) f0-1 0))) ) ) - (when (and (logtest? (actor-option user18) (-> self fact options)) - (< (-> self sound-time 0) (-> self clock frame-counter)) - ) + (when (and (logtest? (actor-option user18) (-> self fact options)) (< (-> self sound-time 0) (current-time))) (sound-stop (the-as sound-id (-> self looping-id))) (sound-play "piston-loop" :id (the-as sound-id (-> self looping-id)) :position (-> self sound-trans)) (+! (-> self sound-time 0) (the int (* 0.5 (the float (-> self sync period))))) @@ -424,7 +422,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "liftcat") (none) ) @@ -434,7 +432,7 @@ This commonly includes things such as: (if (>= (-> self down-y) (-> gp-0 trans y)) (go-virtual idle-down) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (set! (-> self root transv y) -8192.0) (set! (-> self root transv y) 0.0) ) @@ -597,38 +595,38 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the int (-> self cycle-offset))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the int (-> self cycle-offset))) (suspend) ) ) (until #f - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the int (-> self cycle-time))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the int (-> self cycle-time))) (suspend) ) ) (activate! (-> self smush) -1.0 60 225 1.0 1.0 (-> self clock)) (sound-play "rot-pipe-wiggle" :position (-> self root-override trans)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (set! (-> self shudder-angle) (* 364.0889 (update! (-> self smush)))) (suspend) ) ) (set! (-> self shudder-angle) 0.0) (set-zero! (-> self smush)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) (sound-play "rot-pipe-turn" :position (-> self root-override trans)) (let* ((f0-7 2.0) (f30-1 (* 16384.0 f0-7)) - (gp-6 (-> self clock frame-counter)) + (gp-6 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 0.5)) + (until (>= (- (current-time) gp-6) (seconds 0.5)) (set! (-> self rot-angle) (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) ) @@ -752,7 +750,7 @@ This commonly includes things such as: object (case event-type (('touch 'attack) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self collide-off-timer))) (seconds 2)) + (when (>= (- (current-time) (the-as int (-> self collide-off-timer))) (seconds 2)) (let* ((s4-0 proc) (s3-0 (if (type? s4-0 process-focusable) s4-0 @@ -784,7 +782,7 @@ This commonly includes things such as: (send-event-function proc a1-8) ) ) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self collide-off-timer) (the-as uint v0-0)) v0-0 ) @@ -1311,9 +1309,9 @@ This commonly includes things such as: () (local-vars (v1-31 symbol)) (set! (-> self data-int32 0) 0) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (until #f - (when (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40)) + (when (>= (- (current-time) (-> self beep-time)) (seconds 40)) (let ((v1-7 (logand (-> self data-int32 0) 3))) (cond ((zero? v1-7) @@ -1330,7 +1328,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (+! (-> self data-int32 0) 1) ) (b! diff --git a/goal_src/jak2/levels/atoll/juicer.gc b/goal_src/jak2/levels/atoll/juicer.gc index 6bbf5f1bba..acb36ae78c 100644 --- a/goal_src/jak2/levels/atoll/juicer.gc +++ b/goal_src/jak2/levels/atoll/juicer.gc @@ -120,26 +120,24 @@ (defmethod event-handler! juicer-shot ((obj juicer-shot) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Multiplex the projectile's event processing, called by [[projectile-event-handler]]" - (with-pp - (case arg2 - (('reset) - (let ((v1-1 (the-as object (-> arg3 param 0)))) - (set! (-> obj root-override trans quad) (-> (the-as matrix v1-1) trans quad)) - (set! (-> obj starting-pos quad) (-> (the-as matrix v1-1) trans quad)) - (set! (-> obj root-override transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) - (set! (-> obj pre-move-transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) - ) - (set! (-> obj hits) 0) - (set! (-> obj spawn-time) (-> pp clock frame-counter)) - (if (made-impact? obj) - (go (method-of-object obj impact)) - (go (method-of-object obj moving)) - ) - #t + (case arg2 + (('reset) + (let ((v1-1 (the-as object (-> arg3 param 0)))) + (set! (-> obj root-override trans quad) (-> (the-as matrix v1-1) trans quad)) + (set! (-> obj starting-pos quad) (-> (the-as matrix v1-1) trans quad)) + (set! (-> obj root-override transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) + (set! (-> obj pre-move-transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) ) - (else - ((method-of-type projectile event-handler!) obj arg0 arg1 arg2 arg3) - ) + (set! (-> obj hits) 0) + (set! (-> obj spawn-time) (current-time)) + (if (made-impact? obj) + (go (method-of-object obj impact)) + (go (method-of-object obj moving)) + ) + #t + ) + (else + ((method-of-type projectile event-handler!) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1192,9 +1190,9 @@ (when (and (or (logtest? (-> self nav state flags) (nav-state-flag blocked)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) (rand-vu-int-range (seconds 1) (seconds 2))) + (if (and (>= (- (current-time) (-> self last-fire-time)) (rand-vu-int-range (seconds 1) (seconds 2))) (< 20480.0 f30-0) ) (go-virtual attack) @@ -1205,7 +1203,7 @@ ) (if (and (check-los? (-> self los) 0) (or (>= 11468.8 f30-0) - (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) (rand-vu-int-range (seconds 5) (seconds 8))) + (and (>= (- (current-time) (-> self last-fire-time)) (rand-vu-int-range (seconds 5) (seconds 8))) (>= 53248.0 f30-0) ) ) @@ -1319,7 +1317,7 @@ (set! (-> self torso-track-player) #f) (logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup)) (juicer-method-184 self #f) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (if (logtest? (-> self enemy-flags) (enemy-flag check-water)) (logior! (-> self focus-status) (focus-status dangerous)) (logclear! (-> self focus-status) (focus-status dangerous)) @@ -1351,8 +1349,8 @@ (s5-0 (+ (-> v1-29 attack-id) 1)) ) (set! (-> v1-29 attack-id) s5-0) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (seconds 0.25)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (seconds 0.25)) (ja-no-eval :group! juicer-attack0-ja :num! (seek! (the float (+ (-> (the-as art-joint-anim juicer-attack0-ja) frames num-frames) -1))) :frame-num 0.0 @@ -1364,7 +1362,7 @@ (vector-vector-distance (-> self root-override2 trans) (get-trans (the-as process-focusable s3-0) 0)) ) (fire-projectile self (the-as process-focusable s3-0) s5-0) - (-> self clock frame-counter) + (current-time) (if (not gp-0) (set! gp-0 #t) ) @@ -1586,14 +1584,14 @@ (ja-channel-push! 1 (seconds 0.6)) (let ((f30-0 (get-rand-float-range self 0.8 1.2))) (let ((gp-0 (get-rand-int-range self 60 210)) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) (f28-0 f30-0) ) (ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override idle-anim)) :num! (loop! f28-0) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) s5-0) gp-0) + (until (>= (- (current-time) s5-0) gp-0) (suspend) (ja :num! (loop! f28-0)) ) diff --git a/goal_src/jak2/levels/atoll/sig0-course.gc b/goal_src/jak2/levels/atoll/sig0-course.gc index b8a0615129..33f68d81a6 100644 --- a/goal_src/jak2/levels/atoll/sig0-course.gc +++ b/goal_src/jak2/levels/atoll/sig0-course.gc @@ -885,15 +885,13 @@ ) ) (when (and (demo?) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 1)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 1)) (logtest? (-> arg0 waypoint-bits) 16) ) (set! (-> arg0 waypoint-bits) (logand -17 (-> arg0 waypoint-bits))) (talker-spawn-func (-> *talker-speech* 80) *entity-pool* (target-pos 0) (the-as region #f)) ) - (when (or (not (logtest? (-> arg0 waypoint-bits) 8)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 8)) - ) + (when (or (not (logtest? (-> arg0 waypoint-bits) 8)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))) (if (and (demo?) (not (logtest? (-> arg0 waypoint-bits) 8))) (logior! (-> arg0 waypoint-bits) 16) ) @@ -909,7 +907,7 @@ (set! (-> s5-4 liftcat-speech-index) v1-62) ) ) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) ) ) ) @@ -947,57 +945,55 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((not (logtest? (-> arg1 waypoint-bits) 1)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 81920.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (logior! (-> arg1 waypoint-bits) 1) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 10) - (set-setting! 'entity-name "camera-68" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 81920.0) - (set! (-> arg1 too-far-fail-dist-delta) 225280.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((not (logtest? (-> arg1 waypoint-bits) 1)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 81920.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (logior! (-> arg1 waypoint-bits) 1) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 10) + (set-setting! 'entity-name "camera-68" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 81920.0) + (set! (-> arg1 too-far-fail-dist-delta) 225280.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 13 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 13 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 2) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 2) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -1217,14 +1213,11 @@ :on-update (lambda ((arg0 sig-atoll)) (with-pp (b! (not (channel-active? arg0 (the-as uint 0))) cfg-2 :delay (empty-form)) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) (b! #t cfg-21 :delay (nop!)) (label cfg-2) (b! - (not (and (not (speech-playing? arg0 12)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.75)) - ) - ) + (not (and (not (speech-playing? arg0 12)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.75)))) cfg-7 :delay (empty-form) ) @@ -1232,7 +1225,7 @@ (b! #t cfg-21 :delay (nop!)) (label cfg-7) (if (and (not (speech-playing? arg0 13)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.5)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.5)) (outside-spot-radius? arg0 (the-as bot-spot #f) (the-as vector #f) #f) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-5 from) (process->ppointer pp)) @@ -1380,56 +1373,54 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 73728.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (play-speech arg1 15) - (reset-warn-time! arg1) - (set-setting! 'entity-name "camera-69" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 73728.0) - (set! (-> arg1 too-far-fail-dist-delta) 233472.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 73728.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (play-speech arg1 15) + (reset-warn-time! arg1) + (set-setting! 'entity-name "camera-69" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 73728.0) + (set! (-> arg1 too-far-fail-dist-delta) 233472.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 18 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 18 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -1622,15 +1613,13 @@ (none) ) :on-update (lambda ((arg0 sig-atoll)) - (with-pp - (if (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 1.5)) - (not (speech-playing? arg0 18)) - (not (channel-active? arg0 (the-as uint 0))) - ) - (play-speech arg0 18) - ) - (none) - ) + (if (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 1.5)) + (not (speech-playing? arg0 18)) + (not (channel-active? arg0 (the-as uint 0))) + ) + (play-speech arg0 18) + ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -1680,9 +1669,7 @@ ) ) ) - (when (or (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 8)) - ) + (when (or (not (logtest? (-> arg1 waypoint-bits) 2)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 8))) (logior! (-> arg1 waypoint-bits) 2) (let* ((s5-1 (-> arg1 sig-course)) (s4-1 (-> s5-1 liftcat-speech-index)) @@ -1695,7 +1682,7 @@ (set! (-> s5-1 liftcat-speech-index) v1-35) ) ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) ) ) @@ -1786,56 +1773,54 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 61440.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 21) - (set-setting! 'entity-name "camera-70" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 61440.0) - (set! (-> arg1 too-far-fail-dist-delta) 245760.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 61440.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 21) + (set-setting! 'entity-name "camera-70" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 61440.0) + (set! (-> arg1 too-far-fail-dist-delta) 245760.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 23 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 23 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -2135,63 +2120,61 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 73728.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 23) - (set-setting! 'entity-name "camera-71" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 73728.0) - (set! (-> arg1 too-far-fail-dist-delta) 233472.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 73728.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 23) + (set-setting! 'entity-name "camera-71" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 73728.0) + (set! (-> arg1 too-far-fail-dist-delta) 233472.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - ) - (remove-setting! 'string-startup-vector) - (logior! (-> arg1 waypoint-bits) 2) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 29 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + ) + (remove-setting! 'string-startup-vector) + (logior! (-> arg1 waypoint-bits) 2) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 29 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -2390,7 +2373,7 @@ (with-pp (cond ((not (logtest? (-> arg0 bot-task-bits) 4)) - (when (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.25)) + (when (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.25)) (< (-> arg0 sig-course spots 36 center x) (-> (target-pos 0) x)) ) (logior! (-> arg0 bot-task-bits) 4) @@ -2478,17 +2461,13 @@ ) ) :on-update (lambda ((arg0 sig-atoll)) - (with-pp - (sig0-say-look-out-if-should arg0) - (when (and (not (logtest? (-> arg0 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 8)) - ) - (logior! (-> arg0 waypoint-bits) 1) - (logior! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 16384.0) - ) - (none) + (sig0-say-look-out-if-should arg0) + (when (and (not (logtest? (-> arg0 waypoint-bits) 1)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))) + (logior! (-> arg0 waypoint-bits) 1) + (logior! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 16384.0) ) + (none) ) :on-skipping-here #f :check-too-far 'sig0-final-snipers-check-too-far @@ -2583,7 +2562,7 @@ (with-pp (cond ((not (speech-playing? arg0 27)) - (if (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.5)) + (if (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.5)) (play-speech arg0 27) ) ) @@ -2592,7 +2571,7 @@ (logior! (-> arg0 waypoint-bits) 1) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 122880.0) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) ) ) ((not (logtest? (-> arg0 waypoint-bits) 2)) @@ -2616,15 +2595,13 @@ ) 5 ) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 10)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 10)) ) (set! (-> arg0 bot-flags) (logior (bot-flags bf21) (-> arg0 bot-flags))) (logior! (-> arg0 waypoint-bits) 2) ) (else - (if (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 4)) - (not (speech-playing? arg0 28)) - ) + (if (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 4)) (not (speech-playing? arg0 28))) (play-speech arg0 28) ) ) @@ -2767,61 +2744,59 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 61440.0) - ) - (cond - ((and (< f0-0 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 31) - (set-setting! 'entity-name "camera-72" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 61440.0) - (set! (-> arg1 too-far-fail-dist-delta) 430080.0) - ) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 61440.0) + ) + (cond + ((and (< f0-0 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 31) + (set-setting! 'entity-name "camera-72" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 61440.0) + (set! (-> arg1 too-far-fail-dist-delta) 430080.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - ) - (remove-setting! 'string-startup-vector) - (logior! (-> arg1 waypoint-bits) 2) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 38 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + ) + (remove-setting! 'string-startup-vector) + (logior! (-> arg1 waypoint-bits) 2) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 38 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) diff --git a/goal_src/jak2/levels/atoll/sniper.gc b/goal_src/jak2/levels/atoll/sniper.gc index 7414104dbe..bb4af53d66 100644 --- a/goal_src/jak2/levels/atoll/sniper.gc +++ b/goal_src/jak2/levels/atoll/sniper.gc @@ -251,7 +251,7 @@ (t9-0) ) ) - (set! (-> self next-pick-time) (-> self clock frame-counter)) + (set! (-> self next-pick-time) (current-time)) (none) ) :code (behavior () @@ -284,11 +284,11 @@ :post (behavior () (when (or (logtest? (-> self nav state flags) (nav-state-flag at-target)) (nav-enemy-method-163 self) - (>= (-> self clock frame-counter) (-> self next-pick-time)) + (>= (current-time) (-> self next-pick-time)) ) (nav-enemy-method-156 self) (nav-enemy-method-162 self) - (set! (-> self next-pick-time) (+ (-> self clock frame-counter) (get-rand-int-range self 300 1050))) + (set! (-> self next-pick-time) (+ (current-time) (get-rand-int-range self 300 1050))) ) (nav-enemy-method-176 self) (none) diff --git a/goal_src/jak2/levels/castle/boss/castle-baron.gc b/goal_src/jak2/levels/castle/boss/castle-baron.gc index e9762208c9..d80e593400 100644 --- a/goal_src/jak2/levels/castle/boss/castle-baron.gc +++ b/goal_src/jak2/levels/castle/boss/castle-baron.gc @@ -1288,13 +1288,13 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :code (behavior () - (set! (-> self wiggle-time) (+ (-> self clock frame-counter) (seconds -10))) + (set! (-> self wiggle-time) (+ (current-time) (seconds -10))) (set! (-> self wiggle-angle) 0.0) (let ((f30-0 (get-rand-float-range self 0.9 1.1))) (until #f (ja :num! (loop! f30-0)) - (when (>= (- (-> self clock frame-counter) (-> self wiggle-time)) (seconds 1)) - (set! (-> self wiggle-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self wiggle-time)) (seconds 1)) + (set! (-> self wiggle-time) (current-time)) (krew-boss-clone-method-180 self) ) (suspend) @@ -2154,37 +2154,35 @@ For example for an elevator pre-compute the distance between the first and last (defmethod general-event-handler krew-boss ((obj krew-boss) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('track) - (cond - ((-> arg3 param 0) - (if (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - #t - 'abort - ) - ) - (else - (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - ) - ) - ) - (('notify) - (case (-> arg3 param 0) - (('hit) - (krew-hits-jak-speech obj) - (set! (-> obj next-shooting-frame) 100) - (set! (-> obj spawn-charge) #t) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj state-time) (the-as time-frame v0-0)) - v0-0 + (case arg2 + (('track) + (cond + ((-> arg3 param 0) + (if (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + #t + 'abort ) - ) + ) + (else + (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (case (-> arg3 param 0) + (('hit) + (krew-hits-jak-speech obj) + (set! (-> obj next-shooting-frame) 100) + (set! (-> obj spawn-charge) #t) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj state-time) (the-as time-frame v0-0)) + v0-0 + ) ) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -2516,7 +2514,7 @@ For example for an elevator pre-compute the distance between the first and last 0 (set! (-> self root-override2 trans y) 1449984.0) (set! (-> self num-clones-to-spawn) 20) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (when (< (vector-vector-xz-distance (-> self root-override2 trans) @@ -2565,7 +2563,7 @@ For example for an elevator pre-compute the distance between the first and last ) (when (and (> gp-2 0) (> (-> self num-clones-to-spawn) 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)) + (>= (- (current-time) (-> self state-time)) (seconds 0.6)) ) (let ((s3-0 (-> self root-override2)) (a1-26 (new 'stack-no-clear 'collide-query)) @@ -2584,7 +2582,7 @@ For example for an elevator pre-compute the distance between the first and last ((not s2-0) (set! (-> s5-1 quad) (-> s3-0 trans quad)) (set! s4-1 #t) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (let ((s2-1 0) @@ -2784,26 +2782,24 @@ For example for an elevator pre-compute the distance between the first and last (defmethod damage-amount-from-attack krew-boss ((obj krew-boss) (arg0 process) (arg1 event-message-block)) "@returns the amount of damage taken from an attack. This can come straight off the [[attack-info]] or via [[penetrate-using->damage]]" - (with-pp - (let ((v1-0 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg1))) - (cond - ((or (logtest? (penetrate jak-blue-shot) v1-0) (logtest? (penetrate jak-dark-shot) v1-0)) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-damage-time)) (seconds 5)) - (set! (-> obj last-damage-time) (-> pp clock frame-counter)) - 5 - ) - (else - 0 - ) - ) - ) - ((logtest? (penetrate dark-bomb) v1-0) - 20 - ) - (else + (let ((v1-0 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg1))) + (cond + ((or (logtest? (penetrate jak-blue-shot) v1-0) (logtest? (penetrate jak-dark-shot) v1-0)) + (cond + ((>= (- (current-time) (-> obj last-damage-time)) (seconds 5)) + (set! (-> obj last-damage-time) (current-time)) 5 ) + (else + 0 + ) + ) + ) + ((logtest? (penetrate dark-bomb) v1-0) + 20 + ) + (else + 5 ) ) ) @@ -2943,7 +2939,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> self spawn-charge) #t) (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (when (not (handle->process (-> self hud-handle))) (set! (-> self hud-handle) (ppointer->handle (process-spawn hud-krew-boss :init hud-init-by-other :to self))) (krew-comes-in-speech self) @@ -2967,7 +2963,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (if (or (!= (-> self focus aware) 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) (when (= (-> self next-shooting-frame) 200) (cond @@ -3008,7 +3004,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -3075,7 +3071,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (let ((gp-2 (the int (* 300.0 (- 3.0 (* 0.5 (+ -1.0 (the float (-> self gameplay-pass))))))))) - (when (and (-> self spawn-charge) (>= (- (-> self clock frame-counter) (-> self state-time)) (+ gp-2 -300))) + (when (and (-> self spawn-charge) (>= (- (current-time) (-> self state-time)) (+ gp-2 -300))) (process-spawn part-tracker :init part-tracker-init @@ -3089,7 +3085,7 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self spawn-charge) #f) ) - (when (and (= (-> self next-shooting-frame) 100) (>= (- (-> self clock frame-counter) (-> self state-time)) gp-2)) + (when (and (= (-> self next-shooting-frame) 100) (>= (- (current-time) (-> self state-time)) gp-2)) (set! (-> self next-shooting-frame) 0) (ja :chan 1 :num-func num-func-identity :frame-num 0.0) ) @@ -3105,7 +3101,7 @@ For example for an elevator pre-compute the distance between the first and last ((= (-> self next-shooting-frame) 20) (set! (-> self next-shooting-frame) 100) (set! (-> self spawn-charge) #t) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (+! (-> self next-shooting-frame) 5) diff --git a/goal_src/jak2/levels/castle/pad/caspad-obs.gc b/goal_src/jak2/levels/castle/pad/caspad-obs.gc index 69eb4ba077..fc64f70a86 100644 --- a/goal_src/jak2/levels/castle/pad/caspad-obs.gc +++ b/goal_src/jak2/levels/castle/pad/caspad-obs.gc @@ -112,8 +112,8 @@ (none) ) :code (behavior () - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 1)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/castle/pad/castle-tasks.gc b/goal_src/jak2/levels/castle/pad/castle-tasks.gc index cb4554ce2d..09403ad4b6 100644 --- a/goal_src/jak2/levels/castle/pad/castle-tasks.gc +++ b/goal_src/jak2/levels/castle/pad/castle-tasks.gc @@ -23,8 +23,8 @@ (until #f (when (< (vector-vector-distance (target-pos 0) (-> self info end-sphere)) (-> self info end-sphere r)) (send-event (handle->process (-> self arrow)) 'leave) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.007)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.007)) (suspend) ) ) diff --git a/goal_src/jak2/levels/city/common/citizen-enemy.gc b/goal_src/jak2/levels/city/common/citizen-enemy.gc index 021af582b4..f265815deb 100644 --- a/goal_src/jak2/levels/city/common/citizen-enemy.gc +++ b/goal_src/jak2/levels/city/common/citizen-enemy.gc @@ -27,26 +27,24 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a1-0 options) (overlaps-others-options)) - (set! (-> a1-0 collide-with-filter) (-> obj enemy-info-override overlaps-others-collide-with-filter)) - (set! (-> a1-0 tlist) *touching-list*) - (find-overlapping-shapes (-> obj root-override2) a1-0) - ) - (when (and (not (focus-test? obj disable dead ignore inactive)) - (< (-> obj next-update-target) (-> pp clock frame-counter)) - (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (-> obj next-state) - (= (-> obj next-state name) 'active) - ) - (citizen-enemy-method-202 obj) - (set! (-> obj next-update-target) (+ (-> pp clock frame-counter) (seconds 0.2))) - (traffic-danger-init! obj) - ) - ((method-of-type citizen track-target!) obj) - (none) + (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-0 options) (overlaps-others-options)) + (set! (-> a1-0 collide-with-filter) (-> obj enemy-info-override overlaps-others-collide-with-filter)) + (set! (-> a1-0 tlist) *touching-list*) + (find-overlapping-shapes (-> obj root-override2) a1-0) ) + (when (and (not (focus-test? obj disable dead ignore inactive)) + (< (-> obj next-update-target) (current-time)) + (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (-> obj next-state) + (= (-> obj next-state name) 'active) + ) + (citizen-enemy-method-202 obj) + (set! (-> obj next-update-target) (+ (current-time) (seconds 0.2))) + (traffic-danger-init! obj) + ) + ((method-of-type citizen track-target!) obj) + (none) ) ;; WARN: Return type mismatch object vs symbol. diff --git a/goal_src/jak2/levels/city/common/citizen.gc b/goal_src/jak2/levels/city/common/citizen.gc index 513de4b71f..5f6c2baaf2 100644 --- a/goal_src/jak2/levels/city/common/citizen.gc +++ b/goal_src/jak2/levels/city/common/citizen.gc @@ -384,89 +384,85 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (when (< (-> obj next-time-look-at) (-> pp clock frame-counter)) - (when (nonzero? (-> obj neck)) - (let ((a0-4 (handle->process (-> obj focus handle)))) - (when a0-4 - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (get-trans (the-as process-focusable a0-4) 2) quad)) - (if (and (-> obj next-state) (= (-> obj next-state name) 'flee)) - (set! (-> s5-0 quad) (-> obj danger-pos quad)) - ) - (when (< (vector-vector-distance s5-0 (-> obj root-override2 trans)) 122880.0) - (look-at-target! obj (enemy-flag lock-focus)) - (target-set! (-> obj neck) s5-0) - ) - ) - ) - ) - (when (< (-> obj stop-time-look-at) (-> pp clock frame-counter)) - (shut-down (-> obj neck)) - (set! (-> obj next-time-look-at) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 0.0 20.0)))) - ) - (set! (-> obj stop-time-look-at) - (+ (-> obj next-time-look-at) (the int (* 300.0 (get-rand-float-range obj 5.0 10.0)))) - ) - ) - ) - ) - (let ((a0-18 (-> obj enemy-flags))) - (when (and (logtest? a0-18 (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) - ) - (set! (-> obj enemy-flags) (logclear a0-18 (enemy-flag attackable-backup))) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - (let ((v1-50 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) - (set! v1-50 (logior (shl 1 32) v1-50)) - ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-50)) - ) - ) - ) - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) - ) - (let ((s5-3 (-> obj draw shadow-ctrl))) - (when (!= *nav-enemy-dummy-shadow-control* s5-3) - (let ((f0-7 (vector-vector-distance (camera-pos) (-> obj root-override2 trans)))) - (cond - ((< 163840.0 f0-7) - (logior! (-> s5-3 settings flags) (shadow-flags disable-draw)) - 0 - ) - (else - (let ((v1-65 s5-3)) - (logclear! (-> v1-65 settings flags) (shadow-flags disable-draw)) - ) - 0 - (let* ((f0-8 (lerp-scale 0.0 1.0 f0-7 163840.0 40960.0)) - (f0-11 (fmax 0.01 (+ (* -2.0 f0-8 f0-8 f0-8) (* 3.0 f0-8 f0-8)))) - ) - (set! (-> s5-3 settings shadow-dir w) (* 614400.0 f0-11)) + (when (< (-> obj next-time-look-at) (current-time)) + (when (nonzero? (-> obj neck)) + (let ((a0-4 (handle->process (-> obj focus handle)))) + (when a0-4 + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (get-trans (the-as process-focusable a0-4) 2) quad)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'flee)) + (set! (-> s5-0 quad) (-> obj danger-pos quad)) ) + (when (< (vector-vector-distance s5-0 (-> obj root-override2 trans)) 122880.0) + (look-at-target! obj (enemy-flag lock-focus)) + (target-set! (-> obj neck) s5-0) ) ) ) ) - ) - (when (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) - (when (and (focus-test? obj touch-water) - (< (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) - ) - (set! (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) - (if (not (and (-> obj next-state) (= (-> obj next-state name) 'in-ditch))) - (go (method-of-object obj in-ditch)) - ) + (when (< (-> obj stop-time-look-at) (current-time)) + (shut-down (-> obj neck)) + (set! (-> obj next-time-look-at) (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 0.0 20.0))))) + (set! (-> obj stop-time-look-at) + (+ (-> obj next-time-look-at) (the int (* 300.0 (get-rand-float-range obj 5.0 10.0)))) + ) ) ) - (ja-post) - 0 - (none) ) + (let ((a0-18 (-> obj enemy-flags))) + (when (and (logtest? a0-18 (enemy-flag attackable-backup)) + (>= (- (current-time) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + ) + (set! (-> obj enemy-flags) (logclear a0-18 (enemy-flag attackable-backup))) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (let ((v1-50 0)) + (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (set! v1-50 (logior (shl 1 32) v1-50)) + ) + (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-50)) + ) + ) + ) + (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) + (set! (-> obj last-draw-time) (current-time)) + ) + (let ((s5-3 (-> obj draw shadow-ctrl))) + (when (!= *nav-enemy-dummy-shadow-control* s5-3) + (let ((f0-7 (vector-vector-distance (camera-pos) (-> obj root-override2 trans)))) + (cond + ((< 163840.0 f0-7) + (logior! (-> s5-3 settings flags) (shadow-flags disable-draw)) + 0 + ) + (else + (let ((v1-65 s5-3)) + (logclear! (-> v1-65 settings flags) (shadow-flags disable-draw)) + ) + 0 + (let* ((f0-8 (lerp-scale 0.0 1.0 f0-7 163840.0 40960.0)) + (f0-11 (fmax 0.01 (+ (* -2.0 f0-8 f0-8 f0-8) (* 3.0 f0-8 f0-8)))) + ) + (set! (-> s5-3 settings shadow-dir w) (* 614400.0 f0-11)) + ) + ) + ) + ) + ) + ) + (when (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) + (enemy-method-54 obj) + (when (and (focus-test? obj touch-water) + (< (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) + ) + (set! (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) + (if (not (and (-> obj next-state) (= (-> obj next-state name) 'in-ditch))) + (go (method-of-object obj in-ditch)) + ) + ) + ) + (ja-post) + 0 + (none) ) (defmethod enemy-method-128 citizen ((obj citizen) (arg0 vector) (arg1 move-above-ground-params)) @@ -1305,7 +1301,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1399,7 +1395,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1416,9 +1412,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (-> self wait-return-state) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self wait-time)) - ) + (if (and (-> self wait-return-state) (>= (- (current-time) (-> self state-time)) (-> self wait-time))) (go (-> self wait-return-state)) ) (none) @@ -1464,7 +1458,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1504,13 +1498,13 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (not (logtest? (-> self nav state flags) (nav-state-flag in-mesh))) (< (-> self root-override2 trans y) 4096.0) ) (go-virtual in-ditch) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self wait-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self wait-time)) (let ((f0-2 (-> self nav state speed))) (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (-> self clock seconds-per-frame)))) ) @@ -1525,10 +1519,10 @@ This commonly includes things such as: (v1-36 (-> self root-override2 transv)) ) (if (< f0-8 (sqrtf (+ (* (-> v1-36 x) (-> v1-36 x)) (* (-> v1-36 z) (-> v1-36 z))))) - (set! (-> self cp-next-time) (-> self clock frame-counter)) + (set! (-> self cp-next-time) (current-time)) ) ) - (when (< (+ (-> self cp-next-time) (seconds 2)) (-> self clock frame-counter)) + (when (< (+ (-> self cp-next-time) (seconds 2)) (current-time)) (let ((a1-3 (vector-! (new 'stack-no-clear 'vector) (-> self controller path-prev-point) @@ -1536,7 +1530,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self cp-next-time) (-> self clock frame-counter)) + (set! (-> self cp-next-time) (current-time)) (citizen-method-195 self a1-3) ) ) diff --git a/goal_src/jak2/levels/city/common/civilian.gc b/goal_src/jak2/levels/city/common/civilian.gc index 29a134b64f..3a8aaece68 100644 --- a/goal_src/jak2/levels/city/common/civilian.gc +++ b/goal_src/jak2/levels/city/common/civilian.gc @@ -264,121 +264,119 @@ (defmethod general-event-handler civilian ((obj civilian) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((= v1-0 'track) - #f + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'track) + #f + ) + ((= v1-0 'combo) + #f + ) + ((= v1-0 'touched) + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'panic) + (let ((a0-6 (-> arg3 param 0))) + (set! (-> obj danger-pos quad) (-> (the-as sphere (+ a0-6 0)) quad)) ) - ((= v1-0 'combo) - #f - ) - ((= v1-0 'touched) - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'panic) - (let ((a0-6 (-> arg3 param 0))) - (set! (-> obj danger-pos quad) (-> (the-as sphere (+ a0-6 0)) quad)) + (if (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) + (or (= v1-6 'active) (= v1-6 'wait) (= v1-6 'avoid-danger)) + ) + ) + (go (method-of-object obj flee)) ) - (if (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) - (or (= v1-6 'active) (= v1-6 'wait) (= v1-6 'avoid-danger)) - ) - ) - (go (method-of-object obj flee)) - ) - ) - ((= v1-0 'event-death) - (if (zero? (-> obj hit-points)) - (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) - ) - ) - ((= v1-0 'avoid) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((a0-15 (-> arg3 param 0))) - (set! (-> obj danger-pos quad) (-> (the-as vector (+ a0-15 0)) quad)) + ) + ((= v1-0 'event-death) + (if (zero? (-> obj hit-points)) + (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) ) - (if (and (-> obj next-state) (let ((v1-18 (-> obj next-state name))) - (or (= v1-18 'active) (= v1-18 'wait)) - ) - ) - (go (method-of-object obj avoid-danger)) - ) + ) + ((= v1-0 'avoid) + (set! (-> obj last-danger-time) (current-time)) + (let ((a0-15 (-> arg3 param 0))) + (set! (-> obj danger-pos quad) (-> (the-as vector (+ a0-15 0)) quad)) ) - ((= v1-0 'clear-path) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-23 (the-as traffic-danger-info (-> arg3 param 0)))) - (set! (-> obj cp-valid?) #t) - (set! (-> obj cp-sphere quad) (-> v1-23 sphere quad)) - (set! (-> obj cp-vec quad) (-> v1-23 velocity quad)) - (case (-> v1-23 danger-type) - (((traffic-danger-type tdt0)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 20.0) - ) - (((traffic-danger-type tdt1)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 20.0) - ) - (((traffic-danger-type tdt2)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt3)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt4)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 2.0) - ) - (((traffic-danger-type tdt5)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt6)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - ) + (if (and (-> obj next-state) (let ((v1-18 (-> obj next-state name))) + (or (= v1-18 'active) (= v1-18 'wait)) + ) + ) + (go (method-of-object obj avoid-danger)) ) - (let ((s5-1 (-> obj cp-plane))) - (set! (-> s5-1 quad) (-> obj cp-vec quad)) - (set! (-> s5-1 y) 0.0) - (vector-rotate90-around-y! s5-1 s5-1) - (vector-normalize! s5-1 1.0) - (set! (-> s5-1 w) (- (vector-dot (the-as vector s5-1) (the-as vector (-> obj cp-sphere))))) - ) - (set! (-> obj cp-exit-time) (+ (-> pp clock frame-counter) (seconds 4))) - (if (and (-> obj next-state) (let ((v1-54 (-> obj next-state name))) - (or (= v1-54 'active) (= v1-54 'wait) (= v1-54 'avoid-danger)) - ) - ) - (go (method-of-object obj clear-path)) - ) - ) - ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) - (speech-control-method-13 *speech-control* (the-as handle obj)) - (if (logtest? (-> obj flags) (citizen-flag female)) - (speech-control-method-12 - *speech-control* - obj - (speech-type speech-type-0 speech-type-1 speech-type-3 speech-type-4) - ) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-4)) - ) - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'end-task) - (let ((v0-0 (the-as object (logclear (-> obj flags) (citizen-flag persistent))))) - (set! (-> obj flags) (the-as citizen-flag v0-0)) - v0-0 + ) + ((= v1-0 'clear-path) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-23 (the-as traffic-danger-info (-> arg3 param 0)))) + (set! (-> obj cp-valid?) #t) + (set! (-> obj cp-sphere quad) (-> v1-23 sphere quad)) + (set! (-> obj cp-vec quad) (-> v1-23 velocity quad)) + (case (-> v1-23 danger-type) + (((traffic-danger-type tdt0)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 20.0) + ) + (((traffic-danger-type tdt1)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 20.0) + ) + (((traffic-danger-type tdt2)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt3)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt4)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 2.0) + ) + (((traffic-danger-type tdt5)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt6)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) ) ) - (else - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (let ((s5-1 (-> obj cp-plane))) + (set! (-> s5-1 quad) (-> obj cp-vec quad)) + (set! (-> s5-1 y) 0.0) + (vector-rotate90-around-y! s5-1 s5-1) + (vector-normalize! s5-1 1.0) + (set! (-> s5-1 w) (- (vector-dot (the-as vector s5-1) (the-as vector (-> obj cp-sphere))))) + ) + (set! (-> obj cp-exit-time) (+ (current-time) (seconds 4))) + (if (and (-> obj next-state) (let ((v1-54 (-> obj next-state name))) + (or (= v1-54 'active) (= v1-54 'wait) (= v1-54 'avoid-danger)) + ) + ) + (go (method-of-object obj clear-path)) + ) + ) + ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) + (speech-control-method-13 *speech-control* (the-as handle obj)) + (if (logtest? (-> obj flags) (citizen-flag female)) + (speech-control-method-12 + *speech-control* + obj + (speech-type speech-type-0 speech-type-1 speech-type-3 speech-type-4) + ) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-4)) + ) + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'end-task) + (let ((v0-0 (the-as object (logclear (-> obj flags) (citizen-flag persistent))))) + (set! (-> obj flags) (the-as citizen-flag v0-0)) + v0-0 + ) + ) + (else + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -483,8 +481,8 @@ ) ) ) - (when (< (-> self cp-next-time) (-> self clock frame-counter)) - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 600 1200))) + (when (< (-> self cp-next-time) (current-time)) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 600 1200))) (citizen-method-190 self (-> self cp-force)) ) (add-offset-to-target! (-> self nav state) (-> self cp-force)) @@ -516,7 +514,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -566,7 +564,7 @@ (speech-control-method-12 *speech-control* self (speech-type speech-type-4)) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (not (logtest? (-> self nav state flags) (nav-state-flag in-mesh))) (< (-> self root-override2 trans y) 4096.0) ) @@ -742,7 +740,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -760,7 +758,7 @@ (set! (-> v1-9 target-speed) (* (-> self speed-scale) (-> self speed-walk))) ) 0 - (set! (-> self next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 300 600))) + (set! (-> self next-time) (+ (current-time) (get-rand-int-range self 300 600))) (set! (-> self last-second-pos quad) (-> self root-override2 trans quad)) (set! (-> self last-distance) (vector-vector-xz-distance (-> self controller turn-exit-point) (-> self root-override2 trans)) @@ -777,7 +775,7 @@ (none) ) :trans (behavior () - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (go-virtual active) ) (when (citizen-method-187 self) @@ -890,9 +888,9 @@ (defbehavior civilian-clear-path-post2 civilian () (citizen-method-192 self) - (when (< (-> self cp-next-time) (-> self clock frame-counter)) + (when (< (-> self cp-next-time) (current-time)) (citizen-method-190 self (-> self cp-force)) - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 1200 2400))) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 1200 2400))) ) (let ((gp-1 (new 'stack-no-clear 'vector))) (citizen-method-188 self gp-1) @@ -926,7 +924,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -944,7 +942,7 @@ (set! (-> v1-9 target-speed) (* (-> self speed-scale) (-> self speed-walk))) ) 0 - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 1200 2400))) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 1200 2400))) (set! (-> self cp-force quad) (the-as uint128 0)) (if *citizen-debug* (set-vector! (-> self draw color-mult) 0.0 1.0 0.0 1.0) @@ -1007,7 +1005,7 @@ (go-dive self) ) ) - (if (< (-> self cp-exit-time) (-> self clock frame-counter)) + (if (< (-> self cp-exit-time) (current-time)) (go-virtual active) ) (none) @@ -1035,7 +1033,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1068,7 +1066,7 @@ (none) ) :trans (behavior () - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (go-virtual get-up-front) ) (none) @@ -1104,7 +1102,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1212,7 +1210,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1293,7 +1291,7 @@ (suspend) (ja :num! (seek! max (-> self speed-scale))) ) - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (goto cfg-9) ) ) @@ -1336,7 +1334,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1399,7 +1397,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1506,7 +1504,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1553,7 +1551,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1723,7 +1721,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-4 enemy-flags)))) @@ -1845,7 +1843,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-5 (-> self root-override2 root-prim))) (set! (-> v1-5 prim-core collide-as) (collide-spec)) (set! (-> v1-5 prim-core collide-with) (collide-spec)) @@ -1979,7 +1977,7 @@ (let ((a0-1 (the-as object (-> event param 0)))) (set! (-> self event-param-point quad) (-> (the-as vector a0-1) quad)) ) - (let ((v1-3 (-> self clock frame-counter)) + (let ((v1-3 (current-time)) (a0-3 (-> self state-time)) ) (if (>= (- v1-3 a0-3) (seconds 1)) @@ -2005,7 +2003,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-5 (-> self root-override2 root-prim))) (set! (-> v1-5 prim-core collide-as) (collide-spec)) (set! (-> v1-5 prim-core collide-with) (collide-spec)) @@ -2086,7 +2084,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-28 (-> self root-override2 root-prim))) (set! (-> v1-28 prim-core collide-as) (collide-spec)) (set! (-> v1-28 prim-core collide-with) (collide-spec)) @@ -2217,7 +2215,7 @@ :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () (logclear! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/city/common/ctyport-obs.gc b/goal_src/jak2/levels/city/common/ctyport-obs.gc index 7999ba08d8..577cf80ec8 100644 --- a/goal_src/jak2/levels/city/common/ctyport-obs.gc +++ b/goal_src/jak2/levels/city/common/ctyport-obs.gc @@ -610,7 +610,7 @@ :event (the-as (function process int symbol event-message-block object :behavior boat-base) vehicle-event-handler) :enter (behavior () (logior! (-> self flags) (rigid-body-object-flag riding)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/goal_src/jak2/levels/city/common/ctywide-obs.gc b/goal_src/jak2/levels/city/common/ctywide-obs.gc index 28d333d587..3381fa50ec 100644 --- a/goal_src/jak2/levels/city/common/ctywide-obs.gc +++ b/goal_src/jak2/levels/city/common/ctywide-obs.gc @@ -40,155 +40,153 @@ ) (defmethod security-wall-method-23 security-wall ((obj security-wall)) - (with-pp - (when (< (-> obj next-message-time) (-> pp clock frame-counter)) - (set! (-> obj next-message-time) - (the-as int (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) - ) - (let ((v1-6 (rand-vu-int-count 15))) - (cond - ((zero? v1-6) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - ) - ((= v1-6 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 3) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 4) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - ) - ((= v1-6 5) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 6) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - ) - ((= v1-6 7) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 8) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 9) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - ) - ((= v1-6 10) - (let ((v1-45 (rand-vu-int-count 3))) - (cond - ((zero? v1-45) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) - ) - ((= v1-45 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) - ) - ((= v1-45 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) - ) - ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 11) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (let ((v1-57 (rand-vu-int-count 3))) - (cond - ((zero? v1-57) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) - ) - ((= v1-57 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) - ) - ((= v1-57 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) - ) - ) - ) - ) - ((= v1-6 12) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 13) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 14) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) + (when (< (-> obj next-message-time) (current-time)) + (set! (-> obj next-message-time) + (the-as int (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) ) - ) - (+! (-> obj message) 1) - (when (>= (-> obj message) 5) - (set! (-> obj message) 0) - 0 + (let ((v1-6 (rand-vu-int-count 15))) + (cond + ((zero? v1-6) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + ) + ((= v1-6 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 3) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 4) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + ) + ((= v1-6 5) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 6) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + ) + ((= v1-6 7) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 8) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 9) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + ) + ((= v1-6 10) + (let ((v1-45 (rand-vu-int-count 3))) + (cond + ((zero? v1-45) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) + ) + ((= v1-45 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) + ) + ((= v1-45 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) + ) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 11) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (let ((v1-57 (rand-vu-int-count 3))) + (cond + ((zero? v1-57) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) + ) + ((= v1-57 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) + ) + ((= v1-57 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) + ) + ) + ) + ) + ((= v1-6 12) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 13) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 14) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) ) ) - 0 - (none) + (+! (-> obj message) 1) + (when (>= (-> obj message) 5) + (set! (-> obj message) 0) + 0 + ) ) + 0 + (none) ) (defmethod security-wall-method-24 security-wall ((obj security-wall)) @@ -1579,8 +1577,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (let ((a1-1 (new 'stack-no-clear 'vector))) (set! (-> a1-1 quad) (-> self root-override trans quad)) (set! (-> a1-1 y) (+ 10240.0 (-> a1-1 y))) @@ -1623,8 +1621,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek! 32.0 0.5)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 3)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 3)) (suspend) ) ) @@ -1779,8 +1777,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek! (ja-aframe 32.0 0))) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 5)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 5)) (suspend) ) ) @@ -1977,7 +1975,7 @@ This commonly includes things such as: ) (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) - (set! (-> obj next-time-shot) (+ (-> pp clock frame-counter) (seconds 1))) + (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) (set! (-> obj num-shots) (the-as uint 0)) 0 ) @@ -2010,7 +2008,7 @@ This commonly includes things such as: :virtual #t :event cty-guard-turret-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self num-shots) (the-as uint 0)) 0 (none) @@ -2030,7 +2028,7 @@ This commonly includes things such as: ((zero? (-> self next-time-shot)) (cty-guard-turret-method-35 self) ) - ((>= (-> self clock frame-counter) (-> self next-time-shot)) + ((>= (current-time) (-> self next-time-shot)) (cty-guard-turret-method-34 self) (+! (-> self num-shots) 1) (cond @@ -2039,7 +2037,7 @@ This commonly includes things such as: 0 ) (else - (set! (-> self next-time-shot) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self next-time-shot) (+ (current-time) (seconds 0.1))) ) ) ) @@ -2411,30 +2409,28 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (set! (-> obj minimap) #f) - (set! (-> obj vehicle) (the-as handle #f)) - (set! (-> obj spawned) #f) - (process-drawable-from-entity! obj arg0) - (logclear! (-> obj mask) (process-mask actor-pause movie)) - (let ((f0-0 (res-lump-float (-> obj entity) 'rotoffset))) - (if (!= f0-0 0.0) - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-0) - ) - ) - (parking-spot-method-24 obj) - (set! (-> obj test-sphere quad) (-> obj root trans quad)) - (set! (-> obj test-sphere r) 24576.0) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (let ((a1-5 (get-random-parking-spot-type *traffic-engine*))) - (if (!= a1-5 (traffic-type traffic-type-21)) - (parking-spot-method-23 obj (the-as uint a1-5)) - ) - ) - (go (method-of-object obj idle)) - (none) + (set! (-> obj root) (new 'process 'trsqv)) + (set! (-> obj minimap) #f) + (set! (-> obj vehicle) (the-as handle #f)) + (set! (-> obj spawned) #f) + (process-drawable-from-entity! obj arg0) + (logclear! (-> obj mask) (process-mask actor-pause movie)) + (let ((f0-0 (res-lump-float (-> obj entity) 'rotoffset))) + (if (!= f0-0 0.0) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-0) + ) ) + (parking-spot-method-24 obj) + (set! (-> obj test-sphere quad) (-> obj root trans quad)) + (set! (-> obj test-sphere r) 24576.0) + (set! (-> obj state-time) (current-time)) + (let ((a1-5 (get-random-parking-spot-type *traffic-engine*))) + (if (!= a1-5 (traffic-type traffic-type-21)) + (parking-spot-method-23 obj (the-as uint a1-5)) + ) + ) + (go (method-of-object obj idle)) + (none) ) (defstate idle (parking-spot) @@ -2446,8 +2442,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior parking-spot) sleep-code) :post (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) - (set! (-> self state-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.25)) + (set! (-> self state-time) (current-time)) (parking-spot-method-21 self) (when (not (-> self spawned)) (let ((f0-0 (vector-vector-distance-squared (camera-pos) (-> self test-sphere))) @@ -3278,7 +3274,7 @@ This commonly includes things such as: (add-setting! 'music-volume 'rel (-> *setting-control* user-current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* user-current sfx-movie-volume) 0) (add-setting! 'dialog-volume 'rel (-> *setting-control* user-current dialog-volume-hint) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((v1-21 (get-current-task-event (-> self task))) (gp-0 (add-process *gui-control* @@ -3292,7 +3288,7 @@ This commonly includes things such as: ) ) (while (nonzero? (get-status *gui-control* gp-0)) - (set! (-> self time) (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (set! (-> self time) (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (suspend) (when (cpad-pressed? 0 triangle) (set-action! @@ -3358,7 +3354,7 @@ This commonly includes things such as: :enter (behavior () (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) (set! (-> self time) -1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -3402,7 +3398,7 @@ This commonly includes things such as: (vf7 :class vf) ) (init-vf0-vector) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1.5)) (let ((gp-0 0) (s5-0 0) ) diff --git a/goal_src/jak2/levels/city/common/ctywide-tasks.gc b/goal_src/jak2/levels/city/common/ctywide-tasks.gc index 6a9075e578..0328a843b8 100644 --- a/goal_src/jak2/levels/city/common/ctywide-tasks.gc +++ b/goal_src/jak2/levels/city/common/ctywide-tasks.gc @@ -46,8 +46,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -93,8 +93,8 @@ (lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'leave) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -181,8 +181,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 38) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -234,8 +234,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 31) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -246,8 +246,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 35) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) @@ -271,8 +271,8 @@ ) (wait-for-speech-end (-> self sound-id 0)) (set! (-> self sub-state) (the-as uint 2)) - (let ((gp-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 1)) + (let ((gp-6 (current-time))) + (until (>= (- (current-time) gp-6) (seconds 1)) (suspend) ) ) @@ -320,7 +320,7 @@ ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -340,7 +340,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 60)) + (until (>= (- (current-time) (-> self state-time)) (seconds 60)) (suspend) ) (set! (-> self sub-state) (the-as uint 1)) @@ -348,8 +348,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 35) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -366,8 +366,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 37) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 3)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 3)) (suspend) ) ) @@ -460,7 +460,7 @@ ) ) (set-setting! 'airlock #f 0.0 0) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (none) ) ) @@ -475,8 +475,8 @@ (send-event *traffic-manager* 'set-alert-duration 9000) (send-event *target* 'end-mode) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (script-eval '(send-event "keira-npc-1" 'say)) @@ -764,7 +764,7 @@ (set! (-> self arrow) (process->handle a0-20)) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (the-as time-frame (the int (-> gp-0 time)))) ) (none) @@ -816,8 +816,8 @@ () (send-event *target* 'end-mode) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (close! (-> self node-info) 'event) diff --git a/goal_src/jak2/levels/city/common/guard.gc b/goal_src/jak2/levels/city/common/guard.gc index 83b5535426..56605c0b4a 100644 --- a/goal_src/jak2/levels/city/common/guard.gc +++ b/goal_src/jak2/levels/city/common/guard.gc @@ -517,193 +517,191 @@ (defmethod general-event-handler crimson-guard ((obj crimson-guard) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) - (speech-control-method-13 *speech-control* (the-as handle obj)) - (logior! (-> obj flags) (citizen-flag hostile)) - (let* ((s0-0 (handle->process (-> obj incoming attacker-handle))) - (s1-0 (if (type? s0-0 process-focusable) - s0-0 - ) - ) - ) - (when s1-0 - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-3)) - (trigger-alert obj 1 (the-as target s1-0)) - ) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'event-death) - (if (zero? (-> obj hit-points)) - (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) - ) - ) - ((= v1-0 'bouncing-off) - (when (or (and (-> obj next-state) (= (-> obj next-state name) 'active)) - (and (-> obj next-state) (= (-> obj next-state name) 'wait)) - ) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-2 speech-type-3)) - (go (method-of-object obj close-attack-active)) - ) - ) - ((= v1-0 'combo) - (and (not (and (-> obj next-state) (= (-> obj next-state name) 'inactive))) - (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) - ) - ) - ((= v1-0 'avoid) - #f - ) - ((= v1-0 'panic) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-38 (the-as traffic-danger-info (-> arg3 param 0)))) - (case (-> v1-38 danger-type) - (((traffic-danger-type tdt7)) - (set! (-> obj cp-factor) 20.0) - (let ((s5-1 (method-of-object obj trigger-alert)) - (s4-1 1) - (s3-1 (handle->process (-> v1-38 handle))) - ) - (the-as object (s5-1 obj s4-1 (the-as target (if (type? s3-1 process-focusable) - s3-1 - ) - ) - ) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) + (speech-control-method-13 *speech-control* (the-as handle obj)) + (logior! (-> obj flags) (citizen-flag hostile)) + (let* ((s0-0 (handle->process (-> obj incoming attacker-handle))) + (s1-0 (if (type? s0-0 process-focusable) + s0-0 ) - ) + ) ) - ) + (when s1-0 + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-3)) + (trigger-alert obj 1 (the-as target s1-0)) ) ) - ((= v1-0 'clear-path) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-44 (the-as traffic-danger-info (-> arg3 param 0)))) - (set! (-> obj cp-valid?) #t) - (set! (-> obj cp-sphere quad) (-> v1-44 sphere quad)) - (set! (-> obj cp-vec quad) (-> v1-44 velocity quad)) - (case (-> v1-44 danger-type) - (((traffic-danger-type tdt0)) - (trigger-alert obj 1 *target*) - ) - (((traffic-danger-type tdt1)) - ) - (((traffic-danger-type tdt2)) - ) - (((traffic-danger-type tdt3)) - ) - (((traffic-danger-type tdt4)) - ) - (((traffic-danger-type tdt5)) - ) - (((traffic-danger-type tdt6)) - ) - (((traffic-danger-type tdt7)) - (trigger-alert obj 1 *target*) - ) - ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'event-death) + (if (zero? (-> obj hit-points)) + (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) ) - (let ((s5-2 (-> obj cp-plane))) - (set! (-> s5-2 quad) (-> obj cp-vec quad)) - (set! (-> s5-2 y) 0.0) - (vector-rotate90-around-y! s5-2 s5-2) - (vector-normalize! s5-2 1.0) - (set! (-> s5-2 w) (- (vector-dot (the-as vector s5-2) (the-as vector (-> obj cp-sphere))))) - ) - (let ((v0-4 (the-as object (+ (-> pp clock frame-counter) (seconds 1))))) - (set! (-> obj cp-exit-time) (the-as time-frame v0-4)) - v0-4 - ) - ) - ((= v1-0 'end-pursuit) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event end-pursuit recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (logtest? (-> obj flags) (citizen-flag hostile)) - (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) - (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) - (go (method-of-object obj active)) - ) - ) - ) - ((= v1-0 'alert-begin) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event alert-begin recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (not (logtest? (-> obj flags) (citizen-flag hostile))) - (let ((a1-27 (the-as object (-> arg3 param 0)))) - (when (and (the-as uint a1-27) - (not (logtest? (-> (the-as process-focusable a1-27) focus-status) (focus-status disable dead inactive))) - ) - (set! (-> obj traffic-target-status handle) (process->handle (the-as process-focusable a1-27))) - (try-update-focus (-> obj focus) (the-as process-focusable a1-27) obj) - (if (and (not (and (-> obj next-state) (= (-> obj next-state name) 'jump))) - (not (and (-> obj next-state) (= (-> obj next-state name) 'exit-transport))) - ) - (the-as object (go-hostile obj)) - ) + ) + ((= v1-0 'bouncing-off) + (when (or (and (-> obj next-state) (= (-> obj next-state name) 'active)) + (and (-> obj next-state) (= (-> obj next-state name) 'wait)) ) - ) - ) - ) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-2 speech-type-3)) + (go (method-of-object obj close-attack-active)) ) - ((= v1-0 'alert-end) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event alert-end recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (logtest? (-> obj flags) (citizen-flag hostile)) - (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-2)) - (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) - (go (method-of-object obj active)) - ) - ) - ) - ((= v1-0 'track) - (if (and (-> obj next-state) (let ((v1-129 (-> obj next-state name))) - (or (= v1-129 'exit-transport) (= v1-129 'jump)) - ) + ) + ((= v1-0 'combo) + (and (not (and (-> obj next-state) (= (-> obj next-state name) 'inactive))) + (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) + ) + ) + ((= v1-0 'avoid) + #f + ) + ((= v1-0 'panic) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-38 (the-as traffic-danger-info (-> arg3 param 0)))) + (case (-> v1-38 danger-type) + (((traffic-danger-type tdt7)) + (set! (-> obj cp-factor) 20.0) + (let ((s5-1 (method-of-object obj trigger-alert)) + (s4-1 1) + (s3-1 (handle->process (-> v1-38 handle))) ) - #f - #t - ) + (the-as object (s5-1 obj s4-1 (the-as target (if (type? s3-1 process-focusable) + s3-1 + ) + ) + ) + ) + ) + ) + ) ) - ((= v1-0 'notify) - (let ((a0-84 (-> arg3 param 0)) - (v1-130 (the-as object (-> arg3 param 1))) - ) - (when (= a0-84 'attack) - (when (logtest? (-> (the-as process-focusable v1-130) mask) (process-mask target)) - (when (focus-test? (the-as process-focusable v1-130) dead) - (format #t "guard killed player~%") - (the-as object (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-3))) - ) + ) + ((= v1-0 'clear-path) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-44 (the-as traffic-danger-info (-> arg3 param 0)))) + (set! (-> obj cp-valid?) #t) + (set! (-> obj cp-sphere quad) (-> v1-44 sphere quad)) + (set! (-> obj cp-vec quad) (-> v1-44 velocity quad)) + (case (-> v1-44 danger-type) + (((traffic-danger-type tdt0)) + (trigger-alert obj 1 *target*) + ) + (((traffic-danger-type tdt1)) + ) + (((traffic-danger-type tdt2)) + ) + (((traffic-danger-type tdt3)) + ) + (((traffic-danger-type tdt4)) + ) + (((traffic-danger-type tdt5)) + ) + (((traffic-danger-type tdt6)) + ) + (((traffic-danger-type tdt7)) + (trigger-alert obj 1 *target*) + ) + ) + ) + (let ((s5-2 (-> obj cp-plane))) + (set! (-> s5-2 quad) (-> obj cp-vec quad)) + (set! (-> s5-2 y) 0.0) + (vector-rotate90-around-y! s5-2 s5-2) + (vector-normalize! s5-2 1.0) + (set! (-> s5-2 w) (- (vector-dot (the-as vector s5-2) (the-as vector (-> obj cp-sphere))))) + ) + (let ((v0-4 (the-as object (+ (current-time) (seconds 1))))) + (set! (-> obj cp-exit-time) (the-as time-frame v0-4)) + v0-4 + ) + ) + ((= v1-0 'end-pursuit) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event end-pursuit recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (logtest? (-> obj flags) (citizen-flag hostile)) + (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) + (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) + (go (method-of-object obj active)) + ) + ) + ) + ((= v1-0 'alert-begin) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event alert-begin recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (not (logtest? (-> obj flags) (citizen-flag hostile))) + (let ((a1-27 (the-as object (-> arg3 param 0)))) + (when (and (the-as uint a1-27) + (not (logtest? (-> (the-as process-focusable a1-27) focus-status) (focus-status disable dead inactive))) + ) + (set! (-> obj traffic-target-status handle) (process->handle (the-as process-focusable a1-27))) + (try-update-focus (-> obj focus) (the-as process-focusable a1-27) obj) + (if (and (not (and (-> obj next-state) (= (-> obj next-state name) 'jump))) + (not (and (-> obj next-state) (= (-> obj next-state name) 'exit-transport))) + ) + (the-as object (go-hostile obj)) + ) ) ) ) ) - (else - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + ((= v1-0 'alert-end) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event alert-end recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (logtest? (-> obj flags) (citizen-flag hostile)) + (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-2)) + (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) + (go (method-of-object obj active)) + ) + ) + ) + ((= v1-0 'track) + (if (and (-> obj next-state) (let ((v1-129 (-> obj next-state name))) + (or (= v1-129 'exit-transport) (= v1-129 'jump)) + ) + ) + #f + #t + ) + ) + ((= v1-0 'notify) + (let ((a0-84 (-> arg3 param 0)) + (v1-130 (the-as object (-> arg3 param 1))) + ) + (when (= a0-84 'attack) + (when (logtest? (-> (the-as process-focusable v1-130) mask) (process-mask target)) + (when (focus-test? (the-as process-focusable v1-130) dead) + (format #t "guard killed player~%") + (the-as object (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-3))) + ) + ) + ) + ) + ) + (else + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -718,7 +716,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -791,7 +789,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1696,7 +1694,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1848,7 +1846,7 @@ (t9-1) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-11 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-11 enemy-flags))) (set! (-> v1-11 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-11 enemy-flags)))) @@ -1944,9 +1942,7 @@ (when (and (< (-> self target-self-xz-dist) 163840.0) (or (< 40960.0 (-> self target-self-xz-dist)) (>= 2 (the-as int (-> self focus aware)))) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) - (the int (* 300.0 (get-rand-float-range self 1.0 3.0))) - ) + (if (and (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (get-rand-float-range self 1.0 3.0)))) (logtest? (-> self flags) (citizen-flag target-in-sight)) ) (go-virtual gun-shoot) @@ -2147,8 +2143,8 @@ (set! (-> a0-9 velocity quad) (-> v1-15 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (current-time)) (crimson-guard-method-220 self) (set! (-> self miss-amount) (lerp-scale 0.0 16384.0 (-> self target-self-dist) 40960.0 122880.0)) (set! (-> self miss-amount) 16384.0) @@ -2157,7 +2153,7 @@ (set! (-> self miss-amount) 0.0) ) ) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (none) ) @@ -2185,7 +2181,7 @@ ) (go-virtual close-attack) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (not (logtest? (-> self flags) (citizen-flag target-in-sight))) (< 184320.0 (-> self target-self-xz-dist)) (< 10922.667 (fabs (-> self target-y-angle))) @@ -2224,7 +2220,7 @@ (set! v1-35 #t) (goto cfg-10) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! v1-35 #f) (goto cfg-10) ) @@ -2232,7 +2228,7 @@ (b! (not #f) cfg-3 :delay (set! v1-35 #f)) (label cfg-10) (when v1-35 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 3)) (until #f (ja-channel-push! 1 (seconds 0.1)) @@ -2605,10 +2601,10 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (current-time)) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (crimson-guard-method-221 self) (none) @@ -2705,9 +2701,9 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (crimson-guard-method-221 self) (none) @@ -3178,7 +3174,7 @@ ) 0 (set! (-> self miss-amount) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self lazer-sound) (the-as uint 0)) 0 (none) @@ -3219,7 +3215,7 @@ ) :trans (behavior () (crimson-guard-method-220 self) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (< 32768.0 (-> self target-self-xz-dist)) (not (logtest? (-> self flags) (citizen-flag target-in-sight)))) ) (go-hostile self) @@ -3246,7 +3242,7 @@ ) (let ((gp-2 #t)) (until #f - (while (or (< 7281.778 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (-> self clock frame-counter))) + (while (or (< 7281.778 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (current-time))) (when gp-2 ) (speech-control-method-12 *speech-control* self (speech-type speech-type-0 speech-type-3)) @@ -3305,7 +3301,7 @@ (suspend) (ja :num! (loop!)) (set! v1-94 - (or (< (-> self clock frame-counter) (-> self next-shot)) + (or (< (current-time) (-> self next-shot)) (< (-> self target-self-xz-dist) 16384.0) (not (and (handle->process (-> self focus handle)) (not (logtest? (-> (the-as process-focusable (handle->process (-> self focus handle))) focus-status) @@ -3347,7 +3343,7 @@ (ja :num! (seek!)) ) (crimson-guard-method-221 self) - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 0.1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 0.1)))) (let ((v1-155 (-> (the-as collide-shape-prim-group (-> self root-override2 root-prim)) child 2))) (logior! (-> v1-155 prim-core action) (collide-action deadly)) ) @@ -3376,12 +3372,12 @@ ) (set! (-> v1-158 state mode) (the-as lightning-mode a0-56)) ) - (let ((s5-1 (-> self clock frame-counter)) + (let ((s5-1 (current-time)) (s4-1 150) (f30-1 1.0) ) (ja-no-eval :group! (-> self draw art-group data 22) :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) s5-1) s4-1) + (until (>= (- (current-time) s5-1) s4-1) (crimson-guard-method-222 self) (suspend) (ja :num! (loop! f30-1)) @@ -3420,7 +3416,7 @@ ) ) (else - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (suspend) 0 ) @@ -3707,7 +3703,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self nav flags) (nav-control-flag output-sphere-hash)) (logclear! (-> self flags) (citizen-flag hostile)) (nav-enemy-method-166 self) @@ -3785,18 +3781,15 @@ (while (not (-> self already-shot)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-set! 1) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 150) (f30-0 2.0) ) (ja-no-eval :group! (-> self draw art-group data 6) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) - (crimson-guard-method-223 - self - (* 0.006666667 (the float (- (-> self clock frame-counter) (-> self state-time)))) - ) + (until (>= (- (current-time) gp-0) s5-0) + (crimson-guard-method-223 self (* 0.006666667 (the float (- (current-time) (-> self state-time))))) (suspend) (ja :num! (loop! f30-0)) ) diff --git a/goal_src/jak2/levels/city/common/metalhead-flitter.gc b/goal_src/jak2/levels/city/common/metalhead-flitter.gc index e35c8684e4..ae4709d9bd 100644 --- a/goal_src/jak2/levels/city/common/metalhead-flitter.gc +++ b/goal_src/jak2/levels/city/common/metalhead-flitter.gc @@ -387,15 +387,15 @@ ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.6)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.6)) (suspend) ) ) (set! (-> self root-override2 trans y) (+ -8192.0 (-> self root-override2 trans y))) (logior! (-> self draw status) (draw-control-status no-draw)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -425,7 +425,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self root-override2))) (vector-reset! (-> gp-0 transv)) (set! (-> gp-0 transv y) (* 4096.0 (get-rand-float-range self 34.0 38.0))) @@ -536,87 +536,83 @@ ) (defmethod metalhead-flitter-method-205 metalhead-flitter ((obj metalhead-flitter)) - (with-pp - (let* ((s5-0 (handle->process (-> obj focus handle))) - (s3-0 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj focus handle))) + (s3-0 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when s3-0 + (let* ((s5-1 (get-trans (the-as process-focusable s3-0) 0)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) + (f30-0 (vector-length s4-1)) + ) + (cond + ((enemy-method-99 obj (the-as process-focusable s3-0)) + (go-flee obj) ) - (when s3-0 - (let* ((s5-1 (get-trans (the-as process-focusable s3-0) 0)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) - (f30-0 (vector-length s4-1)) - ) - (cond - ((enemy-method-99 obj (the-as process-focusable s3-0)) - (go-flee obj) - ) - ((and (< f30-0 32768.0) (not (metalhead-flitter-method-207 obj (the-as process-focusable s3-0)))) - (go (method-of-object obj circling)) - ) - ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s4-1 quad)) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) - (vector-normalize! s5-2 f30-0) - (if (>= (vector-dot s3-1 s5-2) 0.98) - (go (method-of-object obj attack)) - ) - ) - ) - ) - ((< f30-0 32768.0) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - ) - ((or (>= (- (-> pp clock frame-counter) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) - (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) - ) - (set! (-> obj last-change-dir) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) - (s2-0 (new 'stack-no-clear 'vector)) + ((and (< f30-0 32768.0) (not (metalhead-flitter-method-207 obj (the-as process-focusable s3-0)))) + (go (method-of-object obj circling)) + ) + ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s4-1 quad)) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) + (vector-normalize! s5-2 f30-0) + (if (>= (vector-dot s3-1 s5-2) 0.98) + (go (method-of-object obj attack)) ) - (if (-> obj heading) - (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) - (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) - ) - (set! (-> obj heading) (not (-> obj heading))) - (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) - (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) - ) - (vector-normalize! s3-2 f28-1) - (vector+! s3-2 s3-2 s4-2) - ) - (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) - (vector+! s2-0 s5-1 s3-2) - (set! (-> obj target-pos quad) (-> s2-0 quad)) ) ) - ) + ) + ((< f30-0 32768.0) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + ) + ((or (>= (- (current-time) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) + (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) + ) + (set! (-> obj last-change-dir) (the-as uint (current-time))) + (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (if (-> obj heading) + (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) + (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) + ) + (set! (-> obj heading) (not (-> obj heading))) + (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) + (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) + ) + (vector-normalize! s3-2 f28-1) + (vector+! s3-2 s3-2 s4-2) + ) + (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) + (vector+! s2-0 s5-1 s3-2) + (set! (-> obj target-pos quad) (-> s2-0 quad)) + ) + ) ) - 0 ) + 0 ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch time-frame vs none. (defmethod metalhead-flitter-method-206 metalhead-flitter ((obj metalhead-flitter)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj amb-sound-timer))) - (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) - ) - (sound-play "flitter-amb" :position (-> obj root-override2 trans)) - (set! (-> obj amb-sound-timer) (the-as uint (-> pp clock frame-counter))) - ) - (none) + (when (>= (- (current-time) (the-as int (-> obj amb-sound-timer))) + (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) + ) + (sound-play "flitter-amb" :position (-> obj root-override2 trans)) + (set! (-> obj amb-sound-timer) (the-as uint (current-time))) ) + (none) ) (defbehavior metalhead-flitter-fall-and-play-death-anim metalhead-flitter ((arg0 int) (arg1 float) (arg2 time-frame)) @@ -631,7 +627,7 @@ ) (set! (-> self root-override2 transv y) 33775.48) (ja :num-func num-func-identity :frame-num 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self root-override2 status) (collide-status on-surface on-ground touch-surface)) (until v1-29 (let ((f0-2 102400.0)) @@ -640,7 +636,7 @@ ) (suspend) (ja :num! (seek! max arg1)) - (set! v1-29 (or (ja-done? 0) (>= (- (-> self clock frame-counter) (-> self state-time)) arg2))) + (set! v1-29 (or (ja-done? 0) (>= (- (current-time) (-> self state-time)) arg2))) ) ) ) @@ -732,9 +728,9 @@ (defstate hostile (metalhead-flitter) :virtual #t :enter (behavior () - (set! (-> self last-change-dir) (the-as uint (-> self clock frame-counter))) + (set! (-> self last-change-dir) (the-as uint (current-time))) (set! (-> self change-dir-time) 0) - (set! (-> self attack-time) (+ (-> self clock frame-counter) (seconds 0.35))) + (set! (-> self attack-time) (+ (current-time) (seconds 0.35))) (let ((t9-0 (-> (method-of-type citizen-enemy hostile) enter))) (if t9-0 (t9-0) @@ -800,7 +796,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -839,7 +835,7 @@ (set! s5-2 (cond ((and gp-0 - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (< (- (current-time) (-> self state-time)) (seconds 1.5)) gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status disable dead ignore grabbed))) ) @@ -1000,7 +996,7 @@ (t9-0) ) ) - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) (none) ) :trans (behavior () @@ -1008,7 +1004,7 @@ (if gp-0 (set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-11 (-> self focus aware))) (cond ((= v1-11 (enemy-aware enemy-aware-3)) @@ -1025,14 +1021,12 @@ ) ) ) - (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (the-as int (-> self off-screen-timer))) (seconds 0.3)) - ) + (if (and (get-enemy-target self) (>= (- (current-time) (the-as int (-> self off-screen-timer))) (seconds 0.3))) (go-hostile self) ) ) (else - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) ) ) ) diff --git a/goal_src/jak2/levels/city/common/metalhead-grunt.gc b/goal_src/jak2/levels/city/common/metalhead-grunt.gc index 1efa2178c4..f5f58bccb5 100644 --- a/goal_src/jak2/levels/city/common/metalhead-grunt.gc +++ b/goal_src/jak2/levels/city/common/metalhead-grunt.gc @@ -688,7 +688,7 @@ ) ) (let ((a0-1 (metalhead-grunt-method-209 self 13312.0)) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (when (and (>= gp-0 (-> self next-warn-time)) (not (logtest? (-> self draw status) (draw-control-status on-screen))) diff --git a/goal_src/jak2/levels/city/common/pilot-states.gc b/goal_src/jak2/levels/city/common/pilot-states.gc index 277a0f6f51..083863bd1c 100644 --- a/goal_src/jak2/levels/city/common/pilot-states.gc +++ b/goal_src/jak2/levels/city/common/pilot-states.gc @@ -171,7 +171,7 @@ (vector-rotate*! (-> gp-0 local-accel) (-> s4-0 0) (the-as matrix (-> s4-0 1))) ) (vehicle-method-116 (the-as vehicle s5-0) (the-as (pointer vehicle-controls) (-> gp-0 controls))) - (let ((f30-0 (* 182.04445 (* 0.6 (the float (-> self clock frame-counter))))) + (let ((f30-0 (* 182.04445 (* 0.6 (the float (current-time))))) (s5-1 (-> gp-0 local-accel)) ) (let ((f3-0 @@ -844,7 +844,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (local-vars (sv-16 attack-info)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! sv-16 (-> self attack-info)) (let ((v1-4 sv-16)) @@ -902,8 +902,8 @@ (logior! (-> self focus-status) (focus-status dead)) (case arg0 (('melt 'grenade 'explode) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 0.2)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.2)) (suspend) ) ) @@ -1029,8 +1029,8 @@ ) 0 (ja-channel-set! 0) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 1.8)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 1.8)) (suspend) ) ) @@ -1062,8 +1062,8 @@ ) ) ) - (let ((s5-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-9) (seconds 0.5)) + (let ((s5-9 (current-time))) + (until (>= (- (current-time) s5-9) (seconds 0.5)) (suspend) ) ) diff --git a/goal_src/jak2/levels/city/common/traffic-engine.gc b/goal_src/jak2/levels/city/common/traffic-engine.gc index 4b26b13a45..b897d2fd86 100644 --- a/goal_src/jak2/levels/city/common/traffic-engine.gc +++ b/goal_src/jak2/levels/city/common/traffic-engine.gc @@ -1194,89 +1194,87 @@ Process is recycled and moved to reserved, if it deactivates." ) (defmethod update-sync-from-frame-counter traffic-engine ((obj traffic-engine)) - (with-pp - (+! (-> obj sync-clock) 1) - (set! (-> obj sync-mask-8) (the-as uint (ash 1 (logand (-> obj sync-clock) 7)))) - (set! (-> obj sync-mask-16) (the-as uint (ash 1 (logand (-> obj sync-clock) 15)))) - (set! (-> obj sync-mask-32) (the-as uint (ash 1 (logand (-> obj sync-clock) 31)))) - (let ((v1-10 (/ (-> pp clock frame-counter) 300))) - (set! (-> obj sync-array 0) (the-as uint 255)) - (let ((a1-12 (mod v1-10 20))) - (set! (-> obj sync-array 1) (the-as uint (cond - ((>= 6 a1-12) - 1 - ) - ((>= 9 a1-12) - 2 - ) - ((>= 16 a1-12) - 4 - ) - (else - 8 - ) + (+! (-> obj sync-clock) 1) + (set! (-> obj sync-mask-8) (the-as uint (ash 1 (logand (-> obj sync-clock) 7)))) + (set! (-> obj sync-mask-16) (the-as uint (ash 1 (logand (-> obj sync-clock) 15)))) + (set! (-> obj sync-mask-32) (the-as uint (ash 1 (logand (-> obj sync-clock) 31)))) + (let ((v1-10 (/ (current-time) 300))) + (set! (-> obj sync-array 0) (the-as uint 255)) + (let ((a1-12 (mod v1-10 20))) + (set! (-> obj sync-array 1) (the-as uint (cond + ((>= 6 a1-12) + 1 + ) + ((>= 9 a1-12) + 2 + ) + ((>= 16 a1-12) + 4 + ) + (else + 8 ) - ) - ) - ) - (let ((a1-15 (mod v1-10 30))) - (set! (-> obj sync-array 2) (the-as uint (cond - ((>= 6 a1-15) - 1 - ) - ((>= 9 a1-15) - 2 - ) - ((>= 16 a1-15) - 4 - ) - ((>= 19 a1-15) - 8 - ) - ((>= 26 a1-15) - 16 - ) - (else - 32 - ) - ) - ) - ) - ) - (let ((v1-11 (mod v1-10 40))) - (set! (-> obj sync-array 3) (the-as uint (cond - ((>= 6 v1-11) - 1 - ) - ((>= 9 v1-11) - 2 - ) - ((>= 16 v1-11) - 4 - ) - ((>= 19 v1-11) - 8 - ) - ((>= 26 v1-11) - 16 - ) - ((>= 29 v1-11) - 32 - ) - ((>= 36 v1-11) - 64 - ) - (else - 128 - ) - ) - ) - ) - ) + ) + ) + ) + ) + (let ((a1-15 (mod v1-10 30))) + (set! (-> obj sync-array 2) (the-as uint (cond + ((>= 6 a1-15) + 1 + ) + ((>= 9 a1-15) + 2 + ) + ((>= 16 a1-15) + 4 + ) + ((>= 19 a1-15) + 8 + ) + ((>= 26 a1-15) + 16 + ) + (else + 32 + ) + ) + ) + ) + ) + (let ((v1-11 (mod v1-10 40))) + (set! (-> obj sync-array 3) (the-as uint (cond + ((>= 6 v1-11) + 1 + ) + ((>= 9 v1-11) + 2 + ) + ((>= 16 v1-11) + 4 + ) + ((>= 19 v1-11) + 8 + ) + ((>= 26 v1-11) + 16 + ) + ((>= 29 v1-11) + 32 + ) + ((>= 36 v1-11) + 64 + ) + (else + 128 + ) + ) + ) + ) ) - 0 - (none) ) + 0 + (none) ) (defmethod update-danger-from-target traffic-engine ((obj traffic-engine)) @@ -1835,21 +1833,19 @@ Process is recycled and moved to reserved, if it deactivates." ) (defmethod increase-alert-level traffic-engine ((obj traffic-engine) (arg0 int) (arg1 target)) - (with-pp - (when (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) - (logtest? (-> arg1 mask) (process-mask target)) - ) - (let ((v1-6 (min arg0 (the-as int (-> obj alert-state max-level))))) - (when #t - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) - (set! (-> obj alert-state level) (the-as uint (max (the-as int (-> obj alert-state level)) v1-6))) + (when (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) + (logtest? (-> arg1 mask) (process-mask target)) + ) + (let ((v1-6 (min arg0 (the-as int (-> obj alert-state max-level))))) + (when #t + (set! (-> obj alert-state start-time) (current-time)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) ) + (set! (-> obj alert-state level) (the-as uint (max (the-as int (-> obj alert-state level)) v1-6))) ) - 0 - (none) ) + 0 + (none) ) (defmethod decrease-alert-level traffic-engine ((obj traffic-engine) (arg0 int)) @@ -1861,13 +1857,11 @@ Process is recycled and moved to reserved, if it deactivates." ) (defmethod set-alert-level traffic-engine ((obj traffic-engine) (arg0 int)) - (with-pp - (set! (-> obj alert-state level) (the-as uint arg0)) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - 0 - (none) - ) + (set! (-> obj alert-state level) (the-as uint arg0)) + (set! (-> obj alert-state start-time) (current-time)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + 0 + (none) ) (defmethod set-max-alert-level traffic-engine ((obj traffic-engine) (arg0 int)) @@ -2147,114 +2141,112 @@ Process is recycled and moved to reserved, if it deactivates." (sv-208 int) (sv-216 float) ) - (with-pp - (logclear! (-> target-status flags) (traffic-target-flag visible-now updated)) - (cond - ((= (-> obj sync-mask-16) (ash 1 (logand arg2 15))) - (logior! (-> target-status flags) (traffic-target-flag updated)) - (let ((target-proc (handle->process (-> target-status handle))) - (target-pos (new 'stack-no-clear 'vector)) - ) - (when target-proc - (set! (-> target-pos quad) (-> (get-trans (the-as process-focusable target-proc) 3) quad)) - (cond - ((= (-> (the-as process-focusable target-proc) type) target) - (let ((s1-1 (-> obj alert-state target-status-array))) - (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-now updated)) - (logior! (-> s1-1 0 flags) (traffic-target-flag updated)) - (cond - ((or (logtest? (-> s1-1 0 flags) (traffic-target-flag force-visible)) (traffic-los-clear? los target-pos)) - (logior! (-> s1-1 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) - (set! (-> s1-1 0 last-seen-time) (-> pp clock frame-counter)) - (set! (-> s1-1 0 position quad) (-> target-pos quad)) - (set! (-> s1-1 0 velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) - ) - (else - (if (>= (- (-> pp clock frame-counter) (-> s1-1 0 last-seen-time)) (seconds 2)) - (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-recently)) - ) - ) - ) - (mem-copy! (the-as pointer target-status) (the-as pointer s1-1) 80) - ) - 0 - ) - (else - (logior! (-> target-status flags) (traffic-target-flag visible-now visible-recently visible-ever)) - (set! (-> target-status last-seen-time) (-> pp clock frame-counter)) - (set! (-> target-status position quad) (-> target-pos quad)) - (set! (-> target-status velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) - ) - ) - (set! (-> target-pos quad) (-> target-status position quad)) - (when (not (update-guard-status-spots target-pos)) - ) - (when (update-guard-status-spots target-pos) - (set! guards (new 'stack-no-clear 'array 'crimson-guard 16)) - (set! guard-target-dists (new 'stack-no-clear 'array 'float 16)) - (set! guard-idx 0) - (dotimes (guard-count (the-as int (-> obj vehicle-tracker-array active-object-count))) - (case (-> obj vehicle-tracker-array active-object-type-list guard-count) - (((traffic-type crimson-guard-1)) - (let ((guard (handle->process (-> obj vehicle-tracker-array active-object-list guard-count)))) - (when (and guard - (not (focus-test? (the-as process-focusable guard) dead inactive)) - (= (-> (the-as crimson-guard guard) traffic-target-status handle) (-> target-status handle)) - ) - (set! (-> guards guard-idx) (the-as crimson-guard guard)) - (set! (-> guard-target-dists guard-idx) - (vector-vector-distance (-> (the-as crimson-guard guard) root-override2 trans) target-pos) - ) - (set! guard-idx (+ guard-idx 1)) - (set! (-> (the-as crimson-guard guard) move-index) -1) + (logclear! (-> target-status flags) (traffic-target-flag visible-now updated)) + (cond + ((= (-> obj sync-mask-16) (ash 1 (logand arg2 15))) + (logior! (-> target-status flags) (traffic-target-flag updated)) + (let ((target-proc (handle->process (-> target-status handle))) + (target-pos (new 'stack-no-clear 'vector)) + ) + (when target-proc + (set! (-> target-pos quad) (-> (get-trans (the-as process-focusable target-proc) 3) quad)) + (cond + ((= (-> (the-as process-focusable target-proc) type) target) + (let ((s1-1 (-> obj alert-state target-status-array))) + (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-now updated)) + (logior! (-> s1-1 0 flags) (traffic-target-flag updated)) + (cond + ((or (logtest? (-> s1-1 0 flags) (traffic-target-flag force-visible)) (traffic-los-clear? los target-pos)) + (logior! (-> s1-1 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) + (set! (-> s1-1 0 last-seen-time) (current-time)) + (set! (-> s1-1 0 position quad) (-> target-pos quad)) + (set! (-> s1-1 0 velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) + ) + (else + (if (>= (- (current-time) (-> s1-1 0 last-seen-time)) (seconds 2)) + (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-recently)) ) + ) + ) + (mem-copy! (the-as pointer target-status) (the-as pointer s1-1) 80) + ) + 0 + ) + (else + (logior! (-> target-status flags) (traffic-target-flag visible-now visible-recently visible-ever)) + (set! (-> target-status last-seen-time) (current-time)) + (set! (-> target-status position quad) (-> target-pos quad)) + (set! (-> target-status velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) + ) + ) + (set! (-> target-pos quad) (-> target-status position quad)) + (when (not (update-guard-status-spots target-pos)) + ) + (when (update-guard-status-spots target-pos) + (set! guards (new 'stack-no-clear 'array 'crimson-guard 16)) + (set! guard-target-dists (new 'stack-no-clear 'array 'float 16)) + (set! guard-idx 0) + (dotimes (guard-count (the-as int (-> obj vehicle-tracker-array active-object-count))) + (case (-> obj vehicle-tracker-array active-object-type-list guard-count) + (((traffic-type crimson-guard-1)) + (let ((guard (handle->process (-> obj vehicle-tracker-array active-object-list guard-count)))) + (when (and guard + (not (focus-test? (the-as process-focusable guard) dead inactive)) + (= (-> (the-as crimson-guard guard) traffic-target-status handle) (-> target-status handle)) + ) + (set! (-> guards guard-idx) (the-as crimson-guard guard)) + (set! (-> guard-target-dists guard-idx) + (vector-vector-distance (-> (the-as crimson-guard guard) root-override2 trans) target-pos) + ) + (set! guard-idx (+ guard-idx 1)) + (set! (-> (the-as crimson-guard guard) move-index) -1) ) ) - ) + ) ) - (let ((a0-35 #t)) - (while a0-35 - (set! a0-35 #f) - (dotimes (v1-77 (+ guard-idx -1)) - (when (< (-> guard-target-dists (+ v1-77 1)) (-> guard-target-dists v1-77)) - (let ((a0-38 (-> guards v1-77)) - (f0-2 (-> guard-target-dists v1-77)) - ) - (set! (-> guards v1-77) (-> guards (+ v1-77 1))) - (set! (-> guards (+ v1-77 1)) a0-38) - (set! (-> guard-target-dists v1-77) (-> guard-target-dists (+ v1-77 1))) - (set! (-> guard-target-dists (+ v1-77 1)) f0-2) - ) - (set! a0-35 #t) + ) + (let ((a0-35 #t)) + (while a0-35 + (set! a0-35 #f) + (dotimes (v1-77 (+ guard-idx -1)) + (when (< (-> guard-target-dists (+ v1-77 1)) (-> guard-target-dists v1-77)) + (let ((a0-38 (-> guards v1-77)) + (f0-2 (-> guard-target-dists v1-77)) + ) + (set! (-> guards v1-77) (-> guards (+ v1-77 1))) + (set! (-> guards (+ v1-77 1)) a0-38) + (set! (-> guard-target-dists v1-77) (-> guard-target-dists (+ v1-77 1))) + (set! (-> guard-target-dists (+ v1-77 1)) f0-2) ) + (set! a0-35 #t) ) ) ) - (dotimes (s4-1 guard-idx) - (let ((crimson-guard (-> (the-as (pointer crimson-guard) guards) s4-1))) - (when (= (-> crimson-guard move-index) -1) - (set! sv-208 -1) - (set! sv-216 100000000000000000.0) ;; kinda hacky, was ps2 weird infinity. - (dotimes (s2-4 (-> *guard-target-spots* length)) - (when (= (-> *guard-status-spots* s2-4) 1) - (let* ((a0-53 (vector+! (new 'stack-no-clear 'vector) target-pos (-> *guard-target-spots* s2-4))) - (f0-4 (vector-vector-distance a0-53 (-> crimson-guard root-override2 trans))) - ) - (when (or (= sv-208 -1) (< f0-4 sv-216)) - (set! sv-208 s2-4) - (set! sv-216 f0-4) - ) + ) + (dotimes (s4-1 guard-idx) + (let ((crimson-guard (-> (the-as (pointer crimson-guard) guards) s4-1))) + (when (= (-> crimson-guard move-index) -1) + (set! sv-208 -1) + (set! sv-216 100000000000000000.0) ;; kinda hacky, was ps2 weird infinity. + (dotimes (s2-4 (-> *guard-target-spots* length)) + (when (= (-> *guard-status-spots* s2-4) 1) + (let* ((a0-53 (vector+! (new 'stack-no-clear 'vector) target-pos (-> *guard-target-spots* s2-4))) + (f0-4 (vector-vector-distance a0-53 (-> crimson-guard root-override2 trans))) + ) + (when (or (= sv-208 -1) (< f0-4 sv-216)) + (set! sv-208 s2-4) + (set! sv-216 f0-4) ) ) ) - (cond - ((!= sv-208 -1) - (set! (-> *guard-status-spots* sv-208) 0) - (vector+! (-> crimson-guard move-position) target-pos (-> *guard-target-spots* sv-208)) - ) - (else - (set! (-> crimson-guard move-position quad) (-> target-pos quad)) - ) + ) + (cond + ((!= sv-208 -1) + (set! (-> *guard-status-spots* sv-208) 0) + (vector+! (-> crimson-guard move-position) target-pos (-> *guard-target-spots* sv-208)) + ) + (else + (set! (-> crimson-guard move-position quad) (-> target-pos quad)) ) ) ) @@ -2263,26 +2255,26 @@ Process is recycled and moved to reserved, if it deactivates." ) ) ) - (else - (let ((s5-1 (handle->process (-> target-status handle))) - (s3-3 (new 'stack-no-clear 'vector)) - ) - (when s5-1 - (set! (-> s3-3 quad) (-> (get-trans (the-as process-focusable s5-1) 3) quad)) - (cond - ((= (-> s5-1 type) target) - (mem-copy! (the-as pointer target-status) (the-as pointer (-> obj alert-state target-status-array)) 80) - ) - (else - ) + ) + (else + (let ((s5-1 (handle->process (-> target-status handle))) + (s3-3 (new 'stack-no-clear 'vector)) + ) + (when s5-1 + (set! (-> s3-3 quad) (-> (get-trans (the-as process-focusable s5-1) 3) quad)) + (cond + ((= (-> s5-1 type) target) + (mem-copy! (the-as pointer target-status) (the-as pointer (-> obj alert-state target-status-array)) 80) + ) + (else ) ) ) - (logclear! (-> target-status flags) (traffic-target-flag updated)) ) + (logclear! (-> target-status flags) (traffic-target-flag updated)) ) - target-status ) + target-status ) (defmethod set-alert-duration traffic-engine ((obj traffic-engine) (arg0 time-frame)) @@ -2731,189 +2723,184 @@ Process is recycled and moved to reserved, if it deactivates." ) (defmethod update-alert-state traffic-engine ((obj traffic-engine)) - (with-pp - (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) *target*) - (set! (-> obj alert-state target-status-array 0 handle) (process->handle *target*)) - ) - (when #t - (mem-copy! - (the-as pointer (-> obj alert-state settings)) - (the-as pointer (-> *alert-level-settings* (-> obj alert-state level))) - 96 - ) - (dotimes (v1-10 6) - (let ((a1-3 (-> obj alert-state settings guard-settings-array v1-10)) - (a0-10 (-> obj alert-state guard-type-info-array v1-10)) - ) - (set! (-> a1-3 inaccuracy) - (fmax 0.0 (fmin 1.0 (* (-> a1-3 inaccuracy) (-> obj alert-state guard-inaccuracy-factor)))) - ) - (when *target* - (when (focus-test? *target* pilot) - (set! (-> a1-3 acquire-delay) (the-as uint (the int (* 0.75 (the float (-> a1-3 acquire-delay)))))) - (set! (-> a1-3 shot-delay) (the-as uint (the int (* 0.6 (the float (-> a1-3 shot-delay)))))) - (set! (-> a1-3 burst-delay) (the-as uint (the int (* 0.8 (the float (-> a1-3 burst-delay)))))) - ) + (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) *target*) + (set! (-> obj alert-state target-status-array 0 handle) (process->handle *target*)) + ) + (when #t + (mem-copy! + (the-as pointer (-> obj alert-state settings)) + (the-as pointer (-> *alert-level-settings* (-> obj alert-state level))) + 96 + ) + (dotimes (v1-10 6) + (let ((a1-3 (-> obj alert-state settings guard-settings-array v1-10)) + (a0-10 (-> obj alert-state guard-type-info-array v1-10)) ) - (set! (-> a0-10 target-count) - (max - (min - (the int (* (the float (-> a1-3 target-count)) (-> obj alert-state guard-target-level))) - (-> a0-10 max-target-count) - ) - (-> a0-10 min-target-count) + (set! (-> a1-3 inaccuracy) + (fmax 0.0 (fmin 1.0 (* (-> a1-3 inaccuracy) (-> obj alert-state guard-inaccuracy-factor)))) + ) + (when *target* + (when (focus-test? *target* pilot) + (set! (-> a1-3 acquire-delay) (the-as uint (the int (* 0.75 (the float (-> a1-3 acquire-delay)))))) + (set! (-> a1-3 shot-delay) (the-as uint (the int (* 0.6 (the float (-> a1-3 shot-delay)))))) + (set! (-> a1-3 burst-delay) (the-as uint (the int (* 0.8 (the float (-> a1-3 burst-delay)))))) + ) + ) + (set! (-> a0-10 target-count) + (max + (min + (the int (* (the float (-> a1-3 target-count)) (-> obj alert-state guard-target-level))) + (-> a0-10 max-target-count) ) + (-> a0-10 min-target-count) ) + ) + ) + ) + ) + (dotimes (v1-13 21) + (let ((a1-8 (-> obj alert-state guard-type-mask-from-object-type v1-13))) + (when (nonzero? a1-8) + (let ((a2-18 0) + (a0-14 0) + ) + (while (nonzero? a1-8) + (if (logtest? a1-8 1) + (+! a0-14 (-> obj alert-state guard-type-info-array a2-18 target-count)) + ) + (+! a2-18 1) + (set! a1-8 (shr a1-8 1)) + ) + (set! (-> obj object-type-info-array v1-13 target-count) a0-14) ) ) ) - (dotimes (v1-13 21) - (let ((a1-8 (-> obj alert-state guard-type-mask-from-object-type v1-13))) - (when (nonzero? a1-8) - (let ((a2-18 0) - (a0-14 0) - ) - (while (nonzero? a1-8) - (if (logtest? a1-8 1) - (+! a0-14 (-> obj alert-state guard-type-info-array a2-18 target-count)) - ) - (+! a2-18 1) - (set! a1-8 (shr a1-8 1)) - ) - (set! (-> obj object-type-info-array v1-13 target-count) a0-14) - ) - ) - ) + ) + (let ((s5-0 #f)) + (when *traffic-alert-level-force* + (set! (-> obj alert-state level) (the-as uint 3)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + (set! (-> obj alert-state start-time) (current-time)) ) - (let ((s5-0 #f)) - (when *traffic-alert-level-force* - (set! (-> obj alert-state level) (the-as uint 3)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - ) - (when (>= (-> obj alert-state level) (the-as uint 1)) - (set! s5-0 #t) - (cond - ((logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - (cond - ((> (guard-count obj) 0) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj alert-state start-time)) (seconds 3)) - (set! s5-0 #f) - (set! (-> obj alert-state level) (the-as uint 0)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) + (when (>= (-> obj alert-state level) (the-as uint 1)) + (set! s5-0 #t) + (cond + ((logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + (cond + ((> (guard-count obj) 0) + (set! (-> obj alert-state start-time) (current-time)) + ) + (else + (when (>= (- (current-time) (-> obj alert-state start-time)) (seconds 3)) + (set! s5-0 #f) + (set! (-> obj alert-state level) (the-as uint 0)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) ) ) ) - (else - (let ((v1-39 (+ (- (-> obj alert-state start-time) (-> pp clock frame-counter)) - (the-as time-frame (-> obj alert-state duration)) - ) - ) - ) - (if (and *target* (-> *target* next-state) (= (-> *target* next-state name) 'target-hide)) - (set! v1-39 (- v1-39 (the-as time-frame (* (- (-> pp clock frame-counter) (-> *target* state-time)) 2)))) - ) - (if (> v1-39 0) - 0 - (logior! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) - ) - ) - ) - ) - (cond - (s5-0 - (when (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on))) - (logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (set! (-> *game-info* wanted-flash) (the-as basic #t)) - (if (= (-> *setting-control* user-current music) 'city1) - (set-setting! 'sound-mode #f 0.0 1) - ) - ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (set! (-> s5-1 quad) (-> (target-pos 0) quad)) - (if (or (= (-> *setting-control* user-default music-volume) 0.0) - (!= (-> *setting-control* user-current music) 'city1) - ) - (sound-play "city-alarm" :id (-> obj alert-state alarm-sound-id) :position s5-1) - ) - ) - (if #t - (send-alert-events obj) - ) - (let ((v1-67 0)) - (dotimes (a0-45 21) - (let ((a1-19 (-> obj object-type-info-array a0-45))) - (if #t - (+! v1-67 (-> a1-19 killed-count)) - ) - ) - ) - (if (and (>= v1-67 (the-as int (* (-> obj alert-state level) 8))) - (< (-> obj alert-state level) (-> obj alert-state max-level)) - ) - (set-alert-level obj (the-as int (+ (-> obj alert-state level) 1))) - ) - ) - ) + ) (else - (when (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (set! (-> *game-info* wanted-flash) #f) - (remove-setting! 'sound-mode) - (sound-stop (-> obj alert-state alarm-sound-id)) - (send-alert-events obj) - (let ((v1-84 (-> obj alert-state target-status-array))) - (logclear! (-> v1-84 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) - ) - (dotimes (v1-85 21) - (set! (-> obj object-type-info-array v1-85 killed-count) (the-as uint 0)) - 0 - ) + (let ((v1-39 + (+ (- (-> obj alert-state start-time) (current-time)) (the-as time-frame (-> obj alert-state duration))) + ) + ) + (if (and *target* (-> *target* next-state) (= (-> *target* next-state name) 'target-hide)) + (set! v1-39 (- v1-39 (the-as time-frame (* (- (current-time) (-> *target* state-time)) 2)))) + ) + (if (> v1-39 0) + 0 + (logior! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + ) + ) + ) + ) + ) + (cond + (s5-0 + (when (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on))) + (logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (set! (-> *game-info* wanted-flash) (the-as basic #t)) + (if (= (-> *setting-control* user-current music) 'city1) + (set-setting! 'sound-mode #f 0.0 1) + ) + ) + (let ((s5-1 (new 'stack-no-clear 'vector))) + (set! (-> s5-1 quad) (-> (target-pos 0) quad)) + (if (or (= (-> *setting-control* user-default music-volume) 0.0) + (!= (-> *setting-control* user-current music) 'city1) + ) + (sound-play "city-alarm" :id (-> obj alert-state alarm-sound-id) :position s5-1) + ) + ) + (if #t + (send-alert-events obj) + ) + (let ((v1-67 0)) + (dotimes (a0-45 21) + (let ((a1-19 (-> obj object-type-info-array a0-45))) + (if #t + (+! v1-67 (-> a1-19 killed-count)) + ) + ) + ) + (if (and (>= v1-67 (the-as int (* (-> obj alert-state level) 8))) + (< (-> obj alert-state level) (-> obj alert-state max-level)) + ) + (set-alert-level obj (the-as int (+ (-> obj alert-state level) 1))) + ) + ) + ) + (else + (when (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (set! (-> *game-info* wanted-flash) #f) + (remove-setting! 'sound-mode) + (sound-stop (-> obj alert-state alarm-sound-id)) + (send-alert-events obj) + (let ((v1-84 (-> obj alert-state target-status-array))) + (logclear! (-> v1-84 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) + ) + (dotimes (v1-85 21) + (set! (-> obj object-type-info-array v1-85 killed-count) (the-as uint 0)) + 0 ) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod send-alert-events traffic-engine ((obj traffic-engine)) - (with-pp - (set! (-> obj alert-state notify-time) (-> pp clock frame-counter)) - (cond - ((> (-> obj alert-state level) 0) - (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) - (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending))) - *target* - ) - (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) - (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) - (send-event arg0 'alert-begin *target*) - ) - (none) - ) - ) - ) - ) - (else - (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) - (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) - (send-event arg0 'alert-end) - ) - (none) - ) - ) - ) + (set! (-> obj alert-state notify-time) (current-time)) + (cond + ((> (-> obj alert-state level) 0) + (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) + (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending))) + *target* + ) + (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) + (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) + (send-event arg0 'alert-begin *target*) + ) + (none) + ) + ) + ) + ) + (else + (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) + (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) + (send-event arg0 'alert-end) + ) + (none) + ) + ) ) - 0 - (none) ) + 0 + (none) ) (defmethod restore-default-settings traffic-engine ((obj traffic-engine)) diff --git a/goal_src/jak2/levels/city/common/transport.gc b/goal_src/jak2/levels/city/common/transport.gc index 551f3b3307..4a2c3849f2 100644 --- a/goal_src/jak2/levels/city/common/transport.gc +++ b/goal_src/jak2/levels/city/common/transport.gc @@ -285,8 +285,8 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-guard-spawn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-guard-spawn-time) (current-time)) (none) ) :code (behavior () @@ -319,7 +319,7 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (set! (-> self last-guard-spawn-time) 0) 0 @@ -364,16 +364,16 @@ gp-0 ) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) ) - (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (-> self clock frame-counter))) + (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (current-time))) (go-virtual leave) ) (when (and (zero? (-> self leave-time)) (nonzero? (-> self max-guard)) (>= (-> self count-guard) (-> self max-guard)) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) (send-event self 'stop-spawning) ) (transport-method-34 self *target*) @@ -396,7 +396,7 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (none) ) @@ -431,42 +431,40 @@ ) (defmethod transport-method-33 transport ((obj transport)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj last-guard-spawn-time)) 0) - (let ((s5-0 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s5-0 object-type) (traffic-type crimson-guard-1)) - (set! (-> s5-0 behavior) (the-as uint 6)) - (set! (-> s5-0 id) (the-as uint 0)) - (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) - (set! (-> s5-0 nav-branch) #f) - (set! (-> s5-0 proc) #f) - (set! (-> s5-0 handle) (process->handle obj)) - (set! (-> s5-0 user-data) (-> obj spawn-side)) - (set! (-> s5-0 flags) (traffic-spawn-flags)) - (set! (-> s5-0 guard-type) (the-as uint 7)) - (vector-reset! (-> s5-0 velocity)) - (set! (-> s5-0 position quad) (-> obj root-override trans quad)) - (set! (-> s5-0 position y) (+ 8192.0 (-> s5-0 position y))) - (quaternion-rotate-local-y! (-> s5-0 rotation) (-> obj root-override quat) 32768.0) - (send-event *traffic-manager* 'activate-object s5-0) - (when (-> s5-0 proc) - (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) - (if (logtest? (-> obj draw status) (draw-control-status on-screen)) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 1))) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 2))) - ) - (+! (-> obj count-guard) 1) - ) - (when (not (-> s5-0 proc)) - (if (logtest? (-> obj draw status) (draw-control-status on-screen)) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 0.1))) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 1))) - ) - ) + (when (>= (- (current-time) (-> obj last-guard-spawn-time)) 0) + (let ((s5-0 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s5-0 object-type) (traffic-type crimson-guard-1)) + (set! (-> s5-0 behavior) (the-as uint 6)) + (set! (-> s5-0 id) (the-as uint 0)) + (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) + (set! (-> s5-0 nav-branch) #f) + (set! (-> s5-0 proc) #f) + (set! (-> s5-0 handle) (process->handle obj)) + (set! (-> s5-0 user-data) (-> obj spawn-side)) + (set! (-> s5-0 flags) (traffic-spawn-flags)) + (set! (-> s5-0 guard-type) (the-as uint 7)) + (vector-reset! (-> s5-0 velocity)) + (set! (-> s5-0 position quad) (-> obj root-override trans quad)) + (set! (-> s5-0 position y) (+ 8192.0 (-> s5-0 position y))) + (quaternion-rotate-local-y! (-> s5-0 rotation) (-> obj root-override quat) 32768.0) + (send-event *traffic-manager* 'activate-object s5-0) + (when (-> s5-0 proc) + (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) + (if (logtest? (-> obj draw status) (draw-control-status on-screen)) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 1))) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 2))) + ) + (+! (-> obj count-guard) 1) + ) + (when (not (-> s5-0 proc)) + (if (logtest? (-> obj draw status) (draw-control-status on-screen)) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 0.1))) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 1))) + ) ) ) - (none) ) + (none) ) (defmethod transport-method-34 transport ((obj transport) (arg0 process)) diff --git a/goal_src/jak2/levels/city/common/vehicle-control.gc b/goal_src/jak2/levels/city/common/vehicle-control.gc index 8446731e75..70e6e39714 100644 --- a/goal_src/jak2/levels/city/common/vehicle-control.gc +++ b/goal_src/jak2/levels/city/common/vehicle-control.gc @@ -602,7 +602,7 @@ (vector-xz-normalize! s3-0 1.0) (cond ((= arg3 (-> arg0 sample-index)) - (let* ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> arg0 sample-time))))) + (let* ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> arg0 sample-time))))) (f0-3 (acos-rad (vector-dot s3-0 (-> arg0 sample-dir)))) (f28-0 (/ (* arg4 f30-0) f0-3)) ) @@ -614,7 +614,7 @@ ) (else (set! (-> arg0 sample-index) arg3) - (set! (-> arg0 sample-time) (-> self clock frame-counter)) + (set! (-> arg0 sample-time) (current-time)) (set! (-> arg0 sample-dir quad) (-> s3-0 quad)) ) ) diff --git a/goal_src/jak2/levels/city/common/vehicle-effects.gc b/goal_src/jak2/levels/city/common/vehicle-effects.gc index 274ab391a5..752a28c32a 100644 --- a/goal_src/jak2/levels/city/common/vehicle-effects.gc +++ b/goal_src/jak2/levels/city/common/vehicle-effects.gc @@ -55,7 +55,7 @@ (f0-22 (+ (-> obj info-override engine-pitch-offset) (* (-> obj info-override engine-pitch-scale) f30-0) (* (-> obj info-override engine-pitch-mod-amp) - (sin (* 109.22667 (the float (- (-> pp clock frame-counter) (-> obj state-time))))) + (sin (* 109.22667 (the float (- (current-time) (-> obj state-time))))) ) f26-0 ) diff --git a/goal_src/jak2/levels/city/common/vehicle-guard.gc b/goal_src/jak2/levels/city/common/vehicle-guard.gc index 982254343c..67f1841cc9 100644 --- a/goal_src/jak2/levels/city/common/vehicle-guard.gc +++ b/goal_src/jak2/levels/city/common/vehicle-guard.gc @@ -445,50 +445,42 @@ ) (defmethod turret-control-method-10 turret-control ((obj turret-control) (arg0 vehicle)) - (with-pp - (cond - ((logtest? (-> obj flags) (turret-flag should-shoot)) - (cond - ((logtest? (-> obj flags) (turret-flag firing)) - (cond - ((> (-> obj shot-count) 0) - (if (>= (- (-> pp clock frame-counter) (-> obj shoot-time)) - (the-as time-frame (-> obj guard-settings shot-delay)) - ) - (turret-control-method-17 obj arg0) - ) - ) - (else - (logclear! (-> obj flags) (turret-flag firing)) - (+! (-> obj burst-count) 1) - (turret-control-method-13 obj) - ) + (cond + ((logtest? (-> obj flags) (turret-flag should-shoot)) + (cond + ((logtest? (-> obj flags) (turret-flag firing)) + (cond + ((> (-> obj shot-count) 0) + (if (>= (- (current-time) (-> obj shoot-time)) (the-as time-frame (-> obj guard-settings shot-delay))) + (turret-control-method-17 obj arg0) + ) + ) + (else + (logclear! (-> obj flags) (turret-flag firing)) + (+! (-> obj burst-count) 1) + (turret-control-method-13 obj) ) ) - (else - (when (and (>= (- (-> pp clock frame-counter) (-> obj shoot-time)) - (the-as time-frame (-> obj guard-settings burst-delay)) - ) - (>= (- (-> pp clock frame-counter) (-> obj aim-acquire-time)) - (the-as time-frame (-> obj guard-settings acquire-delay)) - ) - ) - (set! (-> obj shot-count) - (+ (-> obj guard-settings shot-count) (rand-vu-int-count (+ (-> obj guard-settings rand-shot-count) 1))) - ) - (logior! (-> obj flags) (turret-flag firing)) - ) + ) + (else + (when (and (>= (- (current-time) (-> obj shoot-time)) (the-as time-frame (-> obj guard-settings burst-delay))) + (>= (- (current-time) (-> obj aim-acquire-time)) (the-as time-frame (-> obj guard-settings acquire-delay))) + ) + (set! (-> obj shot-count) + (+ (-> obj guard-settings shot-count) (rand-vu-int-count (+ (-> obj guard-settings rand-shot-count) 1))) + ) + (logior! (-> obj flags) (turret-flag firing)) ) ) ) - (else - (set! (-> obj aim-acquire-time) (-> pp clock frame-counter)) - (turret-control-method-14 obj) - ) + ) + (else + (set! (-> obj aim-acquire-time) (current-time)) + (turret-control-method-14 obj) ) - 0 - (none) ) + 0 + (none) ) (defmethod turret-control-method-11 turret-control ((obj turret-control) (arg0 object) (arg1 object) (arg2 vector)) @@ -502,46 +494,44 @@ ) (defmethod turret-control-method-17 turret-control ((obj turret-control) (arg0 vehicle)) - (with-pp - (let ((s4-0 (new 'stack-no-clear 'turret-unknown-stack-structure2))) - (set! (-> s4-0 proj-params ent) (-> arg0 entity)) - (set! (-> s4-0 proj-params charge) 1.0) - (set! (-> s4-0 proj-params options) (projectile-options)) - (set! (-> s4-0 proj-params notify-handle) (process->handle arg0)) - (set! (-> s4-0 proj-params owner-handle) (process->handle (handle->process (-> obj owner-handle)))) - (set! (-> s4-0 proj-params ignore-handle) (process->handle arg0)) - (let* ((v1-14 *game-info*) - (a0-16 (+ (-> v1-14 attack-id) 1)) - ) - (set! (-> v1-14 attack-id) a0-16) - (set! (-> s4-0 proj-params attack-id) a0-16) - ) - (set! (-> s4-0 proj-params timeout) (seconds 4)) - (let* ((v1-16 (-> s4-0 mat-1)) - (a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-20 (-> a3-0 quad 0)) - (a1-6 (-> a3-0 quad 1)) - (a2-0 (-> a3-0 quad 2)) - (a3-1 (-> a3-0 trans quad)) - ) - (set! (-> v1-16 quad 0) a0-20) - (set! (-> v1-16 quad 1) a1-6) - (set! (-> v1-16 quad 2) a2-0) - (set! (-> v1-16 trans quad) a3-1) - ) - (dotimes (s3-0 (-> obj info barrel-count)) - (vector-matrix*! (-> s4-0 vec-1) (the-as vector (-> obj info barrel-array s3-0)) (-> s4-0 mat-1)) - (set! (-> s4-0 vec-2 quad) (-> s4-0 mat-1 vector 2 quad)) - (set! (-> s4-0 proj-params pos quad) (-> s4-0 vec-1 quad)) - (vector-float*! (-> s4-0 proj-params vel) (-> s4-0 vec-2) (-> obj info shot-speed)) - (spawn-projectile guard-shot (-> s4-0 proj-params) arg0 *default-dead-pool*) - ) + (let ((s4-0 (new 'stack-no-clear 'turret-unknown-stack-structure2))) + (set! (-> s4-0 proj-params ent) (-> arg0 entity)) + (set! (-> s4-0 proj-params charge) 1.0) + (set! (-> s4-0 proj-params options) (projectile-options)) + (set! (-> s4-0 proj-params notify-handle) (process->handle arg0)) + (set! (-> s4-0 proj-params owner-handle) (process->handle (handle->process (-> obj owner-handle)))) + (set! (-> s4-0 proj-params ignore-handle) (process->handle arg0)) + (let* ((v1-14 *game-info*) + (a0-16 (+ (-> v1-14 attack-id) 1)) + ) + (set! (-> v1-14 attack-id) a0-16) + (set! (-> s4-0 proj-params attack-id) a0-16) + ) + (set! (-> s4-0 proj-params timeout) (seconds 4)) + (let* ((v1-16 (-> s4-0 mat-1)) + (a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-20 (-> a3-0 quad 0)) + (a1-6 (-> a3-0 quad 1)) + (a2-0 (-> a3-0 quad 2)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-16 quad 0) a0-20) + (set! (-> v1-16 quad 1) a1-6) + (set! (-> v1-16 quad 2) a2-0) + (set! (-> v1-16 trans quad) a3-1) + ) + (dotimes (s3-0 (-> obj info barrel-count)) + (vector-matrix*! (-> s4-0 vec-1) (the-as vector (-> obj info barrel-array s3-0)) (-> s4-0 mat-1)) + (set! (-> s4-0 vec-2 quad) (-> s4-0 mat-1 vector 2 quad)) + (set! (-> s4-0 proj-params pos quad) (-> s4-0 vec-1 quad)) + (vector-float*! (-> s4-0 proj-params vel) (-> s4-0 vec-2) (-> obj info shot-speed)) + (spawn-projectile guard-shot (-> s4-0 proj-params) arg0 *default-dead-pool*) ) - (set! (-> obj shoot-time) (-> pp clock frame-counter)) - (+! (-> obj shot-count) -1) - 0 - (none) ) + (set! (-> obj shoot-time) (current-time)) + (+! (-> obj shot-count) -1) + 0 + (none) ) (defmethod turret-control-method-16 turret-control ((obj turret-control) (arg0 float) (arg1 float)) @@ -722,58 +712,56 @@ ) (defmethod vehicle-guard-method-150 vehicle-guard ((obj vehicle-guard)) - (with-pp - (cond - ((handle->process (-> obj pursuit-target)) - (let ((v1-3 (new 'stack-no-clear 'vehicle-control-point))) - (set! (-> v1-3 local-pos quad) (-> obj root-override-2 trans quad)) - (let ((v1-4 (traffic-engine-method-49 - (-> obj controller traffic) - (-> v1-3 local-pos) - (-> obj traffic-priority-id) - (the-as traffic-target-status (&-> obj traffic-target-status)) - ) + (cond + ((handle->process (-> obj pursuit-target)) + (let ((v1-3 (new 'stack-no-clear 'vehicle-control-point))) + (set! (-> v1-3 local-pos quad) (-> obj root-override-2 trans quad)) + (let ((v1-4 (traffic-engine-method-49 + (-> obj controller traffic) + (-> v1-3 local-pos) + (-> obj traffic-priority-id) + (the-as traffic-target-status (&-> obj traffic-target-status)) ) - ) - (when (logtest? (-> v1-4 flags) (traffic-target-flag updated)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag target-in-sight))) ) - (when (logtest? (-> v1-4 flags) (traffic-target-flag visible-now)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logior (rigid-body-object-flag target-in-sight) (-> obj flags))) - ) - (set! (-> obj target-in-sight-time) (-> pp clock frame-counter)) - ) ) - (set! (-> obj target-flags) (the-as turret-flag (-> v1-4 flags))) + (when (logtest? (-> v1-4 flags) (traffic-target-flag updated)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag target-in-sight))) + ) + (when (logtest? (-> v1-4 flags) (traffic-target-flag visible-now)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logior (rigid-body-object-flag target-in-sight) (-> obj flags))) + ) + (set! (-> obj target-in-sight-time) (current-time)) + ) ) - ) - (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (if (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) - (vehicle-method-108 obj) - ) + (set! (-> obj target-flags) (the-as turret-flag (-> v1-4 flags))) ) ) - (else - (vehicle-method-109 obj) - ) + (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (if (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) + (vehicle-method-108 obj) + ) + ) + ) + (else + (vehicle-method-109 obj) ) - (let ((v1-22 (if (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags)) - (-> obj draw lod-set lod 1 geo) - (-> obj lod2) - ) - ) - ) - (when (!= v1-22 (-> obj draw lod-set lod 2 geo)) - (set! (-> obj draw lod-set lod 2 geo) (the-as merc-ctrl v1-22)) - (set! (-> obj draw cur-lod) -1) - (lod-set! (-> obj draw) (-> obj draw desired-lod)) - ) - ) - 0 - (none) ) + (let ((v1-22 (if (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags)) + (-> obj draw lod-set lod 1 geo) + (-> obj lod2) + ) + ) + ) + (when (!= v1-22 (-> obj draw lod-set lod 2 geo)) + (set! (-> obj draw lod-set lod 2 geo) (the-as merc-ctrl v1-22)) + (set! (-> obj draw cur-lod) -1) + (lod-set! (-> obj draw) (-> obj draw desired-lod)) + ) + ) + 0 + (none) ) (defmethod vehicle-guard-method-155 vehicle-guard ((obj vehicle-guard) (arg0 vector) (arg1 vector)) @@ -1142,91 +1130,85 @@ ) (defmethod vehicle-guard-method-158 vehicle-guard ((obj vehicle-guard)) - (with-pp - (vehicle-guard-method-150 obj) - (let ((s5-0 (new 'stack-no-clear 'vehicle-guard-target-data))) - (vehicle-guard-method-151 obj s5-0) - (let ((a1-1 (-> s5-0 target))) - (when a1-1 - (cond - ((logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) - (vehicle-guard-method-153 obj a1-1) - (speech-control-method-15 *speech-control* obj) - ) - (else - (if (and (>= (- (-> pp clock frame-counter) (-> obj target-in-sight-time)) (seconds 4)) - (< 368640.0 (-> s5-0 dist)) - ) - (vehicle-method-109 obj) - ) - ) + (vehicle-guard-method-150 obj) + (let ((s5-0 (new 'stack-no-clear 'vehicle-guard-target-data))) + (vehicle-guard-method-151 obj s5-0) + (let ((a1-1 (-> s5-0 target))) + (when a1-1 + (cond + ((logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) + (vehicle-guard-method-153 obj a1-1) + (speech-control-method-15 *speech-control* obj) + ) + (else + (if (and (>= (- (current-time) (-> obj target-in-sight-time)) (seconds 4)) (< 368640.0 (-> s5-0 dist))) + (vehicle-method-109 obj) + ) ) ) ) ) - (if (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (go (method-of-object obj active)) - ) - (rigid-body-object-method-42 obj) - (vehicle-method-122 obj) - 0 - (none) ) + (if (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (go (method-of-object obj active)) + ) + (rigid-body-object-method-42 obj) + (vehicle-method-122 obj) + 0 + (none) ) (defmethod vehicle-method-94 vehicle-guard ((obj vehicle-guard)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((v1-0 (new 'stack-no-clear 'camera-free-floating-move-info))) - (let* ((a0-1 (-> v1-0 tm)) - (t0-0 (-> obj rbody state matrix)) - (a1-1 (-> t0-0 quad 0)) - (a2-0 (-> t0-0 quad 1)) - (a3-0 (-> t0-0 quad 2)) - (t0-1 (-> t0-0 trans quad)) - ) - (set! (-> a0-1 quad 0) a1-1) - (set! (-> a0-1 quad 1) a2-0) - (set! (-> a0-1 quad 2) a3-0) - (set! (-> a0-1 trans quad) t0-1) - ) - (let ((a0-2 (-> v1-0 rv))) - (let ((a1-3 (-> obj rbody state position))) - (let ((a2-1 (-> v1-0 tm vector 2))) - (let ((a3-2 163840.0)) - (.mov vf7 a3-2) - ) - (.lvf vf5 (&-> a2-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (new 'stack-no-clear 'camera-free-floating-move-info))) + (let* ((a0-1 (-> v1-0 tm)) + (t0-0 (-> obj rbody state matrix)) + (a1-1 (-> t0-0 quad 0)) + (a2-0 (-> t0-0 quad 1)) + (a3-0 (-> t0-0 quad 2)) + (t0-1 (-> t0-0 trans quad)) + ) + (set! (-> a0-1 quad 0) a1-1) + (set! (-> a0-1 quad 1) a2-0) + (set! (-> a0-1 quad 2) a3-0) + (set! (-> a0-1 trans quad) t0-1) + ) + (let ((a0-2 (-> v1-0 rv))) + (let ((a1-3 (-> obj rbody state position))) + (let ((a2-1 (-> v1-0 tm vector 2))) + (let ((a3-2 163840.0)) + (.mov vf7 a3-2) ) - (.lvf vf4 (&-> a1-3 quad)) + (.lvf vf5 (&-> a2-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-2 quad) vf6) + (.lvf vf4 (&-> a1-3 quad)) ) - (vector-reset! (-> v1-0 up)) - (set! (-> obj turret inaccuracy) 0.0) - (turret-control-method-9 (-> obj turret) obj (-> v1-0 rv) (-> v1-0 up)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-2 quad) vf6) ) - (when (cpad-hold? 0 r1) - (when (>= (- (-> pp clock frame-counter) (-> obj turret shoot-time)) (seconds 0.35)) - (set! (-> obj turret owner-handle) (process->handle *target*)) - (turret-control-method-17 (-> obj turret) obj) - (set! (-> obj turret owner-handle) (the-as handle #f)) - ) - ) - ((method-of-type vehicle vehicle-method-94) obj) - 0 - (none) + (vector-reset! (-> v1-0 up)) + (set! (-> obj turret inaccuracy) 0.0) + (turret-control-method-9 (-> obj turret) obj (-> v1-0 rv) (-> v1-0 up)) ) + (when (cpad-hold? 0 r1) + (when (>= (- (current-time) (-> obj turret shoot-time)) (seconds 0.35)) + (set! (-> obj turret owner-handle) (process->handle *target*)) + (turret-control-method-17 (-> obj turret) obj) + (set! (-> obj turret owner-handle) (the-as handle #f)) + ) + ) + ((method-of-type vehicle vehicle-method-94) obj) + 0 + (none) ) ) @@ -1269,10 +1251,9 @@ (go-virtual hostile) ) (speech-control-method-12 *speech-control* self (speech-type speech-type-2)) - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 8)) - (let ((f0-0 409600.0)) - (< (* f0-0 f0-0) (-> self player-dist2)) - ) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 8)) (let ((f0-0 409600.0)) + (< (* f0-0 f0-0) (-> self player-dist2)) + ) ) (logclear! (-> self flags) (rigid-body-object-flag persistent alert)) ) @@ -1302,9 +1283,9 @@ :post (behavior () (vehicle-guard-method-150 self) (when (logtest? (rigid-body-object-flag in-pursuit) (-> self flags)) - (if (or (>= (- (-> self clock frame-counter) (-> self target-in-sight-time)) (seconds 8)) + (if (or (>= (- (current-time) (-> self target-in-sight-time)) (seconds 8)) (and (>= (-> self controller traffic alert-state guards-in-sight-of-target) 2) - (>= (- (-> self clock frame-counter) (-> self target-in-sight-time)) (seconds 0.5)) + (>= (- (current-time) (-> self target-in-sight-time)) (seconds 0.5)) ) ) (vehicle-method-109 self) @@ -1379,7 +1360,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self ai-hook) (method-of-object self vehicle-guard-method-156)) (none) ) @@ -1393,7 +1374,7 @@ (when gp-0 (when (or (< (-> s5-0 attack-range) (-> s5-0 dist)) (not (logtest? (rigid-body-object-flag target-in-sight) (-> self flags))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (>= (- (current-time) (-> self state-time)) (seconds 2)) ) (set! (-> self flags) (the-as rigid-body-object-flag (logclear (-> self flags) (rigid-body-object-flag rammed-target))) diff --git a/goal_src/jak2/levels/city/common/vehicle-states.gc b/goal_src/jak2/levels/city/common/vehicle-states.gc index 308c5165db..22a4e9d337 100644 --- a/goal_src/jak2/levels/city/common/vehicle-states.gc +++ b/goal_src/jak2/levels/city/common/vehicle-states.gc @@ -17,7 +17,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (rigid-body-object-method-39 self) (go-virtual waiting) (none) @@ -59,7 +59,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-139 self) (set! (-> self flags) (logior (rigid-body-object-flag riding ai-driving) (-> self flags))) (vehicle-method-142 self) @@ -83,7 +83,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-140 self) (set! (-> self flags) (the-as rigid-body-object-flag @@ -141,7 +141,7 @@ :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () (set-setting! 'sound-flava #f 31.0 5) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (iterate-prims (-> self root-override-2) (lambda ((arg0 collide-shape-prim)) @@ -206,7 +206,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not *target*) (go-virtual waiting) ) @@ -266,7 +266,7 @@ :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () (logclear! (-> self flags) (rigid-body-object-flag player-driving)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-129 self) (set! (-> self crash-level) 3) (vehicle-method-88 self) @@ -277,7 +277,7 @@ ) :trans (behavior () (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (-> self clock seconds-per-frame)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) + (if (and (>= (- (current-time) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) (go-virtual explode) ) (none) @@ -301,13 +301,12 @@ (set! (-> self player-dist2) (vector-vector-distance-squared (-> self root-override-2 trans) (target-pos 0))) (cond ((logtest? (-> self draw status) (draw-control-status on-screen)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) - (let ((f0-2 409600.0)) - (< (* f0-2 f0-2) (-> self camera-dist2)) - ) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 5)) (let ((f0-2 409600.0)) + (< (* f0-2 f0-2) (-> self camera-dist2)) + ) ) (go-virtual die) ) @@ -332,7 +331,7 @@ (vehicle-method-121 self) (set! (-> self rbody state info) (-> self info-override info)) (when (logtest? (-> self flags) (rigid-body-object-flag disturbed)) - (let* ((f0-14 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self disturbed-time))))) + (let* ((f0-14 (* 0.0033333334 (the float (- (current-time) (-> self disturbed-time))))) (f0-17 (* f0-14 f0-14 (-> self camera-dist2))) (f1-5 0.000016276043) (f0-18 (* f0-17 (* f1-5 f1-5))) @@ -485,7 +484,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) ) diff --git a/goal_src/jak2/levels/city/common/vehicle-util.gc b/goal_src/jak2/levels/city/common/vehicle-util.gc index 43a77883ef..b61ca2a7bd 100644 --- a/goal_src/jak2/levels/city/common/vehicle-util.gc +++ b/goal_src/jak2/levels/city/common/vehicle-util.gc @@ -120,31 +120,29 @@ (defmethod vehicle-hud-chooser-method-9 vehicle-hud-chooser ((obj vehicle-hud-chooser) (arg0 handle) (arg1 float)) - (with-pp - (let ((s3-0 (-> pp clock frame-counter))) - (when (!= s3-0 (-> obj cur time)) - (if (zero? (-> obj cur time)) - (vehicle-hud-requests-method-9 (-> obj cur)) - ) - (mem-copy! (the-as pointer (-> obj last)) (the-as pointer (-> obj cur)) 72) - (set! (-> obj cur time) s3-0) - (vehicle-hud-requests-method-9 (-> obj cur)) - ) + (let ((s3-0 (current-time))) + (when (!= s3-0 (-> obj cur time)) + (if (zero? (-> obj cur time)) + (vehicle-hud-requests-method-9 (-> obj cur)) + ) + (mem-copy! (the-as pointer (-> obj last)) (the-as pointer (-> obj cur)) 72) + (set! (-> obj cur time) s3-0) + (vehicle-hud-requests-method-9 (-> obj cur)) ) - (let ((v1-10 (vehicle-hud-requests-method-11 (-> obj cur)))) - (when (< (-> v1-10 priority) arg1) - (set! (-> v1-10 handle) arg0) - (set! (-> v1-10 priority) arg1) - ) + ) + (let ((v1-10 (vehicle-hud-requests-method-11 (-> obj cur)))) + (when (< (-> v1-10 priority) arg1) + (set! (-> v1-10 handle) arg0) + (set! (-> v1-10 priority) arg1) ) - (let ((s4-1 #f)) - (let ((v1-12 (vehicle-hud-requests-method-10 (-> obj last)))) - (if (and (handle->process arg0) (= (-> v1-12 handle) arg0)) - (set! s4-1 #t) - ) - ) - s4-1 + ) + (let ((s4-1 #f)) + (let ((v1-12 (vehicle-hud-requests-method-10 (-> obj last)))) + (if (and (handle->process arg0) (= (-> v1-12 handle) arg0)) + (set! s4-1 #t) + ) ) + s4-1 ) ) @@ -723,26 +721,24 @@ This commonly includes things such as: ) (defmethod vehicle-method-76 vehicle ((obj vehicle) (arg0 int) (arg1 uint)) - (with-pp - (when (< (-> obj crash-level) arg0) - (set! (-> obj crash-level) arg0) - (set! (-> obj crash-duration) arg1) - (set! (-> obj crash-time) (-> pp clock frame-counter)) - (set! (-> obj force-scale) 0.0) - (when (>= (-> obj crash-level) 2) - (sound-play "bike-engine-off") - (vehicle-method-83 obj) - ) + (when (< (-> obj crash-level) arg0) + (set! (-> obj crash-level) arg0) + (set! (-> obj crash-duration) arg1) + (set! (-> obj crash-time) (current-time)) + (set! (-> obj force-scale) 0.0) + (when (>= (-> obj crash-level) 2) + (sound-play "bike-engine-off") + (vehicle-method-83 obj) ) - (when (and (>= 0.0 (-> obj hit-points)) (!= (-> obj crash-level) 3)) - (logior! (-> obj flags) (rigid-body-object-flag dead)) - (set! (-> obj crash-level) 3) - (set! (-> obj crash-duration) (the-as uint 1500)) - (set! (-> obj crash-time) (-> pp clock frame-counter)) - ) - 0 - (none) ) + (when (and (>= 0.0 (-> obj hit-points)) (!= (-> obj crash-level) 3)) + (logior! (-> obj flags) (rigid-body-object-flag dead)) + (set! (-> obj crash-level) 3) + (set! (-> obj crash-duration) (the-as uint 1500)) + (set! (-> obj crash-time) (current-time)) + ) + 0 + (none) ) (defmethod vehicle-method-77 vehicle ((obj vehicle)) @@ -752,28 +748,24 @@ This commonly includes things such as: ) (defmethod vehicle-method-78 vehicle ((obj vehicle) (arg0 int)) - (with-pp - (set! (-> obj flight-level-index-prev) (-> obj flight-level-index)) - (set! (-> obj flight-level-index) arg0) - (set! (-> obj flags) - (logior (rigid-body-object-flag flight-level-transition camera-rapid-track-mode) (-> obj flags)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) - (set! (-> obj transition-time) (-> pp clock frame-counter)) - (vehicle-method-91 obj) - 0 - (none) - ) + (set! (-> obj flight-level-index-prev) (-> obj flight-level-index)) + (set! (-> obj flight-level-index) arg0) + (set! (-> obj flags) + (logior (rigid-body-object-flag flight-level-transition camera-rapid-track-mode) (-> obj flags)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) + (set! (-> obj transition-time) (current-time)) + (vehicle-method-91 obj) + 0 + (none) ) (defmethod vehicle-method-79 vehicle ((obj vehicle)) - (with-pp - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition)) - (set! (-> obj flags) (logior (rigid-body-object-flag flight-level-transition-ending) (-> obj flags))) - (set! (-> obj transition-end-time) (-> pp clock frame-counter)) - 0 - (none) - ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition)) + (set! (-> obj flags) (logior (rigid-body-object-flag flight-level-transition-ending) (-> obj flags))) + (set! (-> obj transition-end-time) (current-time)) + 0 + (none) ) (defmethod vehicle-method-131 vehicle ((obj vehicle)) @@ -1292,74 +1284,72 @@ This commonly includes things such as: (defmethod vehicle-method-106 vehicle ((obj vehicle)) (local-vars (v1-13 float) (v1-25 float) (v1-30 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (when (>= (- (-> pp clock frame-counter) (-> obj disturbed-time)) (seconds 2)) - (cond - ((logtest? (rigid-body-object-flag ai-driving) (-> obj flags)) - (when (and (not (logtest? (-> obj controller flags) (vehicle-controller-flag off-path))) - (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) - ) - (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-13 vf1) - (let ((f0-1 v1-13) - (f1-0 0.5) - ) - (if (< f0-1 (* f1-0 f1-0)) - (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) - ) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (when (>= (- (current-time) (-> obj disturbed-time)) (seconds 2)) + (cond + ((logtest? (rigid-body-object-flag ai-driving) (-> obj flags)) + (when (and (not (logtest? (-> obj controller flags) (vehicle-controller-flag off-path))) + (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) + ) + (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-13 vf1) + (let ((f0-1 v1-13) + (f1-0 0.5) + ) + (if (< f0-1 (* f1-0 f1-0)) + (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) + ) ) ) - (else - (when (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) - (let* ((f0-3 (-> obj camera-dist2)) - (f1-3 0.000024414063) - (f0-4 (* f0-3 (* f1-3 f1-3))) - ) - (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-25 vf1) - (when (and (< v1-25 f0-4) (begin - (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-30 vf1) - (let ((f1-7 v1-30) - (f2-0 614.4) - ) - (< f1-7 (* f0-4 (* f2-0 f2-0))) - ) + ) + (else + (when (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) + (let* ((f0-3 (-> obj camera-dist2)) + (f1-3 0.000024414063) + (f0-4 (* f0-3 (* f1-3 f1-3))) + ) + (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-25 vf1) + (when (and (< v1-25 f0-4) (begin + (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-30 vf1) + (let ((f1-7 v1-30) + (f2-0 614.4) + ) + (< f1-7 (* f0-4 (* f2-0 f2-0))) ) - ) - (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) - (clear-momentum! (-> obj rbody state)) - ) + ) + ) + (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) + (clear-momentum! (-> obj rbody state)) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/goal_src/jak2/levels/city/common/vehicle.gc b/goal_src/jak2/levels/city/common/vehicle.gc index 22f50c1da9..0e7e0400d5 100644 --- a/goal_src/jak2/levels/city/common/vehicle.gc +++ b/goal_src/jak2/levels/city/common/vehicle.gc @@ -427,9 +427,9 @@ (seek! (-> obj force-scale) 1.0 (-> pp clock seconds-per-frame)) ) ((< (-> obj crash-level) 3) - (when (>= (- (-> pp clock frame-counter) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) + (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) - (>= (- (-> pp clock frame-counter) (-> obj crash-time)) (seconds 3)) + (>= (- (current-time) (-> obj crash-time)) (seconds 3)) ) (vehicle-method-77 obj) ) @@ -476,12 +476,8 @@ ) ) (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (if (or (>= (- (-> pp clock frame-counter) (-> obj turbo-boost-time)) - (the-as time-frame (-> obj turbo-boost-duration)) - ) - (and (>= (- (-> pp clock frame-counter) (-> obj turbo-boost-time)) (seconds 0.1)) - (>= (-> obj controls brake) 0.75) - ) + (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) + (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) ) (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) ) @@ -541,15 +537,15 @@ (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) ) (set! (-> obj flags) (logior (rigid-body-object-flag hard-turn) (-> obj flags))) - (set! (-> obj turn-time) (-> pp clock frame-counter)) + (set! (-> obj turn-time) (current-time)) ) (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) - (>= (- (-> pp clock frame-counter) (-> obj turn-time)) (seconds 1)) + (>= (- (current-time) (-> obj turn-time)) (seconds 1)) ) (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) ) (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) - (set! (-> obj air-time) (-> pp clock frame-counter)) + (set! (-> obj air-time) (current-time)) ) (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) (if (or (and (> (-> obj flight-level-index) 0) @@ -560,15 +556,13 @@ ) (vehicle-method-79 obj) ) - (when (and (> (-> obj flight-level-index) 0) - (>= (- (-> pp clock frame-counter) (-> obj transition-time)) (seconds 2)) - ) + (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) (vehicle-method-79 obj) (vehicle-method-83 obj) ) ) (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) - (>= (- (-> pp clock frame-counter) (-> obj transition-end-time)) (seconds 1)) + (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) ) (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) (vehicle-method-92 obj) @@ -609,9 +603,7 @@ ) (cond ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) - (>= (- (-> pp clock frame-counter) (-> obj air-time)) (seconds 0.75)) - ) + (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) (set-setting! 'extra-follow-height 'abs (meters -4) 0) (send-event *camera* 'set-max-angle-offset (-> obj info-override camera-air-max-angle-offset)) ) @@ -978,25 +970,23 @@ ) (defmethod vehicle-method-121 vehicle ((obj vehicle)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj player-touch-time)) (seconds 0.1)) - (logclear! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-standing-on)) - ) - (when (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) - (detect-riders! (-> obj root-override-2)) - 0 - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching player-driving)) - (logior! (-> obj skel status) (joint-control-status sync-math)) - (logclear! (-> obj skel status) (joint-control-status sync-math)) - ) - (vehicle-method-96 obj) - (let ((a1-0 (-> obj rbody state position))) - (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) + (if (>= (- (current-time) (-> obj player-touch-time)) (seconds 0.1)) + (logclear! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-standing-on)) ) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) + (detect-riders! (-> obj root-override-2)) 0 - (none) ) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching player-driving)) + (logior! (-> obj skel status) (joint-control-status sync-math)) + (logclear! (-> obj skel status) (joint-control-status sync-math)) + ) + (vehicle-method-96 obj) + (let ((a1-0 (-> obj rbody state position))) + (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) + ) + 0 + (none) ) (defmethod rigid-body-object-method-37 vehicle ((obj vehicle)) @@ -1090,106 +1080,104 @@ (defmethod vehicle-method-123 vehicle ((obj vehicle)) (local-vars (v1-4 symbol) (a0-21 int) (a0-23 int)) - (with-pp - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (target-pos 0))) - (b! - (not (logtest? (rigid-body-object-flag traffic-managed) (-> obj flags))) - cfg-3 - :likely-delay (set! v1-4 #f) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (target-pos 0))) + (b! + (not (logtest? (rigid-body-object-flag traffic-managed) (-> obj flags))) + cfg-3 + :likely-delay (set! v1-4 #f) + ) + (set! v1-4 (not (logtest? (-> obj flags) (rigid-body-object-flag persistent)))) + (label cfg-3) + (b! (not v1-4) cfg-20 :delay (empty-form)) + (let ((f0-3 (fmin (-> obj player-dist2) (-> obj camera-dist2)))) + (let ((f1-1 819200.0)) + (b! (>= (* f1-1 f1-1) f0-3) cfg-8) ) - (set! v1-4 (not (logtest? (-> obj flags) (rigid-body-object-flag persistent)))) - (label cfg-3) - (b! (not v1-4) cfg-20 :delay (empty-form)) - (let ((f0-3 (fmin (-> obj player-dist2) (-> obj camera-dist2)))) - (let ((f1-1 819200.0)) - (b! (>= (* f1-1 f1-1) f0-3) cfg-8) - ) - (let ((f1-4 819200.0)) - (if (< (* f1-4 f1-4) f0-3) - (vehicle-method-113 obj) - ) - ) - (b! #t cfg-19 :delay (nop!)) - (label cfg-8) - (let ((f1-7 81920.0)) - (b! (>= (* f1-7 f1-7) f0-3) cfg-18) - ) - (b! (not (logtest? (-> obj draw status) (draw-control-status on-screen))) cfg-11 :delay (nop!)) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (b! #t cfg-17 :delay (nop!)) - (label cfg-11) - (if (or (>= (- (-> pp clock frame-counter) (-> obj state-time)) (seconds 10)) (let ((f1-10 409600.0)) - (< (* f1-10 f1-10) f0-3) - ) - ) + (let ((f1-4 819200.0)) + (if (< (* f1-4 f1-4) f0-3) (vehicle-method-113 obj) ) ) - (label cfg-17) (b! #t cfg-19 :delay (nop!)) - (label cfg-18) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (label cfg-19) - 0 - (label cfg-20) - (check-player-get-on obj) - (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-24 :delay (nop!)) - (if (not (vehicle-method-105 obj)) - (rigid-body-object-method-39 obj) - ) - (b! #t cfg-26 :delay (nop!)) - (label cfg-24) - (if (vehicle-method-105 obj) - (rigid-body-object-method-38 obj) - ) - (label cfg-26) - (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-31 :delay (nop!)) - (vector-reset! (-> obj target-acceleration)) - (when (logtest? (-> obj flags) (rigid-body-object-flag disturbed)) - (if (logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (set! (-> obj disturbed-time) (-> pp clock frame-counter)) - ) + (label cfg-8) + (let ((f1-7 81920.0)) + (b! (>= (* f1-7 f1-7) f0-3) cfg-18) ) - (vehicle-method-121 obj) - (vehicle-method-106 obj) - (b! #t cfg-36 :delay (nop!)) - (label cfg-31) - (let* ((v1-65 (-> *perf-stats* data 20)) - (a0-18 (-> v1-65 ctrl)) - ) - (+! (-> v1-65 count) 1) - (b! (zero? a0-18) cfg-33 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-18) + (b! (not (logtest? (-> obj draw status) (draw-control-status on-screen))) cfg-11 :delay (nop!)) + (set! (-> obj state-time) (current-time)) + (b! #t cfg-17 :delay (nop!)) + (label cfg-11) + (if (or (>= (- (current-time) (-> obj state-time)) (seconds 10)) (let ((f1-10 409600.0)) + (< (* f1-10 f1-10) f0-3) + ) + ) + (vehicle-method-113 obj) + ) + ) + (label cfg-17) + (b! #t cfg-19 :delay (nop!)) + (label cfg-18) + (set! (-> obj state-time) (current-time)) + (label cfg-19) + 0 + (label cfg-20) + (check-player-get-on obj) + (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-24 :delay (nop!)) + (if (not (vehicle-method-105 obj)) + (rigid-body-object-method-39 obj) ) + (b! #t cfg-26 :delay (nop!)) + (label cfg-24) + (if (vehicle-method-105 obj) + (rigid-body-object-method-38 obj) + ) + (label cfg-26) + (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-31 :delay (nop!)) + (vector-reset! (-> obj target-acceleration)) + (when (logtest? (-> obj flags) (rigid-body-object-flag disturbed)) + (if (logtest? (-> obj flags) (rigid-body-object-flag in-air)) + (set! (-> obj disturbed-time) (current-time)) + ) + ) + (vehicle-method-121 obj) + (vehicle-method-106 obj) + (b! #t cfg-36 :delay (nop!)) + (label cfg-31) + (let* ((v1-65 (-> *perf-stats* data 20)) + (a0-18 (-> v1-65 ctrl)) + ) + (+! (-> v1-65 count) 1) + (b! (zero? a0-18) cfg-33 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-33) - 0 - (vehicle-method-120 obj) - (let ((v1-70 (-> *perf-stats* data 20))) - (b! (zero? (-> v1-70 ctrl)) cfg-35 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-21 pcr0) - (+! (-> v1-70 accum0) a0-21) - (.mfpc a0-23 pcr1) - (+! (-> v1-70 accum1) a0-23) - ) - (label cfg-35) - 0 - (label cfg-36) - 0 - (none) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-18) ) + (.sync.l) + (.sync.p) + (label cfg-33) + 0 + (vehicle-method-120 obj) + (let ((v1-70 (-> *perf-stats* data 20))) + (b! (zero? (-> v1-70 ctrl)) cfg-35 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-21 pcr0) + (+! (-> v1-70 accum0) a0-21) + (.mfpc a0-23 pcr1) + (+! (-> v1-70 accum1) a0-23) + ) + (label cfg-35) + 0 + (label cfg-36) + 0 + (none) ) (defmethod vehicle-method-122 vehicle ((obj vehicle)) @@ -1495,154 +1483,152 @@ (defmethod rigid-body-object-method-47 vehicle ((obj vehicle) (arg0 process-drawable) (arg1 attack-info) (arg2 touching-shapes-entry) (arg3 penetrate)) (local-vars (f0-2 float) (sv-96 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'matrix))) - (rigid-body-object-method-49 obj (the-as rigid-body-impact s5-0) arg2) - (cond - ((logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) - (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) - ) - (else - (let ((s0-0 arg0)) - (cond - ((if (type? s0-0 process-focusable) - (the-as process-focusable s0-0) - ) - (set! sv-96 (-> s5-0 vector 2)) - (let ((s0-1 (-> s5-0 vector)) - (v1-7 (get-trans (the-as process-focusable arg0) 3)) - ) - (.lvf vf4 (&-> s0-1 0 quad)) - (.lvf vf5 (&-> v1-7 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (rigid-body-object-method-49 obj (the-as rigid-body-impact s5-0) arg2) + (cond + ((logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) + (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) + ) + (else + (let ((s0-0 arg0)) + (cond + ((if (type? s0-0 process-focusable) + (the-as process-focusable s0-0) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-96 quad) vf6) + (set! sv-96 (-> s5-0 vector 2)) + (let ((s0-1 (-> s5-0 vector)) + (v1-7 (get-trans (the-as process-focusable arg0) 3)) + ) + (.lvf vf4 (&-> s0-1 0 quad)) + (.lvf vf5 (&-> v1-7 quad)) ) - (else - (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) - ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-96 quad) vf6) + ) + (else + (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) ) ) ) ) - 0.0 - 0.0 - (let ((f1-0 (cond - ((= (-> arg1 mode) 'mine) - (set! f0-2 20480.0) - 0.2 - ) - ((or (logtest? (penetrate dark-giant) arg3) - (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (= (-> arg1 mode) 'eco-dark)) - ) - (set! (-> s5-0 vector 2 y) (* 0.1 (-> s5-0 vector 2 y))) - (set! f0-2 (* 409600.0 (-> obj info-override info mass))) - (/ 0.4 (-> obj info-override damage-factor)) - ) - ((or (logtest? (penetrate dark-punch dark-bomb) arg3) - (and (logtest? (penetrate dark-skin) arg3) (logtest? arg3 (penetrate punch spin))) - ) - (set! f0-2 (* 204800.0 (-> obj info-override info mass))) - (/ 0.2 (-> obj info-override damage-factor)) - ) - ((logtest? (penetrate enemy-yellow-shot) arg3) - (set! f0-2 49152.0) - 0.025 - ) - ((logtest? (penetrate jak-yellow-shot) arg3) - (set! f0-2 98304.0) - 0.05 - ) - ((logtest? (penetrate jak-blue-shot) arg3) - (set! f0-2 196608.0) - 0.05 - ) - ((logtest? (penetrate jak-red-shot) arg3) - (set! f0-2 196608.0) - 0.05 - ) - ((logtest? (penetrate jak-dark-shot enemy-dark-shot) arg3) - (set! f0-2 393216.0) - 0.5 - ) - ((or (logtest? (penetrate explode) arg3) - (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (case (-> arg1 mode) - (('explode 'grenade 'melt 'ice) - #t - ) - ) - ) - ) - (set! f0-2 122880.0) - 1.0 - ) - ((logtest? arg3 (penetrate punch)) - (set! f0-2 40960.0) - 0.1 - ) - ((logtest? arg3 (penetrate flop spin)) - (set! f0-2 20480.0) - 0.05 - ) - (else - (set! f0-2 8192.0) - 0.01 - ) + ) + 0.0 + 0.0 + (let ((f1-0 (cond + ((= (-> arg1 mode) 'mine) + (set! f0-2 20480.0) + 0.2 + ) + ((or (logtest? (penetrate dark-giant) arg3) + (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (= (-> arg1 mode) 'eco-dark)) + ) + (set! (-> s5-0 vector 2 y) (* 0.1 (-> s5-0 vector 2 y))) + (set! f0-2 (* 409600.0 (-> obj info-override info mass))) + (/ 0.4 (-> obj info-override damage-factor)) + ) + ((or (logtest? (penetrate dark-punch dark-bomb) arg3) + (and (logtest? (penetrate dark-skin) arg3) (logtest? arg3 (penetrate punch spin))) + ) + (set! f0-2 (* 204800.0 (-> obj info-override info mass))) + (/ 0.2 (-> obj info-override damage-factor)) + ) + ((logtest? (penetrate enemy-yellow-shot) arg3) + (set! f0-2 49152.0) + 0.025 + ) + ((logtest? (penetrate jak-yellow-shot) arg3) + (set! f0-2 98304.0) + 0.05 + ) + ((logtest? (penetrate jak-blue-shot) arg3) + (set! f0-2 196608.0) + 0.05 + ) + ((logtest? (penetrate jak-red-shot) arg3) + (set! f0-2 196608.0) + 0.05 + ) + ((logtest? (penetrate jak-dark-shot enemy-dark-shot) arg3) + (set! f0-2 393216.0) + 0.5 + ) + ((or (logtest? (penetrate explode) arg3) + (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (case (-> arg1 mode) + (('explode 'grenade 'melt 'ice) + #t + ) + ) + ) + ) + (set! f0-2 122880.0) + 1.0 + ) + ((logtest? arg3 (penetrate punch)) + (set! f0-2 40960.0) + 0.1 + ) + ((logtest? arg3 (penetrate flop spin)) + (set! f0-2 20480.0) + 0.05 + ) + (else + (set! f0-2 8192.0) + 0.01 ) ) - ) - (set! (-> s5-0 trans x) f0-2) - (apply-damage obj (* 0.667 f1-0) (the-as rigid-body-impact s5-0)) - ) - (rigid-body-object-method-42 obj) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s5-0 vector 2 quad)) - (vector-normalize! s3-1 1.0) - (vector-float*! s3-1 s3-1 (-> s5-0 trans x)) - (let ((v1-90 (-> obj rbody)) - (a1-11 (-> s5-0 vector)) - (a2-3 s3-1) - ) - (rigid-body-method-18 (-> v1-90 state) (the-as vector a1-11) a2-3) + ) ) - (let ((v1-93 (-> obj rbody)) - (f0-10 1.0) - ) - (rigid-body-method-12 (-> v1-93 state) f0-10) - ) - (rigid-body-method-13 (-> obj rbody state)) - (when #f - (set! (-> *debug-vehicle-work* impact-time) (-> pp clock frame-counter)) - (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) - (let ((v1-103 (-> arg2 head))) - (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-103 prim1 cprim prim-core world-sphere quad)) - (set! (-> *debug-vehicle-work* prim-sphere2 quad) (-> v1-103 prim2 cprim prim-core world-sphere quad)) - ) - (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (the-as vector (-> s5-0 vector)) - s3-1 - (meters 0.00024414062) - *color-blue* - ) - ) - ) - (rigid-body-object-method-45 obj (the-as rigid-body-impact s5-0)) + (set! (-> s5-0 trans x) f0-2) + (apply-damage obj (* 0.667 f1-0) (the-as rigid-body-impact s5-0)) ) - (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) - (go (method-of-object obj waiting)) + (rigid-body-object-method-42 obj) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s5-0 vector 2 quad)) + (vector-normalize! s3-1 1.0) + (vector-float*! s3-1 s3-1 (-> s5-0 trans x)) + (let ((v1-90 (-> obj rbody)) + (a1-11 (-> s5-0 vector)) + (a2-3 s3-1) + ) + (rigid-body-method-18 (-> v1-90 state) (the-as vector a1-11) a2-3) ) - #t + (let ((v1-93 (-> obj rbody)) + (f0-10 1.0) + ) + (rigid-body-method-12 (-> v1-93 state) f0-10) + ) + (rigid-body-method-13 (-> obj rbody state)) + (when #f + (set! (-> *debug-vehicle-work* impact-time) (current-time)) + (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) + (let ((v1-103 (-> arg2 head))) + (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-103 prim1 cprim prim-core world-sphere quad)) + (set! (-> *debug-vehicle-work* prim-sphere2 quad) (-> v1-103 prim2 cprim prim-core world-sphere quad)) + ) + (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector (-> s5-0 vector)) + s3-1 + (meters 0.00024414062) + *color-blue* + ) + ) + ) + (rigid-body-object-method-45 obj (the-as rigid-body-impact s5-0)) ) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (go (method-of-object obj waiting)) + ) + #t ) ) @@ -1690,8 +1676,8 @@ (set! v1-30 (!= arg0 *target*)) (label cfg-13) (b! (not v1-30) cfg-25 :delay (empty-form)) - (when (>= (- (-> pp clock frame-counter) (-> obj sent-attack-time)) (seconds 0.5)) - (set! (-> obj sent-attack-time) (-> pp clock frame-counter)) + (when (>= (- (current-time) (-> obj sent-attack-time)) (seconds 0.5)) + (set! (-> obj sent-attack-time) (current-time)) (let* ((v1-39 *game-info*) (a0-18 (+ (-> v1-39 attack-id) 1)) ) @@ -1740,7 +1726,7 @@ ) (rigid-body-method-13 (-> obj rbody state)) (when #f - (set! (-> *debug-vehicle-work* impact-time) (-> pp clock frame-counter)) + (set! (-> *debug-vehicle-work* impact-time) (current-time)) (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) (let ((v1-73 (-> arg1 head))) (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-73 prim1 cprim prim-core world-sphere quad)) @@ -1847,7 +1833,7 @@ ) ((= v1-19 'turbo-ring) (set! (-> obj turbo-boost-factor) (the-as float (-> arg3 param 0))) - (set! (-> obj turbo-boost-time) (-> self clock frame-counter)) + (set! (-> obj turbo-boost-time) (current-time)) (set! (-> obj turbo-boost-duration) (the-as uint 75)) (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) diff --git a/goal_src/jak2/levels/city/farm/ctyfarm-obs.gc b/goal_src/jak2/levels/city/farm/ctyfarm-obs.gc index d2f68d9d4e..7598597a5d 100644 --- a/goal_src/jak2/levels/city/farm/ctyfarm-obs.gc +++ b/goal_src/jak2/levels/city/farm/ctyfarm-obs.gc @@ -901,21 +901,19 @@ ;; WARN: Return type mismatch float vs none. (defmethod shaker-method-9 shaker ((obj shaker)) - (with-pp - (let ((s5-0 (- (-> pp clock frame-counter) (-> obj start-time)))) - (set! (-> obj shake) (* (-> obj amplitude) - (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj decay-time)) - (cos (* 65536.0 (/ (the float s5-0) (-> obj freq)))) + (let ((s5-0 (- (current-time) (-> obj start-time)))) + (set! (-> obj shake) (* (-> obj amplitude) + (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj decay-time)) + (cos (* 65536.0 (/ (the float s5-0) (-> obj freq)))) + ) + ) + (set! (-> obj y-shake) (* (-> obj y-amplitude) + (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj y-decay-time)) + (cos (* 65536.0 (/ (the float s5-0) (-> obj y-freq)))) ) - ) - (set! (-> obj y-shake) (* (-> obj y-amplitude) - (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj y-decay-time)) - (cos (* 65536.0 (/ (the float s5-0) (-> obj y-freq)))) - ) - ) - ) - (none) + ) ) + (none) ) ;; WARN: Return type mismatch int vs knocked-type. @@ -995,27 +993,23 @@ (defun farm-marrow-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-marrow (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-marrow (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate die (farm-marrow) @@ -1071,7 +1065,7 @@ ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1084,7 +1078,7 @@ ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 450.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 1820.4445) @@ -1097,7 +1091,7 @@ ) (let ((v1-16 (-> self shakers 2))) (set! (-> v1-16 axis quad) (-> gp-4 quad)) - (set! (-> v1-16 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-16 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-16 decay-time) 600.0) (set! (-> v1-16 freq) 150.0) (set! (-> v1-16 amplitude) 1820.4445) @@ -1110,7 +1104,7 @@ ) (let ((v1-19 (-> self shakers 3))) (set! (-> v1-19 axis quad) (-> gp-4 quad)) - (set! (-> v1-19 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-19 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-19 decay-time) 300.0) (set! (-> v1-19 freq) 150.0) (set! (-> v1-19 amplitude) 910.2222) @@ -1125,7 +1119,7 @@ ) (let ((v1-22 (-> self shakers 4))) (set! (-> v1-22 axis quad) (-> gp-4 quad)) - (set! (-> v1-22 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-22 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-22 decay-time) 600.0) (set! (-> v1-22 freq) 150.0) (set! (-> v1-22 amplitude) 910.2222) @@ -1299,27 +1293,23 @@ This commonly includes things such as: (defun farm-beetree-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-beetree (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-beetree (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate die (farm-beetree) @@ -1375,7 +1365,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1388,7 +1378,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 600.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 364.0889) @@ -1557,27 +1547,23 @@ This commonly includes things such as: (defun farm-cabbage-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-cabbage (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-cabbage (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate die (farm-cabbage) @@ -1633,7 +1619,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1646,7 +1632,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 600.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 364.0889) @@ -1817,27 +1803,23 @@ This commonly includes things such as: (defun farm-small-cabbage-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-small-cabbage (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-small-cabbage (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate die (farm-small-cabbage) @@ -1893,7 +1875,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 910.2222) @@ -2062,27 +2044,23 @@ This commonly includes things such as: (defun farm-chilirots-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-chilirots (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-chilirots (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate die (farm-chilirots) @@ -2138,7 +2116,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -2151,7 +2129,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 450.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 1820.4445) @@ -2166,7 +2144,7 @@ This commonly includes things such as: ) (let ((v1-16 (-> self shakers 2))) (set! (-> v1-16 axis quad) (-> gp-4 quad)) - (set! (-> v1-16 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-16 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-16 decay-time) 600.0) (set! (-> v1-16 freq) 150.0) (set! (-> v1-16 amplitude) 1820.4445) @@ -2181,7 +2159,7 @@ This commonly includes things such as: ) (let ((v1-19 (-> self shakers 3))) (set! (-> v1-19 axis quad) (-> gp-4 quad)) - (set! (-> v1-19 start-time) (+ (-> self clock frame-counter) (seconds -0.18))) + (set! (-> v1-19 start-time) (+ (current-time) (seconds -0.18))) (set! (-> v1-19 decay-time) 750.0) (set! (-> v1-19 freq) 150.0) (set! (-> v1-19 amplitude) 1820.4445) diff --git a/goal_src/jak2/levels/city/farm/yakow.gc b/goal_src/jak2/levels/city/farm/yakow.gc index 2bf696afe5..9b7f7ef0be 100644 --- a/goal_src/jak2/levels/city/farm/yakow.gc +++ b/goal_src/jak2/levels/city/farm/yakow.gc @@ -296,7 +296,7 @@ ) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -307,7 +307,7 @@ (defstate active (yakow) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (< (the-as int (-> self focus aware)) 1) (go-virtual idle) ) @@ -431,7 +431,7 @@ (set! (-> v1-0 nav callback-info) *nav-enemy-null-callback-info*) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/goal_src/jak2/levels/city/kid_escort/crocesc-states.gc b/goal_src/jak2/levels/city/kid_escort/crocesc-states.gc index 55158e8349..907627b416 100644 --- a/goal_src/jak2/levels/city/kid_escort/crocesc-states.gc +++ b/goal_src/jak2/levels/city/kid_escort/crocesc-states.gc @@ -14,7 +14,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -175,7 +175,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -233,7 +233,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -260,12 +260,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (go-idle-or-move self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -301,7 +299,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -331,12 +329,10 @@ (logclear! (-> self bot-flags) (bot-flags bf15)) (go-idle-or-move self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -398,7 +394,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -575,7 +571,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -661,7 +657,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -831,7 +827,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -849,7 +845,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) (none) @@ -875,7 +871,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -955,7 +951,7 @@ 0.0 (until #f (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1003,7 +999,7 @@ (defstate failed (crocadog-escort) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1022,7 +1018,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (not (logtest? (bot-flags bf19) (-> self bot-flags))) (set! (-> self bot-flags) (logior (bot-flags bf19) (-> self bot-flags))) (fail-mission! self) @@ -1041,7 +1037,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/city/kid_escort/hal4-course.gc b/goal_src/jak2/levels/city/kid_escort/hal4-course.gc index ca1224a39e..a9b2b0c9c8 100644 --- a/goal_src/jak2/levels/city/kid_escort/hal4-course.gc +++ b/goal_src/jak2/levels/city/kid_escort/hal4-course.gc @@ -80,25 +80,23 @@ (defmethod general-event-handler hal-escort ((obj hal-escort) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('notify) - (case (-> arg3 param 0) - (('arrest) - (set! (-> obj arrestor-handle) (process->handle (the-as process (-> arg3 param 1)))) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj arrestor-time) (the-as time-frame v0-0)) - v0-0 - ) + (case arg2 + (('notify) + (case (-> arg3 param 0) + (('arrest) + (set! (-> obj arrestor-handle) (process->handle (the-as process (-> arg3 param 1)))) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj arrestor-time) (the-as time-frame v0-0)) + v0-0 ) - (else - ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -114,50 +112,48 @@ ) (defmethod hal-escort-method-235 hal-escort ((obj hal-escort)) - (with-pp - (let* ((s5-0 (handle->process (-> obj arrestor-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) - ) - (when v1-3 - (cond - ((>= (- (-> pp clock frame-counter) (-> obj arrestor-time)) (seconds 4)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ((focus-test? (the-as process-focusable v1-3) hit) - (when (and (>= (- (-> pp clock frame-counter) (-> obj played-defend-time)) (seconds 6)) - (not (channel-active? obj (the-as uint 0))) - ) - (let ((a1-5 (bot-speech-list-method-9 - (-> obj hal4-course defend-speeches) - obj - (-> obj hal4-course speeches) - (speech-flags) - ) - ) + (let* ((s5-0 (handle->process (-> obj arrestor-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 ) - (when (>= a1-5 0) - (play-speech obj a1-5) - (set! (-> obj played-defend-time) (-> pp clock frame-counter)) + ) + ) + (when v1-3 + (cond + ((>= (- (current-time) (-> obj arrestor-time)) (seconds 4)) + (set! (-> obj arrestor-handle) (the-as handle #f)) + ) + ((focus-test? (the-as process-focusable v1-3) hit) + (when (and (>= (- (current-time) (-> obj played-defend-time)) (seconds 6)) + (not (channel-active? obj (the-as uint 0))) + ) + (let ((a1-5 (bot-speech-list-method-9 + (-> obj hal4-course defend-speeches) + obj + (-> obj hal4-course speeches) + (speech-flags) + ) + ) ) + (when (>= a1-5 0) + (play-speech obj a1-5) + (set! (-> obj played-defend-time) (current-time)) ) ) - (set! (-> obj arrestor-handle) (the-as handle #f)) ) - ) + (set! (-> obj arrestor-handle) (the-as handle #f)) + ) ) ) - (if (and (not (speech-playing? obj 30)) - (nonzero? (-> obj played-defend-time)) - (>= (- (-> pp clock frame-counter) (-> obj played-defend-time)) (seconds 3)) - (not (channel-active? obj (the-as uint 0))) - ) - (play-speech obj 30) - ) - (none) ) + (if (and (not (speech-playing? obj 30)) + (nonzero? (-> obj played-defend-time)) + (>= (- (current-time) (-> obj played-defend-time)) (seconds 3)) + (not (channel-active? obj (the-as uint 0))) + ) + (play-speech obj 30) + ) + (none) ) (defmethod vehicle-destroyed? hal-escort ((obj hal-escort)) @@ -167,38 +163,36 @@ ) (defmethod hal-escort-method-227 hal-escort ((obj hal-escort)) - (with-pp - (let ((s5-0 *target*)) - (when (focus-test? s5-0 pilot-riding pilot) - (let* ((a0-2 (-> obj actor-group 0 data 1 actor)) - (v1-5 (when a0-2 - (let ((s4-0 (-> a0-2 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (let ((s5-0 *target*)) + (when (focus-test? s5-0 pilot-riding pilot) + (let* ((a0-2 (-> obj actor-group 0 data 1 actor)) + (v1-5 (when a0-2 + (let ((s4-0 (-> a0-2 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - ) - (when (focus-test? (the-as process-focusable v1-5) pilot-riding pilot) - (let* ((v1-12 (-> obj actor-group 0 data 2 actor)) - (a0-5 (when v1-12 - (let ((s4-1 (-> v1-12 extra process))) - (if (type? s4-1 process-focusable) - s4-1 - ) - ) + ) + ) + (when (focus-test? (the-as process-focusable v1-5) pilot-riding pilot) + (let* ((v1-12 (-> obj actor-group 0 data 2 actor)) + (a0-5 (when v1-12 + (let ((s4-1 (-> v1-12 extra process))) + (if (type? s4-1 process-focusable) + s4-1 + ) ) ) - ) - (when (not (focus-test? (the-as process-focusable a0-5) pilot-riding pilot)) - (let ((f0-0 245760.0)) - (and (< (* f0-0 f0-0) - (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-5) 0) (get-trans s5-0 0)) - ) - (>= (-> pp clock frame-counter) (-> obj dont-fail-until)) ) - ) + ) + (when (not (focus-test? (the-as process-focusable a0-5) pilot-riding pilot)) + (let ((f0-0 245760.0)) + (and (< (* f0-0 f0-0) + (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-5) 0) (get-trans s5-0 0)) + ) + (>= (current-time) (-> obj dont-fail-until)) + ) ) ) ) @@ -210,32 +204,30 @@ ;; WARN: Return type mismatch object vs symbol. (defmethod hal-escort-method-228 hal-escort ((obj hal-escort)) - (with-pp - (let* ((v1-3 (-> obj actor-group 0 data 1 actor)) - (a0-1 (when v1-3 - (let ((s5-0 (-> v1-3 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((v1-3 (-> obj actor-group 0 data 1 actor)) + (a0-1 (when v1-3 + (let ((s5-0 (-> v1-3 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) ) ) - (s5-1 *target*) - ) - (the-as - symbol - (and a0-1 - (and s5-1 - (let ((f0-0 409600.0)) - (and (< (* f0-0 f0-0) - (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (get-trans s5-1 0)) - ) - (>= (-> pp clock frame-counter) (-> obj dont-fail-until)) - ) - ) + ) + (s5-1 *target*) + ) + (the-as + symbol + (and a0-1 + (and s5-1 + (let ((f0-0 409600.0)) + (and (< (* f0-0 f0-0) + (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (get-trans s5-1 0)) + ) + (>= (current-time) (-> obj dont-fail-until)) + ) ) - ) - ) + ) + ) ) ) ) @@ -340,60 +332,58 @@ ) (defmethod hal-escort-method-232 hal-escort ((obj hal-escort)) - (with-pp - (let* ((target *target*) - (v1-3 (-> obj actor-group 0 data 1 actor)) - (s5-0 (when v1-3 - (let ((s3-0 (-> v1-3 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((target *target*) + (v1-3 (-> obj actor-group 0 data 1 actor)) + (s5-0 (when v1-3 + (let ((s3-0 (-> v1-3 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - (a0-2 (-> obj actor-group 0 data 2 actor)) - (v1-8 (when a0-2 - (let ((s3-1 (-> a0-2 extra process))) - (if (type? s3-1 process-focusable) - s3-1 - ) - ) + ) + (a0-2 (-> obj actor-group 0 data 2 actor)) + (v1-8 (when a0-2 + (let ((s3-1 (-> a0-2 extra process))) + (if (type? s3-1 process-focusable) + s3-1 + ) ) ) + ) + ) + (when target + (cond + ((not (-> *setting-control* user-current pilot-exit)) + (when (and s5-0 + v1-8 + (not (focus-test? (the-as process-focusable s5-0) pilot-riding)) + (not (focus-test? (the-as process-focusable v1-8) pilot-riding)) + (>= (- (current-time) (-> obj locked-player-time)) (seconds 10)) + ) + (remove-setting! 'pilot-exit) + (set-setting! 'pilot #f 0.0 0) + (apply-settings *setting-control*) ) - (when target - (cond - ((not (-> *setting-control* user-current pilot-exit)) - (when (and s5-0 - v1-8 - (not (focus-test? (the-as process-focusable s5-0) pilot-riding)) - (not (focus-test? (the-as process-focusable v1-8) pilot-riding)) - (>= (- (-> pp clock frame-counter) (-> obj locked-player-time)) (seconds 10)) - ) - (remove-setting! 'pilot-exit) - (set-setting! 'pilot #f 0.0 0) - (apply-settings *setting-control*) - ) + ) + ((focus-test? target pilot-riding) + (when (and (nonzero? (-> target pilot)) + (and (= (handle->process (-> target pilot vehicle)) (handle->process (-> obj vehicle-handle))) + (or (and s5-0 (focus-test? (the-as process-focusable s5-0) pilot)) + (and v1-8 (focus-test? (the-as process-focusable v1-8) pilot)) + ) + ) + ) + (set-setting! 'pilot-exit #f 0.0 0) + (apply-settings *setting-control*) + (set! (-> obj locked-player-time) (current-time)) ) - ((focus-test? target pilot-riding) - (when (and (nonzero? (-> target pilot)) - (and (= (handle->process (-> target pilot vehicle)) (handle->process (-> obj vehicle-handle))) - (or (and s5-0 (focus-test? (the-as process-focusable s5-0) pilot)) - (and v1-8 (focus-test? (the-as process-focusable v1-8) pilot)) - ) - ) - ) - (set-setting! 'pilot-exit #f 0.0 0) - (apply-settings *setting-control*) - (set! (-> obj locked-player-time) (-> pp clock frame-counter)) - ) - ) - ) + ) ) ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch object vs none. @@ -958,36 +948,34 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (if (and (not (speech-playing? arg1 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 3) - ) - (when (hal-escort-method-228 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 28 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) + (if (and (not (speech-playing? arg1 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 3) ) - (when (speech-playing? arg1 3) - (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) - (a0-11 (when v1-27 - (let ((s5-0 (-> v1-27 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (when (hal-escort-method-228 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 28 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (when (speech-playing? arg1 3) + (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) + (a0-11 (when v1-27 + (let ((s5-0 (-> v1-27 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) ) ) - ) - (when (and a0-11 (>= (the-as int (send-event a0-11 'query 'waypoint)) 6)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 6 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + ) + ) + (when (and a0-11 (>= (the-as int (send-event a0-11 'query 'waypoint)) 6)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 6 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1153,36 +1141,34 @@ ) :on-update (lambda ((arg0 hal-escort)) (set-traffic-danger! arg0) (hal-escort-method-235 arg0) (none)) :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 10))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip0")) - (let* ((v1-16 (-> arg0 actor-group 0 data 2 actor)) - (s5-1 (when v1-16 - (let ((s4-0 (-> v1-16 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 10))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip0")) + (let* ((v1-16 (-> arg0 actor-group 0 data 2 actor)) + (s5-1 (when v1-16 + (let ((s4-0 (-> v1-16 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-21 (-> arg0 actor-group 0 data 1 actor)) - (s4-1 (when v1-21 - (let ((s3-0 (-> v1-21 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + ) + (v1-21 (-> arg0 actor-group 0 data 1 actor)) + (s4-1 (when v1-21 + (let ((s3-0 (-> v1-21 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - ) - (send-event s5-1 'skip) - (send-event s4-1 'skip) - ) - (init-traffic-params! arg0 #f) - (none) + ) + ) + (send-event s5-1 'skip) + (send-event s4-1 'skip) ) + (init-traffic-params! arg0 #f) + (none) ) :check-too-far #f ) @@ -1205,90 +1191,88 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (hal-escort-method-232 arg1) - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (not (-> *setting-control* user-current pilot-exit))) - (send-event (handle->process (-> arg1 arrow-handle)) 'set-position (-> arg1 hal4-course spots 6)) - (logior! (-> arg1 waypoint-bits) 1) - ) - (if (and (not (speech-playing? arg1 14)) - (not (-> *setting-control* user-current pilot-exit)) - (>= (- (-> pp clock frame-counter) (-> arg1 locked-player-time)) (seconds 1.5)) - ) - (play-speech arg1 14) - ) - (when (vehicle-destroyed? arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 29 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (let* ((v1-45 (-> arg1 actor-group 0 data 1 actor)) - (s5-0 (when v1-45 - (let ((s4-0 (-> v1-45 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - ) - (v1-50 (-> arg1 actor-group 0 data 2 actor)) - (s4-1 (when v1-50 - (let ((s3-0 (-> v1-50 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) + (hal-escort-method-232 arg1) + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (not (-> *setting-control* user-current pilot-exit))) + (send-event (handle->process (-> arg1 arrow-handle)) 'set-position (-> arg1 hal4-course spots 6)) + (logior! (-> arg1 waypoint-bits) 1) + ) + (if (and (not (speech-playing? arg1 14)) + (not (-> *setting-control* user-current pilot-exit)) + (>= (- (current-time) (-> arg1 locked-player-time)) (seconds 1.5)) ) - (let ((s3-1 #f)) - (let* ((s1-0 (handle->process (-> arg1 vehicle-handle))) - (s2-0 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when s2-0 - (let ((s1-1 (get-trans (the-as process-focusable s2-0) 0)) - (s0-0 (-> arg1 hal4-course spots 7)) - ) - (if (and (>= (-> arg1 hal4-course spots 7 center w) (vector-vector-xz-distance s1-1 (the-as vector s0-0))) - (>= 16384.0 (- (-> s1-1 y) (-> s0-0 center y))) - (>= 61440.0 (vector-length (-> (the-as process-focusable s2-0) root-override transv))) - (>= 1.0 (vector-length (-> (the-as process-focusable s2-0) rbody state ang-velocity))) + (play-speech arg1 14) + ) + (when (vehicle-destroyed? arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 29 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (let* ((v1-45 (-> arg1 actor-group 0 data 1 actor)) + (s5-0 (when v1-45 + (let ((s4-0 (-> v1-45 extra process))) + (if (type? s4-0 process-focusable) + s4-0 ) - (set! s3-1 #t) - ) - ) + ) + ) + ) + (v1-50 (-> arg1 actor-group 0 data 2 actor)) + (s4-1 (when v1-50 + (let ((s3-0 (-> v1-50 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (let ((s3-1 #f)) + (let* ((s1-0 (handle->process (-> arg1 vehicle-handle))) + (s2-0 (if (type? s1-0 process-focusable) + s1-0 + ) + ) + ) + (when s2-0 + (let ((s1-1 (get-trans (the-as process-focusable s2-0) 0)) + (s0-0 (-> arg1 hal4-course spots 7)) + ) + (if (and (>= (-> arg1 hal4-course spots 7 center w) (vector-vector-xz-distance s1-1 (the-as vector s0-0))) + (>= 16384.0 (- (-> s1-1 y) (-> s0-0 center y))) + (>= 61440.0 (vector-length (-> (the-as process-focusable s2-0) root-override transv))) + (>= 1.0 (vector-length (-> (the-as process-focusable s2-0) rbody state ang-velocity))) + ) + (set! s3-1 #t) + ) ) ) - (if (focus-test? (the-as process-focusable s5-0) pilot) - (send-event s5-0 'request 'exit-vehicle s3-1 1) - ) - (if (focus-test? (the-as process-focusable s5-0) pilot) - (send-event s4-1 'request 'exit-vehicle s3-1 1) - ) - (if (and (not (speech-playing? arg1 7)) - (not (focus-test? (the-as process-focusable s4-1) pilot-riding)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) - s3-1 - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 7) - ) - ) - (when (and (not (focus-test? (the-as process-focusable s4-1) pilot)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) - (not (focus-test? (the-as process-focusable s5-0) pilot)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s5-0) bot-flags))) - ) - (send-event *target* 'end-mode) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 19 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (focus-test? (the-as process-focusable s5-0) pilot) + (send-event s5-0 'request 'exit-vehicle s3-1 1) + ) + (if (focus-test? (the-as process-focusable s5-0) pilot) + (send-event s4-1 'request 'exit-vehicle s3-1 1) + ) + (if (and (not (speech-playing? arg1 7)) + (not (focus-test? (the-as process-focusable s4-1) pilot-riding)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) + s3-1 + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 7) + ) + ) + (when (and (not (focus-test? (the-as process-focusable s4-1) pilot)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) + (not (focus-test? (the-as process-focusable s5-0) pilot)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s5-0) bot-flags))) + ) + (send-event *target* 'end-mode) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 19 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1298,45 +1282,43 @@ (none) ) :on-update (lambda ((arg0 hal-escort)) - (with-pp - (when (and (not (speech-playing? arg0 31)) (not (speech-playing? arg0 32))) - (let ((v1-7 (handle->process (-> arg0 vehicle-handle)))) - (if (and v1-7 - (and (not (logtest? (-> (the-as vehicle v1-7) flags) (rigid-body-object-flag dead))) - (>= (vector-length (-> (the-as vehicle v1-7) root-override-2 transv)) 40960.0) - (not (channel-active? arg0 (the-as uint 0))) - ) - ) - (play-speech arg0 (if (zero? (get-rand-int arg0 2)) - 32 - 31 + (when (and (not (speech-playing? arg0 31)) (not (speech-playing? arg0 32))) + (let ((v1-7 (handle->process (-> arg0 vehicle-handle)))) + (if (and v1-7 + (and (not (logtest? (-> (the-as vehicle v1-7) flags) (rigid-body-object-flag dead))) + (>= (vector-length (-> (the-as vehicle v1-7) root-override-2 transv)) 40960.0) + (not (channel-active? arg0 (the-as uint 0))) + ) + ) + (play-speech arg0 (if (zero? (get-rand-int arg0 2)) + 32 + 31 + ) + ) + ) + ) + ) + (when (and (zero? (-> arg0 locked-player-time)) + (or (not (speech-playing? arg0 33)) (not (speech-playing? arg0 34))) + (>= (- (current-time) (-> arg0 played-get-in-time)) (seconds 6)) + (not (channel-active? arg0 (the-as uint 0))) + ) + (let ((a0-18 (handle->process (-> arg0 vehicle-handle)))) + (when a0-18 + (let ((f0-1 (vector-vector-xz-distance (get-trans (the-as vehicle a0-18) 0) (target-pos 0)))) + (when (and (< 28672.0 f0-1) (< f0-1 184320.0)) + (play-speech arg0 (if (speech-playing? arg0 33) + 34 + 33 ) ) - ) - ) - ) - (when (and (zero? (-> arg0 locked-player-time)) - (or (not (speech-playing? arg0 33)) (not (speech-playing? arg0 34))) - (>= (- (-> pp clock frame-counter) (-> arg0 played-get-in-time)) (seconds 6)) - (not (channel-active? arg0 (the-as uint 0))) - ) - (let ((a0-18 (handle->process (-> arg0 vehicle-handle)))) - (when a0-18 - (let ((f0-1 (vector-vector-xz-distance (get-trans (the-as vehicle a0-18) 0) (target-pos 0)))) - (when (and (< 28672.0 f0-1) (< f0-1 184320.0)) - (play-speech arg0 (if (speech-playing? arg0 33) - 34 - 33 - ) - ) - (set! (-> arg0 played-get-in-time) (-> pp clock frame-counter)) - ) + (set! (-> arg0 played-get-in-time) (current-time)) ) ) ) ) - (none) ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -1354,40 +1336,38 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (if (!= (level-status *level* 'ctyinda) 'active) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) - (let* ((v1-11 (-> arg1 actor-group 0 data 2 actor)) - (s5-1 (when v1-11 - (let ((s4-0 (-> v1-11 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - ) - (v1-16 (-> arg1 actor-group 0 data 1 actor)) - (s4-1 (when v1-16 - (let ((s3-0 (-> v1-16 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) - ) - (send-event s5-1 'hide #f) - (send-event s4-1 'hide #f) - (send-event s5-1 'skip) - (send-event s4-1 'skip) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 19 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (!= (level-status *level* 'ctyinda) 'active) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25)) + (let* ((v1-11 (-> arg1 actor-group 0 data 2 actor)) + (s5-1 (when v1-11 + (let ((s4-0 (-> v1-11 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + ) + (v1-16 (-> arg1 actor-group 0 data 1 actor)) + (s4-1 (when v1-16 + (let ((s3-0 (-> v1-16 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (send-event s5-1 'hide #f) + (send-event s4-1 'hide #f) + (send-event s5-1 'skip) + (send-event s4-1 'skip) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 19 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1397,38 +1377,36 @@ ) :on-update #f :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 15))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (let* ((v1-10 (-> arg0 actor-group 0 data 2 actor)) - (s5-0 (when v1-10 - (let ((s4-0 (-> v1-10 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 15))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (let* ((v1-10 (-> arg0 actor-group 0 data 2 actor)) + (s5-0 (when v1-10 + (let ((s4-0 (-> v1-10 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-15 (-> arg0 actor-group 0 data 1 actor)) - (s4-1 (when v1-15 - (let ((s3-0 (-> v1-15 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + ) + (v1-15 (-> arg0 actor-group 0 data 1 actor)) + (s4-1 (when v1-15 + (let ((s3-0 (-> v1-15 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - ) - (vector-reset! (-> (the-as process-focusable s5-0) root-override transv)) - (vector-reset! (-> (the-as process-focusable s4-1) root-override transv)) - (send-event s5-0 'hide #t) - (send-event s4-1 'hide #t) - ) - (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) - (none) + ) + ) + (vector-reset! (-> (the-as process-focusable s5-0) root-override transv)) + (vector-reset! (-> (the-as process-focusable s4-1) root-override transv)) + (send-event s5-0 'hide #t) + (send-event s4-1 'hide #t) ) + (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) + (none) ) :check-too-far #f ) @@ -1455,47 +1433,45 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (when (and (not (speech-playing? arg1 4)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (not (channel-active? arg1 (the-as uint 0))) + (when (and (not (speech-playing? arg1 4)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 15) + (play-speech arg1 4) + ) + (when (hal-escort-method-228 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 31 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) + (s4-0 (when v1-27 + (let ((s5-0 (-> v1-27 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + ) + (v1-32 (-> arg1 actor-group 0 data 1 actor)) + (s5-1 (when v1-32 + (let ((s3-0 (-> v1-32 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (when (and (and s4-0 (>= (the-as int (send-event s4-0 'query 'waypoint)) 25)) + (and s5-1 (>= (the-as int (send-event s5-1 'query 'waypoint)) 25)) ) - (play-speech arg1 15) - (play-speech arg1 4) - ) - (when (hal-escort-method-228 arg1) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 31 #f) + (go-to-waypoint! arg1 25 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) - (s4-0 (when v1-27 - (let ((s5-0 (-> v1-27 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) - ) - ) - (v1-32 (-> arg1 actor-group 0 data 1 actor)) - (s5-1 (when v1-32 - (let ((s3-0 (-> v1-32 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) - ) - (when (and (and s4-0 (>= (the-as int (send-event s4-0 'query 'waypoint)) 25)) - (and s5-1 (>= (the-as int (send-event s5-1 'query 'waypoint)) 25)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 25 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + #t ) ) ) @@ -1511,36 +1487,34 @@ (none) ) :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 15))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) - (let* ((v1-23 (-> arg0 actor-group 0 data 2 actor)) - (s5-1 (when v1-23 - (let ((s4-0 (-> v1-23 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 15))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) + (let* ((v1-23 (-> arg0 actor-group 0 data 2 actor)) + (s5-1 (when v1-23 + (let ((s4-0 (-> v1-23 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-28 (-> arg0 actor-group 0 data 1 actor)) - (gp-1 (when v1-28 - (let ((s4-1 (-> v1-28 extra process))) - (if (type? s4-1 process-focusable) - s4-1 - ) - ) + ) + (v1-28 (-> arg0 actor-group 0 data 1 actor)) + (gp-1 (when v1-28 + (let ((s4-1 (-> v1-28 extra process))) + (if (type? s4-1 process-focusable) + s4-1 + ) ) ) - ) - (send-event s5-1 'skip) - (send-event gp-1 'skip) - ) - (none) + ) + ) + (send-event s5-1 'skip) + (send-event gp-1 'skip) ) + (none) ) :check-too-far 'hal4-walking-too-far ) @@ -1698,7 +1672,7 @@ ) ) (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) ) (logior! (-> arg1 waypoint-bits) 2) (let ((s5-0 *traffic-manager*)) @@ -1709,7 +1683,7 @@ ) ) (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.2)) ) (let* ((v1-55 (-> arg1 actor-group 0 data 2 actor)) (s5-1 (when v1-55 @@ -1737,7 +1711,7 @@ (send-event s5-1 'request 'waypoint 26) ) ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "dig-knock-down-scaffolding-intro" #t) ) @@ -1839,7 +1813,7 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) (set! (-> a1-1 num-params) 0) diff --git a/goal_src/jak2/levels/city/kid_escort/kidesc-states.gc b/goal_src/jak2/levels/city/kid_escort/kidesc-states.gc index 3cd2a4cdff..b03ed7032b 100644 --- a/goal_src/jak2/levels/city/kid_escort/kidesc-states.gc +++ b/goal_src/jak2/levels/city/kid_escort/kidesc-states.gc @@ -11,7 +11,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -92,7 +92,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -154,7 +154,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -187,12 +187,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (check-arrest self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -226,7 +224,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -263,12 +261,10 @@ (logclear! (-> self bot-flags) (bot-flags bf15)) (check-arrest self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -328,7 +324,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -480,7 +476,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -566,7 +562,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -724,7 +720,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -749,7 +745,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (if (logtest? (-> self bot-flags) (bot-flags bf15)) (go-virtual move-to-vehicle) (go-virtual traveling) @@ -787,7 +783,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (not (nav-enemy-method-163 self)) (if (logtest? (-> self bot-flags) (bot-flags bf15)) (go-virtual move-to-vehicle) @@ -859,7 +855,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -948,7 +944,7 @@ (when (not (logtest? (bot-flags bf19) (-> self bot-flags))) (until #f (until (ja-done? 0) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2.5)) (goto cfg-27) ) (suspend) @@ -973,11 +969,11 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1029,7 +1025,7 @@ (until #f (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1067,7 +1063,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/city/kid_escort/kidesc4-course.gc b/goal_src/jak2/levels/city/kid_escort/kidesc4-course.gc index 8accc5f6ba..2dec43e24b 100644 --- a/goal_src/jak2/levels/city/kid_escort/kidesc4-course.gc +++ b/goal_src/jak2/levels/city/kid_escort/kidesc4-course.gc @@ -365,15 +365,13 @@ (the-as (function kidesct-wait-spot kid-escort symbol) (lambda ((arg0 object) (arg1 kid-escort)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (let ((v1-4 (-> arg1 spot))) - (set! (-> v1-4 center quad) (-> arg1 root-override2 trans quad)) - (set! (-> v1-4 center w) 20480.0) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (let ((v1-4 (-> arg1 spot))) + (set! (-> v1-4 center quad) (-> arg1 root-override2 trans quad)) + (set! (-> v1-4 center w) 20480.0) ) - #f ) + #f ) ) ) diff --git a/goal_src/jak2/levels/city/market/ctymark-obs.gc b/goal_src/jak2/levels/city/market/ctymark-obs.gc index 91a42d52b5..0fc33a5351 100644 --- a/goal_src/jak2/levels/city/market/ctymark-obs.gc +++ b/goal_src/jak2/levels/city/market/ctymark-obs.gc @@ -1046,8 +1046,8 @@ :to self ) (process-entity-status! self (entity-perm-status dead) #t) - (let ((frame (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame) (seconds 5)) + (let ((frame (current-time))) + (until (>= (- (current-time) frame) (seconds 5)) (suspend) ) ) diff --git a/goal_src/jak2/levels/city/market/east/ashelin/ash4-course.gc b/goal_src/jak2/levels/city/market/east/ashelin/ash4-course.gc index 0c44e6797c..b3c3e74308 100644 --- a/goal_src/jak2/levels/city/market/east/ashelin/ash4-course.gc +++ b/goal_src/jak2/levels/city/market/east/ashelin/ash4-course.gc @@ -328,52 +328,50 @@ :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 ashelin-tanker)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (ashelin-method-250 arg0 #f) - (task-node-close! (game-task-node city-intercept-tanker-battle)) - (remove-setting! 'sound-mode) - (remove-setting! 'music) - (when (not (channel-active? arg0 (the-as uint 0))) - (let ((v1-12 (get-rand-int arg0 3))) - (cond - ((zero? v1-12) - (play-speech arg0 42) - ) - ((= v1-12 1) - (play-speech arg0 43) - ) - (else - (play-speech arg0 44) - ) + (set! (-> arg0 waypoint-time0) (current-time)) + (ashelin-method-250 arg0 #f) + (task-node-close! (game-task-node city-intercept-tanker-battle)) + (remove-setting! 'sound-mode) + (remove-setting! 'music) + (when (not (channel-active? arg0 (the-as uint 0))) + (let ((v1-12 (get-rand-int arg0 3))) + (cond + ((zero? v1-12) + (play-speech arg0 42) + ) + ((= v1-12 1) + (play-speech arg0 43) + ) + (else + (play-speech arg0 44) ) ) ) - (let ((v1-20 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0))) - (set! (-> v1-20 bytes 5) 1) - (set! (-> v1-20 bytes 6) 0) - (set! (-> v1-20 bytes 4) -1) - (set! (-> (the-as asht-wait-spot v1-20) check-done) - (the-as - (function asht-wait-spot ashelin symbol) - (lambda ((arg0 object) (arg1 ashelin-tanker)) - (let ((s5-0 (get-current-task-event (-> arg1 task)))) - (when (and (= (-> s5-0 action) (game-task-action say)) - (not (channel-active? arg1 (the-as uint 0))) - (scene-play arg1 (the-as string (-> s5-0 scene)) #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 7 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + ) + (let ((v1-20 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0))) + (set! (-> v1-20 bytes 5) 1) + (set! (-> v1-20 bytes 6) 0) + (set! (-> v1-20 bytes 4) -1) + (set! (-> (the-as asht-wait-spot v1-20) check-done) + (the-as + (function asht-wait-spot ashelin symbol) + (lambda ((arg0 object) (arg1 ashelin-tanker)) + (let ((s5-0 (get-current-task-event (-> arg1 task)))) + (when (and (= (-> s5-0 action) (game-task-action say)) + (not (channel-active? arg1 (the-as uint 0))) + (scene-play arg1 (the-as string (-> s5-0 scene)) #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 7 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update (lambda ((arg0 ashelin-tanker)) (suppress-traffic arg0) diff --git a/goal_src/jak2/levels/city/market/east/ashelin/ctyasha-obs.gc b/goal_src/jak2/levels/city/market/east/ashelin/ctyasha-obs.gc index 9cb0e465c7..570e084c9c 100644 --- a/goal_src/jak2/levels/city/market/east/ashelin/ctyasha-obs.gc +++ b/goal_src/jak2/levels/city/market/east/ashelin/ctyasha-obs.gc @@ -1504,7 +1504,7 @@ This commonly includes things such as: (set! (-> a1-5 tlist) *touching-list*) (find-overlapping-shapes (-> self root-override) a1-5) ) - (if (>= (-> self clock frame-counter) (-> self die-time)) + (if (>= (current-time) (-> self die-time)) (go-virtual die-fast) ) (none) @@ -1522,7 +1522,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch object vs none. (defbehavior tanker-deadly-init-by-other tanker-deadly ((arg0 vector) (arg1 int) (arg2 int)) (set! (-> self track-joint) arg1) - (set! (-> self die-time) (+ (-> self clock frame-counter) arg2)) + (set! (-> self die-time) (+ (current-time) arg2)) (let* ((v1-3 *game-info*) (a0-2 (+ (-> v1-3 attack-id) 1)) ) diff --git a/goal_src/jak2/levels/city/market/west/brutter_kiosk/meet-brutter.gc b/goal_src/jak2/levels/city/market/west/brutter_kiosk/meet-brutter.gc index 71b6972fa0..2dbfe6feb5 100644 --- a/goal_src/jak2/levels/city/market/west/brutter_kiosk/meet-brutter.gc +++ b/goal_src/jak2/levels/city/market/west/brutter_kiosk/meet-brutter.gc @@ -1201,7 +1201,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-31 (-> self root-override2 root-prim))) (set! (-> v1-31 prim-core collide-as) (collide-spec)) (set! (-> v1-31 prim-core collide-with) (collide-spec)) @@ -1254,14 +1254,14 @@ ) (let ((s5-3 (new 'stack-no-clear 'vector))) (let ((s4-0 (new 'stack-no-clear 'quaternion))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (civilian-method-217 self s5-3)) (let ((s3-0 (handle->process (-> self vehicle)))) (new 'stack-no-clear 'vector) (quaternion-copy! (-> self root-override2 quat) (-> (the-as vehicle s3-0) root-override-2 quat)) (compute-seat-position (the-as vehicle s3-0) (-> self root-override2 trans) (-> self seat)) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual ride) ) (suspend) @@ -1322,7 +1322,7 @@ ) ) (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-15 (-> self nav))) (set! (-> v1-15 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1474,7 +1474,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) (set! (-> v1-6 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1532,7 +1532,7 @@ (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag vulnerable)))) (send-event self 'jump 0 (-> self end-pos)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) (go-virtual wait-at-end) @@ -1571,7 +1571,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) (set! (-> v1-6 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1711,7 +1711,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logclear! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1850,7 +1850,7 @@ (citizen-init! self) (set! (-> self hit-points) 100) (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-8 (-> self root-override2 root-prim))) (set! (-> v1-8 prim-core collide-as) (collide-spec)) (set! (-> v1-8 prim-core collide-with) (collide-spec)) @@ -2381,7 +2381,7 @@ (cond ((= (-> self data-int32 (-> gp-0 index)) -1) (+! (-> self data-int32 (-> gp-0 index)) 1) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 10) (seconds 20)))) + (set! (-> self beep-time) (+ (current-time) (rand-vu-int-range (seconds 10) (seconds 20)))) (let ((v1-14 (-> self data-int32 16))) (cond ((zero? v1-14) @@ -2395,7 +2395,7 @@ ) ) ) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 10) (seconds 20)))) + (set! (-> self beep-time) (+ (current-time) (rand-vu-int-range (seconds 10) (seconds 20)))) (+! (-> self data-int32 16) 1) ) ((= (-> self data-int32 (-> gp-0 index)) 1) @@ -2701,8 +2701,8 @@ (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-lurker :init hud-init-by-other :to self))) (suspend) (send-event *traffic-manager* 'set-target-level #x3f400000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -2725,8 +2725,8 @@ (send-event *traffic-manager* 'decrease-alert-level 0) (send-event *traffic-manager* 'set-alert-duration 9000) (send-event *target* 'end-mode) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (task-node-close! (game-task-node city-meet-brutter-meet-brutter)) @@ -3273,8 +3273,8 @@ (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-lurker :init hud-init-by-other :to self))) (suspend) (send-event *traffic-manager* 'set-target-level #x3f400000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -3294,7 +3294,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (let ((v1-2 0)) (dotimes (a0-0 6) diff --git a/goal_src/jak2/levels/city/misc/collection_task/collection-task.gc b/goal_src/jak2/levels/city/misc/collection_task/collection-task.gc index 306040994b..cb358d72cc 100644 --- a/goal_src/jak2/levels/city/misc/collection_task/collection-task.gc +++ b/goal_src/jak2/levels/city/misc/collection_task/collection-task.gc @@ -313,7 +313,7 @@ (when krew-item (set! (-> self slave 0) (process->handle krew-item)) (set! (-> self time-limit) (the-as time-frame (-> self data-int32 task-count))) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (+! (-> self count) 1) ) ) @@ -353,8 +353,8 @@ (ppointer->handle (process-spawn hud-moneybag :init hud-init-by-other :to *target*)) ) (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -377,8 +377,8 @@ () (send-event *traffic-manager* 'decrease-alert-level 0) (send-event *traffic-manager* 'set-alert-duration 9000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (talker-spawn-func (-> *talker-speech* 88) *entity-pool* (target-pos 0) (the-as region #f)) diff --git a/goal_src/jak2/levels/city/misc/delivery/delivery-task.gc b/goal_src/jak2/levels/city/misc/delivery/delivery-task.gc index 4b4c470a20..23f8f75aa1 100644 --- a/goal_src/jak2/levels/city/misc/delivery/delivery-task.gc +++ b/goal_src/jak2/levels/city/misc/delivery/delivery-task.gc @@ -521,8 +521,8 @@ This commonly includes things such as: (send-event *target* 'change-mode 'normal) ) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) diff --git a/goal_src/jak2/levels/city/onin_tent/onin-game.gc b/goal_src/jak2/levels/city/onin_tent/onin-game.gc index 60b21b4c23..db1232e674 100644 --- a/goal_src/jak2/levels/city/onin_tent/onin-game.gc +++ b/goal_src/jak2/levels/city/onin_tent/onin-game.gc @@ -1843,8 +1843,8 @@ (-> gp-0 ppointer) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.25)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.25)) (suspend) ) ) @@ -2004,7 +2004,7 @@ (defbehavior onin-game-bubble-init onin-game-bubble ((arg0 vector) (arg1 int) (arg2 meters) (arg3 float) (arg4 float)) "TODO - bubble type enum" (sound-play "onin-launch") - (set! (-> self bubble-start-time) (-> self clock frame-counter)) + (set! (-> self bubble-start-time) (current-time)) (set! (-> self bubble-type) arg1) (set! (-> self gravity) arg2) (set! (-> self angle) arg3) @@ -2094,169 +2094,163 @@ (sv-96 meters) (sv-112 float) ) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj game-start-time)) (seconds 2)) - (let ((s5-0 (-> obj game (-> obj wave)))) - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj wave-length))) (-> obj wave-time)) - (let ((s4-0 (-> obj child))) - (while s4-0 - (if (type? (ppointer->process s4-0) onin-game-bubble) - (goto cfg-58) - ) - (set! s4-0 (-> s4-0 0 brother)) - ) - ) - (if (zero? (-> obj wave-delay-time)) - (set! (-> obj wave-delay-time) (-> pp clock frame-counter)) - ) - (if (< (- (-> pp clock frame-counter) (-> obj wave-delay-time)) (the-as time-frame (-> s5-0 wave-delay))) - (goto cfg-58) - ) - (set! (-> obj event-length) (the-as uint 0)) - (+! (-> obj wave) 1) - (set! s5-0 (-> obj game (-> obj wave))) - (when (zero? (-> s5-0 min-count)) - (set! (-> obj wave) (the-as int (-> s5-0 max-count))) - (set! s5-0 (-> obj game (-> obj wave))) - ) - (set! (-> obj wave-time) (-> pp clock frame-counter)) - (set! (-> obj wave-length) - (the-as uint (rand-vu-int-range (the-as int (-> s5-0 min-wave)) (the-as int (-> s5-0 max-wave)))) + (when (>= (- (current-time) (-> obj game-start-time)) (seconds 2)) + (let ((s5-0 (-> obj game (-> obj wave)))) + (when (>= (- (current-time) (the-as int (-> obj wave-length))) (-> obj wave-time)) + (let ((s4-0 (-> obj child))) + (while s4-0 + (if (type? (ppointer->process s4-0) onin-game-bubble) + (goto cfg-58) ) - (set! (-> obj wave-delay-time) 0) - (when (< 1 (-> obj wave)) - (cond - ((< 4 (- (-> obj miss-count) (-> obj wave-start-miss))) - (let ((v0-2 (rand-vu-int-count 5))) - (cond - ((zero? v0-2) - (talker-spawn-func (-> *talker-speech* 148) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 1) - (talker-spawn-func (-> *talker-speech* 153) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 2) - (talker-spawn-func (-> *talker-speech* 154) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 3) - (talker-spawn-func (-> *talker-speech* 157) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 4) - (talker-spawn-func (-> *talker-speech* 158) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - ) - ((>= 1 (- (-> obj miss-count) (-> obj wave-start-miss))) - (let ((v0-9 (rand-vu-int-count 7))) - (cond - ((zero? v0-9) - (talker-spawn-func (-> *talker-speech* 141) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 1) - (talker-spawn-func (-> *talker-speech* 142) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 2) - (talker-spawn-func (-> *talker-speech* 143) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 3) - (talker-spawn-func (-> *talker-speech* 150) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 4) - (talker-spawn-func (-> *talker-speech* 156) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 5) - (talker-spawn-func (-> *talker-speech* 159) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 6) - (talker-spawn-func (-> *talker-speech* 160) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - ) - ) + (set! s4-0 (-> s4-0 0 brother)) ) - (set! (-> obj wave-start-miss) (-> obj miss-count)) ) - (set! v0-18 - (when (>= (- (-> pp clock frame-counter) (-> obj event-time)) (the-as time-frame (-> obj event-length))) - (set! (-> obj event-time) (-> pp clock frame-counter)) - (let ((s4-14 (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) (new 'static 'vector :w 1.0))) - (s3-12 (rand-vu-int-range (the-as int (-> s5-0 min-count)) (the-as int (-> s5-0 max-count)))) + (if (zero? (-> obj wave-delay-time)) + (set! (-> obj wave-delay-time) (current-time)) + ) + (if (< (- (current-time) (-> obj wave-delay-time)) (the-as time-frame (-> s5-0 wave-delay))) + (goto cfg-58) + ) + (set! (-> obj event-length) (the-as uint 0)) + (+! (-> obj wave) 1) + (set! s5-0 (-> obj game (-> obj wave))) + (when (zero? (-> s5-0 min-count)) + (set! (-> obj wave) (the-as int (-> s5-0 max-count))) + (set! s5-0 (-> obj game (-> obj wave))) + ) + (set! (-> obj wave-time) (current-time)) + (set! (-> obj wave-length) + (the-as uint (rand-vu-int-range (the-as int (-> s5-0 min-wave)) (the-as int (-> s5-0 max-wave)))) + ) + (set! (-> obj wave-delay-time) 0) + (when (< 1 (-> obj wave)) + (cond + ((< 4 (- (-> obj miss-count) (-> obj wave-start-miss))) + (let ((v0-2 (rand-vu-int-count 5))) + (cond + ((zero? v0-2) + (talker-spawn-func (-> *talker-speech* 148) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 1) + (talker-spawn-func (-> *talker-speech* 153) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 2) + (talker-spawn-func (-> *talker-speech* 154) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 3) + (talker-spawn-func (-> *talker-speech* 157) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 4) + (talker-spawn-func (-> *talker-speech* 158) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + ) + ((>= 1 (- (-> obj miss-count) (-> obj wave-start-miss))) + (let ((v0-9 (rand-vu-int-count 7))) + (cond + ((zero? v0-9) + (talker-spawn-func (-> *talker-speech* 141) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 1) + (talker-spawn-func (-> *talker-speech* 142) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 2) + (talker-spawn-func (-> *talker-speech* 143) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 3) + (talker-spawn-func (-> *talker-speech* 150) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 4) + (talker-spawn-func (-> *talker-speech* 156) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 5) + (talker-spawn-func (-> *talker-speech* 159) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 6) + (talker-spawn-func (-> *talker-speech* 160) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + ) + ) + ) + (set! (-> obj wave-start-miss) (-> obj miss-count)) + ) + (set! v0-18 + (when (>= (- (current-time) (-> obj event-time)) (the-as time-frame (-> obj event-length))) + (set! (-> obj event-time) (current-time)) + (let ((s4-14 (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) (new 'static 'vector :w 1.0))) + (s3-12 (rand-vu-int-range (the-as int (-> s5-0 min-count)) (the-as int (-> s5-0 max-count)))) + ) + (dotimes (s2-12 s3-12) + (let ((f0-0 (-> obj last-angle))) + (while (< (fabs (- (-> obj last-angle) f0-0)) 819.2) + (set! f0-0 (rand-vu-float-range -1720.32 1720.32)) ) - (dotimes (s2-12 s3-12) - (let ((f0-0 (-> obj last-angle))) - (while (< (fabs (- (-> obj last-angle) f0-0)) 819.2) - (set! f0-0 (rand-vu-float-range -1720.32 1720.32)) - ) - (set! (-> obj last-angle) f0-0) - ) - (let ((s1-0 (get-process *default-dead-pool* onin-game-bubble #x4000))) - (when s1-0 - (let ((t9-31 (method-of-type onin-game-bubble activate))) - (t9-31 - (the-as onin-game-bubble s1-0) - obj - (symbol->string (-> onin-game-bubble symbol)) - (the-as pointer #x70004000) - ) + (set! (-> obj last-angle) f0-0) + ) + (let ((s1-0 (get-process *default-dead-pool* onin-game-bubble #x4000))) + (when s1-0 + (let ((t9-31 (method-of-type onin-game-bubble activate))) + (t9-31 + (the-as onin-game-bubble s1-0) + obj + (symbol->string (-> onin-game-bubble symbol)) + (the-as pointer #x70004000) ) - (let ((s0-0 run-function-in-process)) - (set! sv-32 s1-0) - (set! sv-48 onin-game-bubble-init) - (set! sv-64 s4-14) - (set! sv-80 (rand-vu-int-range 0 3)) - (set! sv-96 (-> s5-0 gravity)) - (set! sv-112 (-> obj last-angle)) - (let ((t2-0 (rand-vu-float-range 4096.0 7372.8))) - ((the-as (function object object object object object object object none) s0-0) - sv-32 - sv-48 - sv-64 - sv-80 - sv-96 - sv-112 - t2-0 - ) - ) - ) - (-> s1-0 ppointer) ) + (let ((s0-0 run-function-in-process)) + (set! sv-32 s1-0) + (set! sv-48 onin-game-bubble-init) + (set! sv-64 s4-14) + (set! sv-80 (rand-vu-int-range 0 3)) + (set! sv-96 (-> s5-0 gravity)) + (set! sv-112 (-> obj last-angle)) + (let ((t2-0 (rand-vu-float-range 4096.0 7372.8))) + ((the-as (function object object object object object object object none) s0-0) + sv-32 + sv-48 + sv-64 + sv-80 + sv-96 + sv-112 + t2-0 + ) + ) + ) + (-> s1-0 ppointer) ) ) ) - (set! v0-18 (rand-vu-int-range (the-as int (-> s5-0 min-event)) (the-as int (-> s5-0 max-event)))) - (set! (-> obj event-length) (the-as uint v0-18)) - v0-18 ) + (set! v0-18 (rand-vu-int-range (the-as int (-> s5-0 min-event)) (the-as int (-> s5-0 max-event)))) + (set! (-> obj event-length) (the-as uint v0-18)) + v0-18 ) - ) + ) ) - (label cfg-58) - (onin-game-method-26 obj) - 0 - (none) ) + (label cfg-58) + (onin-game-method-26 obj) + 0 + (none) ) (defmethod onin-game-method-26 onin-game ((obj onin-game)) - (with-pp - (cond - ((>= (-> *game-info* score) (-> obj score)) - (set! (-> *game-info* score) (-> obj score)) - ) - ((and (< (-> *game-info* score) (-> obj score)) - (>= (- (-> pp clock frame-counter) (-> obj score-time)) (seconds 0.1)) - ) - (sound-play "onin-score") - (seek! (-> *game-info* score) (-> obj score) 1.0) - (set! (-> obj score-time) (-> pp clock frame-counter)) - ) - ) - (set! (-> *game-info* miss) (the float (-> obj miss-count))) - 0 - (none) + (cond + ((>= (-> *game-info* score) (-> obj score)) + (set! (-> *game-info* score) (-> obj score)) + ) + ((and (< (-> *game-info* score) (-> obj score)) (>= (- (current-time) (-> obj score-time)) (seconds 0.1))) + (sound-play "onin-score") + (seek! (-> *game-info* score) (-> obj score) 1.0) + (set! (-> obj score-time) (current-time)) + ) ) + (set! (-> *game-info* miss) (the float (-> obj miss-count))) + 0 + (none) ) ;; WARN: Return type mismatch number vs none. @@ -2413,7 +2407,7 @@ (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :to self))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) (set! (-> self hud-miss) (ppointer->handle (process-spawn hud-miss :init hud-init-by-other :to self))) - (set! (-> self game-start-time) (-> self clock frame-counter)) + (set! (-> self game-start-time) (current-time)) (send-event *target* 'draw #f) (set-setting! 'gun #f 0.0 0) (set-setting! 'calm #t 0.0 0) @@ -2563,8 +2557,8 @@ ) :code (behavior ((arg0 symbol)) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -2663,8 +2657,8 @@ (when (and (task-node-closed? (game-task-node city-play-onin-game-resolution)) (not (task-node-closed? (game-task-node city-play-onin-game-skill))) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2689,8 +2683,8 @@ (while (nonzero? (get-status *gui-control* (the-as sound-id s5-1))) (suspend) ) - (let ((s5-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-3) (seconds 2)) + (let ((s5-3 (current-time))) + (until (>= (- (current-time) s5-3) (seconds 2)) (suspend) ) ) diff --git a/goal_src/jak2/levels/city/oracle/oracle-training.gc b/goal_src/jak2/levels/city/oracle/oracle-training.gc index f18d9487c0..805db73117 100644 --- a/goal_src/jak2/levels/city/oracle/oracle-training.gc +++ b/goal_src/jak2/levels/city/oracle/oracle-training.gc @@ -207,7 +207,7 @@ (add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0) ) (send-event *target* 'get-notify self) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (none) ) ) diff --git a/goal_src/jak2/levels/city/port/mines/portrun.gc b/goal_src/jak2/levels/city/port/mines/portrun.gc index 127790f500..4c17b0ecd1 100644 --- a/goal_src/jak2/levels/city/port/mines/portrun.gc +++ b/goal_src/jak2/levels/city/port/mines/portrun.gc @@ -228,11 +228,11 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 30)) + (set! (-> self state-time) (current-time)) + (while (or (< (- (current-time) (-> self state-time)) (seconds 30)) (let ((a0-3 (level-get-target-inside *level*))) (when (not (and a0-3 (logtest? (-> a0-3 info level-flags) 1))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #t ) ) @@ -880,16 +880,14 @@ (t9-1 sin-rad) (f1-0 -3.1415925) (f2-0 6.283185) - (f3-1 (the float (+ (-> pp clock frame-counter) (the-as time-frame (-> obj time-skew))))) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) ) (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) ) (let ((s5-0 (-> obj info))) (cond ((zero? (-> obj info type)) - (let* ((f0-8 - (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (-> pp clock frame-counter))) (-> s5-0 speed))) - ) + (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) ) (if (< 1.0 f0-9) @@ -934,14 +932,13 @@ (set! (-> s3-0 y) (-> s5-0 pos1-y)) (set! (-> s3-0 z) (-> s5-0 pos1-z)) (set! (-> s3-0 w) 1.0) - (let ((v1-35 (vector-rotate-around-y! - (new 'stack-no-clear 'vector) - *x-vector* - (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) - (* 0.60681486 (-> s5-0 speed) (the float (-> pp clock frame-counter))) - ) - ) - ) + (let ((v1-35 + (vector-rotate-around-y! + (new 'stack-no-clear 'vector) + *x-vector* + (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) + ) + ) ) (let ((a0-8 (-> s5-0 pos2-x))) (.mov vf7 a0-8) @@ -975,14 +972,14 @@ (defstate die (ctyport-mine) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self beep-time) 0) 0 (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 3)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 3)) (suspend) ) ) @@ -991,15 +988,13 @@ ) :post (behavior () (cond - ((and (-> self beep) (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + ((and (-> self beep) (< (- (current-time) (-> self state-time)) (seconds 1))) (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (-> self clock seconds-per-frame))) - (when (< (-> self beep-time) (-> self clock frame-counter)) + (when (< (-> self beep-time) (current-time)) (sound-play "cargo-beep") (set-vector! (-> self beep-color) 1.0 1.0 1.0 1.0) (set! (-> self beep-time) - (+ (-> self clock frame-counter) - (the int (* 0.2 (the float (- (seconds 1) (- (-> self clock frame-counter) (-> self state-time)))))) - ) + (+ (current-time) (the int (* 0.2 (the float (- (seconds 1) (- (current-time) (-> self state-time))))))) ) ) (set! (-> self draw color-emissive quad) (-> self beep-color quad)) @@ -1227,19 +1222,18 @@ (defstate idle (ctyport-spy) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.3)) (+! (-> self trans-y) (* (-> self root transv y) (-> self clock seconds-per-frame))) (+! (-> self root transv y) (* -8.0 (-> self clock seconds-per-frame) (-> self root transv y))) (set! (-> self root trans y) (+ (-> self trans-y) - (* 1024.0 - (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - ) + (* 1024.0 (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) + (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (current-time))))))) + ) ) ) ) @@ -1248,13 +1242,9 @@ (s4-0 gp-0) (s3-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s3-0 x) - (* 182.04445 (* 5.0 (sin (* 182.04445 (* 0.33333334 (the float (-> self clock frame-counter))))))) - ) + (set! (-> s3-0 x) (* 182.04445 (* 5.0 (sin (* 182.04445 (* 0.33333334 (the float (current-time)))))))) (set! (-> s3-0 y) - (* 182.04445 - (* 5.0 (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter)))))))) - ) + (* 182.04445 (* 5.0 (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))))) ) (set! (-> s3-0 z) 0.0) (set! (-> s3-0 w) 1.0) @@ -1507,10 +1497,9 @@ :trans (behavior () (set! (-> self root-override trans y) (+ (-> self trans-y) - (* 1024.0 - (+ (sin (* 182.04445 (* 150.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - ) + (* 1024.0 (+ (sin (* 182.04445 (* 150.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) + (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (current-time))))))) + ) ) ) ) @@ -1541,8 +1530,8 @@ (defstate die (ctyport-cargo) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1812,7 +1801,7 @@ ) (cond ((and (= (-> self count) (-> self max-count)) (zero? (-> self data-int32 22))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ((and (or (and (zero? (-> self data-int32 20)) (= (-> self count) (+ (-> self max-count) -1))) (= (-> self data-int32 22) 1) @@ -1823,7 +1812,7 @@ (set! (-> self data-int32 20) 1) (+! (-> self data-int32 22) 1) (set! (-> self time-limit) (seconds 135)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-cargo :init hud-init-by-other :to self))) ) ) @@ -1896,8 +1885,8 @@ (lambda :behavior task-manager () (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 1) @@ -1912,7 +1901,7 @@ TASK_MANAGER_FAIL_HOOK (lambda :behavior task-manager () - (when (< (- (-> self time-limit) (- (-> self clock frame-counter) (-> self start-time))) 0) + (when (< (- (-> self time-limit) (- (current-time) (-> self start-time))) 0) (let ((gp-0 #f)) (dotimes (s5-0 (-> self max-count)) (when (zero? (-> self data-int32 s5-0)) @@ -1933,8 +1922,8 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -1949,8 +1938,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (task-node-close! (game-task-node city-port-run-post-win)) diff --git a/goal_src/jak2/levels/city/port/race/errol-chal.gc b/goal_src/jak2/levels/city/port/race/errol-chal.gc index 2c21742c2c..d2828e663b 100644 --- a/goal_src/jak2/levels/city/port/race/errol-chal.gc +++ b/goal_src/jak2/levels/city/port/race/errol-chal.gc @@ -787,7 +787,7 @@ (when (< f0-5 (* f1-0 f1-0)) (when (or (and (< f30-0 0.0) (>= f28-0 0.0)) (and (< f28-0 0.0) (>= f30-0 0.0))) (send-event proc 'turbo-ring (-> self boost)) - (set! (-> self touch-time) (-> self clock frame-counter)) + (set! (-> self touch-time) (current-time)) (process-spawn part-tracker :init part-tracker-init @@ -819,7 +819,7 @@ :code (the-as (function none :behavior turbo-ring) sleep-code) :post (behavior () (if (and (-> self player-got) - (>= (- (-> self clock frame-counter) (-> self touch-time)) (seconds 3)) + (>= (- (current-time) (-> self touch-time)) (seconds 3)) (or (not *target*) (or (< 204800.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) (focus-test? *target* teleporting) @@ -838,13 +838,13 @@ (defstate die (turbo-ring) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (-> self root-override root-prim))) (set! (-> v1-3 prim-core collide-as) (collide-spec)) (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -874,26 +874,24 @@ ) (defmethod turbo-ring-method-23 turbo-ring ((obj turbo-ring)) - (with-pp - (let ((s5-0 (-> obj mat))) - (let ((s4-0 (new 'stack-no-clear 'quaternion))) - (quaternion-rotate-local-y! s4-0 (-> obj root-override quat) 16384.0) - (quaternion->matrix s5-0 s4-0) - ) - (set! (-> s5-0 trans quad) (-> obj root-override trans quad)) - (set! (-> obj plane quad) (-> s5-0 vector 0 quad)) + (let ((s5-0 (-> obj mat))) + (let ((s4-0 (new 'stack-no-clear 'quaternion))) + (quaternion-rotate-local-y! s4-0 (-> obj root-override quat) 16384.0) + (quaternion->matrix s5-0 s4-0) ) - (set! (-> obj plane w) (- (vector-dot (-> obj plane) (-> obj root-override trans)))) - (update-transforms (-> obj root-override)) - (set! (-> obj player-got) #f) - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1058) obj)) - (if (not (-> obj persistent)) - (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 15) (the-as int #f) (the-as vector #t) 0)) - ) - (set! (-> obj touch-time) (-> pp clock frame-counter)) - 0 - (none) + (set! (-> s5-0 trans quad) (-> obj root-override trans quad)) + (set! (-> obj plane quad) (-> s5-0 vector 0 quad)) ) + (set! (-> obj plane w) (- (vector-dot (-> obj plane) (-> obj root-override trans)))) + (update-transforms (-> obj root-override)) + (set! (-> obj player-got) #f) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1058) obj)) + (if (not (-> obj persistent)) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 15) (the-as int #f) (the-as vector #t) 0)) + ) + (set! (-> obj touch-time) (current-time)) + 0 + (none) ) ;; WARN: Return type mismatch object vs none. @@ -1262,7 +1260,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> *race-state* flags) 1)) (let ((f0-0 (-> self begin-pos w))) (if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0))) @@ -1463,7 +1461,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> *race-state* flags) 1)) (let ((f0-0 (-> self begin-pos w))) (if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0))) diff --git a/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc b/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc index 32411b928c..ce2b52a5b5 100644 --- a/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc +++ b/goal_src/jak2/levels/city/side_missions/ctywide-bbush.gc @@ -371,7 +371,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) (-> self clock frame-counter)) + (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) (current-time)) ) ) (else @@ -1490,7 +1490,7 @@ ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (+! (-> self sub-state) 1) ) ) @@ -1512,7 +1512,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -1702,7 +1702,7 @@ (none) ) :trans (behavior () - (let ((f30-0 (+ (* 0.0033333334 (the float (-> self clock frame-counter))) (* 0.1 (the float (-> self pid)))))) + (let ((f30-0 (+ (* 0.0033333334 (the float (current-time))) (* 0.1 (the float (-> self pid)))))) (when (< (-> self beep-time) f30-0) (sound-play "homeing-beep") (set! (-> self beep-time) (+ 1.0 f30-0)) @@ -2638,7 +2638,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (-> gp-0 time)) ) (none) @@ -2681,7 +2681,7 @@ This commonly includes things such as: *game-info* (game-task-node city-burning-bush-collection-1-resolution) TASK_MANAGER_CODE_HOOK - (lambda :behavior task-manager () (set! (-> self state-time) (-> self clock frame-counter)) (none)) + (lambda :behavior task-manager () (set! (-> self state-time) (current-time)) (none)) ) (copy-hooks! @@ -2896,7 +2896,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (the-as time-frame (the int (+ 300.0 (-> *burning-bush-get-on-info* (-> self info index) time)))) ) @@ -2932,8 +2932,8 @@ This commonly includes things such as: ) (send-event *camera* 'teleport-to-transformq gp-0) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 3)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 3)) (suspend) ) ) diff --git a/goal_src/jak2/levels/city/slums/kor/kid-states.gc b/goal_src/jak2/levels/city/slums/kor/kid-states.gc index 2b248216e5..19cca5c234 100644 --- a/goal_src/jak2/levels/city/slums/kor/kid-states.gc +++ b/goal_src/jak2/levels/city/slums/kor/kid-states.gc @@ -13,7 +13,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -89,7 +89,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -251,7 +251,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -327,7 +327,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -357,12 +357,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (kid-method-232 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -396,7 +394,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -421,7 +419,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -456,7 +454,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -534,7 +532,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -607,7 +605,7 @@ (ja-channel-push! 1 (seconds 0.1)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 16) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 16)) frames num-frames) -1))) @@ -615,7 +613,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (>= (- (current-time) (-> self state-time)) (seconds 4)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) diff --git a/goal_src/jak2/levels/city/slums/kor/kid.gc b/goal_src/jak2/levels/city/slums/kor/kid.gc index fee1986001..1bfe3db6fa 100644 --- a/goal_src/jak2/levels/city/slums/kor/kid.gc +++ b/goal_src/jak2/levels/city/slums/kor/kid.gc @@ -183,172 +183,168 @@ (defmethod general-event-handler kid ((obj kid) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('arrest) - (let* ((s4-0 (handle->process (-> obj arrestor-handle))) - (v1-4 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (when (or (not v1-4) - (= v1-4 arg0) - (and (!= v1-4 arg0) (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.1))) - ) - (set! (-> obj arrestor-handle) (process->handle arg0)) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - 0 - ) + (case arg2 + (('arrest) + (let* ((s4-0 (handle->process (-> obj arrestor-handle))) + (v1-4 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (when (or (not v1-4) + (= v1-4 arg0) + (and (!= v1-4 arg0) (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.1))) + ) + (set! (-> obj arrestor-handle) (process->handle arg0)) + (set! (-> obj arrest-attempt-time) (current-time)) + 0 ) - #t ) - (('instant-arrest) - (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) - (let ((v1-18 (the-as object (-> arg3 param 0)))) - (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - (let ((a1-8 (new 'stack-no-clear 'vector))) - (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) - (set! (-> a1-8 y) 0.0) - (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) - ) + #t + ) + (('instant-arrest) + (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) + (let ((v1-18 (the-as object (-> arg3 param 0)))) + (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) + (set! (-> obj arrest-attempt-time) (current-time)) + (let ((a1-8 (new 'stack-no-clear 'vector))) + (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) + (set! (-> a1-8 y) 0.0) + (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) ) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (send-event (handle->process (-> obj master-handle)) 'notify 'arrest #f) - (go (method-of-object obj arrested)) ) - (('attack) - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - #f - ) - (else - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (send-event (handle->process (-> obj master-handle)) 'notify 'arrest #f) + (go (method-of-object obj arrested)) + ) + (('attack) + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) + #f + ) + (else + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) (defmethod enemy-method-97 kid ((obj kid)) - (with-pp - (let* ((s4-0 (handle->process (-> obj attacker-handle))) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - (s3-0 (handle->process (-> obj arrestor-handle))) - (s4-1 (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((s4-0 (handle->process (-> obj attacker-handle))) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + (s3-0 (handle->process (-> obj arrestor-handle))) + (s4-1 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when s5-0 + (cond + ((= (-> s5-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s5-0 - (cond - ((= (-> s5-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (when s4-1 - (when (or (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.5)) - (focus-test? (the-as process-focusable s4-1) dead hit) - ) - (set! s4-1 (the-as process #f)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ) - (let ((v1-34 (-> obj focus-mode)) - (s3-1 (the-as process #f)) - ) - (cond - ((zero? v1-34) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (let ((s5-1 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-1 process-focusable) - s5-1 - ) - ) - ) - (if s3-1 - (empty) - (set! s3-1 *target*) - ) - ) - ) - ) - ((= v1-34 1) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - (else - (let ((s5-2 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-2 process-focusable) - s5-2 - ) - ) - ) - (cond - (s3-1 - (empty) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (set! s3-1 *target*) - ) - ) - ) - ) - ) - ) - (cond - (s3-1 - (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + (when s4-1 + (when (or (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.5)) + (focus-test? (the-as process-focusable s4-1) dead hit) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s3-1 + (set! s4-1 (the-as process #f)) + (set! (-> obj arrestor-handle) (the-as handle #f)) ) ) + (let ((v1-34 (-> obj focus-mode)) + (s3-1 (the-as process #f)) + ) + (cond + ((zero? v1-34) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (let ((s5-1 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-1 process-focusable) + s5-1 + ) + ) + ) + (if s3-1 + (empty) + (set! s3-1 *target*) + ) + ) + ) + ) + ((= v1-34 1) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + (else + (let ((s5-2 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-2 process-focusable) + s5-2 + ) + ) + ) + (cond + (s3-1 + (empty) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (set! s3-1 *target*) + ) + ) + ) + ) + ) + ) + (cond + (s3-1 + (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s3-1 + ) ) ) diff --git a/goal_src/jak2/levels/city/slums/kor/kor-states.gc b/goal_src/jak2/levels/city/slums/kor/kor-states.gc index b010c06b54..1feaa26e92 100644 --- a/goal_src/jak2/levels/city/slums/kor/kor-states.gc +++ b/goal_src/jak2/levels/city/slums/kor/kor-states.gc @@ -11,7 +11,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -87,7 +87,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -260,7 +260,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -336,7 +336,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -366,12 +366,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (kor-method-232 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -405,7 +403,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -430,7 +428,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -465,7 +463,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -543,7 +541,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -592,7 +590,7 @@ (ja-channel-push! 1 (seconds 0.25)) (cond ((and (not (logtest? (bot-flags bf20) (-> self bot-flags))) - (< (- (-> self clock frame-counter) (-> self arrest-attempt-time)) (seconds 0.8)) + (< (- (current-time) (-> self arrest-attempt-time)) (seconds 0.8)) ) (ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))) @@ -631,7 +629,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 18) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 18)) frames num-frames) -1))) @@ -639,7 +637,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) diff --git a/goal_src/jak2/levels/city/slums/kor/kor.gc b/goal_src/jak2/levels/city/slums/kor/kor.gc index ce94f71df3..a42d025a10 100644 --- a/goal_src/jak2/levels/city/slums/kor/kor.gc +++ b/goal_src/jak2/levels/city/slums/kor/kor.gc @@ -192,167 +192,163 @@ (defmethod general-event-handler kor ((obj kor) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('arrest) - (let* ((s4-0 (handle->process (-> obj arrestor-handle))) - (v1-4 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (when (or (not v1-4) - (= v1-4 arg0) - (and (!= v1-4 arg0) (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.1))) - ) - (set! (-> obj arrestor-handle) (process->handle arg0)) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - 0 - ) + (case arg2 + (('arrest) + (let* ((s4-0 (handle->process (-> obj arrestor-handle))) + (v1-4 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (when (or (not v1-4) + (= v1-4 arg0) + (and (!= v1-4 arg0) (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.1))) + ) + (set! (-> obj arrestor-handle) (process->handle arg0)) + (set! (-> obj arrest-attempt-time) (current-time)) + 0 ) - #t ) - (('instant-arrest) - (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) - (let ((v1-18 (the-as object (-> arg3 param 0)))) - (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - (let ((a1-8 (new 'stack-no-clear 'vector))) - (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) - (set! (-> a1-8 y) 0.0) - (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) - ) + #t + ) + (('instant-arrest) + (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) + (let ((v1-18 (the-as object (-> arg3 param 0)))) + (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) + (set! (-> obj arrest-attempt-time) (current-time)) + (let ((a1-8 (new 'stack-no-clear 'vector))) + (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) + (set! (-> a1-8 y) 0.0) + (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) ) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (go (method-of-object obj arrested)) ) - (else - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (go (method-of-object obj arrested)) + ) + (else + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) (defmethod enemy-method-97 kor ((obj kor)) - (with-pp - (let* ((s4-0 (handle->process (-> obj attacker-handle))) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - (s3-0 (handle->process (-> obj arrestor-handle))) - (s4-1 (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((s4-0 (handle->process (-> obj attacker-handle))) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + (s3-0 (handle->process (-> obj arrestor-handle))) + (s4-1 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when s5-0 + (cond + ((= (-> s5-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s5-0 - (cond - ((= (-> s5-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (when s4-1 - (when (or (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.5)) - (focus-test? (the-as process-focusable s4-1) dead hit) - ) - (set! s4-1 (the-as process #f)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ) - (let ((v1-34 (-> obj focus-mode)) - (s3-1 (the-as process #f)) - ) - (cond - ((zero? v1-34) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (let ((s5-1 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-1 process-focusable) - s5-1 - ) - ) - ) - (if s3-1 - (empty) - (set! s3-1 *target*) - ) - ) - ) - ) - ((= v1-34 1) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - (else - (let ((s5-2 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-2 process-focusable) - s5-2 - ) - ) - ) - (cond - (s3-1 - (empty) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (set! s3-1 *target*) - ) - ) - ) - ) - ) - ) - (cond - (s3-1 - (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + (when s4-1 + (when (or (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.5)) + (focus-test? (the-as process-focusable s4-1) dead hit) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s3-1 + (set! s4-1 (the-as process #f)) + (set! (-> obj arrestor-handle) (the-as handle #f)) ) ) + (let ((v1-34 (-> obj focus-mode)) + (s3-1 (the-as process #f)) + ) + (cond + ((zero? v1-34) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (let ((s5-1 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-1 process-focusable) + s5-1 + ) + ) + ) + (if s3-1 + (empty) + (set! s3-1 *target*) + ) + ) + ) + ) + ((= v1-34 1) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + (else + (let ((s5-2 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-2 process-focusable) + s5-2 + ) + ) + ) + (cond + (s3-1 + (empty) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (set! s3-1 *target*) + ) + ) + ) + ) + ) + ) + (cond + (s3-1 + (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s3-1 + ) ) ) diff --git a/goal_src/jak2/levels/city/slums/neon-baron-part.gc b/goal_src/jak2/levels/city/slums/neon-baron-part.gc index 857fbe882f..1ff43d8f4b 100644 --- a/goal_src/jak2/levels/city/slums/neon-baron-part.gc +++ b/goal_src/jak2/levels/city/slums/neon-baron-part.gc @@ -3285,16 +3285,16 @@ 600 (dotimes (gp-0 19) (let ((s5-0 (-> *neon-baron-flashing-acc* (* gp-0 2)))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-0)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-0)) (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) (let ((s5-1 (-> *neon-baron-flashing-acc* (+ (* gp-0 2) 1)))) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-1)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-1)) (suspend) ) ) @@ -3302,28 +3302,28 @@ ) ((zero? v1-2) (dotimes (gp-1 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) ((= v1-2 1) (dotimes (gp-2 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) ) @@ -3332,16 +3332,16 @@ 600 (dotimes (gp-3 19) (let ((s5-2 (-> *neon-baron-flashing-acc* (* gp-3 2)))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-2)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-2)) (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) (let ((s5-3 (-> *neon-baron-flashing-acc* (+ (* gp-3 2) 1)))) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-3)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-3)) (suspend) ) ) @@ -3349,28 +3349,28 @@ ) ((= v1-2 8) (dotimes (gp-4 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) ((= v1-2 9) (dotimes (gp-5 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) ) @@ -3454,8 +3454,8 @@ (set! (-> self flags) 1) (let ((gp-11 (rand-vu-int-range 3 6))) (dotimes (s5-9 gp-11) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/common/ai/bot-states.gc b/goal_src/jak2/levels/common/ai/bot-states.gc index 0bb1251cfb..aa523cae4d 100644 --- a/goal_src/jak2/levels/common/ai/bot-states.gc +++ b/goal_src/jak2/levels/common/ai/bot-states.gc @@ -95,7 +95,7 @@ (bot-method-191 self) (when (zero? (-> self hit-points)) (set! (-> self hit-points) 1) - (set! (-> self fated-time) (-> self clock frame-counter)) + (set! (-> self fated-time) (current-time)) ) (logclear! (-> self bot-flags) (bot-flags bf11)) (let ((t9-2 (-> (method-of-type nav-enemy knocked) enter))) @@ -124,7 +124,7 @@ (t9-0) ) ) - (when (and (logtest? (-> self bot-flags) (bot-flags bf12)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (-> self bot-flags) (bot-flags bf12)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf12)) (play-attacked-speech self) ) @@ -221,7 +221,7 @@ :trans (behavior () ((-> (method-of-type bot die-falling) trans)) (if (channel-active? self (the-as uint 0)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -237,7 +237,7 @@ ) (until (ja-done? 0) (when (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (cleanup-for-death self) diff --git a/goal_src/jak2/levels/common/ai/bot.gc b/goal_src/jak2/levels/common/ai/bot.gc index cd0e7803f2..cb36457d20 100644 --- a/goal_src/jak2/levels/common/ai/bot.gc +++ b/goal_src/jak2/levels/common/ai/bot.gc @@ -321,7 +321,7 @@ (cond ((attacked-by-player? obj (the-as process-focusable s5-0)) (set! (-> obj attacker-handle) (process->handle s5-0)) - (set! (-> obj attacker-time) (-> self clock frame-counter)) + (set! (-> obj attacker-time) (current-time)) ) (else (logclear! (-> obj bot-flags) (bot-flags attacked)) @@ -338,7 +338,7 @@ (reset-attacker! obj) ) (set! (-> obj attacker-handle) (process->handle s5-0)) - (set! (-> obj attacker-time) (-> self clock frame-counter)) + (set! (-> obj attacker-time) (current-time)) ) ) ) @@ -433,132 +433,128 @@ (defmethod enemy-method-129 bot ((obj bot)) (local-vars (s5-1 process)) - (with-pp - (let ((s5-0 (-> obj focus))) - (cond - ((logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags)) - (set! s5-1 (handle->process (-> s5-0 handle))) - ) - (else - (enemy-method-97 obj) - (set! s5-1 (handle->process (-> s5-0 handle))) - ) + (let ((s5-0 (-> obj focus))) + (cond + ((logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags)) + (set! s5-1 (handle->process (-> s5-0 handle))) + ) + (else + (enemy-method-97 obj) + (set! s5-1 (handle->process (-> s5-0 handle))) ) ) - (let ((s4-0 #f)) - (when (or (logtest? (bot-flags bf18) (-> obj bot-flags)) - (and s5-1 (attacked-by-player? obj (the-as process-focusable s5-1))) - ) - (set! (-> obj danger-time) (-> pp clock frame-counter)) - (set! s4-0 #t) - ) - (when (nonzero? (-> obj swivel-joint-mod)) - (if (and s4-0 s5-1 (logtest? (-> obj bot-flags) (bot-flags bf11))) - (bot-method-222 obj (get-trans (the-as process-focusable s5-1) 3)) - (bot-method-221 obj) - ) - ) - ) - (none) ) + (let ((s4-0 #f)) + (when (or (logtest? (bot-flags bf18) (-> obj bot-flags)) + (and s5-1 (attacked-by-player? obj (the-as process-focusable s5-1))) + ) + (set! (-> obj danger-time) (current-time)) + (set! s4-0 #t) + ) + (when (nonzero? (-> obj swivel-joint-mod)) + (if (and s4-0 s5-1 (logtest? (-> obj bot-flags) (bot-flags bf11))) + (bot-method-222 obj (get-trans (the-as process-focusable s5-1) 3)) + (bot-method-221 obj) + ) + ) + ) + (none) ) (defmethod enemy-method-97 bot ((obj bot)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when v1-3 + (cond + ((= (-> v1-3 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when v1-3 - (cond - ((= (-> v1-3 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (let ((a0-21 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? a0-21) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (let ((s4-0 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ((= a0-21 1) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) + ) + (let ((a0-21 (-> obj focus-mode)) + (s5-1 (the-as process #f)) ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + (cond + ((zero? a0-21) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (let ((s4-0 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) + ((= a0-21 1) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s5-1 ) ) ) @@ -739,205 +735,203 @@ "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" (local-vars (v0-0 none)) - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((= v1-0 'track) - #f - ) - ((= v1-0 'combo) - #f - ) - ((= v1-0 'query) - (case (-> arg3 param 0) - (('waypoint) - (-> obj waypoint waypoint-id) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'track) + #f + ) + ((= v1-0 'combo) + #f + ) + ((= v1-0 'query) + (case (-> arg3 param 0) + (('waypoint) + (-> obj waypoint waypoint-id) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - ((= v1-0 'request) - (case (-> arg3 param 0) - (('waypoint) - (set! (-> obj waypoint-request) (the-as int (-> arg3 param 1))) - #t + ) + ((= v1-0 'request) + (case (-> arg3 param 0) + (('waypoint) + (set! (-> obj waypoint-request) (the-as int (-> arg3 param 1))) + #t + ) + (('health-meter) + (cond + ((-> arg3 param 1) + (set! v0-0 (the-as none (logior (-> obj bot-flags) (bot-flags bf06)))) + (set! (-> obj bot-flags) (the-as bot-flags v0-0)) + ) + (else + (set! v0-0 (the-as none (logclear (-> obj bot-flags) (bot-flags bf06)))) + (set! (-> obj bot-flags) (the-as bot-flags v0-0)) + ) ) - (('health-meter) + v0-0 + ) + (('too-far-fail) + (when (not (logtest? (-> obj bot-flags) (bot-flags too-far-fail bf09))) + (logior! (-> obj bot-flags) (bot-flags bf09)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag check-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (go (method-of-object obj failed)) + ) + ) + (('move-to-vehicle) + (let ((a0-19 (-> arg3 param 2))) (cond - ((-> arg3 param 1) - (set! v0-0 (the-as none (logior (-> obj bot-flags) (bot-flags bf06)))) - (set! (-> obj bot-flags) (the-as bot-flags v0-0)) - ) - (else - (set! v0-0 (the-as none (logclear (-> obj bot-flags) (bot-flags bf06)))) - (set! (-> obj bot-flags) (the-as bot-flags v0-0)) - ) - ) - v0-0 - ) - (('too-far-fail) - (when (not (logtest? (-> obj bot-flags) (bot-flags too-far-fail bf09))) - (logior! (-> obj bot-flags) (bot-flags bf09)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag check-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (go (method-of-object obj failed)) - ) - ) - (('move-to-vehicle) - (let ((a0-19 (-> arg3 param 2))) - (cond - ((>= (the-as int a0-19) 0) - (let ((v1-29 (the-as object (-> arg3 param 1)))) - (cond - ((focus-test? obj pilot) - (if (= (-> obj vehicle-seat-index) a0-19) - (= (the-as uint v1-29) (handle->process (-> obj vehicle-handle))) - ) - ) - (else - (set! (-> obj vehicle-seat-index) (the-as int a0-19)) - (set! (-> obj vehicle-handle) (process->handle (the-as uint v1-29))) - (logior! (-> obj bot-flags) (bot-flags bf15)) - #t - ) + ((>= (the-as int a0-19) 0) + (let ((v1-29 (the-as object (-> arg3 param 1)))) + (cond + ((focus-test? obj pilot) + (if (= (-> obj vehicle-seat-index) a0-19) + (= (the-as uint v1-29) (handle->process (-> obj vehicle-handle))) + ) + ) + (else + (set! (-> obj vehicle-seat-index) (the-as int a0-19)) + (set! (-> obj vehicle-handle) (process->handle (the-as uint v1-29))) + (logior! (-> obj bot-flags) (bot-flags bf15)) + #t ) ) ) - (else - (when (not (focus-test? obj pilot)) - (set! (-> obj vehicle-seat-index) -1) - (set! (-> obj vehicle-handle) (the-as handle #f)) - (logclear! (-> obj bot-flags) (bot-flags bf15)) - #t - ) - ) - ) - ) - ) - (('exit-vehicle) - (when (focus-test? obj pilot) - (let ((v1-43 (-> arg3 param 1)) - (s5-1 (-> arg3 param 2)) - ) - (cond - (v1-43 - (set! (-> obj bot-flags) (logior (bot-flags bf16) (-> obj bot-flags))) - (when (and (>= (the-as int s5-1) 0) (!= s5-1 (-> obj nav-mesh-index))) - (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor (the-as int s5-1)) obj) - (set! (-> obj nav-mesh-index) (the-as int s5-1)) - ) - ) - (else - (logclear! (-> obj bot-flags) (bot-flags bf16)) - ) - ) - ) - #t - ) - ) - (('slave-id) - (set! (-> obj slave-id) (the-as int (-> arg3 param 1))) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - ((= v1-0 'notify) - (case (-> arg3 param 0) - (('attack) - (let ((s5-2 (-> arg3 param 1))) - (when (if (type? s5-2 process-focusable) - s5-2 - ) - (logior! (-> obj enemy-flags) (enemy-flag look-at-focus)) - (set! (-> obj hit-focus-time) (-> pp clock frame-counter)) - ) - ) - #t - ) - (('mission-failed) - (logior! (-> obj bot-flags) (bot-flags bf09)) - (logclear! (-> obj bot-flags) (bot-flags bf06)) - #t - ) - (('follow-dir) - (set! (-> obj follow-dir quad) (-> (the-as vector (-> arg3 param 1)) quad)) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - ((= v1-0 'set-task) - (let ((a1-11 (/ (the-as int (-> arg3 param 0)) 8))) - (logior! (-> obj bot-task-bits) (ash 1 a1-11)) - ) - #t - ) - ((= v1-0 'clear-task) - (let ((a1-13 (/ (the-as int (-> arg3 param 0)) 8))) - (logclear! (-> obj bot-task-bits) (ash 1 a1-13)) - ) - #t - ) - ((= v1-0 'skip) - (skip-waypoint obj) - ) - ((= v1-0 'change-mode) - (when (= (-> arg3 param 0) 'grab) - (set! v0-0 (the-as none (alive? obj))) - (if (and (the-as symbol v0-0) (-> arg3 param 1)) - (logior! (-> obj focus-status) (focus-status grabbed)) ) - v0-0 - ) - ) - ((= v1-0 'end-mode) - (when (focus-test? obj grabbed) - (logclear! (-> obj focus-status) (focus-status grabbed)) - #t - ) - ) - ((= v1-0 'hide) - (cond - ((-> arg3 param 0) - (go (method-of-object obj hidden)) + (else + (when (not (focus-test? obj pilot)) + (set! (-> obj vehicle-seat-index) -1) + (set! (-> obj vehicle-handle) (the-as handle #f)) + (logclear! (-> obj bot-flags) (bot-flags bf15)) + #t + ) + ) + ) ) - (else - (if (and (-> obj next-state) (= (-> obj next-state name) 'hidden)) - (react-to-focus obj) - ) - ) + ) + (('exit-vehicle) + (when (focus-test? obj pilot) + (let ((v1-43 (-> arg3 param 1)) + (s5-1 (-> arg3 param 2)) + ) + (cond + (v1-43 + (set! (-> obj bot-flags) (logior (bot-flags bf16) (-> obj bot-flags))) + (when (and (>= (the-as int s5-1) 0) (!= s5-1 (-> obj nav-mesh-index))) + (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor (the-as int s5-1)) obj) + (set! (-> obj nav-mesh-index) (the-as int s5-1)) + ) + ) + (else + (logclear! (-> obj bot-flags) (bot-flags bf16)) + ) + ) + ) + #t + ) + ) + (('slave-id) + (set! (-> obj slave-id) (the-as int (-> arg3 param 1))) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - ((= v1-0 'draw) - (cond - ((-> arg3 param 0) - (set! v0-0 (the-as none (logclear (-> obj draw status) (draw-control-status no-draw)))) - (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + ((= v1-0 'notify) + (case (-> arg3 param 0) + (('attack) + (let ((s5-2 (-> arg3 param 1))) + (when (if (type? s5-2 process-focusable) + s5-2 + ) + (logior! (-> obj enemy-flags) (enemy-flag look-at-focus)) + (set! (-> obj hit-focus-time) (current-time)) + ) ) - (else - (set! v0-0 (the-as none (logior (-> obj draw status) (draw-control-status no-draw)))) - (set! (-> obj draw status) (the-as draw-control-status v0-0)) - ) + #t + ) + (('mission-failed) + (logior! (-> obj bot-flags) (bot-flags bf09)) + (logclear! (-> obj bot-flags) (bot-flags bf06)) + #t + ) + (('follow-dir) + (set! (-> obj follow-dir quad) (-> (the-as vector (-> arg3 param 1)) quad)) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + ) + ) + ((= v1-0 'set-task) + (let ((a1-11 (/ (the-as int (-> arg3 param 0)) 8))) + (logior! (-> obj bot-task-bits) (ash 1 a1-11)) + ) + #t + ) + ((= v1-0 'clear-task) + (let ((a1-13 (/ (the-as int (-> arg3 param 0)) 8))) + (logclear! (-> obj bot-task-bits) (ash 1 a1-13)) + ) + #t + ) + ((= v1-0 'skip) + (skip-waypoint obj) + ) + ((= v1-0 'change-mode) + (when (= (-> arg3 param 0) 'grab) + (set! v0-0 (the-as none (alive? obj))) + (if (and (the-as symbol v0-0) (-> arg3 param 1)) + (logior! (-> obj focus-status) (focus-status grabbed)) + ) v0-0 ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'end-mode) + (when (focus-test? obj grabbed) + (logclear! (-> obj focus-status) (focus-status grabbed)) + #t + ) + ) + ((= v1-0 'hide) + (cond + ((-> arg3 param 0) + (go (method-of-object obj hidden)) ) + (else + (if (and (-> obj next-state) (= (-> obj next-state name) 'hidden)) + (react-to-focus obj) + ) + ) + ) + ) + ((= v1-0 'draw) + (cond + ((-> arg3 param 0) + (set! v0-0 (the-as none (logclear (-> obj draw status) (draw-control-status no-draw)))) + (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + (else + (set! v0-0 (the-as none (logior (-> obj draw status) (draw-control-status no-draw)))) + (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + ) + v0-0 + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1089,74 +1083,68 @@ (defmethod bot-check-too-far bot ((obj bot)) "Call the current [[bot-waypoint]]'s `check-too-far` function if available, otherwise use the default `course` one. If the player is too far, play a warning speech." - (with-pp - (let ((result 0)) - (let ((too-far-check (-> obj delay-too-far-check))) - (cond - ((> too-far-check 0) - (set! (-> obj delay-too-far-check) (+ too-far-check -1)) - ) - ((and (zero? too-far-check) *target* (not (logtest? (-> obj focus-status) (focus-status grabbed)))) - (let ((check-too-far-func (the-as object (-> obj waypoint check-too-far)))) - (if (not (the-as symbol check-too-far-func)) - (set! check-too-far-func (-> obj course default-check-too-far)) - ) - (when (the-as symbol check-too-far-func) - (cond - ((logtest? (the-as int check-too-far-func) 1) - (set! result ((the-as (function bot int) (-> (the-as symbol check-too-far-func) value)) obj)) - ) - ((= (rtype-of (the-as symbol check-too-far-func)) function) - (set! result ((the-as (function bot int) check-too-far-func) obj)) - ) - ) + (let ((result 0)) + (let ((too-far-check (-> obj delay-too-far-check))) + (cond + ((> too-far-check 0) + (set! (-> obj delay-too-far-check) (+ too-far-check -1)) + ) + ((and (zero? too-far-check) *target* (not (logtest? (-> obj focus-status) (focus-status grabbed)))) + (let ((check-too-far-func (the-as object (-> obj waypoint check-too-far)))) + (if (not (the-as symbol check-too-far-func)) + (set! check-too-far-func (-> obj course default-check-too-far)) + ) + (when (the-as symbol check-too-far-func) + (cond + ((logtest? (the-as int check-too-far-func) 1) + (set! result ((the-as (function bot int) (-> (the-as symbol check-too-far-func) value)) obj)) + ) + ((= (rtype-of (the-as symbol check-too-far-func)) function) + (set! result ((the-as (function bot int) check-too-far-func) obj)) + ) ) ) - (if (and (= result 1) - (nonzero? (-> obj started-warning-time)) - (>= (- (-> pp clock frame-counter) (-> obj started-warning-time)) - (the-as time-frame (-> obj warn-to-fail-timeout)) - ) - ) - (set! result 2) - ) - (case result - ((1) - (if (zero? (-> obj started-warning-time)) - (set! (-> obj started-warning-time) (-> pp clock frame-counter)) - ) - (if (and (>= (-> pp clock frame-counter) (-> obj next-too-far-warn-time)) (play-too-far-warn-speech obj)) - (set! (-> obj next-too-far-warn-time) - (+ (-> pp clock frame-counter) - (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) - ) - ) - ) - ) - ) ) - ) + (if (and (= result 1) + (nonzero? (-> obj started-warning-time)) + (>= (- (current-time) (-> obj started-warning-time)) (the-as time-frame (-> obj warn-to-fail-timeout))) + ) + (set! result 2) + ) + (case result + ((1) + (if (zero? (-> obj started-warning-time)) + (set! (-> obj started-warning-time) (current-time)) + ) + (if (and (>= (current-time) (-> obj next-too-far-warn-time)) (play-too-far-warn-speech obj)) + (set! (-> obj next-too-far-warn-time) + (+ (current-time) + (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) + ) + ) + ) + ) + ) + ) ) - (when (zero? result) - (set! (-> obj started-warning-time) 0) - 0 - ) - (= result 2) ) + (when (zero? result) + (set! (-> obj started-warning-time) 0) + 0 + ) + (= result 2) ) ) ;; WARN: Return type mismatch time-frame vs none. (defmethod reset-warn-time! bot ((obj bot)) - (with-pp - (set! (-> obj started-warning-time) 0) - (set! (-> obj next-too-far-warn-time) - (+ (-> pp clock frame-counter) - (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) - ) - ) - (none) - ) + (set! (-> obj started-warning-time) 0) + (set! (-> obj next-too-far-warn-time) + (+ (current-time) + (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) + ) + ) + (none) ) (defmethod track-target! bot ((obj bot)) @@ -1381,44 +1369,42 @@ If the player is too far, play a warning speech." (defmethod go-to-waypoint! bot ((obj bot) (id int) (skipped? symbol)) "Start moving to the given [[bot-waypoint]]." - (with-pp - (let* ((course (-> obj course)) - (waypoint-count (-> course waypoints length)) - ) - (dotimes (i waypoint-count) - (let ((waypoint (-> course waypoints i))) - (when (= (-> waypoint waypoint-id) id) - (set! (-> obj waypoint) waypoint) - (set! (-> obj waypoint-bits) (the-as uint 0)) - (set! (-> obj waypoint-time0) (-> pp clock frame-counter)) - (set! (-> obj too-far-warn-dist) (-> obj too-far-warn-dist-default)) - (set! (-> obj too-far-fail-dist-delta) (-> obj too-far-fail-dist-delta-default)) - (let ((mesh-idx (-> waypoint nav-mesh-index))) - (when (and (>= mesh-idx 0) (!= (-> obj nav-mesh-index) mesh-idx)) - (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor mesh-idx) obj) - (set! (-> obj nav-mesh-index) mesh-idx) - ) + (let* ((course (-> obj course)) + (waypoint-count (-> course waypoints length)) + ) + (dotimes (i waypoint-count) + (let ((waypoint (-> course waypoints i))) + (when (= (-> waypoint waypoint-id) id) + (set! (-> obj waypoint) waypoint) + (set! (-> obj waypoint-bits) (the-as uint 0)) + (set! (-> obj waypoint-time0) (current-time)) + (set! (-> obj too-far-warn-dist) (-> obj too-far-warn-dist-default)) + (set! (-> obj too-far-fail-dist-delta) (-> obj too-far-fail-dist-delta-default)) + (let ((mesh-idx (-> waypoint nav-mesh-index))) + (when (and (>= mesh-idx 0) (!= (-> obj nav-mesh-index) mesh-idx)) + (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor mesh-idx) obj) + (set! (-> obj nav-mesh-index) mesh-idx) ) - (when skipped? - (let ((on-skip (-> waypoint on-skipping-here))) - (when on-skip - (process-entity-status! obj (entity-perm-status no-kill) #t) - (on-skip obj) - ) - ) - ) - (let ((on-set (-> waypoint on-set))) - (if on-set - (on-set obj) - ) - ) - (return #f) ) + (when skipped? + (let ((on-skip (-> waypoint on-skipping-here))) + (when on-skip + (process-entity-status! obj (entity-perm-status no-kill) #t) + (on-skip obj) + ) + ) + ) + (let ((on-set (-> waypoint on-set))) + (if on-set + (on-set obj) + ) + ) + (return #f) ) ) ) - (go process-drawable-art-error "bad waypoint id") ) + (go process-drawable-art-error "bad waypoint id") ) ;; WARN: Return type mismatch object vs none. @@ -1540,88 +1526,86 @@ If the player is too far, play a warning speech." ) (defmethod bot-method-223 bot ((obj bot) (arg0 symbol)) - (with-pp - (let ((focus (-> obj focus-info)) - (timer (-> pp clock frame-counter)) - (focus-proc (handle->process (-> obj focus handle))) - ) - (when (or (!= timer (-> focus update-time)) (!= focus-proc (-> focus fproc))) - (set! (-> focus update-time) timer) - (set! (-> focus fproc) (the-as process-focusable focus-proc)) - (set! (-> focus los) 0) - (when focus-proc - (set! (-> focus pos quad) (-> (get-trans (the-as process-focusable focus-proc) 0) quad)) - (set! (-> focus bullseye quad) (-> (get-trans (the-as process-focusable focus-proc) 3) quad)) - (vector-z-quaternion! (-> focus my-facing-xz-dir) (-> obj root-override2 quat)) - (set! (-> focus my-facing-xz-dir y) 0.0) - (vector-normalize! (-> focus my-facing-xz-dir) 1.0) - (set! (-> focus my-facing-ry) (atan (-> focus my-facing-xz-dir x) (-> focus my-facing-xz-dir z))) - (vector-! (-> focus bullseye-xz-dir) (-> focus bullseye) (-> obj root-override2 trans)) - (let ((v1-11 (-> focus bullseye-xz-dir))) - (set! (-> focus bullseye-xz-dist) (sqrtf (+ (* (-> v1-11 x) (-> v1-11 x)) (* (-> v1-11 z) (-> v1-11 z))))) - ) - (set! (-> focus bullseye-xz-dir y) 0.0) - (vector-normalize! (-> focus bullseye-xz-dir) 1.0) - (set! (-> focus bullseye-ry) (atan (-> focus bullseye-xz-dir x) (-> focus bullseye-xz-dir z))) - (set! (-> focus ry-diff) (deg- (-> focus bullseye-ry) (-> focus my-facing-ry))) - ) + (let ((focus (-> obj focus-info)) + (timer (current-time)) + (focus-proc (handle->process (-> obj focus handle))) ) - (when (and arg0 focus-proc (zero? (-> focus los))) - (let ((cquery (new 'stack-no-clear 'collide-query))) - (set! (-> cquery start-pos quad) (-> obj root-override2 trans quad)) - (set! (-> cquery start-pos y) (+ 8192.0 (-> cquery start-pos y))) - (vector-! (-> cquery move-dist) (-> focus bullseye) (-> cquery start-pos)) - (let ((f0-19 (fmax 1.0 (+ -1638.4 (vector-length (-> cquery move-dist)))))) - (cond - ((< f0-19 (-> focus max-los-dist)) - (vector-normalize! (-> cquery move-dist) f0-19) - (let ((v1-23 cquery)) - (set! (-> v1-23 radius) 2048.0) - (set! (-> v1-23 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher)) - (set! (-> v1-23 ignore-process0) obj) - (set! (-> v1-23 ignore-process1) #f) - (set! (-> v1-23 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-23 action-mask) (collide-action solid)) - ) - (cond - ((>= (fill-and-probe-using-line-sphere *collide-cache* cquery) 0.0) - (set! (-> focus los) 3) - 0 - ) - (else - (let ((s3-3 1)) - (when (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (let ((a0-31 *target*)) - (when a0-31 - (vector+! (-> cquery move-dist) (-> cquery move-dist) (-> cquery start-pos)) - (if (>= 16384.0 (vector-segment-distance-point! - (get-trans a0-31 3) - (-> cquery start-pos) - (-> cquery move-dist) - (the-as vector #f) - ) - ) - (set! s3-3 4) - ) - ) + (when (or (!= timer (-> focus update-time)) (!= focus-proc (-> focus fproc))) + (set! (-> focus update-time) timer) + (set! (-> focus fproc) (the-as process-focusable focus-proc)) + (set! (-> focus los) 0) + (when focus-proc + (set! (-> focus pos quad) (-> (get-trans (the-as process-focusable focus-proc) 0) quad)) + (set! (-> focus bullseye quad) (-> (get-trans (the-as process-focusable focus-proc) 3) quad)) + (vector-z-quaternion! (-> focus my-facing-xz-dir) (-> obj root-override2 quat)) + (set! (-> focus my-facing-xz-dir y) 0.0) + (vector-normalize! (-> focus my-facing-xz-dir) 1.0) + (set! (-> focus my-facing-ry) (atan (-> focus my-facing-xz-dir x) (-> focus my-facing-xz-dir z))) + (vector-! (-> focus bullseye-xz-dir) (-> focus bullseye) (-> obj root-override2 trans)) + (let ((v1-11 (-> focus bullseye-xz-dir))) + (set! (-> focus bullseye-xz-dist) (sqrtf (+ (* (-> v1-11 x) (-> v1-11 x)) (* (-> v1-11 z) (-> v1-11 z))))) + ) + (set! (-> focus bullseye-xz-dir y) 0.0) + (vector-normalize! (-> focus bullseye-xz-dir) 1.0) + (set! (-> focus bullseye-ry) (atan (-> focus bullseye-xz-dir x) (-> focus bullseye-xz-dir z))) + (set! (-> focus ry-diff) (deg- (-> focus bullseye-ry) (-> focus my-facing-ry))) + ) + ) + (when (and arg0 focus-proc (zero? (-> focus los))) + (let ((cquery (new 'stack-no-clear 'collide-query))) + (set! (-> cquery start-pos quad) (-> obj root-override2 trans quad)) + (set! (-> cquery start-pos y) (+ 8192.0 (-> cquery start-pos y))) + (vector-! (-> cquery move-dist) (-> focus bullseye) (-> cquery start-pos)) + (let ((f0-19 (fmax 1.0 (+ -1638.4 (vector-length (-> cquery move-dist)))))) + (cond + ((< f0-19 (-> focus max-los-dist)) + (vector-normalize! (-> cquery move-dist) f0-19) + (let ((v1-23 cquery)) + (set! (-> v1-23 radius) 2048.0) + (set! (-> v1-23 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher)) + (set! (-> v1-23 ignore-process0) obj) + (set! (-> v1-23 ignore-process1) #f) + (set! (-> v1-23 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-23 action-mask) (collide-action solid)) + ) + (cond + ((>= (fill-and-probe-using-line-sphere *collide-cache* cquery) 0.0) + (set! (-> focus los) 3) + 0 + ) + (else + (let ((s3-3 1)) + (when (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (let ((a0-31 *target*)) + (when a0-31 + (vector+! (-> cquery move-dist) (-> cquery move-dist) (-> cquery start-pos)) + (if (>= 16384.0 (vector-segment-distance-point! + (get-trans a0-31 3) + (-> cquery start-pos) + (-> cquery move-dist) + (the-as vector #f) + ) + ) + (set! s3-3 4) + ) ) ) - (set! (-> focus los) s3-3) ) + (set! (-> focus los) s3-3) ) ) ) - (else - (set! (-> focus los) 2) - ) + ) + (else + (set! (-> focus los) 2) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch float vs none. @@ -1869,77 +1853,71 @@ If the player is too far, play a warning speech." ;; WARN: Return type mismatch focus-status vs none. (defmethod bot-method-191 bot ((obj bot)) - (with-pp - (logior! (-> obj bot-flags) (bot-flags bf02)) - (set! (-> obj hit-invuln-starting-time) (-> pp clock frame-counter)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active)) - (if (nonzero? (-> obj hit-invuln-ignore-me-delay)) - (logior! (-> obj focus-status) (focus-status ignore)) - ) - (if (nonzero? (-> obj hit-invuln-focus-disable-delay)) - (logior! (-> obj focus-status) (focus-status disable)) - ) - (none) - ) + (logior! (-> obj bot-flags) (bot-flags bf02)) + (set! (-> obj hit-invuln-starting-time) (current-time)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active)) + (if (nonzero? (-> obj hit-invuln-ignore-me-delay)) + (logior! (-> obj focus-status) (focus-status ignore)) + ) + (if (nonzero? (-> obj hit-invuln-focus-disable-delay)) + (logior! (-> obj focus-status) (focus-status disable)) + ) + (none) ) ;; WARN: Return type mismatch bot-flags vs none. (defmethod bot-method-192 bot ((obj bot)) (local-vars (a2-7 enemy-flag)) - (with-pp - (let ((a1-0 (-> obj hit-invuln-starting-time)) - (v1-0 #t) - ) - (if (not (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active))) - (set! v1-0 (cond - ((>= (- (-> pp clock frame-counter) a1-0) (seconds 0.6)) - (let ((a2-6 (-> obj enemy-flags))) - (if (logtest? a2-6 (enemy-flag checking-water)) - (set! a2-7 (logior a2-6 (enemy-flag enable-on-active))) - (set! a2-7 (logclear a2-6 (enemy-flag enable-on-active))) - ) - ) - (set! (-> obj enemy-flags) a2-7) - v1-0 + (let ((a1-0 (-> obj hit-invuln-starting-time)) + (v1-0 #t) + ) + (if (not (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active))) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (seconds 0.6)) + (let ((a2-6 (-> obj enemy-flags))) + (if (logtest? a2-6 (enemy-flag checking-water)) + (set! a2-7 (logior a2-6 (enemy-flag enable-on-active))) + (set! a2-7 (logclear a2-6 (enemy-flag enable-on-active))) + ) ) - (else - #f - ) + (set! (-> obj enemy-flags) a2-7) + v1-0 + ) + (else + #f ) - ) - ) - (if (focus-test? obj ignore) - (set! v1-0 - (cond - ((>= (- (-> pp clock frame-counter) a1-0) (the-as time-frame (-> obj hit-invuln-ignore-me-delay))) - (logclear! (-> obj focus-status) (focus-status ignore)) - v1-0 - ) - (else - #f - ) - ) - ) - ) - (if (focus-test? obj disable) - (set! v1-0 - (cond - ((>= (- (-> pp clock frame-counter) a1-0) (the-as time-frame (-> obj hit-invuln-focus-disable-delay))) - (logclear! (-> obj focus-status) (focus-status disable)) - v1-0 - ) - (else - #f - ) - ) - ) - ) - (if v1-0 - (logclear! (-> obj bot-flags) (bot-flags bf02)) - ) - ) - (none) + ) + ) + ) + (if (focus-test? obj ignore) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (the-as time-frame (-> obj hit-invuln-ignore-me-delay))) + (logclear! (-> obj focus-status) (focus-status ignore)) + v1-0 + ) + (else + #f + ) + ) + ) + ) + (if (focus-test? obj disable) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (the-as time-frame (-> obj hit-invuln-focus-disable-delay))) + (logclear! (-> obj focus-status) (focus-status disable)) + v1-0 + ) + (else + #f + ) + ) + ) + ) + (if v1-0 + (logclear! (-> obj bot-flags) (bot-flags bf02)) + ) ) + (none) ) (defmethod bot-method-216 bot ((obj bot)) diff --git a/goal_src/jak2/levels/common/airlock.gc b/goal_src/jak2/levels/common/airlock.gc index bf72bd320a..15d1062153 100644 --- a/goal_src/jak2/levels/common/airlock.gc +++ b/goal_src/jak2/levels/common/airlock.gc @@ -174,7 +174,7 @@ (local-vars (a0-12 entity-actor)) (let* ((tgt (target-pos 0)) (f30-0 (check-crossing-distance obj tgt #t)) - (s5-0 (>= (-> obj latch-open-time) (-> self clock frame-counter))) + (s5-0 (>= (-> obj latch-open-time) (current-time))) ) (the-as symbol @@ -187,7 +187,7 @@ (if (and (not (-> obj were-behind?)) (and (< f30-0 0.0) (-> obj inner?))) (set! (-> obj were-behind?) #t) ) - (and (< (-> obj latch-closed-time) (-> self clock frame-counter)) + (and (< (-> obj latch-closed-time) (current-time)) (or (not (and *target* (focus-test? *target* pilot teleporting))) (< f30-0 -409.6)) (or (and (< f30-0 (-> obj open-distance)) (or (not (-> obj were-behind?)) (< f30-0 20480.0)) @@ -322,8 +322,8 @@ ) ) (cond - ((and gp-0 (>= (- (-> self clock frame-counter) (-> obj spool-sound-time)) (seconds 2))) - (set! (-> obj spool-sound-time) (-> self clock frame-counter)) + ((and gp-0 (>= (- (current-time) (-> obj spool-sound-time)) (seconds 2))) + (set! (-> obj spool-sound-time) (current-time)) (add-process *gui-control* obj @@ -359,10 +359,10 @@ object (case event-type (('close) - (set! (-> self latch-closed-time) (+ (-> self clock frame-counter) (if (>= arg1 1) - (the-as int (-> event param 0)) - 3000 - ) + (set! (-> self latch-closed-time) (+ (current-time) (if (>= arg1 1) + (the-as int (-> event param 0)) + 3000 + ) ) ) (if (and (>= arg1 2) (and (= (-> event param 1) #t) (not (want-cross-airlock? self)))) @@ -371,10 +371,10 @@ (and (-> self next-state) (= (-> self next-state name) 'open)) ) (('open) - (set! (-> self latch-open-time) (+ (-> self clock frame-counter) (if (>= arg1 1) - (the-as int (-> event param 0)) - 3000 - ) + (set! (-> self latch-open-time) (+ (current-time) (if (>= arg1 1) + (the-as int (-> event param 0)) + 3000 + ) ) ) (if (and (>= arg1 2) (and (= (-> event param 1) #t) (want-cross-airlock? self) (destination-loaded? self #f))) @@ -804,7 +804,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -875,7 +875,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -959,7 +959,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1027,7 +1027,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1097,7 +1097,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) @@ -1162,7 +1162,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1231,7 +1231,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1366,7 +1366,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) diff --git a/goal_src/jak2/levels/common/battle.gc b/goal_src/jak2/levels/common/battle.gc index 9d410ef7f3..9bfc6aa249 100644 --- a/goal_src/jak2/levels/common/battle.gc +++ b/goal_src/jak2/levels/common/battle.gc @@ -1097,64 +1097,62 @@ ) (defmethod battle-method-39 battle ((obj battle) (arg0 battle-spawner) (arg1 symbol)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'quaternion)) - (s2-0 (-> arg0 intro-path)) - ) - (cond - (s2-0 - (let ((s1-0 0)) - (when arg1 - (set! s1-0 (-> arg0 ready-index)) - (set! s1-0 (cond - ((>= s1-0 0) - (empty) - s1-0 - ) - (else - (-> arg0 attack-index) - ) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'quaternion)) + (s2-0 (-> arg0 intro-path)) + ) + (cond + (s2-0 + (let ((s1-0 0)) + (when arg1 + (set! s1-0 (-> arg0 ready-index)) + (set! s1-0 (cond + ((>= s1-0 0) + (empty) + s1-0 + ) + (else + (-> arg0 attack-index) ) - ) - ) - (set! (-> arg0 creature-index) s1-0) - (get-point-in-path! s2-0 s3-0 (the float s1-0) 'exact) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (displacement-between-two-points-normalized! s2-0 s0-0 (the float s1-0)) - (set! (-> s0-0 y) 0.0) - (vector-normalize! s0-0 1.0) - (forward-up->quaternion s4-0 s0-0 *up-vector*) - ) + ) + ) ) - ) - (else - (set! (-> arg0 creature-index) 0) - (let ((v1-7 (-> arg0 entity))) - (set! (-> s3-0 quad) (-> v1-7 extra trans quad)) - (quaternion-copy! s4-0 (-> v1-7 quat)) + (set! (-> arg0 creature-index) s1-0) + (get-point-in-path! s2-0 s3-0 (the float s1-0) 'exact) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (displacement-between-two-points-normalized! s2-0 s0-0 (the float s1-0)) + (set! (-> s0-0 y) 0.0) + (vector-normalize! s0-0 1.0) + (forward-up->quaternion s4-0 s0-0 *up-vector*) ) ) ) - (let ((s1-1 (new 'stack-no-clear 'transformq)) - (s2-1 (!= s2-0 #f)) - (s0-1 (battle-method-41 obj arg0)) - ) - (set! (-> s1-1 trans quad) (-> s3-0 quad)) - (quaternion-copy! (-> s1-1 quat) s4-0) - (set! (-> s1-1 scale x) (the-as float (-> arg0 entity))) - (set! (-> s1-1 scale y) (the-as float #t)) - (set! (-> s1-1 scale z) (the-as float s2-1)) - (let ((v0-7 (battle-method-38 obj s0-1 s1-1))) - (when (handle->process v0-7) - (set! (-> arg0 creature) v0-7) - (set! (-> arg0 mode) (the-as uint 1)) - (set! (-> arg0 last-spawn-time) (-> pp clock frame-counter)) - ) - v0-7 + (else + (set! (-> arg0 creature-index) 0) + (let ((v1-7 (-> arg0 entity))) + (set! (-> s3-0 quad) (-> v1-7 extra trans quad)) + (quaternion-copy! s4-0 (-> v1-7 quat)) ) ) ) + (let ((s1-1 (new 'stack-no-clear 'transformq)) + (s2-1 (!= s2-0 #f)) + (s0-1 (battle-method-41 obj arg0)) + ) + (set! (-> s1-1 trans quad) (-> s3-0 quad)) + (quaternion-copy! (-> s1-1 quat) s4-0) + (set! (-> s1-1 scale x) (the-as float (-> arg0 entity))) + (set! (-> s1-1 scale y) (the-as float #t)) + (set! (-> s1-1 scale z) (the-as float s2-1)) + (let ((v0-7 (battle-method-38 obj s0-1 s1-1))) + (when (handle->process v0-7) + (set! (-> arg0 creature) v0-7) + (set! (-> arg0 mode) (the-as uint 1)) + (set! (-> arg0 last-spawn-time) (current-time)) + ) + v0-7 + ) + ) ) ) @@ -1188,10 +1186,10 @@ (let ((v1-5 (-> arg0 noticed-attack-time))) (cond ((zero? v1-5) - (set! (-> arg0 noticed-attack-time) (-> self clock frame-counter)) + (set! (-> arg0 noticed-attack-time) (current-time)) ) (else - (if (>= (- (-> self clock frame-counter) v1-5) (the-as time-frame (-> arg0 notice-attack-delay))) + (if (>= (- (current-time) v1-5) (the-as time-frame (-> arg0 notice-attack-delay))) (logior! (-> arg0 flags) 1) ) ) @@ -1389,7 +1387,7 @@ :virtual #t :event battle-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self on-notice))) (if gp-0 (script-eval (the-as pair gp-0) :vector (-> self root trans)) @@ -1446,84 +1444,82 @@ ) (defmethod battle-method-50 battle ((obj battle)) - (with-pp - (let ((s5-0 (battle-method-52 obj)) - (v1-2 (battle-method-49 obj)) - (a1-0 (-> obj child)) - (a0-3 0) - ) - (while a1-0 - (+! a0-3 1) - (set! a1-0 (-> a1-0 0 brother)) - (nop!) - (nop!) + (let ((s5-0 (battle-method-52 obj)) + (v1-2 (battle-method-49 obj)) + (a1-0 (-> obj child)) + (a0-3 0) ) - (set! (-> obj stat-child-count) (the-as uint a0-3)) - (let ((a0-4 (+ v1-2 a0-3)) - (v1-4 (-> obj max-count)) + (while a1-0 + (+! a0-3 1) + (set! a1-0 (-> a1-0 0 brother)) + (nop!) + (nop!) + ) + (set! (-> obj stat-child-count) (the-as uint a0-3)) + (let ((a0-4 (+ v1-2 a0-3)) + (v1-4 (-> obj max-count)) + ) + (when (zero? a0-4) + (if (or (logtest? (-> obj flags) 4) (>= (-> obj die-count) v1-4)) + (return #t) ) - (when (zero? a0-4) - (if (or (logtest? (-> obj flags) 4) (>= (-> obj die-count) v1-4)) - (return #t) + ) + (set! (-> obj flags) (logand -9 (-> obj flags))) + (cond + ((and (> s5-0 0) (>= s5-0 (the-as int (- v1-4 (-> obj die-count))))) + (let ((a1-14 (-> obj jammed-starting-time))) + (cond + ((zero? (-> obj jammed-starting-time)) + (set! (-> obj jammed-starting-time) (current-time)) ) + (else + (if (>= (- (current-time) a1-14) (seconds 3.5)) + (logior! (-> obj flags) 8) + ) + ) + ) + ) + ) + (else + (set! (-> obj jammed-starting-time) 0) + 0 ) - (set! (-> obj flags) (logand -9 (-> obj flags))) - (cond - ((and (> s5-0 0) (>= s5-0 (the-as int (- v1-4 (-> obj die-count))))) - (let ((a1-14 (-> obj jammed-starting-time))) + ) + (cond + ((and (not (logtest? (-> obj flags) 4)) + (> (-> obj spawners length) 0) + (< a0-4 (the-as int (-> obj info desired-alive-count))) + (< (-> obj count) v1-4) + ) + (when (>= (- (current-time) (-> obj cant-spawn-time)) (the-as time-frame (-> obj next-spawn-delay))) + (let ((a1-29 (battle-method-36 obj))) (cond - ((zero? (-> obj jammed-starting-time)) - (set! (-> obj jammed-starting-time) (-> pp clock frame-counter)) - ) + (a1-29 + (battle-method-39 obj a1-29 #f) + (set! (-> obj next-spawn-delay) (the-as uint (battle-method-35 obj))) + (set! (-> obj cant-spawn-time) (current-time)) + ) (else - (if (>= (- (-> pp clock frame-counter) a1-14) (seconds 3.5)) - (logior! (-> obj flags) 8) - ) + (set! (-> obj cant-spawn-time) (current-time)) ) ) ) ) - (else - (set! (-> obj jammed-starting-time) 0) - 0 - ) - ) - (cond - ((and (not (logtest? (-> obj flags) 4)) - (> (-> obj spawners length) 0) - (< a0-4 (the-as int (-> obj info desired-alive-count))) - (< (-> obj count) v1-4) - ) - (when (>= (- (-> pp clock frame-counter) (-> obj cant-spawn-time)) (the-as time-frame (-> obj next-spawn-delay))) - (let ((a1-29 (battle-method-36 obj))) - (cond - (a1-29 - (battle-method-39 obj a1-29 #f) - (set! (-> obj next-spawn-delay) (the-as uint (battle-method-35 obj))) - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) - (else - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) - ) - ) - ) - ) - (else - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) + ) + (else + (set! (-> obj cant-spawn-time) (current-time)) ) ) ) - #f ) + #f ) (defstate hostile (battle) :virtual #t :event battle-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self flags) 2) (set! (-> self flags) (logand -9 (-> self flags))) (set! (-> self jammed-starting-time) 0) diff --git a/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc b/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc index cb912dcc52..cb9ba574e2 100644 --- a/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc +++ b/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc @@ -1028,8 +1028,8 @@ :virtual #t :code (behavior () (until #f - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.067)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1.067)) (amphibian-method-187 self) (suspend) ) @@ -1089,7 +1089,7 @@ 0 (nav-enemy-method-165 self) (ja-no-eval :num! (loop!)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.067)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1.067)) (amphibian-method-187 self) (suspend) ) @@ -1675,7 +1675,7 @@ :event (the-as (function process int symbol event-message-block object :behavior amphibian) enemy-event-handler) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1702,7 +1702,7 @@ (let ((v1-0 (-> self tongue-mode))) (cond ((zero? v1-0) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (set! (-> self tongue-mode) (the-as uint 1)) (sound-play "tongue-attack") ) diff --git a/goal_src/jak2/levels/common/enemy/baby_spider/tomb-baby-spider.gc b/goal_src/jak2/levels/common/enemy/baby_spider/tomb-baby-spider.gc index c2f6edc869..170497cc4a 100644 --- a/goal_src/jak2/levels/common/enemy/baby_spider/tomb-baby-spider.gc +++ b/goal_src/jak2/levels/common/enemy/baby_spider/tomb-baby-spider.gc @@ -468,7 +468,7 @@ 0 ) (ja-channel-push! 1 (seconds 0.2)) - (let ((gp-3 (-> self clock frame-counter)) + (let ((gp-3 (current-time)) (s5-1 (the int (* 300.0 (rand-vu-float-range 0.6 1.2)))) (f30-2 1.0) ) @@ -476,7 +476,7 @@ :num! (loop! f30-2) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) gp-3) s5-1) + (until (>= (- (current-time) gp-3) s5-1) (suspend) (ja :num! (loop! f30-2)) ) diff --git a/goal_src/jak2/levels/common/enemy/bombots/bombbot.gc b/goal_src/jak2/levels/common/enemy/bombots/bombbot.gc index a1d6418a80..10e7cc2641 100644 --- a/goal_src/jak2/levels/common/enemy/bombots/bombbot.gc +++ b/goal_src/jak2/levels/common/enemy/bombots/bombbot.gc @@ -855,7 +855,7 @@ (let ((f30-0 0.4)) (vector-normalize! s2-0 1.0) (let ((s1-0 (-> obj feet s4-0))) - (let* ((f0-10 (+ (* 0.0033333334 (the float (mod (-> pp clock frame-counter) 300))) (-> s1-0 offset))) + (let* ((f0-10 (+ (* 0.0033333334 (the float (mod (current-time) 300))) (-> s1-0 offset))) (f28-0 (- f0-10 (* (the float (the int (/ f0-10 1.0))) 1.0))) (s0-0 (new 'stack-no-clear 'vector)) ) @@ -1868,14 +1868,14 @@ (init-vf0-vector) (when (>= (the int (* 30.0 (-> self shield-hit-points))) (-> self hit-points)) ) - (when (< (the-as time-frame (-> self next-target)) (-> self clock frame-counter)) + (when (< (the-as time-frame (-> self next-target)) (current-time)) (let ((a1-0 (new 'stack-no-clear 'vector))) (set! (-> a1-0 quad) (-> self root-override2 trans quad)) (set! (-> a1-0 w) 122880.0) (bombbot-method-181 self a1-0) ) - (set! (-> self next-target) (the-as uint (+ (-> self clock frame-counter) (seconds 2)))) - (set! (-> self start-target) (the-as uint (-> self clock frame-counter))) + (set! (-> self next-target) (the-as uint (+ (current-time) (seconds 2)))) + (set! (-> self start-target) (the-as uint (current-time))) ) (let ((gp-0 (handle->process (-> self focus handle)))) (let ((f30-0 1.0)) @@ -1891,7 +1891,7 @@ (let ((a1-6 (-> self target-pos))) (let ((v1-34 (-> self start-target-pos))) (let ((a0-14 (-> self start-target-vel))) - (let ((a2-8 (* 0.0033333334 (the float (- (-> self clock frame-counter) (the-as int (-> self start-target))))))) + (let ((a2-8 (* 0.0033333334 (the float (- (current-time) (the-as int (-> self start-target))))))) (.mov vf7 a2-8) ) (.lvf vf5 (&-> a0-14 quad)) @@ -1904,7 +1904,7 @@ (.svf (&-> a1-6 quad) vf6) ) (cond - ((< (the-as time-frame (+ (-> self next-target) -300)) (-> self clock frame-counter)) + ((< (the-as time-frame (+ (-> self next-target) -300)) (current-time)) (bombbot-method-182 self) ) (else @@ -1956,7 +1956,7 @@ ) ) (if (= (vector-length (-> self root-override2 transv)) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self last-head-roty-speed) (-> self head-roty-speed)) (set! (-> self head-roty-speed) (vector-y-angle (-> self node-list data 4 bone transform vector 2))) @@ -2088,7 +2088,7 @@ ) (set! (-> self explosing) #f) (set! (-> self beep-time) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -2098,28 +2098,26 @@ ) ) 0 - (if (>= (- (-> self clock frame-counter) (-> self state-time)) 0) + (if (>= (- (current-time) (-> self state-time)) 0) (seek! (-> self legs-strength 0) 0.8 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (seek! (-> self legs-strength 3) 0.4 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.6)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1.6)) (seek! (-> self legs-strength 1) 0.0 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2.4)) (seek! (-> self legs-strength 2) 0.5 (* 10.0 (-> self clock seconds-per-frame))) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.8)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2.8)) (sound-play "bb-explode") (go-virtual explode) ) - (when (< (-> self beep-time) (-> self clock frame-counter)) + (when (< (-> self beep-time) (current-time)) (sound-play "bb-beep") (set! (-> self beep-time) - (+ (-> self clock frame-counter) - (the int (* 0.2 (the float (- (seconds 2.8) (- (-> self clock frame-counter) (-> self state-time)))))) - ) + (+ (current-time) (the int (* 0.2 (the float (- (seconds 2.8) (- (current-time) (-> self state-time))))))) ) ) (none) @@ -2153,7 +2151,7 @@ (set! (-> self minimap) #f) ) (set! (-> self explosing) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack 'joint-exploder-tuning (the-as uint 1)))) (set! (-> gp-0 fountain-rand-transv-lo quad) (-> self root-override2 trans quad)) (set! (-> gp-0 duration) (seconds 3)) @@ -3152,7 +3150,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (talker-spawn-func (-> *talker-speech* 117) *entity-pool* (target-pos 0) (the-as region #f)) (none) ) @@ -3173,8 +3171,8 @@ ((= (level-status *level* 'ctysluma) 'active) (set-setting! 'entity-name "camera-236" 0.0 0) (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (add-process *gui-control* self (gui-channel sig) (gui-action play) "bbotxplo" -99.0 0) @@ -3190,8 +3188,8 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 0.3)) (suspend) ) (setup @@ -3201,7 +3199,7 @@ (-> self clock seconds-per-frame) (bucket-id tex-all-map) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (set-setting! 'interp-time 'abs 0.0 0) @@ -3297,7 +3295,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (suspend) ) diff --git a/goal_src/jak2/levels/common/enemy/bouncer.gc b/goal_src/jak2/levels/common/enemy/bouncer.gc index 181827b23b..05136000cf 100644 --- a/goal_src/jak2/levels/common/enemy/bouncer.gc +++ b/goal_src/jak2/levels/common/enemy/bouncer.gc @@ -138,7 +138,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('touch) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else @@ -147,10 +147,10 @@ ) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self smush) 0.0) (until #f - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (ja :num! (seek! 0.0 0.1)) (ja :num! (seek! (lerp-scale diff --git a/goal_src/jak2/levels/common/enemy/fodder/fodder.gc b/goal_src/jak2/levels/common/enemy/fodder/fodder.gc index 674c11ffd9..d00fbe325b 100644 --- a/goal_src/jak2/levels/common/enemy/fodder/fodder.gc +++ b/goal_src/jak2/levels/common/enemy/fodder/fodder.gc @@ -270,52 +270,50 @@ (defmethod fodder-method-180 fodder ((obj fodder)) "@TODO no idea, never seems to do anything because the actor-group-count is always 0" - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj look-at-other-time)) (seconds 0.25)) - (dotimes (group-idx (-> obj actor-group-count)) - (let ((group (-> obj actor-group group-idx))) - (dotimes (actor-idx (-> group length)) - (let* ((actor-proc (-> group data actor-idx actor extra process)) - (fodder-proc (if (type? actor-proc fodder) - (the-as fodder actor-proc) - ) - ) - ) - (when (and fodder-proc - (!= fodder-proc obj) - (>= (- (-> pp clock frame-counter) (-> fodder-proc look-at-other-time)) (seconds 0.25)) - ) - (let* ((dir-to-other-fodder - (vector-! (new 'stack-no-clear 'vector) (-> fodder-proc root-override2 trans) (-> obj root-override2 trans)) - ) - (dir-length (vector-length dir-to-other-fodder)) + (when (>= (- (current-time) (-> obj look-at-other-time)) (seconds 0.25)) + (dotimes (group-idx (-> obj actor-group-count)) + (let ((group (-> obj actor-group group-idx))) + (dotimes (actor-idx (-> group length)) + (let* ((actor-proc (-> group data actor-idx actor extra process)) + (fodder-proc (if (type? actor-proc fodder) + (the-as fodder actor-proc) + ) + ) + ) + (when (and fodder-proc + (!= fodder-proc obj) + (>= (- (current-time) (-> fodder-proc look-at-other-time)) (seconds 0.25)) ) - (when (< dir-length 8192.0) - (vector-float*! dir-to-other-fodder dir-to-other-fodder (/ 1.0 dir-length)) - (let ((f30-0 (vector-dot - dir-to-other-fodder - (-> (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat)) vector 2) - ) + (let* ((dir-to-other-fodder + (vector-! (new 'stack-no-clear 'vector) (-> fodder-proc root-override2 trans) (-> obj root-override2 trans)) + ) + (dir-length (vector-length dir-to-other-fodder)) + ) + (when (< dir-length 8192.0) + (vector-float*! dir-to-other-fodder dir-to-other-fodder (/ 1.0 dir-length)) + (let ((f30-0 (vector-dot + dir-to-other-fodder + (-> (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat)) vector 2) ) - ) - (when (< (cos 14563.556) f30-0) - (let ((channel (ja-channel-float! (the-as art-joint-anim (-> obj draw art-group data 15)) 0.0 0.0 0.0))) - (when channel - (set! (-> obj skel interp-select 0) #xe00010) - (set! (-> obj skel interp-select 1) 0) - (set! (-> channel param 0) 1.0) - (set! (-> channel param 1) 1.0) - (set! (-> channel param 2) 1.0) - (set! (-> channel num-func) num-func-interp1-play!) - ) - ) - (set! (-> obj look-at-other-time) (-> pp clock frame-counter)) - (set! (-> obj look-at-other) (process->handle fodder-proc)) - (set! (-> obj neck-away-from) #f) - (set! (-> fodder-proc look-at-other-time) (-> pp clock frame-counter)) - (set! (-> fodder-proc look-at-other) (process->handle obj)) - (set! (-> fodder-proc neck-away-from) #t) + ) ) + (when (< (cos 14563.556) f30-0) + (let ((channel (ja-channel-float! (the-as art-joint-anim (-> obj draw art-group data 15)) 0.0 0.0 0.0))) + (when channel + (set! (-> obj skel interp-select 0) #xe00010) + (set! (-> obj skel interp-select 1) 0) + (set! (-> channel param 0) 1.0) + (set! (-> channel param 1) 1.0) + (set! (-> channel param 2) 1.0) + (set! (-> channel num-func) num-func-interp1-play!) + ) + ) + (set! (-> obj look-at-other-time) (current-time)) + (set! (-> obj look-at-other) (process->handle fodder-proc)) + (set! (-> obj neck-away-from) #f) + (set! (-> fodder-proc look-at-other-time) (current-time)) + (set! (-> fodder-proc look-at-other) (process->handle obj)) + (set! (-> fodder-proc neck-away-from) #t) ) ) ) @@ -324,8 +322,8 @@ ) ) ) - #f ) + #f ) ) @@ -334,50 +332,48 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((parent-method (method-of-type nav-enemy track-target!))) - (parent-method obj) - ) - (let ((proc (the-as process-drawable #f))) - (cond - ((and (< (- (-> pp clock frame-counter) (-> obj look-at-other-time)) (seconds 0.5)) - (begin - (let ((other-proc (handle->process (-> obj look-at-other)))) - (set! proc (if (type? other-proc process-drawable) - (the-as process-drawable other-proc) - ) - ) - ) - proc + (let ((parent-method (method-of-type nav-enemy track-target!))) + (parent-method obj) + ) + (let ((proc (the-as process-drawable #f))) + (cond + ((and (< (- (current-time) (-> obj look-at-other-time)) (seconds 0.5)) + (begin + (let ((other-proc (handle->process (-> obj look-at-other)))) + (set! proc (if (type? other-proc process-drawable) + (the-as process-drawable other-proc) + ) + ) ) + proc ) - (let ((s5-1 (vector<-cspace! (new 'static 'vector) (-> proc node-list data 5)))) - (look-at-position! obj s5-1) - (cond - ((zero? (-> obj neck)) - ) - ((-> obj neck-away-from) - (let ((s4-0 (new 'static 'vector))) - (let ((v1-11 (vector<-cspace! (new 'static 'vector) (-> obj node-list data 5)))) - (vector-! s4-0 v1-11 s5-1) - (vector+! s4-0 s4-0 v1-11) - ) - (target-set! (-> obj neck) s4-0) + ) + (let ((s5-1 (vector<-cspace! (new 'static 'vector) (-> proc node-list data 5)))) + (look-at-position! obj s5-1) + (cond + ((zero? (-> obj neck)) + ) + ((-> obj neck-away-from) + (let ((s4-0 (new 'static 'vector))) + (let ((v1-11 (vector<-cspace! (new 'static 'vector) (-> obj node-list data 5)))) + (vector-! s4-0 v1-11 s5-1) + (vector+! s4-0 s4-0 v1-11) ) + (target-set! (-> obj neck) s4-0) ) - (else - (target-set! (-> obj neck) s5-1) - ) + ) + (else + (target-set! (-> obj neck) s5-1) ) ) ) - ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (look-at-position! obj (the-as vector #f)) - ) - ) + ) + ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) + (look-at-position! obj (the-as vector #f)) + ) ) - (none) ) + (none) ) (defstate idle (fodder) @@ -431,7 +427,7 @@ (set! (-> _self nav callback-info) *nav-enemy-null-callback-info*) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until (not #f) (ja-no-eval :num! (loop!)) (ja-channel-push! 1 (seconds 0.25)) @@ -538,7 +534,7 @@ ) (goto cfg-22) ) - (set! s5-0 (- (the-as time-frame s5-0) (- (-> self clock frame-counter) (-> self clock old-frame-counter)))) + (set! s5-0 (- (the-as time-frame s5-0) (- (current-time) (-> self clock old-frame-counter)))) (when (<= s5-0 0) (set! s5-0 (rand-vu-int-range 75 150)) (set! s4-0 (not s4-0)) @@ -675,7 +671,7 @@ (set! (-> v1-22 turning-acceleration) 0.0) ) 0 - (set! (-> self slow-timer) (-> self clock frame-counter)) + (set! (-> self slow-timer) (current-time)) (ja-channel-push! 1 (seconds 0.08)) (ja :group! (-> self draw art-group data (-> self enemy-info-override idle-anim))) (ja :num-func num-func-identity :frame-num 0.0) @@ -695,9 +691,9 @@ ) (when (and (nonzero? (-> self slow-timer)) (zero? (-> self fast-timer)) - (>= (- (-> self clock frame-counter) (-> self slow-timer)) (seconds 0.35)) + (>= (- (current-time) (-> self slow-timer)) (seconds 0.35)) ) - (set! (-> self fast-timer) (-> self clock frame-counter)) + (set! (-> self fast-timer) (current-time)) (ja-channel-push! 1 (seconds 0.02)) (let ((v1-55 (-> self attack-type))) (cond @@ -756,7 +752,7 @@ ) ) (cond - ((>= (- (-> self clock frame-counter) (-> self fast-timer)) v1-82) + ((>= (- (current-time) (-> self fast-timer)) v1-82) (set! (-> self slow-timer) 0) (set! (-> self fast-timer) 0) (let ((v1-83 (-> self nav))) @@ -800,9 +796,7 @@ ) (when (zero? (-> self attack-type)) (let ((f0-20 20480.0)) - (when (and (< f30-0 (* f0-20 f0-20)) - (>= (- (-> self clock frame-counter) (-> self look-at-other-time)) (seconds 0.125)) - ) + (when (and (< f30-0 (* f0-20 f0-20)) (>= (- (current-time) (-> self look-at-other-time)) (seconds 0.125))) (let ((v1-117 (ja-channel-float! (the-as art-joint-anim fodder-snap-ja) 0.0 0.0 0.0))) (when v1-117 (set! (-> self skel interp-select 0) #xe00010) @@ -813,7 +807,7 @@ (set! (-> v1-117 num-func) num-func-interp1-play!) ) ) - (set! (-> self look-at-other-time) (-> self clock frame-counter)) + (set! (-> self look-at-other-time) (current-time)) ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc b/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc index 06cb38efa7..e69abbcaff 100644 --- a/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc +++ b/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc @@ -1092,7 +1092,7 @@ (defstate stare (crimson-guard-level) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) @@ -1573,7 +1573,7 @@ :virtual #t :enter (behavior () (talker-spawn-func (-> *talker-speech* 10) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 (logior (-> self enemy-flags) (enemy-flag use-notice-distance)))) (set! (-> self enemy-flags) (logclear v1-4 (enemy-flag called-dying))) ) @@ -1662,7 +1662,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (logtest? (-> self flags) 4) (go-virtual gun-shoot) ) @@ -1675,7 +1675,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -1754,7 +1754,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self reaction-time) (the-as time-frame (the int (* 300.0 (get-rand-float-range self 0.5 1.5))))) (none) ) @@ -1764,7 +1764,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (>= 2 (the-as int gp-0)) (not (get-enemy-target self))) (go-stare self) @@ -1824,7 +1824,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-156 self) (none) ) @@ -1834,7 +1834,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -1868,7 +1868,7 @@ ) (if (and (< (-> self target-self-xz-dist) 327680.0) (crimson-guard-level-method-193 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (rand-vu-float-range 1.0 8.0)))) + (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (rand-vu-float-range 1.0 8.0)))) ) (go-virtual gun-shoot) ) @@ -1906,7 +1906,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-156 self) (none) ) @@ -1916,7 +1916,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -1946,9 +1946,9 @@ ) (else (if (or (and (logtest? (-> self nav state flags) (nav-state-flag at-target)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (>= (- (current-time) (-> self state-time)) (seconds 1)) ) (go-virtual grenade-attack) ) @@ -2003,10 +2003,10 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (the-as int (current-time))) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (set! (-> self reaction-time) (the-as time-frame (the int (* 300.0 (get-rand-float-range self 3.0 5.0))))) (none) @@ -2019,7 +2019,7 @@ :trans (behavior () (crimson-guard-level-method-200 self) (let ((v1-2 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((< (the-as int v1-2) 2) (go-stare self) @@ -2053,7 +2053,7 @@ ) ) (until #f - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (or (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (< 10922.667 (fabs (-> self target-y-angle))) ) (goto cfg-13) @@ -2126,14 +2126,14 @@ (set! (-> a0-8 velocity quad) (-> v1-13 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (the-as int (current-time))) (crimson-guard-level-method-200 self) (if (logtest? (-> self flags) 4) (set! (-> self miss-amount) 16384.0) (set! (-> self miss-amount) (lerp-scale 0.0 16384.0 (-> self target-self-dist) 40960.0 122880.0)) ) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (none) ) @@ -2185,7 +2185,7 @@ (set! (-> self start-target-vel quad) (-> (the-as process-drawable v1-31) root transv quad)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (label cfg-10) (when (crimson-guard-level-method-194 self) (when (or (not (logtest? (-> self flags) 256)) (and (logtest? (-> self flags) 256) (-> self trigger))) @@ -2193,7 +2193,7 @@ (goto cfg-23) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! v1-48 #f) (goto cfg-23) ) @@ -2201,7 +2201,7 @@ (b! (not #f) cfg-10 :delay (set! v1-48 #f)) (label cfg-23) (when v1-48 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 3)) (until #f (ja-channel-push! 1 (seconds 0.1)) @@ -2239,8 +2239,8 @@ (suspend) ) (when (logtest? (-> self flags) 4) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 1)) (suspend) ) ) @@ -2855,8 +2855,8 @@ (suspend) (ja :num! (seek! (ja-aframe 12.0 0))) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (the int (* 900.0 (you-suck-scale *game-info* #f)))) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (the int (* 900.0 (you-suck-scale *game-info* #f)))) (ja-no-eval :group! (-> self draw art-group data 37) :num! (seek! (ja-aframe 12.0 0)) :frame-num (ja-aframe 12.0 0) @@ -2924,8 +2924,8 @@ ) 0 (set! (-> self miss-amount) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self lazer-sound) (new 'static 'sound-id)) 0 (none) @@ -2968,9 +2968,7 @@ ) :trans (behavior () (crimson-guard-level-method-200 self) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (< 32768.0 (-> self target-self-xz-dist)) - ) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (< 32768.0 (-> self target-self-xz-dist))) (go-hostile self) ) (none) @@ -2985,7 +2983,7 @@ ) (until #f (let ((gp-2 #t)) - (while (or (< 5461.3335 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (-> self clock frame-counter))) + (while (or (< 5461.3335 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (current-time))) (when gp-2 (ja-channel-push! 1 (seconds 0.1)) (set! gp-2 #f) @@ -3051,7 +3049,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (let ((v1-124 (-> (the-as collide-shape-prim-group (-> self root-override2 root-prim)) child 2))) (logior! (-> v1-124 prim-core action) (collide-action deadly)) ) @@ -3080,12 +3078,12 @@ ) (set! (-> v1-127 state mode) (the-as lightning-mode a0-38)) ) - (let ((gp-4 (-> self clock frame-counter)) + (let ((gp-4 (current-time)) (s5-1 150) (f30-0 1.0) ) (ja-no-eval :group! (-> self draw art-group data 22) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-4) s5-1) + (until (>= (- (current-time) gp-4) s5-1) (crimson-guard-level-method-198 self) (suspend) (ja :num! (loop! f30-0)) @@ -3124,7 +3122,7 @@ ) ) (else - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (suspend) 0 ) @@ -3160,7 +3158,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -3227,7 +3225,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -4223,7 +4221,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self nav flags) (nav-control-flag output-sphere-hash)) (nav-enemy-method-166 self) (let ((v1-7 (-> self nav))) @@ -4300,18 +4298,15 @@ (while (not (-> self already-shot)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-set! 1) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 150) (f30-0 2.0) ) (ja-no-eval :group! (-> self draw art-group data 6) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) - (crimson-guard-level-method-201 - self - (* 0.006666667 (the float (- (-> self clock frame-counter) (-> self state-time)))) - ) + (until (>= (- (current-time) gp-0) s5-0) + (crimson-guard-level-method-201 self (* 0.006666667 (the float (- (current-time) (-> self state-time))))) (suspend) (ja :num! (loop! f30-0)) ) diff --git a/goal_src/jak2/levels/common/enemy/guards/guard-conversation.gc b/goal_src/jak2/levels/common/enemy/guards/guard-conversation.gc index 8cd73d2c06..e946f3cad8 100644 --- a/goal_src/jak2/levels/common/enemy/guards/guard-conversation.gc +++ b/goal_src/jak2/levels/common/enemy/guards/guard-conversation.gc @@ -302,9 +302,9 @@ ) ) ) - (set! (-> self last-playing-time) (-> self clock frame-counter)) + (set! (-> self last-playing-time) (current-time)) ) - (if (and (-> self triggered?) (>= (- (-> self clock frame-counter) (-> self last-playing-time)) (seconds 6))) + (if (and (-> self triggered?) (>= (- (current-time) (-> self last-playing-time)) (seconds 6))) (guard-conversation-method-24 self) ) (none) diff --git a/goal_src/jak2/levels/common/enemy/guards/transport-level.gc b/goal_src/jak2/levels/common/enemy/guards/transport-level.gc index 88aa0ba2ff..ab54aa123e 100644 --- a/goal_src/jak2/levels/common/enemy/guards/transport-level.gc +++ b/goal_src/jak2/levels/common/enemy/guards/transport-level.gc @@ -107,8 +107,8 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-guard-spawn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-guard-spawn-time) (current-time)) (none) ) :code (behavior () @@ -141,7 +141,7 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (set! (-> self last-guard-spawn-time) 0) 0 @@ -186,16 +186,16 @@ gp-0 ) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) ) - (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (-> self clock frame-counter))) + (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (current-time))) (go-virtual leave) ) (when (and (zero? (-> self leave-time)) (nonzero? (-> self max-guard)) (>= (-> self count-guard) (-> self max-guard)) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) (send-event self 'stop-spawning) ) (transport-level-method-34 self) @@ -217,7 +217,7 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (none) ) @@ -252,43 +252,41 @@ ) (defmethod transport-level-method-33 transport-level ((obj transport-level)) - (with-pp - (let ((v1-0 0)) - (dotimes (a0-1 8) - (if (handle->process (-> obj guards a0-1)) - (+! v1-0 1) + (let ((v1-0 0)) + (dotimes (a0-1 8) + (if (handle->process (-> obj guards a0-1)) + (+! v1-0 1) + ) + ) + (when (zero? (-> obj count-guard)) + (set! (-> obj last-guard-spawn-time) 0) + 0 + ) + (when (and (>= (- (current-time) (-> obj last-guard-spawn-time)) (-> obj spawn-time)) + (< v1-0 (the-as int (-> obj num-wanted-guards))) + ) + (let ((s5-0 (new 'stack-no-clear 'crimson-guard-level-params))) + (set! (-> s5-0 transport-side) (-> obj spawn-side)) + (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) + (set! (-> s5-0 pos quad) (-> obj root-override trans quad)) + (set! (-> s5-0 pos y) (+ 8192.0 (-> s5-0 pos y))) + (quaternion-rotate-local-y! (-> s5-0 quat) (-> obj root-override quat) 32768.0) + (set! (-> s5-0 handle) (the-as uint (process->handle obj))) + (set! (-> s5-0 weapon) 1) + (dotimes (s4-0 (the-as int (-> obj num-wanted-guards))) + (when (not (handle->process (-> obj guards s4-0))) + (set! (-> obj guards s4-0) (ppointer->handle (process-spawn crimson-guard-level s5-0 :to obj))) + #t + (goto cfg-38) ) - ) - (when (zero? (-> obj count-guard)) - (set! (-> obj last-guard-spawn-time) 0) - 0 - ) - (when (and (>= (- (-> pp clock frame-counter) (-> obj last-guard-spawn-time)) (-> obj spawn-time)) - (< v1-0 (the-as int (-> obj num-wanted-guards))) - ) - (let ((s5-0 (new 'stack-no-clear 'crimson-guard-level-params))) - (set! (-> s5-0 transport-side) (-> obj spawn-side)) - (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) - (set! (-> s5-0 pos quad) (-> obj root-override trans quad)) - (set! (-> s5-0 pos y) (+ 8192.0 (-> s5-0 pos y))) - (quaternion-rotate-local-y! (-> s5-0 quat) (-> obj root-override quat) 32768.0) - (set! (-> s5-0 handle) (the-as uint (process->handle obj))) - (set! (-> s5-0 weapon) 1) - (dotimes (s4-0 (the-as int (-> obj num-wanted-guards))) - (when (not (handle->process (-> obj guards s4-0))) - (set! (-> obj guards s4-0) (ppointer->handle (process-spawn crimson-guard-level s5-0 :to obj))) - #t - (goto cfg-38) - ) - ) - (label cfg-38) - (when (-> s5-0 proc) - (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) - (set! (-> obj last-guard-spawn-time) (-> pp clock frame-counter)) - (let ((v0-0 (+ (-> obj count-guard) 1))) - (set! (-> obj count-guard) v0-0) - v0-0 - ) + ) + (label cfg-38) + (when (-> s5-0 proc) + (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) + (set! (-> obj last-guard-spawn-time) (current-time)) + (let ((v0-0 (+ (-> obj count-guard) 1))) + (set! (-> obj count-guard) v0-0) + v0-0 ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/hopper.gc b/goal_src/jak2/levels/common/enemy/hopper.gc index db793e9a1b..697a1dd59a 100644 --- a/goal_src/jak2/levels/common/enemy/hopper.gc +++ b/goal_src/jak2/levels/common/enemy/hopper.gc @@ -655,7 +655,7 @@ 0 (set! (-> self speed-y) 0.0) (set! (-> self accel-y) 0.0) - (set! (-> self next-jump-time) (the-as int (+ (-> self clock frame-counter) (get-rand-int-range self 0 120)))) + (set! (-> self next-jump-time) (the-as int (+ (current-time) (get-rand-int-range self 0 120)))) (set! (-> self step-num) 0) (set! (-> self best-score) -2.0) (none) @@ -674,7 +674,7 @@ (t9-0) ) ) - (when (< *hopper-next-jump-time* (-> self clock frame-counter)) + (when (< *hopper-next-jump-time* (current-time)) (let ((gp-0 (handle->process (-> self focus handle)))) (when gp-0 (let ((s4-1 (vector-! @@ -759,7 +759,7 @@ ) ) ) - (set! *hopper-next-jump-time* (+ (-> self clock frame-counter) (get-rand-int-range self 4 22))) + (set! *hopper-next-jump-time* (+ (current-time) (get-rand-int-range self 4 22))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag vulnerable)))) (send-event self 'jump 0 (-> self best-point)) ) @@ -789,7 +789,7 @@ (set! (-> self jump-anim-start-frame) 8.0) ) ) - (set! *hopper-next-jump-time* (+ (-> self clock frame-counter) (get-rand-int-range self 4 22))) + (set! *hopper-next-jump-time* (+ (current-time) (get-rand-int-range self 4 22))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag vulnerable)))) (send-event self 'jump 0 (-> self best-point)) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc index 872bae7988..3761d5f2e7 100644 --- a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc +++ b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc @@ -606,9 +606,7 @@ (t9-0) ) ) - (set! (-> self last-fire-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 2.0 3.0)))) - ) + (set! (-> self last-fire-time) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 2.0 3.0))))) (go-virtual ambush-fly) (none) ) @@ -689,7 +687,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (let ((f0-1 (vector-vector-distance-squared (-> self root-override2 trans) (-> self focus-pos))) (f1-0 122880.0) @@ -703,7 +701,7 @@ (none) ) :exit (behavior () - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (none) ) @@ -767,7 +765,7 @@ ) ) (talker-spawn-func (-> *talker-speech* 10) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -803,11 +801,11 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 4)) (go-hostile self) ) (none) @@ -884,14 +882,14 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (set! (-> self shots-fired) 0) 0 (none) ) :exit (behavior () - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (none) ) @@ -1029,8 +1027,8 @@ 0 (set! (-> self hit-points) 0) (do-effect (-> self skel effect) 'death-default 0.0 -1) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1269,35 +1267,33 @@ ;; WARN: Return type mismatch object vs symbol. (defmethod crimson-guard-hover-method-162 crimson-guard-hover ((obj crimson-guard-hover) (arg0 process-focusable)) - (with-pp - (let* ((v1-1 (vector+! (new 'stack-no-clear 'vector) (-> obj root-override2 trans) (-> obj root-override2 transv))) - (s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 (-> obj focus-pos))) - (f30-0 (vector-length s5-1)) - (a0-4 (if arg0 - arg0 - (handle->process (-> obj focus handle)) - ) - ) - ) - (the-as - symbol - (when a0-4 - (let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable a0-4) 0))) - (s5-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s5-1 1.0)) - ) - (and (< 0.0 (vector-dot s4-1 s5-2)) - (and (>= (- (-> pp clock frame-counter) (-> obj last-fire-time)) - (the int (* 300.0 (rand-vu-float-range (-> obj attack-wait-min) (-> obj attack-wait-max)))) - ) - (get-enemy-target obj) - (< f30-0 225280.0) - (and (< (fabs (vector-x-angle s5-2)) 3640.889) - (enemy-method-95 obj (-> obj focus-pos) 5461.3335) - (check-los? (-> obj los) (seconds 0.4)) - ) - ) - ) - ) + (let* ((v1-1 (vector+! (new 'stack-no-clear 'vector) (-> obj root-override2 trans) (-> obj root-override2 transv))) + (s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 (-> obj focus-pos))) + (f30-0 (vector-length s5-1)) + (a0-4 (if arg0 + arg0 + (handle->process (-> obj focus handle)) + ) + ) + ) + (the-as + symbol + (when a0-4 + (let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable a0-4) 0))) + (s5-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s5-1 1.0)) + ) + (and (< 0.0 (vector-dot s4-1 s5-2)) + (and (>= (- (current-time) (-> obj last-fire-time)) + (the int (* 300.0 (rand-vu-float-range (-> obj attack-wait-min) (-> obj attack-wait-max)))) + ) + (get-enemy-target obj) + (< f30-0 225280.0) + (and (< (fabs (vector-x-angle s5-2)) 3640.889) + (enemy-method-95 obj (-> obj focus-pos) 5461.3335) + (check-los? (-> obj los) (seconds 0.4)) + ) + ) + ) ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/flamer.gc b/goal_src/jak2/levels/common/enemy/hover/flamer.gc index 8eb9ae35cf..603738e259 100644 --- a/goal_src/jak2/levels/common/enemy/hover/flamer.gc +++ b/goal_src/jak2/levels/common/enemy/hover/flamer.gc @@ -368,7 +368,7 @@ ) ) ) - (let* ((v1-30 (+ (-> pp clock frame-counter) (the-as time-frame (-> obj sync-off)))) + (let* ((v1-30 (+ (current-time) (the-as time-frame (-> obj sync-off)))) (f0-5 (+ (-> arg0 x) (* 614.4 (cos (* 54.613335 (the float (mod v1-30 1200))))))) ) (set! (-> arg0 x) f0-5) @@ -424,13 +424,13 @@ ) (defbehavior flamer-flit-post flamer () - (when (>= (- (-> self clock frame-counter) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) + (when (>= (- (current-time) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) (set! (-> self flit-angle) (the float (sar (shl (the int (+ (-> self flit-angle) (* 182.04445 (rand-vu-float-range 160.0 200.0)))) 48) 48) ) ) - (set! (-> self flit-timer) (-> self clock frame-counter)) + (set! (-> self flit-timer) (current-time)) ) (flamer-attack-post) (none) @@ -716,7 +716,7 @@ ) ) ) - (let ((v1-16 (+ (-> pp clock frame-counter) (the-as time-frame (-> obj sync-off))))) + (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) (seek! (-> obj root-override2 trans y) (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) @@ -788,9 +788,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) - (flamer-method-183 self) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (flamer-method-183 self)) (if (logtest? (enemy-option ambush) (-> self fact-info-override enemy-options)) (go-virtual ambush) (go-virtual active) @@ -877,7 +875,7 @@ (vector-reset! (-> self fly-dir)) (sound-play "flamer-ambush") (quaternion-copy! (-> self root-override2 quat) (-> self init-quat)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -889,7 +887,7 @@ (logior! (-> self mask) (process-mask actor-pause)) (logior! (-> self enemy-flags) (enemy-flag notice)) (set! (-> self flit-joint twist-min-y) (the-as float #t)) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) :trans (behavior () @@ -980,7 +978,7 @@ (set! (-> v1-3 enemy-flags) (the-as enemy-flag (logclear (-> v1-3 enemy-flags) (enemy-flag enemy-flag37)))) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1014,9 +1012,9 @@ :code (the-as (function none :behavior flamer) flamer-fly-code) :post (behavior () (flamer-method-187 self) - (when (>= (- (-> self clock frame-counter) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) + (when (>= (- (current-time) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) (set! (-> self flit-angle) (* 182.04445 (rand-vu-float-range 0.0 360.0))) - (set! (-> self flit-timer) (-> self clock frame-counter)) + (set! (-> self flit-timer) (current-time)) ) (vector-seek! (-> self root-override2 trans) (-> self base-pos) (* 16384.0 (-> self clock seconds-per-frame))) (flamer-method-184 self) @@ -1055,7 +1053,7 @@ ) (flamer-method-189 self) (set! (-> self ground-mode) 0) - (set! (-> self flit-timer) (+ (-> self clock frame-counter) (seconds -3))) + (set! (-> self flit-timer) (+ (current-time) (seconds -3))) (none) ) :trans (behavior () @@ -1074,9 +1072,7 @@ ) (let ((gp-1 (get-enemy-target self))) (if (and gp-1 - (>= (- (-> self clock frame-counter) (-> self last-fire-time)) - (the int (* 300.0 (rand-vu-float-range 3.0 6.0))) - ) + (>= (- (current-time) (-> self last-fire-time)) (the int (* 300.0 (rand-vu-float-range 3.0 6.0)))) (< (vector-vector-distance (get-trans gp-1 3) (-> self root-override2 trans)) 245760.0) ) (go-virtual attack) @@ -1136,7 +1132,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1163,7 +1159,7 @@ ) ) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (go-virtual hostile) (none) ) @@ -1289,7 +1285,7 @@ ) (when (and (nonzero? (-> self hit-points)) (zero? (-> self fated-time)) - (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (or (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (and (< (-> self root-override2 trans y) (+ 18432.0 (-> self root-override2 gspot-pos y))) (< (-> self root-override2 transv y) 0.0) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-enemy-battle.gc b/goal_src/jak2/levels/common/enemy/hover/hover-enemy-battle.gc index 7d391c415d..784e11ca3b 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-enemy-battle.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-enemy-battle.gc @@ -128,11 +128,9 @@ a0-0 ) ) - (when (and (logtest? (-> gp-0 flags) 2) - (>= (- (-> self clock frame-counter) (-> self formation-timer)) (seconds 0.2)) - ) + (when (and (logtest? (-> gp-0 flags) 2) (>= (- (current-time) (-> self formation-timer)) (seconds 0.2))) (hover-formation-control-method-11 gp-0) - (set! (-> self formation-timer) (-> self clock frame-counter)) + (set! (-> self formation-timer) (current-time)) ) ) ) @@ -188,8 +186,8 @@ (('wait) ) ) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (-> gp-0 s5-0 time)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (-> gp-0 s5-0 time)) (suspend) ) ) @@ -198,8 +196,8 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -271,41 +269,39 @@ (defmethod hover-enemy-manager-init! hover-enemy-manager ((obj hover-enemy-manager) (arg0 (array hover-enemy-battle-command))) "Initialize this [[hover-enemy-manager]]." (local-vars (sv-16 res-tag)) - (with-pp - (set! (-> obj command-table) arg0) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! sv-16 (new 'static 'res-tag)) - (let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16)))) - (cond - ((and v1-5 (nonzero? (-> sv-16 elt-count))) - (set! (-> obj actor-group) (the-as (pointer actor-group) v1-5)) - (set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count))) - ) - (else - (set! (-> obj actor-group) (the-as (pointer actor-group) #f)) - (set! (-> obj actor-group-count) 0) - 0 - ) + (set! (-> obj command-table) arg0) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! sv-16 (new 'static 'res-tag)) + (let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16)))) + (cond + ((and v1-5 (nonzero? (-> sv-16 elt-count))) + (set! (-> obj actor-group) (the-as (pointer actor-group) v1-5)) + (set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count))) + ) + (else + (set! (-> obj actor-group) (the-as (pointer actor-group) #f)) + (set! (-> obj actor-group-count) 0) + 0 ) ) - (set! (-> obj total-to-spawn) 0) - (set! (-> obj num-spawned) 0) - (when (-> obj command-table) - (let ((v1-13 (-> obj command-table))) - (dotimes (a0-6 (-> v1-13 length)) - (if (= (-> v1-13 a0-6 command) 'spawn) - (+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length)) - ) - ) - ) - ) - (set! (-> obj formation) #f) - (set! (-> obj formation-timer) (-> pp clock frame-counter)) - (set! (-> obj alive-count) 0) - 0 - (none) ) + (set! (-> obj total-to-spawn) 0) + (set! (-> obj num-spawned) 0) + (when (-> obj command-table) + (let ((v1-13 (-> obj command-table))) + (dotimes (a0-6 (-> v1-13 length)) + (if (= (-> v1-13 a0-6 command) 'spawn) + (+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length)) + ) + ) + ) + ) + (set! (-> obj formation) #f) + (set! (-> obj formation-timer) (current-time)) + (set! (-> obj alive-count) 0) + 0 + (none) ) ;; WARN: Return type mismatch object vs none. diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc b/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc index f61e382074..bf2b319f20 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc @@ -453,7 +453,7 @@ (if (logtest? (-> self path flags) (path-control-flag not-found)) (go process-drawable-art-error "no path") ) - (set! (-> self scale-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self scale-timer) (the-as uint (current-time))) (cond ((not (logtest? (-> self fact-info-override enemy-options) (enemy-option user0))) (logclear! (-> self enemy-flags) (enemy-flag enable-on-active)) @@ -509,7 +509,7 @@ ) (hover-enemy-method-144 self) (hover-nav-control-method-18 (-> self hover) (-> self path) -1 -1) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -540,7 +540,7 @@ :post (behavior () (local-vars (v1-19 enemy-flag)) (when (not (logtest? (-> self fact-info-override enemy-options) (enemy-option user0))) - (let ((f0-1 (the float (- (-> self clock frame-counter) (the-as int (-> self scale-timer))))) + (let ((f0-1 (the float (- (current-time) (the-as int (-> self scale-timer))))) (f1-0 1200.0) ) (when (< f0-1 f1-0) @@ -647,7 +647,7 @@ ) (if (and (nonzero? (-> self hit-points)) (zero? (-> self fated-time)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (< (-> self root-override2 trans y) (- (-> self knocked-start-level) (-> self knocked-fall-dist))) ) (go-virtual knocked-recover) @@ -716,14 +716,14 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('touch 'touched 'attack) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (go-virtual flying-death-explode) ) ) ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dispose! self) (stop-looking-at-target! self) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) @@ -775,14 +775,14 @@ (set! (-> self hover speed) 0.2) (set! (-> self flying-death-spin) 0.0) (enemy-method-103 self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (or (logtest? (-> self root-override2 status) (collide-status touch-surface touch-wall touch-ceiling touch-actor impact-surface touch-background) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (>= (- (current-time) (-> self state-time)) (seconds 4)) ) (go-virtual flying-death-explode) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc b/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc index 34643df160..a4f1589e2b 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc @@ -648,10 +648,10 @@ (set-anchor-proc (-> self formation) (process->handle *target*)) (hover-formation-control-method-14 (-> self formation)) (when (and (logtest? (-> self formation flags) 2) - (>= (- (-> self clock frame-counter) (the-as int (-> self formation-timer))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> self formation-timer))) (seconds 0.2)) ) (hover-formation-control-method-11 (-> self formation)) - (set! (-> self formation-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self formation-timer) (the-as uint (current-time))) ) (if (not (logtest? (-> self path flags) (path-control-flag not-found))) (debug-draw (-> self path)) @@ -684,51 +684,49 @@ This commonly includes things such as: - loading the skeleton group / bones - sounds" (local-vars (sv-32 structure)) - (with-pp - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (let* ((s5-0 (method-of-type hover-formation-control new)) - (s4-0 'process) - (s3-0 hover-formation-control) - (s2-0 obj) - (v0-1 (entity-actor-lookup (-> obj entity) 'alt-actor 0)) - (s1-0 (if v0-1 - v0-1 - (-> obj entity) - ) - ) - (s0-0 (res-lump-float (-> obj entity) 'notice-dist :default 225280.0)) - ) - (let ((t9-3 (method-of-type res-lump get-property-struct)) - (a0-5 (-> obj entity)) - (a1-4 'trans-offset) - (a2-3 'interp) - (a3-2 -1000000000.0) - (t0-2 (new 'stack-no-clear 'vector)) - ) - (set! (-> t0-2 x) 0.0) - (set! (-> t0-2 y) 20480.0) - (set! (-> t0-2 z) 61440.0) - (set! (-> t0-2 w) 1.0) - (set! sv-32 (t9-3 a0-5 a1-4 a2-3 a3-2 t0-2 (the-as (pointer res-tag) #f) *res-static-buf*)) - ) - (let ((t2-4 (res-lump-float (-> obj entity) 'rotoffset :default 5461.3335)) - (t3-0 #f) - ) - (set! (-> obj formation) (s5-0 s4-0 s3-0 s2-0 s1-0 s0-0 (the-as vector sv-32) t2-4 (the-as handle t3-0))) - ) - ) - (set! (-> obj formation-timer) (the-as uint (-> pp clock frame-counter))) - (logclear! (-> obj mask) (process-mask actor-pause)) - (let ((t9-6 process-entity-status!) - (a0-9 obj) - (a1-7 8) - (a2-6 #t) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (let* ((s5-0 (method-of-type hover-formation-control new)) + (s4-0 'process) + (s3-0 hover-formation-control) + (s2-0 obj) + (v0-1 (entity-actor-lookup (-> obj entity) 'alt-actor 0)) + (s1-0 (if v0-1 + v0-1 + (-> obj entity) + ) + ) + (s0-0 (res-lump-float (-> obj entity) 'notice-dist :default 225280.0)) + ) + (let ((t9-3 (method-of-type res-lump get-property-struct)) + (a0-5 (-> obj entity)) + (a1-4 'trans-offset) + (a2-3 'interp) + (a3-2 -1000000000.0) + (t0-2 (new 'stack-no-clear 'vector)) ) - (t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6) - (hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6)) + (set! (-> t0-2 x) 0.0) + (set! (-> t0-2 y) 20480.0) + (set! (-> t0-2 z) 61440.0) + (set! (-> t0-2 w) 1.0) + (set! sv-32 (t9-3 a0-5 a1-4 a2-3 a3-2 t0-2 (the-as (pointer res-tag) #f) *res-static-buf*)) + ) + (let ((t2-4 (res-lump-float (-> obj entity) 'rotoffset :default 5461.3335)) + (t3-0 #f) + ) + (set! (-> obj formation) (s5-0 s4-0 s3-0 s2-0 s1-0 s0-0 (the-as vector sv-32) t2-4 (the-as handle t3-0))) ) - (go (method-of-object obj idle)) - (none) ) + (set! (-> obj formation-timer) (the-as uint (current-time))) + (logclear! (-> obj mask) (process-mask actor-pause)) + (let ((t9-6 process-entity-status!) + (a0-9 obj) + (a1-7 8) + (a2-6 #t) + ) + (t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6) + (hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6)) + ) + (go (method-of-object obj idle)) + (none) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc b/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc index 2db179813c..4fb5e4f542 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc @@ -829,7 +829,7 @@ (while v1-0 (let ((a0-2 (-> v1-0 next))) (set! (-> (the-as hover-nav-sphere v1-0) timer) - (- (-> (the-as hover-nav-sphere v1-0) timer) (- (-> pp clock frame-counter) (-> pp clock old-frame-counter))) + (- (-> (the-as hover-nav-sphere v1-0) timer) (- (current-time) (-> pp clock old-frame-counter))) ) (when (<= (-> (the-as hover-nav-sphere v1-0) timer) 0) (let ((a1-4 v1-0)) @@ -1265,48 +1265,46 @@ ) (defmethod hover-nav-control-method-24 hover-nav-control ((obj hover-nav-control)) - (with-pp - (when (not (logtest? (-> obj flags) 1)) - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (-> obj params) - (let ((v1-5 (hover-nav-control-method-17 obj)) - (s4-0 (-> obj root transv)) - ) - (when (< 0.0 (vector-length s4-0)) - (set! (-> s5-0 start-pos quad) (-> v1-5 world-sphere quad)) - (set! (-> s5-0 move-dist quad) (-> s4-0 quad)) - (let ((f0-1 (vector-length (-> s5-0 move-dist)))) - (if (< 40960.0 f0-1) - (vector-float*! (-> s5-0 move-dist) (-> s5-0 move-dist) (/ 40960.0 f0-1)) - ) - ) - (let ((a0-14 s5-0)) - (set! (-> a0-14 radius) (-> v1-5 world-sphere w)) - (set! (-> a0-14 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> a0-14 ignore-process0) (-> obj root process)) - (set! (-> a0-14 ignore-process1) #f) - (set! (-> a0-14 ignore-pat) (-> obj root pat-ignore-mask)) - (set! (-> a0-14 action-mask) (collide-action solid)) - ) - (let ((f0-4 (fill-and-probe-using-line-sphere *collide-cache* s5-0))) - (cond - ((>= f0-4 0.0) - (set! (-> obj los-obstruction-distance) (* f0-4 (vector-length s4-0))) - (logior! (-> obj flags) 2) - ) - (else - (set! (-> obj los-last-clear-time) (-> pp clock frame-counter)) - (set! (-> obj flags) (logand -3 (-> obj flags))) - ) + (when (not (logtest? (-> obj flags) 1)) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (-> obj params) + (let ((v1-5 (hover-nav-control-method-17 obj)) + (s4-0 (-> obj root transv)) + ) + (when (< 0.0 (vector-length s4-0)) + (set! (-> s5-0 start-pos quad) (-> v1-5 world-sphere quad)) + (set! (-> s5-0 move-dist quad) (-> s4-0 quad)) + (let ((f0-1 (vector-length (-> s5-0 move-dist)))) + (if (< 40960.0 f0-1) + (vector-float*! (-> s5-0 move-dist) (-> s5-0 move-dist) (/ 40960.0 f0-1)) + ) + ) + (let ((a0-14 s5-0)) + (set! (-> a0-14 radius) (-> v1-5 world-sphere w)) + (set! (-> a0-14 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> a0-14 ignore-process0) (-> obj root process)) + (set! (-> a0-14 ignore-process1) #f) + (set! (-> a0-14 ignore-pat) (-> obj root pat-ignore-mask)) + (set! (-> a0-14 action-mask) (collide-action solid)) + ) + (let ((f0-4 (fill-and-probe-using-line-sphere *collide-cache* s5-0))) + (cond + ((>= f0-4 0.0) + (set! (-> obj los-obstruction-distance) (* f0-4 (vector-length s4-0))) + (logior! (-> obj flags) 2) + ) + (else + (set! (-> obj los-last-clear-time) (current-time)) + (set! (-> obj flags) (logand -3 (-> obj flags))) ) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod hover-nav-control-method-11 hover-nav-control ((obj hover-nav-control) (arg0 vector)) @@ -1329,21 +1327,19 @@ (when (not (logtest? (-> obj flags) 1)) (cond ((and arg0 (and (< (vector-vector-distance arg0 (-> obj root trans)) 40960.0) - (>= (-> obj los-last-clear-time) (+ (-> pp clock frame-counter) (seconds -0.2))) + (>= (-> obj los-last-clear-time) (+ (current-time) (seconds -0.2))) ) ) (if (not (and (-> obj path-info curr-segment) (< (-> obj path-info curr-u) 1.0))) (hover-nav-control-method-21 obj) ) ) - ((or (>= (- (-> pp clock frame-counter) (-> obj los-last-clear-time)) (seconds 1)) - (not (-> obj path-info curr-segment)) - ) + ((or (>= (- (current-time) (-> obj los-last-clear-time)) (seconds 1)) (not (-> obj path-info curr-segment))) (hover-nav-control-method-21 obj) (when arg0 (let ((s4-0 (new 'stack-no-clear 'vector))) (set! (-> s4-0 quad) (-> obj root transv quad)) - (if (>= (- (-> pp clock frame-counter) (-> obj los-last-clear-time)) (seconds 1)) + (if (>= (- (current-time) (-> obj los-last-clear-time)) (seconds 1)) (vector-normalize! s4-0 (fmin (vector-length s4-0) (-> obj los-obstruction-distance))) ) (hover-nav-control-method-28 @@ -1697,35 +1693,33 @@ ) (defmethod new hover-nav-control ((allocation symbol) (type-to-make type) (arg0 process) (arg1 collide-shape-moving) (arg2 hover-nav-params)) - (with-pp - (let ((s5-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (set! (-> s5-0 root) arg1) - (set! (-> s5-0 root reaction) hover-bounce-reaction) - (set! (-> s5-0 nav) *nav-network*) - (set! (-> s5-0 path-info segment-list) #f) - (set! (-> s5-0 path-info tail-segment) #f) - (set! (-> s5-0 path-info curr-segment) #f) - (set! (-> s5-0 path-info curr-u) 0.0) - (set! (-> s5-0 flags) (the-as uint 0)) - (set! (-> s5-0 params) arg2) - (set! *hover-nav-time-offset* (+ *hover-nav-time-offset* 1)) - (vector-reset! (-> s5-0 dest-pos)) - (set! (-> s5-0 dest-vel quad) (the-as uint128 0)) - (set! (-> s5-0 dest-move-dir quad) (the-as uint128 0)) - (set! (-> s5-0 dest-offset quad) (the-as uint128 0)) - (set! (-> s5-0 nav-collide-impulse quad) (the-as uint128 0)) - (vector-z-quaternion! (-> s5-0 move-dir) (-> s5-0 root quat)) - (set! (-> s5-0 nav-collide-impulse-len) 0.0) - (set! (-> s5-0 speed) 0.0) - (set! (-> s5-0 target-speed) 0.0) - (set! (-> s5-0 target-acceleration) 0.0) - (set! (-> s5-0 speed-dest) 0.0) - (set! (-> s5-0 curr-dest-pt) -1) - (set! (-> s5-0 los-obstruction-distance) 0.0) - (set! (-> s5-0 los-last-clear-time) (-> pp clock frame-counter)) - (hover-nav-control-method-14 s5-0 1.0 1.0) - (nav-network-method-25 (-> s5-0 nav) arg0 (the-as collide-prim-core #f)) - s5-0 - ) + (let ((s5-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> s5-0 root) arg1) + (set! (-> s5-0 root reaction) hover-bounce-reaction) + (set! (-> s5-0 nav) *nav-network*) + (set! (-> s5-0 path-info segment-list) #f) + (set! (-> s5-0 path-info tail-segment) #f) + (set! (-> s5-0 path-info curr-segment) #f) + (set! (-> s5-0 path-info curr-u) 0.0) + (set! (-> s5-0 flags) (the-as uint 0)) + (set! (-> s5-0 params) arg2) + (set! *hover-nav-time-offset* (+ *hover-nav-time-offset* 1)) + (vector-reset! (-> s5-0 dest-pos)) + (set! (-> s5-0 dest-vel quad) (the-as uint128 0)) + (set! (-> s5-0 dest-move-dir quad) (the-as uint128 0)) + (set! (-> s5-0 dest-offset quad) (the-as uint128 0)) + (set! (-> s5-0 nav-collide-impulse quad) (the-as uint128 0)) + (vector-z-quaternion! (-> s5-0 move-dir) (-> s5-0 root quat)) + (set! (-> s5-0 nav-collide-impulse-len) 0.0) + (set! (-> s5-0 speed) 0.0) + (set! (-> s5-0 target-speed) 0.0) + (set! (-> s5-0 target-acceleration) 0.0) + (set! (-> s5-0 speed-dest) 0.0) + (set! (-> s5-0 curr-dest-pt) -1) + (set! (-> s5-0 los-obstruction-distance) 0.0) + (set! (-> s5-0 los-last-clear-time) (current-time)) + (hover-nav-control-method-14 s5-0 1.0 1.0) + (nav-network-method-25 (-> s5-0 nav) arg0 (the-as collide-prim-core #f)) + s5-0 ) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/wasp.gc b/goal_src/jak2/levels/common/enemy/hover/wasp.gc index 046b6337d6..3f23d43235 100644 --- a/goal_src/jak2/levels/common/enemy/hover/wasp.gc +++ b/goal_src/jak2/levels/common/enemy/hover/wasp.gc @@ -579,7 +579,7 @@ ((the-as (function none) t9-0)) ) ) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -592,7 +592,7 @@ ((the-as (function none) t9-0)) ) ) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -624,7 +624,7 @@ ) (hover-enemy-method-146 self) (hover-nav-control-method-18 (-> self hover) (-> self path) -1 6) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self bridge-index) 0) (logclear! (-> self enemy-flags) (enemy-flag enable-on-active checking-water)) (logclear! (-> self mask) (process-mask collectable)) @@ -767,7 +767,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (none) ) @@ -788,7 +788,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (go-virtual shoot-bridge-hostile) (none) @@ -843,7 +843,7 @@ (the-as vector #t) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -885,7 +885,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) + (if (and (>= (- (current-time) (-> self last-fire-time)) (the int (* 300.0 (rand-vu-float-range (-> self attack-wait-min) (-> self attack-wait-max)))) ) (get-enemy-target self) @@ -928,7 +928,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (none) ) @@ -949,7 +949,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (go-hostile self) (none) @@ -1103,8 +1103,8 @@ 0 (set! (-> self hit-points) 0) (do-effect (-> self skel effect) 'death-default 0.0 -1) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/common/enemy/metalhead_bearer/centurion.gc b/goal_src/jak2/levels/common/enemy/metalhead_bearer/centurion.gc index a1d7f2bbff..64537d3602 100644 --- a/goal_src/jak2/levels/common/enemy/metalhead_bearer/centurion.gc +++ b/goal_src/jak2/levels/common/enemy/metalhead_bearer/centurion.gc @@ -485,7 +485,7 @@ (talker-spawn-func (-> *talker-speech* 58) *entity-pool* (target-pos 0) (the-as region #f)) ) (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) 255.0) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) 'back ) ) @@ -1158,7 +1158,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-165 self) (set! (-> self joint-enable) #t) (set! (-> self can-shoot?) (the-as basic #t)) @@ -1214,14 +1214,14 @@ (else (when (-> self can-shoot?) (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (+ 60.0 (* 0.0036621094 f30-0)))) + (>= (- (current-time) (-> self state-time)) (the int (+ 60.0 (* 0.0036621094 f30-0)))) (check-los? (-> self los) 0) ) (go-virtual fire) ) ) (if (skip-check-los? (-> self los) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -1329,7 +1329,7 @@ ) ) ) - (+ (-> self clock frame-counter) (seconds 3)) + (+ (current-time) (seconds 3)) ) #f ) diff --git a/goal_src/jak2/levels/common/enemy/metalhead_brown/metalmonk.gc b/goal_src/jak2/levels/common/enemy/metalhead_brown/metalmonk.gc index 1fd3217553..8c344f6e34 100644 --- a/goal_src/jak2/levels/common/enemy/metalhead_brown/metalmonk.gc +++ b/goal_src/jak2/levels/common/enemy/metalhead_brown/metalmonk.gc @@ -262,114 +262,110 @@ ) (defmethod metalmonk-method-181 metalmonk ((obj metalmonk) (arg0 float) (arg1 float)) - (with-pp - (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) - ) - (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-7 (= v1-7 (-> obj draw art-group data 13)))) - ) - ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-13 (-> obj skel root-channel 0))) - (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 13))) - ) - (let ((s4-1 (-> obj skel root-channel 0))) - (set! (-> s4-1 num-func) num-func-identity) - (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) - (set! (-> obj high-time) (-> pp clock frame-counter)) + (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) ) - (let ((v1-22 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) + (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-7 (= v1-7 (-> obj draw art-group data 13)))) + ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-13 (-> obj skel root-channel 0))) + (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (let ((s4-1 (-> obj skel root-channel 0))) + (set! (-> s4-1 num-func) num-func-identity) + (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) + ) + (set! (-> obj high-time) (current-time)) + ) + (let ((v1-22 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 12)) (= v1-22 (-> obj draw art-group data 13))))) + (let ((v1-28 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (and (and v1-28 (= v1-28 (-> obj draw art-group data 13))) + (< (ja-frame-num 0) 3.0) + (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (current-time) (-> obj high-time)) (seconds 1))) ) - ) - ) - (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 12)) (= v1-22 (-> obj draw art-group data 13))))) - (let ((v1-28 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (and (and v1-28 (= v1-28 (-> obj draw art-group data 13))) - (< (ja-frame-num 0) 3.0) - (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (-> pp clock frame-counter) (-> obj high-time)) (seconds 1))) - ) - ) ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-41 (-> obj skel root-channel 0))) - (set! (-> v1-41 frame-group) (the-as art-joint-anim (-> obj draw art-group data 12))) - ) - (let ((gp-1 (-> obj skel root-channel 0))) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-41 (-> obj skel root-channel 0))) + (set! (-> v1-41 frame-group) (the-as art-joint-anim (-> obj draw art-group data 12))) + ) + (let ((gp-1 (-> obj skel root-channel 0))) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod metalmonk-method-182 metalmonk ((obj metalmonk) (arg0 float) (arg1 float)) - (with-pp - (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) - ) - (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-7 (= v1-7 (-> obj draw art-group data 9)))) - ) - ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-13 (-> obj skel root-channel 0))) - (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 9))) - ) - (let ((s4-1 (-> obj skel root-channel 0))) - (set! (-> s4-1 num-func) num-func-identity) - (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) - (set! (-> obj high-time) (-> pp clock frame-counter)) + (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) ) - (let ((v1-22 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) + (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-7 (= v1-7 (-> obj draw art-group data 9)))) + ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-13 (-> obj skel root-channel 0))) + (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 9))) + ) + (let ((s4-1 (-> obj skel root-channel 0))) + (set! (-> s4-1 num-func) num-func-identity) + (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) + ) + (set! (-> obj high-time) (current-time)) + ) + (let ((v1-22 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 8)) (= v1-22 (-> obj draw art-group data 9))))) + (let ((v1-28 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (and (and v1-28 (= v1-28 (-> obj draw art-group data 9))) + (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (current-time) (-> obj high-time)) (seconds 1))) ) - ) - ) - (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 8)) (= v1-22 (-> obj draw art-group data 9))))) - (let ((v1-28 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (and (and v1-28 (= v1-28 (-> obj draw art-group data 9))) - (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (-> pp clock frame-counter) (-> obj high-time)) (seconds 1))) - ) - ) ) - (ja-channel-push! 1 (seconds 0.5)) - (let ((v1-39 (-> obj skel root-channel 0))) - (set! (-> v1-39 frame-group) (the-as art-joint-anim (-> obj draw art-group data 8))) - ) - (let ((gp-1 (-> obj skel root-channel 0))) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) + ) + (ja-channel-push! 1 (seconds 0.5)) + (let ((v1-39 (-> obj skel root-channel 0))) + (set! (-> v1-39 frame-group) (the-as art-joint-anim (-> obj draw art-group data 8))) + ) + (let ((gp-1 (-> obj skel root-channel 0))) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod track-target! metalmonk ((obj metalmonk)) @@ -619,7 +615,7 @@ ) ) (let ((gp-0 (handle->process (-> self focus handle)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (and gp-0 (or (and (< (vector-vector-xz-distance (get-trans (the-as process-focusable gp-0) 0) (-> self root-override2 trans)) 20480.0 @@ -824,7 +820,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -834,7 +830,7 @@ ) ) (let ((a0-1 (handle->process (-> self focus handle)))) - (if (and a0-1 (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (if (and a0-1 (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (let ((f0-0 (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (-> self root-override2 trans) diff --git a/goal_src/jak2/levels/common/enemy/metalhead_slinger/grenadier.gc b/goal_src/jak2/levels/common/enemy/metalhead_slinger/grenadier.gc index 12cf5661b8..18d8f1e01c 100644 --- a/goal_src/jak2/levels/common/enemy/metalhead_slinger/grenadier.gc +++ b/goal_src/jak2/levels/common/enemy/metalhead_slinger/grenadier.gc @@ -283,45 +283,43 @@ (defmethod general-event-handler grenadier ((obj grenadier) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('hit-knocked) - (when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4)) - (if (and (< (- (-> pp clock frame-counter) (-> obj suppress-knockaside-timer)) (seconds 0.6)) - (and (-> obj next-state) (= (-> obj next-state name) 'attack)) - (nonzero? (-> obj hit-points)) - ) - (return #t) - ) - (logior! (-> obj status-flags) 1) - (set! (-> obj suppress-knockaside-timer) (-> pp clock frame-counter)) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('notify) - (cond - ((and (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) - (let ((v1-23 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-23 from) (process->ppointer arg0)) - (set! (-> v1-23 num-params) arg1) - (set! (-> v1-23 message) 'victory) - (set! (-> v1-23 param 0) (-> arg3 param 0)) - (set! (-> v1-23 param 1) (-> arg3 param 1)) - (set! (-> v1-23 param 2) (-> arg3 param 2)) - (set! (-> v1-23 param 3) (-> arg3 param 3)) - (set! (-> v1-23 param 4) (-> arg3 param 4)) - (set! (-> v1-23 param 5) (-> arg3 param 5)) - (send-event-function obj v1-23) - ) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + (case arg2 + (('hit-knocked) + (when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4)) + (if (and (< (- (current-time) (-> obj suppress-knockaside-timer)) (seconds 0.6)) + (and (-> obj next-state) (= (-> obj next-state name) 'attack)) + (nonzero? (-> obj hit-points)) + ) + (return #t) ) + (logior! (-> obj status-flags) 1) + (set! (-> obj suppress-knockaside-timer) (current-time)) + ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (cond + ((and (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) + (let ((v1-23 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-23 from) (process->ppointer arg0)) + (set! (-> v1-23 num-params) arg1) + (set! (-> v1-23 message) 'victory) + (set! (-> v1-23 param 0) (-> arg3 param 0)) + (set! (-> v1-23 param 1) (-> arg3 param 1)) + (set! (-> v1-23 param 2) (-> arg3 param 2)) + (set! (-> v1-23 param 3) (-> arg3 param 3)) + (set! (-> v1-23 param 4) (-> arg3 param 4)) + (set! (-> v1-23 param 5) (-> arg3 param 5)) + (send-event-function obj v1-23) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -566,7 +564,7 @@ ) ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (rand-vu-int-range (seconds 3) (seconds 9))) + (when (or (>= (- (current-time) (-> self state-time)) (rand-vu-int-range (seconds 3) (seconds 9))) (>= 8192.0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self bank final-pos))) ) (if (and (handle->process (-> self focus handle)) @@ -632,7 +630,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grenadier) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -645,7 +643,7 @@ ) :trans (behavior () (let ((f0-0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-pos)))) - (if (or (>= 12288.0 f0-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 6))) + (if (or (>= 12288.0 f0-0) (>= (- (current-time) (-> self state-time)) (seconds 6))) (go-hostile self) ) ) @@ -683,7 +681,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grenadier) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/common/enemy/spyder.gc b/goal_src/jak2/levels/common/enemy/spyder.gc index d1aa1d5d60..70964b22b1 100644 --- a/goal_src/jak2/levels/common/enemy/spyder.gc +++ b/goal_src/jak2/levels/common/enemy/spyder.gc @@ -262,78 +262,76 @@ (defmethod general-event-handler spyder ((obj spyder) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (when (zero? (-> obj hit-points)) - (case (-> obj incoming knocked-type) - (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - 0 - ) - ) + (case arg2 + (('hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (when (zero? (-> obj hit-points)) + (case (-> obj incoming knocked-type) + (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) + 0 + ) ) - (go (method-of-object obj knocked)) ) - (('attack) - (if (type? (-> arg0 parent 0) enemy) - (logior! (-> obj status-flags) 2) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('notify) - (cond - ((= (-> arg3 param 0) 'attack) - (cond - ((= (-> arg3 param 1) (handle->process (-> obj focus handle))) - (let ((a1-6 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-6 from) (process->ppointer arg0)) - (set! (-> a1-6 num-params) arg1) - (set! (-> a1-6 message) 'victory) - (set! (-> a1-6 param 0) (-> arg3 param 0)) - (set! (-> a1-6 param 1) (-> arg3 param 1)) - (set! (-> a1-6 param 2) (-> arg3 param 2)) - (set! (-> a1-6 param 3) (-> arg3 param 3)) - (set! (-> a1-6 param 4) (-> arg3 param 4)) - (set! (-> a1-6 param 5) (-> arg3 param 5)) - (send-event-function obj a1-6) - ) + (go (method-of-object obj knocked)) + ) + (('attack) + (if (type? (-> arg0 parent 0) enemy) + (logior! (-> obj status-flags) 2) + ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (cond + ((= (-> arg3 param 0) 'attack) + (cond + ((= (-> arg3 param 1) (handle->process (-> obj focus handle))) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) (process->ppointer arg0)) + (set! (-> a1-6 num-params) arg1) + (set! (-> a1-6 message) 'victory) + (set! (-> a1-6 param 0) (-> arg3 param 0)) + (set! (-> a1-6 param 1) (-> arg3 param 1)) + (set! (-> a1-6 param 2) (-> arg3 param 2)) + (set! (-> a1-6 param 3) (-> arg3 param 3)) + (set! (-> a1-6 param 4) (-> arg3 param 4)) + (set! (-> a1-6 param 5) (-> arg3 param 5)) + (send-event-function obj a1-6) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - (('uncloak) - (when (!= (-> obj dest-fade) 128.0) - (set! (-> obj shock-effect-end) (+ (-> pp clock frame-counter) (seconds 1))) - (set! (-> obj dest-fade) 128.0) - (sound-play "spyder-uncloak") - ) - (send-event obj 'cue-chase) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ) + ) + (('uncloak) + (when (!= (-> obj dest-fade) 128.0) + (set! (-> obj shock-effect-end) (+ (current-time) (seconds 1))) + (set! (-> obj dest-fade) 128.0) + (sound-play "spyder-uncloak") + ) + (send-event obj 'cue-chase) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -362,9 +360,9 @@ (if (< 245760.0 (vector-vector-distance (-> obj root-override2 trans) (camera-pos))) (setup-masks (-> obj draw) 0 16) ) - (when (< (-> pp clock frame-counter) (-> obj shock-effect-end)) - (when (>= (- (-> pp clock frame-counter) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (-> pp clock frame-counter)) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) (process-drawable-shock-skel-effect obj (-> *lightning-spec-id-table* 5) @@ -711,7 +709,7 @@ ) ) (when (!= (-> self dest-fade) 128.0) - (set! (-> self shock-effect-end) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self shock-effect-end) (+ (current-time) (seconds 1))) (set! (-> self dest-fade) 128.0) ) (none) @@ -866,7 +864,7 @@ (look-at-target! self (enemy-flag death-start)) (set! (-> self status-flags) (logand -3 (-> self status-flags))) (when (!= (-> self dest-fade) 128.0) - (set! (-> self shock-effect-end) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self shock-effect-end) (+ (current-time) (seconds 1))) (set! (-> self dest-fade) 128.0) (sound-play "spyder-uncloak") ) @@ -931,7 +929,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior spyder) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -944,7 +942,7 @@ ) :trans (behavior () (let ((f0-0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest)))) - (if (or (>= 4096.0 f0-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 6))) + (if (or (>= 4096.0 f0-0) (>= (- (current-time) (-> self state-time)) (seconds 6))) (go-hostile self) ) ) @@ -1097,8 +1095,8 @@ (set! (-> self fire-info 0 quad) (-> s3-0 quad)) (set! (-> self fire-info 1 quad) (-> s2-1 quad)) ) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 0.2)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 0.2)) (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (-> self clock seconds-per-frame))) (ja :num! (loop!)) (let ((a0-27 (-> self skel root-channel 1))) diff --git a/goal_src/jak2/levels/common/entities/com-elevator.gc b/goal_src/jak2/levels/common/entities/com-elevator.gc index 98c46816c5..211b8fbe4b 100644 --- a/goal_src/jak2/levels/common/entities/com-elevator.gc +++ b/goal_src/jak2/levels/common/entities/com-elevator.gc @@ -134,8 +134,8 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -286,8 +286,8 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/common/entities/fort-floor-spike.gc b/goal_src/jak2/levels/common/entities/fort-floor-spike.gc index 24eddc9834..62100966ea 100644 --- a/goal_src/jak2/levels/common/entities/fort-floor-spike.gc +++ b/goal_src/jak2/levels/common/entities/fort-floor-spike.gc @@ -90,7 +90,7 @@ object (case event-type (('touched) - (when (+ (-> self clock frame-counter) (seconds -2)) + (when (+ (current-time) (seconds -2)) (let* ((s3-0 proc) (proc-draw (if (type? s3-0 process-drawable) (the-as process-drawable s3-0) @@ -124,7 +124,7 @@ (send-event-function proc evt) ) ) - (let ((frame-count (-> self clock frame-counter))) + (let ((frame-count (current-time))) (set! (-> self no-overlap-timer) (the-as uint frame-count)) frame-count ) diff --git a/goal_src/jak2/levels/common/entities/gun-buoy.gc b/goal_src/jak2/levels/common/entities/gun-buoy.gc index fcb90b1023..49302cd3ef 100644 --- a/goal_src/jak2/levels/common/entities/gun-buoy.gc +++ b/goal_src/jak2/levels/common/entities/gun-buoy.gc @@ -404,7 +404,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (< 2 (the-as int (-> self focus aware))) (-> *setting-control* user-current gun-buoy) ) @@ -643,7 +643,7 @@ (defstate stare-down (gun-buoy) :virtual #t :enter (behavior () - (set! (-> self stare-down-timer) (-> self clock frame-counter)) + (set! (-> self stare-down-timer) (current-time)) (none) ) :trans (behavior () @@ -654,7 +654,7 @@ ) ((or (< (the-as int v1-0) 2) (not (-> *setting-control* user-current gun-buoy)) - (>= (- (-> self clock frame-counter) (-> self stare-down-timer)) (seconds 6)) + (>= (- (current-time) (-> self stare-down-timer)) (seconds 6)) ) (go-virtual exit-ambush) ) @@ -718,7 +718,7 @@ ) ) ) - (set! (-> self warning-timer) (-> self clock frame-counter)) + (set! (-> self warning-timer) (current-time)) (set! (-> self warning-id) (sound-play "buoy-alarm")) (none) ) @@ -731,7 +731,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self warning-timer)) (-> self warning-interval)) + (when (>= (- (current-time) (-> self warning-timer)) (-> self warning-interval)) (cond ((>= (the-as int gp-0) 3) (logior! (-> self flags) 2) @@ -793,7 +793,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (let ((v1-3 (-> self focus aware))) (cond ((= v1-3 (enemy-aware enemy-aware-2)) @@ -855,8 +855,8 @@ (gun-buoy-method-183 self a1-1) ) ) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.75)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.75)) (suspend) ) ) @@ -890,8 +890,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) @@ -982,7 +982,7 @@ ) ) 0 - (let ((v1-30 (-> pp clock frame-counter)) + (let ((v1-30 (current-time)) (f0-18 4.83) ) (set! (-> obj y-bob) diff --git a/goal_src/jak2/levels/common/entities/sew-gunturret.gc b/goal_src/jak2/levels/common/entities/sew-gunturret.gc index 5c1567c315..579a73a2b4 100644 --- a/goal_src/jak2/levels/common/entities/sew-gunturret.gc +++ b/goal_src/jak2/levels/common/entities/sew-gunturret.gc @@ -708,7 +708,7 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) @@ -719,14 +719,14 @@ :code (behavior () (set-aim-at-default! self) (until #f - (-> self clock frame-counter) - (until (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (current-time) + (until (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) (suspend) ) (update-collision! self) (sound-play "sew-gun-lock") - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 0.75)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 0.75)) (aim-turret! self #t) (suspend) ) @@ -736,14 +736,14 @@ (fire-sound? #t) ) (sound-play "gturret") - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.125)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.125)) (cond ((not (-> self can-shoot)) ) - ((>= (- (-> self clock frame-counter) (the-as time-frame frames)) (seconds 0.05)) + ((>= (- (current-time) (the-as time-frame frames)) (seconds 0.05)) (fire-turret! self fire-sound?) - (set! frames (the-as int (-> self clock frame-counter))) + (set! frames (the-as int (current-time))) (set! fire-sound? (not fire-sound?)) ) (else @@ -758,8 +758,8 @@ (set! (-> self flash-state) #f) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data (-> self params idle-anim))) - (let ((_frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) _frame-counter) (seconds 0.5)) + (let ((_frame-counter (current-time))) + (until (>= (- (current-time) _frame-counter) (seconds 0.5)) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 0))) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 1))) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 2))) @@ -797,7 +797,7 @@ @TODO - unsure if there is a pattern for the events and this should have a more specific name" (with-pp (if (and (= event-type 'notify) (< 1 arg2) (= (-> event param 0) 'attack) (= (-> event param 1) *target*)) - (set! (-> obj last-hit-time) (-> pp clock frame-counter)) + (set! (-> obj last-hit-time) (current-time)) ) (case event-type (('start) @@ -874,15 +874,15 @@ (let ((vec (new 'stack-no-clear 'vector))) (set! (-> vec quad) (-> self root-override2 trans quad)) (set! (-> vec y) (+ 10240.0 (-> vec y))) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 2)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 2)) (spawn (-> self part) vec) (suspend) ) ) ) - (let ((_frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) _frame-counter) (seconds 1)) + (let ((_frame-counter (current-time))) + (until (>= (- (current-time) _frame-counter) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/common/entities/spydroid.gc b/goal_src/jak2/levels/common/entities/spydroid.gc index d3c380f3d0..7e1cc4563a 100644 --- a/goal_src/jak2/levels/common/entities/spydroid.gc +++ b/goal_src/jak2/levels/common/entities/spydroid.gc @@ -859,7 +859,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -868,7 +868,7 @@ (t9-0) ) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (< (- (current-time) (-> self state-time)) (seconds 2)) (spawn (-> self explode-part) (-> self root-override2 trans)) ) (none) @@ -910,8 +910,8 @@ ) (suspend) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1067,7 +1067,7 @@ ) ) (let ((a0-1 (handle->process (-> self focus handle)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (and a0-1 (let ((f0-0 (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (-> self root-override2 trans) diff --git a/goal_src/jak2/levels/common/flitter.gc b/goal_src/jak2/levels/common/flitter.gc index 766328a6ce..370869c2c7 100644 --- a/goal_src/jak2/levels/common/flitter.gc +++ b/goal_src/jak2/levels/common/flitter.gc @@ -698,8 +698,8 @@ (-> gp-0 ppointer) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.6)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.6)) (suspend) ) ) @@ -720,8 +720,8 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -748,7 +748,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self root-override2))) (vector-reset! (-> gp-0 transv)) (set! (-> gp-0 transv y) (* 4096.0 (get-rand-float-range self 34.0 38.0))) @@ -859,87 +859,83 @@ ) (defmethod flitter-method-180 flitter ((obj flitter)) - (with-pp - (let* ((s5-0 (handle->process (-> obj focus handle))) - (s3-0 (if (type? s5-0 process-focusable) - (the-as process-focusable s5-0) - ) - ) + (let* ((s5-0 (handle->process (-> obj focus handle))) + (s3-0 (if (type? s5-0 process-focusable) + (the-as process-focusable s5-0) + ) + ) + ) + (when s3-0 + (let* ((s5-1 (get-trans s3-0 0)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) + (f30-0 (vector-length s4-1)) + ) + (cond + ((enemy-method-99 obj s3-0) + (go-flee obj) ) - (when s3-0 - (let* ((s5-1 (get-trans s3-0 0)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) - (f30-0 (vector-length s4-1)) - ) - (cond - ((enemy-method-99 obj s3-0) - (go-flee obj) - ) - ((and (< f30-0 32768.0) (not (flitter-method-182 obj s3-0))) - (go (method-of-object obj circling)) - ) - ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s4-1 quad)) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) - (vector-normalize! s5-2 f30-0) - (if (>= (vector-dot s3-1 s5-2) 0.98) - (go (method-of-object obj attack)) - ) - ) - ) - ) - ((< f30-0 32768.0) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - ) - ((or (>= (- (-> pp clock frame-counter) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) - (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) - ) - (set! (-> obj last-change-dir) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) - (s2-0 (new 'stack-no-clear 'vector)) + ((and (< f30-0 32768.0) (not (flitter-method-182 obj s3-0))) + (go (method-of-object obj circling)) + ) + ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s4-1 quad)) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) + (vector-normalize! s5-2 f30-0) + (if (>= (vector-dot s3-1 s5-2) 0.98) + (go (method-of-object obj attack)) ) - (if (-> obj heading) - (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) - (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) - ) - (set! (-> obj heading) (the-as basic (not (-> obj heading)))) - (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) - (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) - ) - (vector-normalize! s3-2 f28-1) - (vector+! s3-2 s3-2 s4-2) - ) - (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) - (vector+! s2-0 s5-1 s3-2) - (set! (-> obj target-pos quad) (-> s2-0 quad)) ) ) - ) + ) + ((< f30-0 32768.0) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + ) + ((or (>= (- (current-time) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) + (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) + ) + (set! (-> obj last-change-dir) (the-as uint (current-time))) + (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (if (-> obj heading) + (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) + (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) + ) + (set! (-> obj heading) (the-as basic (not (-> obj heading)))) + (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) + (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) + ) + (vector-normalize! s3-2 f28-1) + (vector+! s3-2 s3-2 s4-2) + ) + (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) + (vector+! s2-0 s5-1 s3-2) + (set! (-> obj target-pos quad) (-> s2-0 quad)) + ) + ) ) - 0 ) + 0 ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch time-frame vs none. (defmethod flitter-method-181 flitter ((obj flitter)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj amb-sound-timer))) - (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) - ) - (sound-play "flitter-amb" :position (-> obj root-override2 trans)) - (set! (-> obj amb-sound-timer) (the-as uint (-> pp clock frame-counter))) - ) - (none) + (when (>= (- (current-time) (the-as int (-> obj amb-sound-timer))) + (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) + ) + (sound-play "flitter-amb" :position (-> obj root-override2 trans)) + (set! (-> obj amb-sound-timer) (the-as uint (current-time))) ) + (none) ) (defbehavior flitter-fall-and-play-death-anim flitter ((arg0 art-joint-anim) (arg1 float) (arg2 time-frame)) @@ -954,7 +950,7 @@ ) (set! (-> self root-override2 transv y) 33775.48) (ja :num-func num-func-identity :frame-num 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self root-override2 status) (collide-status on-surface on-ground touch-surface)) (until v1-29 (let ((f0-2 102400.0)) @@ -963,7 +959,7 @@ ) (suspend) (ja :num! (seek! max arg1)) - (set! v1-29 (or (ja-done? 0) (>= (- (-> self clock frame-counter) (-> self state-time)) arg2))) + (set! v1-29 (or (ja-done? 0) (>= (- (current-time) (-> self state-time)) arg2))) ) ) ) @@ -1056,7 +1052,7 @@ (t9-0) ) ) - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) (none) ) :trans (behavior () @@ -1064,7 +1060,7 @@ (if gp-0 (set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-11 (-> self focus aware))) (cond ((= v1-11 (enemy-aware enemy-aware-3)) @@ -1081,14 +1077,12 @@ ) ) ) - (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (the-as int (-> self off-screen-timer))) (seconds 0.3)) - ) + (if (and (get-enemy-target self) (>= (- (current-time) (the-as int (-> self off-screen-timer))) (seconds 0.3))) (go-hostile self) ) ) (else - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) ) ) ) @@ -1138,9 +1132,9 @@ (defstate hostile (flitter) :virtual #t :enter (behavior () - (set! (-> self last-change-dir) (the-as uint (-> self clock frame-counter))) + (set! (-> self last-change-dir) (the-as uint (current-time))) (set! (-> self change-dir-time) 0) - (set! (-> self attack-time) (+ (-> self clock frame-counter) (seconds 0.35))) + (set! (-> self attack-time) (+ (current-time) (seconds 0.35))) (let ((t9-0 (-> (method-of-type nav-enemy hostile) enter))) (if t9-0 (t9-0) @@ -1203,7 +1197,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior flitter) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1240,7 +1234,7 @@ ) (set! s5-2 (cond ((and gp-0 - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (< (- (current-time) (-> self state-time)) (seconds 1.5)) gp-0 (not (logtest? (-> gp-0 focus-status) (focus-status disable dead ignore grabbed))) ) diff --git a/goal_src/jak2/levels/common/grunt.gc b/goal_src/jak2/levels/common/grunt.gc index dc3af85521..cf7a3a147b 100644 --- a/goal_src/jak2/levels/common/grunt.gc +++ b/goal_src/jak2/levels/common/grunt.gc @@ -461,8 +461,8 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -781,7 +781,7 @@ ) ) (let ((a0-1 (grunt-method-184 self 13312.0)) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (when (and (>= gp-0 (-> self next-warn-time)) (not (logtest? (-> self draw status) (draw-control-status on-screen))) diff --git a/goal_src/jak2/levels/common/guard-projectile.gc b/goal_src/jak2/levels/common/guard-projectile.gc index 0f55445f39..ed0973cc4b 100644 --- a/goal_src/jak2/levels/common/guard-projectile.gc +++ b/goal_src/jak2/levels/common/guard-projectile.gc @@ -777,9 +777,9 @@ (vector-float*! (-> a2-0 transv) (-> a2-0 transv) 0.2) ) (when (and (logtest? v1-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (set! (-> obj played-bounce-time) (-> self clock frame-counter)) + (set! (-> obj played-bounce-time) (current-time)) (sound-play "grenade-bounce") ) ) diff --git a/goal_src/jak2/levels/common/races/race-manager.gc b/goal_src/jak2/levels/common/races/race-manager.gc index 9d3a05d988..972aea4f04 100644 --- a/goal_src/jak2/levels/common/races/race-manager.gc +++ b/goal_src/jak2/levels/common/races/race-manager.gc @@ -585,204 +585,200 @@ ) (defmethod race-state-method-11 race-state ((obj race-state)) - (with-pp - (set! (-> obj current-time) (the-as uint (-> pp clock frame-counter))) - (let ((v1-2 (-> obj state))) - (cond - ((zero? v1-2) - (let ((v1-3 (the-as object #t))) - (when (not (logtest? (-> obj flags) 4)) - (dotimes (s5-0 (-> obj racer-count)) - (let ((a0-7 (-> obj racer-array s5-0))) - (set! v1-3 (and v1-3 (send-event (handle->process (-> a0-7 racer)) 'test-ready))) - ) + (set! (-> obj current-time) (the-as uint (current-time))) + (let ((v1-2 (-> obj state))) + (cond + ((zero? v1-2) + (let ((v1-3 (the-as object #t))) + (when (not (logtest? (-> obj flags) 4)) + (dotimes (s5-0 (-> obj racer-count)) + (let ((a0-7 (-> obj racer-array s5-0))) + (set! v1-3 (and v1-3 (send-event (handle->process (-> a0-7 racer)) 'test-ready))) ) ) - (when (and v1-3 (not (logtest? (-> obj info flags) 1))) - (race-state-method-15 obj) - (set! v1-3 (handle->process (-> obj race-signal))) - ) - (when v1-3 - (race-state-method-18 obj) - (set! (-> obj state) (the-as uint (if (or (logtest? (-> obj flags) 2) (logtest? (-> obj info flags) 1)) - 5 - 1 - ) - ) - ) - ) + ) + (when (and v1-3 (not (logtest? (-> obj info flags) 1))) + (race-state-method-15 obj) + (set! v1-3 (handle->process (-> obj race-signal))) + ) + (when v1-3 + (race-state-method-18 obj) + (set! (-> obj state) (the-as uint (if (or (logtest? (-> obj flags) 2) (logtest? (-> obj info flags) 1)) + 5 + 1 + ) + ) + ) ) ) - ((= v1-2 1) - (let* ((f30-0 (* 0.0033333334 (the float (- (-> obj current-time) (-> obj countdown-start-time))))) - (s4-0 (handle->process (-> obj racer-array (-> obj i-player) racer))) - (s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (cond - ((< f30-0 1.0) - (when s5-1 - (cubic-curve-method-10 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-1) root-override trans) - f30-0 - ) - (cubic-curve-method-11 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-1) root-override transv) - f30-0 - ) - (when (< 0.4 f30-0) - (when (-> obj info start-camera) - (set-setting! 'entity-name (-> obj info start-camera) 0.0 0) - (if (logtest? (-> obj info flags) 64) - (talker-spawn-func (-> *talker-speech* 377) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-2 1) + (let* ((f30-0 (* 0.0033333334 (the float (- (-> obj current-time) (-> obj countdown-start-time))))) + (s4-0 (handle->process (-> obj racer-array (-> obj i-player) racer))) + (s5-1 (if (type? s4-0 process-focusable) + s4-0 ) ) - ) - ) ) - (else - (set! (-> obj state) (the-as uint 2)) - ) - ) - ) - ) - ((= v1-2 2) - (let* ((s4-2 (handle->process (-> obj racer-array (-> obj i-player) racer))) - (s5-3 (if (type? s4-2 process-focusable) - s4-2 - ) - ) - ) - (when s5-3 - (cubic-curve-method-10 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-3) root-override trans) - 1.0 - ) - (vector-reset! (-> (the-as process-focusable s5-3) root-override transv)) - ) - ) - (let ((a0-48 (-> obj info hatch-actor-name))) - (when a0-48 - (let ((a0-49 (process-by-name a0-48 *active-pool*))) - (send-event a0-49 'close) - ) - ) - ) - (set! (-> obj countdown-start-time) (-> obj current-time)) - (set! (-> obj state) (the-as uint (if (-> obj info countdown-scene) - 3 - 5 - ) - ) - ) - ) - ((= v1-2 3) - (when (>= (the-as uint (- (-> pp clock frame-counter) (the-as int (-> obj countdown-start-time)))) - (the-as uint 300) - ) - (set! (-> obj state) (the-as uint 4)) - (set! (-> obj scene-player) - (ppointer->handle (process-spawn scene-player :init scene-player-init (-> obj info countdown-scene) #t #f)) - ) - ) - ) - ((= v1-2 4) (cond - ((handle->process (-> obj scene-player)) - (let ((s5-5 (-> obj info))) - (dotimes (s4-3 (-> s5-5 racer-count)) - (let ((v1-95 (-> obj racer-array s4-3))) - (if (logtest? (-> s5-5 racer-array s4-3 flags) 1) - (send-event (handle->process (-> v1-95 racer)) 'hide) + ((< f30-0 1.0) + (when s5-1 + (cubic-curve-method-10 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-1) root-override trans) + f30-0 + ) + (cubic-curve-method-11 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-1) root-override transv) + f30-0 + ) + (when (< 0.4 f30-0) + (when (-> obj info start-camera) + (set-setting! 'entity-name (-> obj info start-camera) 0.0 0) + (if (logtest? (-> obj info flags) 64) + (talker-spawn-func (-> *talker-speech* 377) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) ) ) (else - (let ((s5-6 (-> obj info))) - (dotimes (s4-4 (-> s5-6 racer-count)) - (let ((v1-105 (-> obj racer-array s4-4))) - (if (logtest? (-> s5-6 racer-array s4-4 flags) 1) - (send-event (handle->process (-> v1-105 racer)) 'unhide) - ) - ) - ) - ) - (set! (-> obj state) (the-as uint 5)) + (set! (-> obj state) (the-as uint 2)) ) ) ) - ((= v1-2 5) - (set! (-> obj i-countdown) 4) - (set! (-> obj state) (the-as uint 6)) - (set! (-> obj countdown-start-time) (-> obj current-time)) - (remove-setting! 'entity-name) + ) + ((= v1-2 2) + (let* ((s4-2 (handle->process (-> obj racer-array (-> obj i-player) racer))) + (s5-3 (if (type? s4-2 process-focusable) + s4-2 + ) + ) + ) + (when s5-3 + (cubic-curve-method-10 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-3) root-override trans) + 1.0 + ) + (vector-reset! (-> (the-as process-focusable s5-3) root-override transv)) + ) ) - ((= v1-2 6) - (let ((f0-3 3.0)) - (if (logtest? (-> obj info flags) 1) - (set! f0-3 0.2) - ) - (let ((v1-127 (+ (the int (* 300.0 f0-3)) (- (-> obj countdown-start-time) (-> obj current-time))))) - (cond - ((>= v1-127 (the int (* 225.0 f0-3))) - ) - ((>= v1-127 (the int (* 150.0 f0-3))) - (when (!= (-> obj i-countdown) 3) - (set! (-> obj i-countdown) 3) - (send-event (handle->process (-> obj race-signal)) 'count-3) - ) - ) - ((>= v1-127 (the int (* 75.0 f0-3))) - (when (!= (-> obj i-countdown) 2) - (set! (-> obj i-countdown) 2) - (send-event (handle->process (-> obj race-signal)) 'count-2) - ) - ) - ((< (the int (* 0.0 f0-3)) v1-127) - (when (!= (-> obj i-countdown) 1) - (set! (-> obj i-countdown) 1) - (send-event (handle->process (-> obj race-signal)) 'count-1) - ) - ) - (else - (set! (-> obj i-countdown) 0) - (set! (-> obj state) (the-as uint 7)) - (begin-race obj) - ) - ) + (let ((a0-48 (-> obj info hatch-actor-name))) + (when a0-48 + (let ((a0-49 (process-by-name a0-48 *active-pool*))) + (send-event a0-49 'close) ) ) - (race-state-method-14 obj) ) - ((= v1-2 7) - (race-state-method-14 obj) - (race-state-method-12 obj) + (set! (-> obj countdown-start-time) (-> obj current-time)) + (set! (-> obj state) (the-as uint (if (-> obj info countdown-scene) + 3 + 5 + ) + ) + ) + ) + ((= v1-2 3) + (when (>= (the-as uint (- (current-time) (the-as int (-> obj countdown-start-time)))) (the-as uint 300)) + (set! (-> obj state) (the-as uint 4)) + (set! (-> obj scene-player) + (ppointer->handle (process-spawn scene-player :init scene-player-init (-> obj info countdown-scene) #t #f)) + ) ) - ((= v1-2 8) - ) - (else - ) - ) - ) - (dotimes (s5-7 (-> obj info turbo-pad-count)) - (let ((s4-5 (-> obj info turbo-pad-array s5-7))) - (if (not (handle->process (-> s4-5 handle))) - (set! (-> s4-5 handle) - (process->handle (turbo-pickup-spawn (handle->process (-> obj manager)) (-> s4-5 position))) - ) + ) + ((= v1-2 4) + (cond + ((handle->process (-> obj scene-player)) + (let ((s5-5 (-> obj info))) + (dotimes (s4-3 (-> s5-5 racer-count)) + (let ((v1-95 (-> obj racer-array s4-3))) + (if (logtest? (-> s5-5 racer-array s4-3 flags) 1) + (send-event (handle->process (-> v1-95 racer)) 'hide) + ) + ) + ) ) + ) + (else + (let ((s5-6 (-> obj info))) + (dotimes (s4-4 (-> s5-6 racer-count)) + (let ((v1-105 (-> obj racer-array s4-4))) + (if (logtest? (-> s5-6 racer-array s4-4 flags) 1) + (send-event (handle->process (-> v1-105 racer)) 'unhide) + ) + ) + ) + ) + (set! (-> obj state) (the-as uint 5)) + ) + ) + ) + ((= v1-2 5) + (set! (-> obj i-countdown) 4) + (set! (-> obj state) (the-as uint 6)) + (set! (-> obj countdown-start-time) (-> obj current-time)) + (remove-setting! 'entity-name) + ) + ((= v1-2 6) + (let ((f0-3 3.0)) + (if (logtest? (-> obj info flags) 1) + (set! f0-3 0.2) + ) + (let ((v1-127 (+ (the int (* 300.0 f0-3)) (- (-> obj countdown-start-time) (-> obj current-time))))) + (cond + ((>= v1-127 (the int (* 225.0 f0-3))) + ) + ((>= v1-127 (the int (* 150.0 f0-3))) + (when (!= (-> obj i-countdown) 3) + (set! (-> obj i-countdown) 3) + (send-event (handle->process (-> obj race-signal)) 'count-3) + ) + ) + ((>= v1-127 (the int (* 75.0 f0-3))) + (when (!= (-> obj i-countdown) 2) + (set! (-> obj i-countdown) 2) + (send-event (handle->process (-> obj race-signal)) 'count-2) + ) + ) + ((< (the int (* 0.0 f0-3)) v1-127) + (when (!= (-> obj i-countdown) 1) + (set! (-> obj i-countdown) 1) + (send-event (handle->process (-> obj race-signal)) 'count-1) + ) + ) + (else + (set! (-> obj i-countdown) 0) + (set! (-> obj state) (the-as uint 7)) + (begin-race obj) + ) + ) + ) + ) + (race-state-method-14 obj) + ) + ((= v1-2 7) + (race-state-method-14 obj) + (race-state-method-12 obj) + ) + ((= v1-2 8) + ) + (else ) ) - 0 - (none) ) + (dotimes (s5-7 (-> obj info turbo-pad-count)) + (let ((s4-5 (-> obj info turbo-pad-array s5-7))) + (if (not (handle->process (-> s4-5 handle))) + (set! (-> s4-5 handle) + (process->handle (turbo-pickup-spawn (handle->process (-> obj manager)) (-> s4-5 position))) + ) + ) + ) + ) + 0 + (none) ) (defmethod race-state-method-15 race-state ((obj race-state)) @@ -1438,10 +1434,10 @@ (when (logtest? (-> gp-0 flags) 1) (cond ((logtest? (-> gp-0 flags) 64) - (set! (-> self player-on-track-time) (-> self clock frame-counter)) + (set! (-> self player-on-track-time) (current-time)) ) (else - (when (>= (- (-> self clock frame-counter) (-> self player-on-track-time)) (seconds 1)) + (when (>= (- (current-time) (-> self player-on-track-time)) (seconds 1)) (let ((v1-16 (handle->process (-> gp-0 racer)))) (when v1-16 (when (logtest? (-> (the-as vehicle-racer v1-16) flags) (rigid-body-object-flag on-ground)) @@ -1514,7 +1510,7 @@ (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) (process-spawn hud-race-final-stats :init hud-init-by-other :to self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (logtest? (-> self race-state info flags) 4) (send-event (ppointer->process (-> self parent)) 'complete) (sleep-code) @@ -1523,7 +1519,7 @@ (cond ((logtest? (-> self race-state info flags) 8) (race-manager-method-25 self) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (cond ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) @@ -1540,7 +1536,7 @@ ) (else (race-manager-method-24 self) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) (send-event (ppointer->process (-> self parent)) 'complete) @@ -1574,11 +1570,11 @@ (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) (process-spawn hud-race-final-stats :init hud-init-by-other :to self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (race-manager-method-25 self) (-> self race-state info) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (cond ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) @@ -1610,7 +1606,7 @@ (send-event (handle->process (-> self race-state hud-timer)) 'force-hide) (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (suspend) ) diff --git a/goal_src/jak2/levels/common/races/race-obs.gc b/goal_src/jak2/levels/common/races/race-obs.gc index 06abc8cd8d..89c322f292 100644 --- a/goal_src/jak2/levels/common/races/race-obs.gc +++ b/goal_src/jak2/levels/common/races/race-obs.gc @@ -111,7 +111,7 @@ (+! (-> obj y-offset) (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (-> pp clock seconds-per-frame)))) ) - (let ((f30-0 (* 0.0033333334 (the float (- (-> pp clock frame-counter) (-> obj bob-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) ) @@ -273,7 +273,7 @@ (-> v1-8 trans) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (until #f (suspend) ) @@ -281,7 +281,7 @@ (none) ) :post (behavior () - (let ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> self start-time)))))) (cubic-curve-method-10 (-> self curve) (-> self pos) f30-0) (if (< 1.0 f30-0) (go-virtual die) @@ -306,8 +306,8 @@ :code (behavior () (until #f (ja :num-func num-func-identity :frame-num (ja-aframe 0.0 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -317,8 +317,8 @@ (ja :num! (seek! (ja-aframe 2.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 196) 600 #f #f self 5 :to self) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 0.5)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 0.5)) (suspend) ) ) @@ -328,8 +328,8 @@ (ja :num! (seek! (ja-aframe 4.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 195) 300 #f #f self 7 :to self) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 0.5)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 0.5)) (suspend) ) ) @@ -339,14 +339,14 @@ (ja :num! (seek! (ja-aframe 6.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 194) 300 #f #f self 9 :to self) - (let ((gp-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-13) (seconds 0.5)) + (let ((gp-13 (current-time))) + (until (>= (- (current-time) gp-13) (seconds 0.5)) (suspend) ) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 197) 300 #f #f self 10 :to self) - (let ((gp-15 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-15) (seconds 0.5)) + (let ((gp-15 (current-time))) + (until (>= (- (current-time) gp-15) (seconds 0.5)) (suspend) ) ) @@ -375,7 +375,7 @@ (the-as skeleton-group (art-group-get-by-name *level* "skel-race-signal" (the-as (pointer uint32) #f))) (the-as pair 0) ) - (set! (-> self bob-time) (-> self clock frame-counter)) + (set! (-> self bob-time) (current-time)) (set! (-> self banner) (the-as handle #f)) (set! (-> self draw shadow-mask) (the-as uint 30)) (set! (-> self draw shadow-values) (the-as uint #x22220)) @@ -731,7 +731,7 @@ (defstate die (turbo-pickup) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) (when gp-0 (let ((t9-1 (method-of-type part-tracker activate))) @@ -772,7 +772,7 @@ (set! (-> v1-11 prim-core collide-with) (collide-spec)) ) 0 - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) diff --git a/goal_src/jak2/levels/common/races/vehicle-racer.gc b/goal_src/jak2/levels/common/races/vehicle-racer.gc index 36f129cd5e..71d33669b8 100644 --- a/goal_src/jak2/levels/common/races/vehicle-racer.gc +++ b/goal_src/jak2/levels/common/races/vehicle-racer.gc @@ -83,17 +83,11 @@ (set! (-> s3-0 search-sphere r) 61440.0) (race-mesh-method-13 (-> obj mesh) (the-as race-mesh-slice-query (&-> s3-0 slice-id))) (when (!= (-> s3-0 slice-id) -1) - (let* ((v1-12 (the-as object (+ (the-as uint (-> obj mesh slices)) (* (-> s3-0 slice-id) 4)))) - (f0-1 - (-> (the-as (pointer float) (+ (* (-> (the-as (pointer int16) v1-12)) 4) (the-as int (-> s4-0 edge-infos))))) + (let* ((v1-12 (-> obj mesh slices (-> s3-0 slice-id))) + (f0-1 (-> (the-as (pointer float) (+ (* (-> v1-12 start-edge) 4) (the-as int (-> s4-0 edge-infos)))))) + (f1-0 + (-> (the-as race-path-edge-info (+ (* (-> v1-12 end-edge) 4) (the-as int (-> s4-0 edge-infos)))) sample-t) ) - (f1-0 (-> (the-as - race-path-edge-info - (+ (* (-> (the-as race-mesh-slice v1-12) end-edge) 4) (the-as int (-> s4-0 edge-infos))) - ) - sample-t - ) - ) ) (when (and (>= f0-1 0.0) (>= f1-0 0.0)) (let ((f0-2 (race-path-method-12 s4-0 arg1 f0-1 f1-0))) @@ -269,20 +263,18 @@ ) (defmethod vehicle-method-66 vehicle-racer ((obj vehicle-racer)) - (with-pp - (when (and (not (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags))) (> (-> obj turbo-pickup-count) 0)) - (+! (-> obj turbo-pickup-count) -1) - (set! (-> obj turbo-boost-time) (-> pp clock frame-counter)) - (set! (-> obj turbo-boost-factor) 1.0) - (set! (-> obj turbo-boost-duration) (the-as uint 150)) - (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (sound-play "turbo-boost") - ) - ) - 0 - (none) + (when (and (not (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags))) (> (-> obj turbo-pickup-count) 0)) + (+! (-> obj turbo-pickup-count) -1) + (set! (-> obj turbo-boost-time) (current-time)) + (set! (-> obj turbo-boost-factor) 1.0) + (set! (-> obj turbo-boost-duration) (the-as uint 150)) + (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (sound-play "turbo-boost") + ) ) + 0 + (none) ) (defmethod vehicle-method-136 vehicle-racer ((obj vehicle-racer) (arg0 traffic-object-spawn-params)) @@ -433,7 +425,7 @@ ) ) (select-path-randomly-from-mask obj (-> v1-37 shortcuts)) - (set! (-> obj shortcut-time) (-> self clock frame-counter)) + (set! (-> obj shortcut-time) (current-time)) (set! (-> obj shortcut-speed-factor) 1.0) ) (else @@ -868,23 +860,21 @@ ) (defmethod vehicle-racer-method-152 vehicle-racer ((obj vehicle-racer)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'matrix3))) - (set! (-> s5-0 vector 0 quad) (-> obj rbody state position quad)) - (set! (-> obj camera-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (target-pos 0))) - ) - (if (>= (- (-> pp clock frame-counter) (-> obj shortcut-time)) (seconds 5)) - (set! (-> obj shortcut-speed-factor) 0.0) - ) - (vehicle-racer-method-154 obj) - (if (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (physics-post obj) - (vehicle-racer-method-151 obj) - ) - 0 - (none) + (let ((s5-0 (new 'stack-no-clear 'matrix3))) + (set! (-> s5-0 vector 0 quad) (-> obj rbody state position quad)) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (target-pos 0))) ) + (if (>= (- (current-time) (-> obj shortcut-time)) (seconds 5)) + (set! (-> obj shortcut-speed-factor) 0.0) + ) + (vehicle-racer-method-154 obj) + (if (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (physics-post obj) + (vehicle-racer-method-151 obj) + ) + 0 + (none) ) (defmethod vehicle-racer-method-155 vehicle-racer ((obj vehicle-racer)) @@ -930,7 +920,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (logior (rigid-body-object-flag ignition) (-> self flags))) (set! (-> self controls throttle) 0.0) (set! (-> self controls brake) 0.0) @@ -994,7 +984,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self damage-factor) (-> self info-override damage-factor)) (vehicle-method-143 self) (set! (-> self flags) (logior (rigid-body-object-flag ignition) (-> self flags))) @@ -1023,7 +1013,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (logior (rigid-body-object-flag riding ignition) (-> self flags))) (set! (-> self controls throttle) 0.0) (set! (-> self controls brake) 0.0) @@ -1067,7 +1057,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (the-as rigid-body-object-flag (logior (rigid-body-object-flag persistent riding nav-spheres) (-> self flags)) diff --git a/goal_src/jak2/levels/common/warp-gate.gc b/goal_src/jak2/levels/common/warp-gate.gc index fff901bd84..4ae079da7e 100644 --- a/goal_src/jak2/levels/common/warp-gate.gc +++ b/goal_src/jak2/levels/common/warp-gate.gc @@ -528,7 +528,7 @@ ) :code (behavior () (remove-setting! 'allow-progress) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (update-transforms (-> self root-override)) (until #f (handle-notice self) @@ -550,14 +550,14 @@ (or (= v1-30 'target-warp-in) (= v1-30 'target-warp-out)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else #t ) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) (if (and (cpad-pressed? 0 triangle) (process-grab? *target* #f)) (go-virtual use (-> self continue)) @@ -641,7 +641,7 @@ (kill-current-talker (the-as symbol '()) '() 'exit) (set-setting! 'mode-name 'cam-fixed 0.0 0) (set-setting! 'interp-time 'abs 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (when (not arg0) (process-release? *target*) @@ -683,7 +683,7 @@ ) ) (label cfg-21) - (or v1-38 (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))) + (or v1-38 (< (- (current-time) (-> self state-time)) (seconds 2))) ) (update! (-> self sound)) (suspend) @@ -694,8 +694,8 @@ (set-blackout-frames (seconds 0.05)) ) (start 'play arg0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -834,7 +834,7 @@ This commonly includes things such as: ) ) :enter (behavior ((arg0 vector) (arg1 vector) (arg2 target)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *warp-jump-mods*) (set! (-> self control unknown-vector37 quad) (-> arg0 quad)) @@ -898,7 +898,7 @@ This commonly includes things such as: (set! (-> v1-20 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self trans-hook) (lambda :behavior target () @@ -924,7 +924,7 @@ This commonly includes things such as: (set! (-> gp-1 y) 0.0) (send-event *target* 'sidekick #f) (when (and (or (< (vector-dot gp-1 (-> self control transv)) 0.0) (-> self control unknown-spool-anim00)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> self clock seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) @@ -1017,8 +1017,8 @@ This commonly includes things such as: (ja-channel-set! 0) (vector-reset! (-> self control transv)) (move-to-point! (-> self control) (-> self control unknown-vector37)) - (let ((s5-1 (-> self clock frame-counter))) - (while (or (< (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (while (or (< (- (current-time) s5-1) (seconds 1)) (< 81920.0 (vector-vector-distance (camera-pos) (-> self control trans))) ) (suspend) @@ -1026,7 +1026,7 @@ This commonly includes things such as: ) (set-heading-vec! (-> self control) (-> self control transv)) (rot->dir-targ! (-> self control)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self post-hook) target-no-stick-post) (ja-channel-set! 1) (send-event @@ -1225,11 +1225,10 @@ This commonly includes things such as: ((the-as (function none) t9-0)) ) ) - (set! (-> self root-override trans y) - (+ (-> self base-pos y) - (* 696.32 (cos (* 66.19798 (the float (mod (-> self clock frame-counter) 990))))) - (* 450.56 (cos (* 42.25403 (the float (mod (-> self clock frame-counter) 1551))))) - ) + (set! (-> self root-override trans y) (+ (-> self base-pos y) + (* 696.32 (cos (* 66.19798 (the float (mod (current-time) 990))))) + (* 450.56 (cos (* 42.25403 (the float (mod (current-time) 1551))))) + ) ) (spawn-with-cspace (-> self part-exhaust-left) (-> self node-list data 5)) (spawn-with-cspace (-> self part-exhaust-right) (-> self node-list data 6)) @@ -1251,7 +1250,7 @@ This commonly includes things such as: :virtual #t :code (behavior ((arg0 continue-point)) (kill-current-talker (the-as symbol '()) '() 'exit) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (when (not arg0) (process-release? *target*) diff --git a/goal_src/jak2/levels/demo/demo-obs.gc b/goal_src/jak2/levels/demo/demo-obs.gc index fc0f4e6fee..363f15bebe 100644 --- a/goal_src/jak2/levels/demo/demo-obs.gc +++ b/goal_src/jak2/levels/demo/demo-obs.gc @@ -469,20 +469,17 @@ ) (defun demo-wait-for-press ((arg0 time-frame) (arg1 time-frame) (arg2 symbol)) - (with-pp - (let ((s4-0 (-> pp clock frame-counter)) - (s3-0 #f) - ) - (while (not (or (>= (- (-> pp clock frame-counter) s4-0) arg1) (and (>= (- (-> pp clock frame-counter) s4-0) arg0) s3-0)) - ) - (if (cpad-pressed? 0 triangle) - (set! s3-0 #t) - ) - (suspend) + (let ((s4-0 (current-time)) + (s3-0 #f) ) + (while (not (or (>= (- (current-time) s4-0) arg1) (and (>= (- (current-time) s4-0) arg0) s3-0))) + (if (cpad-pressed? 0 triangle) + (set! s3-0 #t) + ) + (suspend) ) - #f ) + #f ) ;; WARN: Return type mismatch int vs object. @@ -644,63 +641,63 @@ ) (cond ((zero? (scf-get-territory)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.38)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.38)) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 3)) (set-vector! (-> self sprite-pos) -512.0 40.0 0.0 1.0) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (set! (-> self sprite-pos x) - (lerp-scale -512.0 0.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-4)))) 0.0 1.0) + (lerp-scale -512.0 0.0 (sin (* 218.45334 (the float (- (current-time) gp-4)))) 0.0 1.0) ) (suspend) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 2)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 2)) (suspend) ) ) - (let ((gp-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 0.25)) + (let ((gp-6 (current-time))) + (until (>= (- (current-time) gp-6) (seconds 0.25)) (set! (-> self sprite-pos x) - (lerp-scale 0.0 512.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-6)))) 0.0 1.0) + (lerp-scale 0.0 512.0 (sin (* 218.45334 (the float (- (current-time) gp-6)))) 0.0 1.0) ) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 1)) (set-vector! (-> self sprite-pos) 30.0 -240.0 0.0 1.0) - (let ((gp-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-7) (seconds 0.25)) + (let ((gp-7 (current-time))) + (until (>= (- (current-time) gp-7) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale -240.0 270.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-7)))) 0.0 1.0) + (lerp-scale -240.0 270.0 (sin (* 218.45334 (the float (- (current-time) gp-7)))) 0.0 1.0) ) (suspend) ) ) - (let ((gp-8 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-8) (seconds 2)) + (let ((gp-8 (current-time))) + (until (>= (- (current-time) gp-8) (seconds 2)) (suspend) ) ) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 0.25)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 270.0 720.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-9)))) 0.0 1.0) + (lerp-scale 270.0 720.0 (sin (* 218.45334 (the float (- (current-time) gp-9)))) 0.0 1.0) ) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 2)) (set-vector! (-> self sprite-pos) 20.0 40.0 0.0 1.0) - (let ((gp-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-10) (seconds 0.25)) + (let ((gp-10 (current-time))) + (until (>= (- (current-time) gp-10) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 720.0 20.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-10)))) 0.0 1.0) + (lerp-scale 720.0 20.0 (sin (* 218.45334 (the float (- (current-time) gp-10)))) 0.0 1.0) ) (suspend) ) @@ -714,70 +711,70 @@ (set! (-> a1-21 0) 'demo) (want-levels *load-state* a1-21) ) - (let ((gp-11 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-11) (seconds 2)) + (let ((gp-11 (current-time))) + (until (>= (- (current-time) gp-11) (seconds 2)) (suspend) ) ) - (let ((gp-12 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-12) (seconds 0.25)) + (let ((gp-12 (current-time))) + (until (>= (- (current-time) gp-12) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 20.0 -720.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-12)))) 0.0 1.0) + (lerp-scale 20.0 -720.0 (sin (* 218.45334 (the float (- (current-time) gp-12)))) 0.0 1.0) ) (suspend) ) ) ) (else - (let ((gp-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-13) (seconds 0.38)) + (let ((gp-13 (current-time))) + (until (>= (- (current-time) gp-13) (seconds 0.38)) (suspend) ) ) - (let ((gp-14 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-14) (seconds 2)) + (let ((gp-14 (current-time))) + (until (>= (- (current-time) gp-14) (seconds 2)) (suspend) ) ) - (let ((gp-15 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-15) (seconds 0.25)) + (let ((gp-15 (current-time))) + (until (>= (- (current-time) gp-15) (seconds 0.25)) (suspend) ) ) - (let ((gp-16 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-16) (seconds 0.25)) + (let ((gp-16 (current-time))) + (until (>= (- (current-time) gp-16) (seconds 0.25)) (suspend) ) ) - (let ((gp-17 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-17) (seconds 2)) + (let ((gp-17 (current-time))) + (until (>= (- (current-time) gp-17) (seconds 2)) (suspend) ) ) - (let ((gp-18 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-18) (seconds 0.25)) + (let ((gp-18 (current-time))) + (until (>= (- (current-time) gp-18) (seconds 0.25)) (suspend) ) ) - (let ((gp-19 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-19) (seconds 0.25)) + (let ((gp-19 (current-time))) + (until (>= (- (current-time) gp-19) (seconds 0.25)) (suspend) ) ) - (let ((gp-20 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-20) (seconds 2)) + (let ((gp-20 (current-time))) + (until (>= (- (current-time) gp-20) (seconds 2)) (suspend) ) ) - (let ((gp-21 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-21) (seconds 0.25)) + (let ((gp-21 (current-time))) + (until (>= (- (current-time) gp-21) (seconds 0.25)) (suspend) ) ) ) ) - (let ((gp-22 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-22) (seconds 3)) + (let ((gp-22 (current-time))) + (until (>= (- (current-time) gp-22) (seconds 3)) (suspend) ) ) @@ -794,9 +791,9 @@ (set! (-> *setting-control* user-default allow-timeout) #t) (let ((gp-24 (demo-menu))) (script-eval '(fadeout (seconds (new 'static 'bfloat :data 0.3)))) - (let ((s5-8 (-> self clock frame-counter))) + (let ((s5-8 (current-time))) (while (or (!= (-> *setting-control* user-current bg-a) (-> *setting-control* user-target bg-a)) - (< (- (-> self clock frame-counter) s5-8) (seconds 0.3)) + (< (- (current-time) s5-8) (seconds 0.3)) ) (suspend) ) diff --git a/goal_src/jak2/levels/dig/dig-digger.gc b/goal_src/jak2/levels/dig/dig-digger.gc index 1af208adfb..f8ae901e53 100644 --- a/goal_src/jak2/levels/dig/dig-digger.gc +++ b/goal_src/jak2/levels/dig/dig-digger.gc @@ -1188,83 +1188,81 @@ This commonly includes things such as: ) (defmethod dig-digger-method-24 dig-digger ((obj dig-digger)) - (with-pp - (set! (-> obj vertical target x) 0.0) - (set! (-> obj vertical target z) 0.0) - (let ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (the-as vector (-> obj vertical)) 1.0)) - (s5-0 0) - ) - (dotimes (s3-0 24) - (let* ((s2-0 (-> obj tethers s3-0)) - (s1-0 (handle->process (-> s2-0 handle))) + (set! (-> obj vertical target x) 0.0) + (set! (-> obj vertical target z) 0.0) + (let ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (the-as vector (-> obj vertical)) 1.0)) + (s5-0 0) + ) + (dotimes (s3-0 24) + (let* ((s2-0 (-> obj tethers s3-0)) + (s1-0 (handle->process (-> s2-0 handle))) + ) + (cond + (s1-0 + (let ((v1-10 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj tethers s3-0 rp))))) + (send-event s1-0 'set-pos v1-10 (-> obj root trans) s4-0) + ) + (cond + ((send-event s1-0 'broken?) + (+! (-> obj vertical target x) (-> s2-0 broken-x)) + (+! (-> obj vertical target z) (-> s2-0 broken-z)) ) - (cond - (s1-0 - (let ((v1-10 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj tethers s3-0 rp))))) - (send-event s1-0 'set-pos v1-10 (-> obj root trans) s4-0) - ) - (cond - ((send-event s1-0 'broken?) - (+! (-> obj vertical target x) (-> s2-0 broken-x)) - (+! (-> obj vertical target z) (-> s2-0 broken-z)) - ) - (else - (+! s5-0 1) - ) + (else + (+! s5-0 1) ) ) - (else - (+! (-> obj vertical target x) (-> s2-0 broken-x)) - (+! (-> obj vertical target z) (-> s2-0 broken-z)) - ) + ) + (else + (+! (-> obj vertical target x) (-> s2-0 broken-x)) + (+! (-> obj vertical target z) (-> s2-0 broken-z)) ) ) ) - (set! (-> *game-info* counter) (the float s5-0)) - (when (and (= s5-0 24) - (>= (- (-> pp clock frame-counter) (-> obj speech-time)) (seconds 20)) - *target* - (and (>= 409600.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) - (not (logtest? (focus-status teleporting) (-> *target* focus-status))) - ) - ) - (let ((v1-37 (logand (-> obj speech-count) 1))) - (cond - ((zero? v1-37) - (talker-spawn-func (-> *talker-speech* 191) *entity-pool* (target-pos 0) (the-as region #f)) - (if (and *target* (not (logtest? (focus-status board) (-> *target* focus-status)))) - (talker-spawn-func (-> *talker-speech* 115) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ((= v1-37 1) - (talker-spawn-func (-> *talker-speech* 192) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - (set! (-> obj speech-time) (-> pp clock frame-counter)) - (+! (-> obj speech-count) 1) - ) - (cond - ((zero? s5-0) - (send-event (handle->process (-> obj hud-counter)) 'hide-and-die) - (set! (-> obj hud-counter) (the-as handle #f)) - (when (= (-> obj movie-handle) #f) - (set! (-> obj movie-handle) - (ppointer->handle (process-spawn scene-player :init scene-player-init "dig-digger-explode" #t #f)) - ) - (if (handle->process (-> obj movie-handle)) - (cleanup-for-death obj) - ) - ) - ) - ((>= 4 s5-0) - (script-eval '(want-anim "dig-digger-explode")) - ) - ) ) - 0 - (none) + (set! (-> *game-info* counter) (the float s5-0)) + (when (and (= s5-0 24) + (>= (- (current-time) (-> obj speech-time)) (seconds 20)) + *target* + (and (>= 409600.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) + (not (logtest? (focus-status teleporting) (-> *target* focus-status))) + ) + ) + (let ((v1-37 (logand (-> obj speech-count) 1))) + (cond + ((zero? v1-37) + (talker-spawn-func (-> *talker-speech* 191) *entity-pool* (target-pos 0) (the-as region #f)) + (if (and *target* (not (logtest? (focus-status board) (-> *target* focus-status)))) + (talker-spawn-func (-> *talker-speech* 115) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ((= v1-37 1) + (talker-spawn-func (-> *talker-speech* 192) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + (set! (-> obj speech-time) (current-time)) + (+! (-> obj speech-count) 1) + ) + (cond + ((zero? s5-0) + (send-event (handle->process (-> obj hud-counter)) 'hide-and-die) + (set! (-> obj hud-counter) (the-as handle #f)) + (when (= (-> obj movie-handle) #f) + (set! (-> obj movie-handle) + (ppointer->handle (process-spawn scene-player :init scene-player-init "dig-digger-explode" #t #f)) + ) + (if (handle->process (-> obj movie-handle)) + (cleanup-for-death obj) + ) + ) + ) + ((>= 4 s5-0) + (script-eval '(want-anim "dig-digger-explode")) + ) + ) ) + 0 + (none) ) (defstate idle (dig-digger) diff --git a/goal_src/jak2/levels/dig/dig-obs.gc b/goal_src/jak2/levels/dig/dig-obs.gc index a2124f8726..96f366aba0 100644 --- a/goal_src/jak2/levels/dig/dig-obs.gc +++ b/goal_src/jak2/levels/dig/dig-obs.gc @@ -103,98 +103,96 @@ ) (defmethod rigid-body-object-method-37 dig-sinking-plat ((obj dig-sinking-plat)) - (with-pp - (when (not (logtest? (-> obj path flags) (path-control-flag not-found))) - (set! (-> obj prev-pos) (-> obj path-pos)) - (set! (-> obj path-pos) (get-norm! (-> obj sync) 0)) - (when (< (-> obj path-pos) (-> obj prev-pos)) - (let ((a0-2 (-> obj skel root-channel 0))) - (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) - (set! (-> a0-2 param 0) - (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) frames num-frames) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-seek!) - ) - (let ((a0-3 (-> obj skel root-channel 0))) - (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1))) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) - ) - ) - (let ((f30-0 (/ 300.0 (the float (-> obj sync period))))) - (let* ((f0-12 (/ 1.0 (- 1.0 (* 2.0 f30-0)))) - (f0-13 (* (fmax 0.0 (- (-> obj path-pos) f30-0)) f0-12)) - ) - (get-point-at-percent-along-path! (-> obj path) (-> obj anchor-point) f0-13 'interp) - ) - (cond - ((< (-> obj path-pos) f30-0) - (set! (-> obj float-height-offset) (* -8192.0 (/ (- f30-0 (-> obj path-pos)) f30-0))) - ) - ((< (- 1.0 (* 2.0 f30-0)) (-> obj path-pos)) - (cond - ((< (- 1.0 f30-0) (-> obj path-pos)) - (set! (-> obj float-height-offset) (* -8192.0 (/ (- (-> obj path-pos) (- 1.0 f30-0)) f30-0))) - (let ((a0-5 (-> obj skel root-channel 0))) - (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group frames num-frames) -1))) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) - ) + (when (not (logtest? (-> obj path flags) (path-control-flag not-found))) + (set! (-> obj prev-pos) (-> obj path-pos)) + (set! (-> obj path-pos) (get-norm! (-> obj sync) 0)) + (when (< (-> obj path-pos) (-> obj prev-pos)) + (let ((a0-2 (-> obj skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) frames num-frames) -1)) ) - (else - (when (-> obj once) - (let ((a0-6 (-> obj skel root-channel 0))) - (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3))) - (set! (-> a0-6 param 0) - (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1)) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-seek!) - ) - (set! (-> obj once) #f) - ) - (let ((a0-7 (-> obj skel root-channel 0))) - (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group frames num-frames) -1))) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-seek!) + ) + (let ((a0-3 (-> obj skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((f30-0 (/ 300.0 (the float (-> obj sync period))))) + (let* ((f0-12 (/ 1.0 (- 1.0 (* 2.0 f30-0)))) + (f0-13 (* (fmax 0.0 (- (-> obj path-pos) f30-0)) f0-12)) + ) + (get-point-at-percent-along-path! (-> obj path) (-> obj anchor-point) f0-13 'interp) + ) + (cond + ((< (-> obj path-pos) f30-0) + (set! (-> obj float-height-offset) (* -8192.0 (/ (- f30-0 (-> obj path-pos)) f30-0))) + ) + ((< (- 1.0 (* 2.0 f30-0)) (-> obj path-pos)) + (cond + ((< (- 1.0 f30-0) (-> obj path-pos)) + (set! (-> obj float-height-offset) (* -8192.0 (/ (- (-> obj path-pos) (- 1.0 f30-0)) f30-0))) + (let ((a0-5 (-> obj skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group frames num-frames) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (else + (when (-> obj once) + (let ((a0-6 (-> obj skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1)) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-seek!) ) + (set! (-> obj once) #f) + ) + (let ((a0-7 (-> obj skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group frames num-frames) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) ) ) ) - (else - (set! (-> obj float-height-offset) 0.0) - ) + ) + (else + (set! (-> obj float-height-offset) 0.0) ) ) ) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-ridden-time)) (seconds 0.5)) - (when (nonzero? (-> obj bubbling-sound-id)) - (let ((v1-84 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-84 command) (sound-command set-param)) - (set! (-> v1-84 id) (the-as sound-id (-> obj bubbling-sound-id))) - (set! (-> v1-84 params volume) -4) - (set! (-> v1-84 auto-time) 120) - (set! (-> v1-84 auto-from) 2) - (set! (-> v1-84 params mask) (the-as uint 17)) - (-> v1-84 id) - ) - (set! (-> obj bubbling-sound-id) (the-as uint 0)) - 0 - ) - ) - (else - (if (zero? (-> obj bubbling-sound-id)) - (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-sink"))) - ) - ) - ) - ((method-of-type rigid-body-platform rigid-body-object-method-37) obj) - (none) ) + (cond + ((>= (- (current-time) (-> obj last-ridden-time)) (seconds 0.5)) + (when (nonzero? (-> obj bubbling-sound-id)) + (let ((v1-84 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-84 command) (sound-command set-param)) + (set! (-> v1-84 id) (the-as sound-id (-> obj bubbling-sound-id))) + (set! (-> v1-84 params volume) -4) + (set! (-> v1-84 auto-time) 120) + (set! (-> v1-84 auto-from) 2) + (set! (-> v1-84 params mask) (the-as uint 17)) + (-> v1-84 id) + ) + (set! (-> obj bubbling-sound-id) (the-as uint 0)) + 0 + ) + ) + (else + (if (zero? (-> obj bubbling-sound-id)) + (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-sink"))) + ) + ) + ) + ((method-of-type rigid-body-platform rigid-body-object-method-37) obj) + (none) ) (defmethod rigid-body-platform-method-56 dig-sinking-plat ((obj dig-sinking-plat) (arg0 vector)) @@ -237,7 +235,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self last-ridden-time) (-> self clock frame-counter)) + (set! (-> self last-ridden-time) (current-time)) ) ) (the-as object (rigid-body-object-event-handler proc arg1 event-type event)) @@ -567,8 +565,8 @@ ) (s5-0 (add-process *gui-control* self (gui-channel jak) (gui-action queue) t0-0 -99.0 0)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.15)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.15)) (suspend) ) (until v1-12 @@ -578,8 +576,8 @@ (while (!= (get-status *gui-control* s5-0) (gui-status ready)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (set-setting! 'entity-name "camera-249" 0.0 0) @@ -594,20 +592,20 @@ (the-as process #f) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((f30-0 (+ (-> (&-> *dig-log-heights* 0 data (- (-> self total-buttons) (-> self pressed-count))) 0) (-> self base-y)) ) - (s5-1 (-> self clock frame-counter)) + (s5-1 (current-time)) ) (until (>= (-> self root trans y) f30-0) (set! (-> self root trans y) (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (-> self clock seconds-per-frame)) 0.25 40.96) ) - (when (>= (-> self clock frame-counter) s5-1) + (when (>= (current-time) s5-1) (activate! *camera-smush-control* (rand-vu-float-range 614.4 1433.6) @@ -617,7 +615,7 @@ 0.95 (-> *display* camera-clock) ) - (set! s5-1 (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 0.05) (seconds 0.15)))) + (set! s5-1 (+ (current-time) (rand-vu-int-range (seconds 0.05) (seconds 0.15)))) ) (let ((a1-10 (new 'stack-no-clear 'vector))) (set! (-> a1-10 quad) (-> self root trans quad)) @@ -627,8 +625,8 @@ (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (if (= (-> gp-0 cam-ret-mode) 'instant) @@ -637,22 +635,22 @@ (set-setting! 'string-startup-vector 'abs (-> gp-0 cam-ret-dir) 0) (remove-setting! 'entity-name) (when (!= (-> gp-0 cam-ret-mode) 'instant) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (suspend) ) (remove-setting! 'string-startup-vector) (until (process-release? *target*) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 4)) (suspend) ) (go-virtual idle) diff --git a/goal_src/jak2/levels/dig/dig1-obs.gc b/goal_src/jak2/levels/dig/dig1-obs.gc index d44663b41a..21c74347b4 100644 --- a/goal_src/jak2/levels/dig/dig1-obs.gc +++ b/goal_src/jak2/levels/dig/dig1-obs.gc @@ -444,8 +444,8 @@ ) :code (behavior () (let ((f30-0 (rand-vu-float-range 0.22 0.27))) - (set! (-> self wait-time) (+ (-> self clock frame-counter) (the int (rand-vu-float-range 0.0 450.0)))) - (while (< (-> self clock frame-counter) (-> self wait-time)) + (set! (-> self wait-time) (+ (current-time) (the int (rand-vu-float-range 0.0 450.0)))) + (while (< (current-time) (-> self wait-time)) (suspend) ) (ja-no-eval :group! (-> self draw art-group data 3) @@ -463,8 +463,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -483,8 +483,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -504,8 +504,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.5)) (suspend) ) ) @@ -524,8 +524,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) @@ -544,8 +544,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 0.125)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 0.125)) (suspend) ) ) @@ -565,8 +565,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 0.05)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.05)) (suspend) ) ) @@ -952,8 +952,8 @@ ) ) (suspend) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) diff --git a/goal_src/jak2/levels/dig/dig3-obs.gc b/goal_src/jak2/levels/dig/dig3-obs.gc index 614edc980c..d96f2962b0 100644 --- a/goal_src/jak2/levels/dig/dig3-obs.gc +++ b/goal_src/jak2/levels/dig/dig3-obs.gc @@ -265,38 +265,38 @@ :virtual #t :trans (the-as (function none :behavior dig-spikey-step) rider-trans) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the int (-> self cycle-offset))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the int (-> self cycle-offset))) (suspend) ) ) (until #f - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the int (-> self cycle-time))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the int (-> self cycle-time))) (suspend) ) ) (activate! (-> self smush) -1.0 60 225 1.0 1.0 (-> self clock)) (sound-play "spikey-shake" :position (-> self root trans)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (set! (-> self shudder-angle) (* 364.0889 (update! (-> self smush)))) (suspend) ) ) (set! (-> self shudder-angle) 0.0) (set-zero! (-> self smush)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) (sound-play "spikey-turn" :position (-> self root trans)) (let* ((f0-7 1.0) (f30-1 (* 65536.0 f0-7)) - (gp-6 (-> self clock frame-counter)) + (gp-6 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 1)) + (until (>= (- (current-time) gp-6) (seconds 1)) (set! (-> self rot-angle) (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) ) @@ -449,8 +449,8 @@ This commonly includes things such as: ) (sound-play "spikey-break") (suspend) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) @@ -609,9 +609,9 @@ This commonly includes things such as: ) ) (the-as sound-id (when (and (logtest? s5-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (let ((v0-7 (-> self clock frame-counter))) + (let ((v0-7 (current-time))) (set! (-> obj played-bounce-time) v0-7) v0-7 ) @@ -698,8 +698,8 @@ This commonly includes things such as: :virtual #t :code (behavior () (sound-play "spikey-door") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.1)) (suspend) ) ) @@ -1377,34 +1377,32 @@ This commonly includes things such as: ) (defmethod rigid-body-object-method-37 dig-tipping-rock ((obj dig-tipping-rock)) - (with-pp - (let ((t9-0 (method-of-type rigid-body-platform rigid-body-object-method-37))) - (t9-0 obj) - ) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-ridden-time)) (seconds 0.5)) - (when (nonzero? (-> obj bubbling-sound-id)) - (let ((v1-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-5 command) (sound-command set-param)) - (set! (-> v1-5 id) (the-as sound-id (-> obj bubbling-sound-id))) - (set! (-> v1-5 params volume) -4) - (set! (-> v1-5 auto-time) 120) - (set! (-> v1-5 auto-from) 2) - (set! (-> v1-5 params mask) (the-as uint 17)) - (-> v1-5 id) - ) - (set! (-> obj bubbling-sound-id) (the-as uint 0)) - 0 - ) - ) - (else - (if (zero? (-> obj bubbling-sound-id)) - (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-tip"))) - ) - ) - ) - (none) + (let ((t9-0 (method-of-type rigid-body-platform rigid-body-object-method-37))) + (t9-0 obj) ) + (cond + ((>= (- (current-time) (-> obj last-ridden-time)) (seconds 0.5)) + (when (nonzero? (-> obj bubbling-sound-id)) + (let ((v1-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-5 command) (sound-command set-param)) + (set! (-> v1-5 id) (the-as sound-id (-> obj bubbling-sound-id))) + (set! (-> v1-5 params volume) -4) + (set! (-> v1-5 auto-time) 120) + (set! (-> v1-5 auto-from) 2) + (set! (-> v1-5 params mask) (the-as uint 17)) + (-> v1-5 id) + ) + (set! (-> obj bubbling-sound-id) (the-as uint 0)) + 0 + ) + ) + (else + (if (zero? (-> obj bubbling-sound-id)) + (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-tip"))) + ) + ) + ) + (none) ) (defstate idle (dig-tipping-rock) @@ -1412,7 +1410,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self last-ridden-time) (-> self clock frame-counter)) + (set! (-> self last-ridden-time) (current-time)) ) ) (the-as object (rigid-body-object-event-handler proc arg1 event-type event)) diff --git a/goal_src/jak2/levels/drill_platform/drill-baron.gc b/goal_src/jak2/levels/drill_platform/drill-baron.gc index 34d109247b..b6748e2b61 100644 --- a/goal_src/jak2/levels/drill_platform/drill-baron.gc +++ b/goal_src/jak2/levels/drill_platform/drill-baron.gc @@ -1256,9 +1256,7 @@ This commonly includes things such as: ) ) (set! (-> self root-override trans y) - (+ (-> self current-y-position) - (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (-> self clock frame-counter))))))) - ) + (+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time)))))))) ) (drill-barons-ship-method-22 self) (transform-post) @@ -1379,9 +1377,7 @@ This commonly includes things such as: ) ) (set! (-> self root-override trans y) - (+ (-> self current-y-position) - (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (-> self clock frame-counter))))))) - ) + (+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time)))))))) ) (drill-barons-ship-method-22 self) (+! (-> self x-offset-angle) (* 0.7 (-> self clock time-adjust-ratio))) @@ -1395,9 +1391,9 @@ This commonly includes things such as: (quaternion-rotate-local-x! (-> obj root-override quat) (-> obj init-quat) - (* 182.04445 (sin (* 36.40889 (the float (-> pp clock frame-counter))))) + (* 182.04445 (sin (* 36.40889 (the float (current-time))))) ) - (let ((f30-2 (* 182.04445 (* 5.0 (sin (* 45.511112 (the float (-> pp clock frame-counter)))))))) + (let ((f30-2 (* 182.04445 (* 5.0 (sin (* 45.511112 (the float (current-time)))))))) (when (!= (-> obj rock-angle) 0.0) (+! f30-2 (* 182.04445 (* 20.0 (if (= (-> obj pass) 1) @@ -1421,10 +1417,10 @@ This commonly includes things such as: (quaternion-rotate-local-z! (-> obj root-override quat) (-> obj root-override quat) f30-2) ) (set! (-> obj root-override trans z) - (+ (* 4096.0 (* 30.0 (cos (* 45.511112 (the float (-> pp clock frame-counter)))))) (if (= (-> obj pass) 1) - -1433600.0 - -1433600.0 - ) + (+ (* 4096.0 (* 30.0 (cos (* 45.511112 (the float (current-time)))))) (if (= (-> obj pass) 1) + -1433600.0 + -1433600.0 + ) ) ) (if *target* @@ -1445,59 +1441,57 @@ This commonly includes things such as: ) (defmethod drill-barons-ship-turret-method-24 drill-barons-ship-turret ((obj drill-barons-ship-turret)) - (with-pp - (vector<-cspace! - (-> obj root-override trans) - (-> (the-as drill-barons-ship (-> obj parent 0)) node-list data (-> obj info joint-idx)) - ) - (let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> obj info init-y-angle)))) - (quaternion*! - (-> obj root-override quat) - (-> (the-as drill-barons-ship (-> obj parent 0)) root-override quat) - a2-1 - ) - ) - (when (-> obj jmod) - (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (target-pos 0) (-> obj root-override trans))) - (s3-0 (quaternion->matrix (new-stack-matrix0) (-> obj root-override quat))) - ) - (vector-normalize! s5-1 1.0) - (let* ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 1) 1.0)) - (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 2) 1.0)) - (a0-13 (vector-normalize! (vector-flatten! (new 'stack-no-clear 'vector) s5-1 s4-0) 1.0)) - (f30-0 (vector-y-angle a0-13)) - (f0-1 (vector-y-angle s3-1)) - (f0-5 (fmax - (fmin (+ (deg-diff f0-1 f30-0) (* 182.04445 (-> obj error-y-angle))) (-> obj info twist-y-max)) - (- (-> obj info twist-y-max)) - ) - ) - ) - (quaternion-axis-angle! (the-as quaternion (-> obj jmod twist)) 0.0 1.0 0.0 f0-5) - ) - ) - (if (-> obj jmod-left) - (quaternion-axis-angle! - (the-as quaternion (-> obj jmod-left twist)) - 0.0 - 0.0 - 1.0 - (* 182.04445 (* -3.0 (the float (-> pp clock frame-counter)))) - ) - ) - (if (-> obj jmod-right) - (quaternion-axis-angle! - (the-as quaternion (-> obj jmod-right twist)) - 0.0 - 0.0 - 1.0 - (* 182.04445 (* 3.0 (the float (-> pp clock frame-counter)))) - ) - ) - ) - 0 - (none) + (vector<-cspace! + (-> obj root-override trans) + (-> (the-as drill-barons-ship (-> obj parent 0)) node-list data (-> obj info joint-idx)) ) + (let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> obj info init-y-angle)))) + (quaternion*! + (-> obj root-override quat) + (-> (the-as drill-barons-ship (-> obj parent 0)) root-override quat) + a2-1 + ) + ) + (when (-> obj jmod) + (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (target-pos 0) (-> obj root-override trans))) + (s3-0 (quaternion->matrix (new-stack-matrix0) (-> obj root-override quat))) + ) + (vector-normalize! s5-1 1.0) + (let* ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 1) 1.0)) + (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 2) 1.0)) + (a0-13 (vector-normalize! (vector-flatten! (new 'stack-no-clear 'vector) s5-1 s4-0) 1.0)) + (f30-0 (vector-y-angle a0-13)) + (f0-1 (vector-y-angle s3-1)) + (f0-5 (fmax + (fmin (+ (deg-diff f0-1 f30-0) (* 182.04445 (-> obj error-y-angle))) (-> obj info twist-y-max)) + (- (-> obj info twist-y-max)) + ) + ) + ) + (quaternion-axis-angle! (the-as quaternion (-> obj jmod twist)) 0.0 1.0 0.0 f0-5) + ) + ) + (if (-> obj jmod-left) + (quaternion-axis-angle! + (the-as quaternion (-> obj jmod-left twist)) + 0.0 + 0.0 + 1.0 + (* 182.04445 (* -3.0 (the float (current-time)))) + ) + ) + (if (-> obj jmod-right) + (quaternion-axis-angle! + (the-as quaternion (-> obj jmod-right twist)) + 0.0 + 0.0 + 1.0 + (* 182.04445 (* 3.0 (the float (current-time)))) + ) + ) + ) + 0 + (none) ) (defstate dead (drill-barons-ship-turret) @@ -1508,7 +1502,7 @@ This commonly includes things such as: (set! (-> v1-1 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -1776,7 +1770,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self shot-timer) (-> self clock frame-counter)) + (set! (-> self shot-timer) (current-time)) (set! (-> self shot-counter) 0) (set! (-> self error-y-angle) (if (< 25.0 (rand-vu-float-range 0.0 50.0)) -15.0 @@ -1901,7 +1895,7 @@ This commonly includes things such as: ) (go-virtual idle) ) - (when (and (= (-> self anim-frame) 1.0) (>= (- (-> self clock frame-counter) (-> self shot-timer)) (seconds 0.2))) + (when (and (= (-> self anim-frame) 1.0) (>= (- (current-time) (-> self shot-timer)) (seconds 0.2))) (let ((gp-0 (new 'stack-no-clear 'projectile-init-by-other-params))) (cond ((-> self jmod) @@ -1988,7 +1982,7 @@ This commonly includes things such as: ) (sound-play "ship-gun1-fire") (+! (-> self shot-counter) 1) - (set! (-> self shot-timer) (-> self clock frame-counter)) + (set! (-> self shot-timer) (current-time)) (seek! (-> self error-y-angle) (-> self error-y-angle-dest) (-> self clock time-adjust-ratio)) (if (= (-> self error-y-angle) (-> self error-y-angle-dest)) (set! (-> self info next-to-shoot) #f) diff --git a/goal_src/jak2/levels/drill_platform/drill-mech-master.gc b/goal_src/jak2/levels/drill_platform/drill-mech-master.gc index 1b996b5af4..21fbeff51f 100644 --- a/goal_src/jak2/levels/drill_platform/drill-mech-master.gc +++ b/goal_src/jak2/levels/drill_platform/drill-mech-master.gc @@ -116,7 +116,7 @@ (set! (-> *game-info* counter) (the float (-> self cpanel-count))) (spawn-hud-panel self #t) (when (= (-> self cpanel-count) 9) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self next-warn-time) (+ (current-time) (seconds 3))) (task-node-close! (game-task-node drill-mech-started-smashing)) ) (if (and (zero? (-> self cpanel-count)) (-> self next-state) (= (-> self next-state name) 'idle)) @@ -146,11 +146,8 @@ :virtual #t :event drill-mech-master-event-handler :trans (behavior () - (when (and (< (-> self cpanel-count) 10) - (< 1 (-> self cpanel-count)) - (>= (-> self clock frame-counter) (-> self next-warn-time)) - ) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 10))) + (when (and (< (-> self cpanel-count) 10) (< 1 (-> self cpanel-count)) (>= (current-time) (-> self next-warn-time))) + (set! (-> self next-warn-time) (+ (current-time) (seconds 10))) (talker-spawn-func (-> *talker-speech* 182) *entity-pool* (target-pos 0) (the-as region #f)) ) (none) @@ -162,16 +159,16 @@ :virtual #t :event drill-mech-master-event-handler :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (task-node-close! (game-task-node drill-mech-smash-consoles)) (set! (-> self alarm-sound-id) (sound-play "drill-alarm")) (persist-with-delay *setting-control* 'ignore-target (seconds 8) 'ignore-target #t 0.0 0) (set-setting! 'music 'danger10 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (talker-spawn-func (-> *talker-speech* 183) *entity-pool* (target-pos 0) (the-as region #f)) @@ -190,10 +187,10 @@ :virtual #t :event drill-mech-master-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-continue! *game-info* "drill-escape" #f) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 1))) - (set! (-> self started-timer-time) (-> self clock frame-counter)) + (set! (-> self next-warn-time) (+ (current-time) (seconds 1))) + (set! (-> self started-timer-time) (current-time)) (set! (-> self exited?) #f) (none) ) @@ -201,10 +198,7 @@ (if (and (-> self exited?) (process-grab? *target* #f)) (go-virtual victory) ) - (let ((gp-0 - (the-as int (- (-> self total-countdown-time) (- (-> self clock frame-counter) (-> self started-timer-time)))) - ) - ) + (let ((gp-0 (the-as int (- (-> self total-countdown-time) (- (current-time) (-> self started-timer-time)))))) (if (< (the-as time-frame gp-0) 0) (set! gp-0 0) ) @@ -217,8 +211,8 @@ (if (zero? gp-0) (go-virtual failed) ) - (when (>= (-> self clock frame-counter) (-> self next-warn-time)) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 25))) + (when (>= (current-time) (-> self next-warn-time)) + (set! (-> self next-warn-time) (+ (current-time) (seconds 25))) (cond ((>= 9000 gp-0) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv029" -99.0 0) @@ -245,7 +239,7 @@ :virtual #t :event drill-mech-master-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-setting! 'allow-pause #f 0.0 0) (set-setting! 'allow-progress #f 0.0 0) (none) @@ -258,7 +252,7 @@ ) :trans (behavior () (when (and (not (-> self killed-jak?)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.225)) + (>= (- (current-time) (-> self state-time)) (seconds 0.225)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) (set! (-> a1-0 num-params) 2) @@ -310,8 +304,8 @@ (set! (-> s4-0 trans w) 1.0) (spawn-with-matrix (-> self part-doom) s4-0) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (when (and (not gp-1) (>= 2 s5-1) (= (get-status *gui-control* (-> self explosion-sound-id)) (gui-status ready))) (set! gp-1 #t) (set-action! diff --git a/goal_src/jak2/levels/drill_platform/drill-obs.gc b/goal_src/jak2/levels/drill_platform/drill-obs.gc index 2837cdc283..225eb37d3c 100644 --- a/goal_src/jak2/levels/drill_platform/drill-obs.gc +++ b/goal_src/jak2/levels/drill_platform/drill-obs.gc @@ -106,7 +106,7 @@ and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 24 120 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (logclear! (-> obj mask) (process-mask sleep)) (logclear! (-> obj mask) (process-mask sleep-code)) @@ -158,7 +158,7 @@ and translate the platform via the `smush` (defstate falling (drill-plat-falling) :virtual #t :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.4)) (logclear! (-> self root-override root-prim prim-core action) (collide-action rideable)) ) (drill-plat-falling-trans) @@ -689,7 +689,7 @@ For example for an elevator pre-compute the distance between the first and last ) (when gp-0 (when (or (focus-test? (the-as process-focusable gp-0) mech) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -733,7 +733,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> a1-10 param 1) (the-as uint v1-32)) ) (when (send-event-function gp-0 a1-10) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self no-collision-timer) v0-0) v0-0 ) @@ -1074,21 +1074,19 @@ This commonly includes things such as: (defmethod set-switch-color drill-switch ((obj drill-switch) (arg0 symbol)) "Set the switch color based on its state." - (with-pp - (when (or arg0 (not (logtest? (-> pp clock frame-counter) 64))) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (vector<-cspace+vector! s4-0 (-> obj node-list data 4) (new 'static 'vector :y 6963.2 :w 1.0)) - (spawn - (if arg0 - (-> obj green-part) - (-> obj part) - ) - s4-0 - ) + (when (or arg0 (not (logtest? (current-time) 64))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (vector<-cspace+vector! s4-0 (-> obj node-list data 4) (new 'static 'vector :y 6963.2 :w 1.0)) + (spawn + (if arg0 + (-> obj green-part) + (-> obj part) + ) + s4-0 ) ) - (none) ) + (none) ) (defmethod basebutton-method-34 drill-switch ((obj drill-switch)) @@ -1242,7 +1240,7 @@ This commonly includes things such as: (sleep-code) ) (else - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) + (until (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) (suspend) ) (send-event! self (-> self event-going-up)) @@ -1441,11 +1439,11 @@ This commonly includes things such as: (defstate drill-laser-idle (drill-laser) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (let* ((f0-2 (+ (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let* ((f0-2 (+ (* 0.0033333334 (the float (- (current-time) (-> self state-time)))) (* (-> self offset) (+ (-> self speed) (-> self pause))) ) ) diff --git a/goal_src/jak2/levels/drill_platform/drill-obs2.gc b/goal_src/jak2/levels/drill_platform/drill-obs2.gc index 73e39df48f..330e5bba19 100644 --- a/goal_src/jak2/levels/drill_platform/drill-obs2.gc +++ b/goal_src/jak2/levels/drill_platform/drill-obs2.gc @@ -858,8 +858,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -1396,9 +1396,9 @@ This commonly includes things such as: ) (if (-> self ridden?) (set! (-> self ridden?) #f) - (set! (-> self not-ridden-timer) (-> self clock frame-counter)) + (set! (-> self not-ridden-timer) (current-time)) ) - (if (>= (- (-> self clock frame-counter) (-> self not-ridden-timer)) (seconds 0.4)) + (if (>= (- (current-time) (-> self not-ridden-timer)) (seconds 0.4)) (go-virtual swing-down) ) (none) @@ -1421,7 +1421,7 @@ This commonly includes things such as: (t9-0) ) ) - (if (>= (- (-> self clock frame-counter) (-> self not-ridden-timer)) (seconds 2)) + (if (>= (- (current-time) (-> self not-ridden-timer)) (seconds 2)) (send-event self 'trigger) ) (none) @@ -1434,12 +1434,10 @@ This commonly includes things such as: (defmethod set-flipped-state drill-drop-plat ((obj drill-drop-plat)) "Set the state of the platform." - (with-pp - (set! (-> obj not-ridden-timer) (-> pp clock frame-counter)) - (go (method-of-object obj up)) - 0 - (none) - ) + (set! (-> obj not-ridden-timer) (current-time)) + (go (method-of-object obj up)) + 0 + (none) ) (defmethod init-plat-collision! drill-drop-plat ((obj drill-drop-plat)) diff --git a/goal_src/jak2/levels/drill_platform/drill-panel.gc b/goal_src/jak2/levels/drill_platform/drill-panel.gc index ebee9c32f0..e0be39875f 100644 --- a/goal_src/jak2/levels/drill_platform/drill-panel.gc +++ b/goal_src/jak2/levels/drill_platform/drill-panel.gc @@ -514,97 +514,91 @@ (defmethod spawn-shock-part drill-control-panel ((obj drill-control-panel)) "Spawn shock particles." - (with-pp - (let ((v1-0 (-> obj id))) - (cond - ((or (zero? v1-0) (= v1-0 1)) - (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -4.0 4.0))) - (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -2.0 2.0))) - (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range 1.0 3.0))) - (when (= (-> obj id) 1) - (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) 8192.0) - (when (>= (-> pp clock frame-counter) (-> obj next-warn-time)) - (set! (-> obj next-warn-time) - (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 1.0 2.0)))) - ) - (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) -4096.0) - (set! (-> *part-id-table* 1851 init-specs 24 initial-valuef) (* 182.04445 (rand-vu-float-range -45.0 45.0))) - (set! (-> *part-id-table* 1851 init-specs 25 initial-valuef) (* 182.04445 (rand-vu-float-range 0.0 45.0))) - (set! (-> *part-id-table* 1851 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -3.0 3.0))) - (set! (-> *part-id-table* 1851 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - ) + (let ((v1-0 (-> obj id))) + (cond + ((or (zero? v1-0) (= v1-0 1)) + (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -4.0 4.0))) + (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -2.0 2.0))) + (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range 1.0 3.0))) + (when (= (-> obj id) 1) + (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) 8192.0) + (when (>= (current-time) (-> obj next-warn-time)) + (set! (-> obj next-warn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 1.0 2.0))))) + (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) -4096.0) + (set! (-> *part-id-table* 1851 init-specs 24 initial-valuef) (* 182.04445 (rand-vu-float-range -45.0 45.0))) + (set! (-> *part-id-table* 1851 init-specs 25 initial-valuef) (* 182.04445 (rand-vu-float-range 0.0 45.0))) + (set! (-> *part-id-table* 1851 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -3.0 3.0))) + (set! (-> *part-id-table* 1851 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) ) - (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 18)) ) - (else - (case (-> obj id) - ((3 5 7 8) - (if (zero? (rand-vu-int-count 2)) - (process-drawable-shock-effect - obj - (new 'static 'lightning-spec - :name #f - :flags (lightning-spec-flags lsf0) - :start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - :end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - :fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5) - :fade-start-factor 0.2 - :texture (new 'static 'texture-id :index #x83 :page #xc) - :reduction 0.42 - :num-points 16 - :box-size 16384.0 - :merge-factor 0.5 - :merge-count 2 - :radius 2048.0 - :duration 30.0 - :sound (static-sound-spec "shock" :volume 50.0) - ) - lightning-probe-callback - (-> *part-id-table* 166) - 12 - 0 - 12288.0 + (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 18)) + ) + (else + (case (-> obj id) + ((3 5 7 8) + (if (zero? (rand-vu-int-count 2)) + (process-drawable-shock-effect + obj + (new 'static 'lightning-spec + :name #f + :flags (lightning-spec-flags lsf0) + :start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + :end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + :fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5) + :fade-start-factor 0.2 + :texture (new 'static 'texture-id :index #x83 :page #xc) + :reduction 0.42 + :num-points 16 + :box-size 16384.0 + :merge-factor 0.5 + :merge-count 2 + :radius 2048.0 + :duration 30.0 + :sound (static-sound-spec "shock" :volume 50.0) ) + lightning-probe-callback + (-> *part-id-table* 166) + 12 + 0 + 12288.0 ) - ) - (else - 0 - ) + ) + ) + (else + 0 ) - (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -0.5 3.0))) - (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 -1.25))) - (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) -6144.0) - (when (>= (-> pp clock frame-counter) (-> obj next-warn-time)) - (set! (-> obj next-warn-time) - (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 1.5 3.0)))) - ) - (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) 4096.0) - (set! (-> *part-id-table* 1879 init-specs 23 initial-valuef) (* 182.04445 (rand-vu-float-range -30.0 30.0))) - (set! (-> *part-id-table* 1879 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.5 1.5))) - (set! (-> *part-id-table* 1879 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - ) - (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 12)) ) + (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) + (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -0.5 3.0))) + (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 -1.25))) + (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) -6144.0) + (when (>= (current-time) (-> obj next-warn-time)) + (set! (-> obj next-warn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 1.5 3.0))))) + (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) 4096.0) + (set! (-> *part-id-table* 1879 init-specs 23 initial-valuef) (* 182.04445 (rand-vu-float-range -30.0 30.0))) + (set! (-> *part-id-table* 1879 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.5 1.5))) + (set! (-> *part-id-table* 1879 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) + ) + (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 12)) ) ) - (none) ) + (none) ) (defstate hit (drill-control-panel) :virtual #t :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self next-warn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self next-warn-time) (current-time)) (process-entity-status! self (entity-perm-status bit-12) #t) (set! (-> self draw force-lod) 0) (logior! (-> self focus-status) (focus-status disable dead ignore)) @@ -615,7 +609,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (spawn-shock-part self) ) (none) diff --git a/goal_src/jak2/levels/drill_platform/ginsu.gc b/goal_src/jak2/levels/drill_platform/ginsu.gc index 57dece0310..baacceb898 100644 --- a/goal_src/jak2/levels/drill_platform/ginsu.gc +++ b/goal_src/jak2/levels/drill_platform/ginsu.gc @@ -359,61 +359,59 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (ginsu-method-180 obj) - (let ((t9-1 (method-of-type nav-enemy track-target!))) - (t9-1 obj) - ) - (cond - ((not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) - (or (= v1-6 'idle) - (= v1-6 'active) - (= v1-6 'dormant) - (= v1-6 'ambush) - (= v1-6 'knocked) - (= v1-6 'idle) - (= v1-6 'dormant) - (= v1-6 'die) - (= v1-6 'die-falling) - ) - ) - ) - ) - (sound-play "ginsu-loop" :id (the-as sound-id (-> obj blade-sound)) :position (-> obj root-override2 trans)) - (set! (-> obj blade-sound-playing) #t) - ) - ((-> obj blade-sound-playing) - (sound-stop (the-as sound-id (-> obj blade-sound))) - (set! (-> obj blade-sound-playing) #f) - ) - ) - (cond - ((and (not (and (-> obj next-state) (let ((v1-17 (-> obj next-state name))) - (or (= v1-17 'idle) - (= v1-17 'active) - (= v1-17 'dormant) - (= v1-17 'ambush) - (= v1-17 'knocked) - (= v1-17 'idle) - (= v1-17 'dormant) - (= v1-17 'die) - (= v1-17 'die-falling) - ) - ) - ) - ) - (< (- (-> pp clock frame-counter) (-> obj grind-timer)) 0) - ) - (sound-play "ginsu-grind" :id (the-as sound-id (-> obj grind-sound)) :position (-> obj root-override2 trans)) - (set! (-> obj grind-sound-playing) #t) - ) - ((-> obj grind-sound-playing) - (sound-stop (the-as sound-id (-> obj grind-sound))) - (set! (-> obj grind-sound-playing) #f) - ) - ) - (none) + (ginsu-method-180 obj) + (let ((t9-1 (method-of-type nav-enemy track-target!))) + (t9-1 obj) ) + (cond + ((not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) + (or (= v1-6 'idle) + (= v1-6 'active) + (= v1-6 'dormant) + (= v1-6 'ambush) + (= v1-6 'knocked) + (= v1-6 'idle) + (= v1-6 'dormant) + (= v1-6 'die) + (= v1-6 'die-falling) + ) + ) + ) + ) + (sound-play "ginsu-loop" :id (the-as sound-id (-> obj blade-sound)) :position (-> obj root-override2 trans)) + (set! (-> obj blade-sound-playing) #t) + ) + ((-> obj blade-sound-playing) + (sound-stop (the-as sound-id (-> obj blade-sound))) + (set! (-> obj blade-sound-playing) #f) + ) + ) + (cond + ((and (not (and (-> obj next-state) (let ((v1-17 (-> obj next-state name))) + (or (= v1-17 'idle) + (= v1-17 'active) + (= v1-17 'dormant) + (= v1-17 'ambush) + (= v1-17 'knocked) + (= v1-17 'idle) + (= v1-17 'dormant) + (= v1-17 'die) + (= v1-17 'die-falling) + ) + ) + ) + ) + (< (- (current-time) (-> obj grind-timer)) 0) + ) + (sound-play "ginsu-grind" :id (the-as sound-id (-> obj grind-sound)) :position (-> obj root-override2 trans)) + (set! (-> obj grind-sound-playing) #t) + ) + ((-> obj grind-sound-playing) + (sound-stop (the-as sound-id (-> obj grind-sound))) + (set! (-> obj grind-sound-playing) #f) + ) + ) + (none) ) (defmethod ginsu-method-182 ginsu ((obj ginsu)) @@ -540,7 +538,7 @@ (vector-float*! s5-1 s5-1 0.5) (spawn (-> obj part) s5-1) ) - (set! v0-1 (+ (-> pp clock frame-counter) (seconds 0.125))) + (set! v0-1 (+ (current-time) (seconds 0.125))) (set! (-> obj grind-timer) (the-as time-frame v0-1)) v0-1 ) @@ -621,8 +619,8 @@ (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) ) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) - (set! (-> self spiral-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) + (set! (-> self spiral-time) (current-time)) (set! (-> self desired-distance) (vector-length (ginsu-method-181 self (new 'stack-no-clear 'vector)))) (none) ) @@ -655,7 +653,7 @@ 0.0 (set! (-> s5-0 y) 0.0) (let* ((f0-3 (vector-normalize-ret-len! s5-0 1.0)) - (f1-1 (- 1.0 (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self spiral-time)))))) + (f1-1 (- 1.0 (* 0.0016666667 (the float (- (current-time) (-> self spiral-time)))))) (f2-3 (fmax 12288.0 (* 102400.0 f1-1))) (f0-4 (- f0-3 (fmin (fmax 12288.0 (* 122880.0 f1-1)) (fmax f2-3 (-> self desired-distance))))) (f30-0 (fmin 8192.0 (fmax -8192.0 f0-4))) @@ -695,7 +693,7 @@ (set! (-> v1-4 target-speed) 8192.0) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-push! 1 (seconds 0.2)) (ja :group! ginsu-idle-ja :num! min) (none) @@ -721,7 +719,7 @@ (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (go-virtual circling) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.75)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.75)) (go-virtual attack) ) (ja :num! (loop!)) @@ -769,7 +767,7 @@ (set! (-> v1-10 target-speed) 49152.0) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja :group! ginsu-attack-ja :num! min) (none) ) diff --git a/goal_src/jak2/levels/forest/forest-obs.gc b/goal_src/jak2/levels/forest/forest-obs.gc index cdbb20f3d8..1742f6b0a7 100644 --- a/goal_src/jak2/levels/forest/forest-obs.gc +++ b/goal_src/jak2/levels/forest/forest-obs.gc @@ -137,7 +137,7 @@ This commonly includes things such as: ) ) (when (and (nonzero? (-> self focus-disable-timer)) - (< (the-as time-frame (-> self focus-disable-timer)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self focus-disable-timer)) (current-time)) ) (logclear! (-> self focus-status) (focus-status disable)) (set! (-> self focus-disable-timer) (the-as uint 0)) @@ -271,7 +271,7 @@ This commonly includes things such as: (sound-play "samos-impact") (set! (-> self falling?) (the-as basic #t)) (logior! (-> self focus-status) (focus-status disable)) - (set! (-> self focus-disable-timer) (the-as uint (+ (-> self clock frame-counter) (seconds 3.5)))) + (set! (-> self focus-disable-timer) (the-as uint (+ (current-time) (seconds 3.5)))) (none) ) :code (behavior () @@ -384,8 +384,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -647,9 +647,9 @@ This commonly includes things such as: TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self start-time) (-> self clock frame-counter)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (set! (-> self start-time) (current-time)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) @@ -721,8 +721,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-0) (seconds 15)) + (let ((s3-0 (current-time))) + (until (>= (- (current-time) s3-0) (seconds 15)) (suspend) ) ) @@ -759,8 +759,8 @@ This commonly includes things such as: ) ) (dotimes (s3-1 3) - (let ((s2-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-0) (seconds 10)) + (let ((s2-0 (current-time))) + (until (>= (- (current-time) s2-0) (seconds 10)) (suspend) ) ) @@ -796,8 +796,8 @@ This commonly includes things such as: ) ) ) - (let ((s2-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-1) (seconds 10)) + (let ((s2-1 (current-time))) + (until (>= (- (current-time) s2-1) (seconds 10)) (suspend) ) ) @@ -834,8 +834,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-2) (seconds 10)) + (let ((s3-2 (current-time))) + (until (>= (- (current-time) s3-2) (seconds 10)) (suspend) ) ) @@ -871,8 +871,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-3) (seconds 10)) + (let ((s3-3 (current-time))) + (until (>= (- (current-time) s3-3) (seconds 10)) (suspend) ) ) @@ -885,8 +885,8 @@ This commonly includes things such as: (goto cfg-74) ) ) - (let ((s2-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-2) (seconds 1)) + (let ((s2-2 (current-time))) + (until (>= (- (current-time) s2-2) (seconds 1)) (suspend) ) ) @@ -964,23 +964,23 @@ This commonly includes things such as: ) ) ) - (let ((s3-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-5) (seconds 1)) + (let ((s3-5 (current-time))) + (until (>= (- (current-time) s3-5) (seconds 1)) (suspend) ) ) ) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.5)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.5)) (suspend) ) ) (set-setting! 'entity-name "camera-260" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (process-grab? *target* #f) - (let ((s4-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-2) (seconds 0.5)) + (let ((s4-2 (current-time))) + (until (>= (- (current-time) s4-2) (seconds 0.5)) (suspend) ) ) @@ -990,8 +990,8 @@ This commonly includes things such as: ) 'leave ) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.2)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.2)) (suspend) ) ) @@ -1002,16 +1002,16 @@ This commonly includes things such as: 'leave ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 3)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 3)) (suspend) ) ) (remove-setting! 'entity-name) (remove-setting! 'process-mask) (process-release? *target*) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 3)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 3)) (suspend) ) ) diff --git a/goal_src/jak2/levels/forest/lifeseed/protect.gc b/goal_src/jak2/levels/forest/lifeseed/protect.gc index cb6b02a5b8..1539acc1e5 100644 --- a/goal_src/jak2/levels/forest/lifeseed/protect.gc +++ b/goal_src/jak2/levels/forest/lifeseed/protect.gc @@ -437,9 +437,7 @@ This commonly includes things such as: (let ((f0-7 (vector-vector-xz-distance (target-pos 0) (-> s5-1 t-pos)))) (cond ((and (< f0-7 327680.0) (< 204800.0 f0-7)) - (when (and (not (handle->process (-> self slave gp-1))) - (< (the int (-> self data-float gp-1)) (-> self clock frame-counter)) - ) + (when (and (not (handle->process (-> self slave gp-1))) (< (the int (-> self data-float gp-1)) (current-time))) (let ((s4-2 (new 'stack-no-clear 'transport-params))) (let ((s3-2 (new 'stack-no-clear 'vector))) (set! (-> s3-2 quad) (-> s5-1 t-pos quad)) @@ -488,7 +486,7 @@ This commonly includes things such as: s5-4 ) ) - (set! (-> self data-float gp-1) (the float (+ (-> self clock frame-counter) (seconds 20)))) + (set! (-> self data-float gp-1) (the float (+ (current-time) (seconds 20)))) ) ) ) @@ -531,8 +529,8 @@ This commonly includes things such as: (lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'leave) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (talker-spawn-func (-> *talker-speech* 185) *entity-pool* (target-pos 0) (the-as region #f)) diff --git a/goal_src/jak2/levels/forest/pegasus.gc b/goal_src/jak2/levels/forest/pegasus.gc index 437d1279e7..e5a831c024 100644 --- a/goal_src/jak2/levels/forest/pegasus.gc +++ b/goal_src/jak2/levels/forest/pegasus.gc @@ -165,32 +165,30 @@ (defmethod track-how-long-aimed-at! pegasus ((obj pegasus)) "Updates `targetted-timer` with the `frame-counter` while Jak is aiming at the [[pegasus]]" - (with-pp - (let ((target *target*)) - (when (and target (-> target gun active?)) - (let ((inaccuracy-dir (new 'stack-no-clear 'vector)) - (inaccuracy-vec (new 'stack-no-clear 'vector)) + (let ((target *target*)) + (when (and target (-> target gun active?)) + (let ((inaccuracy-dir (new 'stack-no-clear 'vector)) + (inaccuracy-vec (new 'stack-no-clear 'vector)) + ) + (vector-! inaccuracy-dir (-> obj root-override2 trans) (-> target gun fire-point)) + (vector+float*! + inaccuracy-vec + (-> target gun fire-point) + (-> target gun fire-dir-out) + (vector-length inaccuracy-dir) + ) + (let ((inaccuracy-mag (vector-vector-distance-squared inaccuracy-vec (-> obj root-override2 trans))) + (threshold 20480.0) + ) + (if (< inaccuracy-mag (* threshold threshold)) + (set! (-> obj targetted-timer) (current-time)) ) - (vector-! inaccuracy-dir (-> obj root-override2 trans) (-> target gun fire-point)) - (vector+float*! - inaccuracy-vec - (-> target gun fire-point) - (-> target gun fire-dir-out) - (vector-length inaccuracy-dir) - ) - (let ((inaccuracy-mag (vector-vector-distance-squared inaccuracy-vec (-> obj root-override2 trans))) - (threshold 20480.0) - ) - (if (< inaccuracy-mag (* threshold threshold)) - (set! (-> obj targetted-timer) (-> pp clock frame-counter)) - ) - ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch int vs enemy-aware. @@ -198,52 +196,48 @@ "Checks a variety of criteria to determine the level of awareness the enemy is of the target. Sets `aware` and related fields as well! For pegasus, it will call [[enemy::57]] only if the [[pegasus]] has been targetted for more than 5 [[seconds]] @returns the value from [[enemy::57]], otherwise [[enemy-aware::4]]" - (with-pp - (the-as enemy-aware (if (>= (- (-> pp clock frame-counter) (-> obj targetted-timer)) (seconds 5)) - (the-as int ((method-of-type enemy update-target-awareness!) obj proc focus)) - 4 - ) - ) - ) + (the-as enemy-aware (if (>= (- (current-time) (-> obj targetted-timer)) (seconds 5)) + (the-as int ((method-of-type enemy update-target-awareness!) obj proc focus)) + 4 + ) + ) ) (defmethod general-event-handler pegasus ((obj pegasus) (proc process) (arg2 int) (event-type symbol) (event event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case event-type - (('track) - #f - ) - (('hit 'hit-knocked) - (cond - ((zero? (-> obj hit-points)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action proc) - (send-event proc 'get-attack-count 1) - (kill-prefer-falling obj) - ) - (else - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj targetted-timer) (the-as time-frame v0-0)) - v0-0 - ) + (case event-type + (('track) + #f + ) + (('hit 'hit-knocked) + (cond + ((zero? (-> obj hit-points)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action proc) + (send-event proc 'get-attack-count 1) + (kill-prefer-falling obj) + ) + (else + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj targetted-timer) (the-as time-frame v0-0)) + v0-0 ) ) ) - (else - ((method-of-type enemy general-event-handler) obj proc arg2 event-type event) - ) + ) + (else + ((method-of-type enemy general-event-handler) obj proc arg2 event-type event) ) ) ) @@ -253,20 +247,18 @@ For pegasus, it will call [[enemy::57]] only if the [[pegasus]] has been targett This is why the scouts are technically killable by other means @returns the amount of damage taken from an attack. Also updates the `targetted-timer`. @see [[*pegasus-enemy-info*]]" - (with-pp - (let ((hitpoints 1)) - (let ((attack-info (the-as attack-info (-> arg1 param 1)))) - (case (-> arg1 message) - (('attack) - (if (and (logtest? (-> attack-info mask) (attack-info-mask mode)) (= (-> attack-info mode) 'board)) - (set! hitpoints (-> obj hit-points)) - ) - ) - ) + (let ((hitpoints 1)) + (let ((attack-info (the-as attack-info (-> arg1 param 1)))) + (case (-> arg1 message) + (('attack) + (if (and (logtest? (-> attack-info mask) (attack-info-mask mode)) (= (-> attack-info mode) 'board)) + (set! hitpoints (-> obj hit-points)) + ) + ) ) - (set! (-> obj targetted-timer) (-> pp clock frame-counter)) - hitpoints ) + (set! (-> obj targetted-timer) (current-time)) + hitpoints ) ) @@ -541,7 +533,7 @@ There are many fail-safes here if something goes wrong to try to keep the pegasu @param explicit-y-vel Normally `0.0` but this value is used when the pegasus needs to switch direction @param adjust-y-offset? Normally [[#f]] which forces the movement to reflect the result of the collison query - the [[pegasus]] will stay close to the ground. [[#t]] ignores this" (+! (-> self curve-position) - (/ (the float (* (- (-> self clock frame-counter) (-> self clock old-frame-counter)) (the int (-> self speed)))) + (/ (the float (* (- (current-time) (-> self clock old-frame-counter)) (the int (-> self speed)))) (total-distance (-> self path-info (-> self current-path) path-data)) ) ) @@ -642,7 +634,7 @@ This function also is what causes the pegasus to flip around (interpolant (- 1.0 (fmax 0.0 (fmin 1.0 dist-from-target)))) (interpolated-speed (lerp min-speed max-speed interpolant)) ) - (if (< (- (-> self clock frame-counter) (-> self targetted-timer)) (seconds 5)) + (if (< (- (current-time) (-> self targetted-timer)) (seconds 5)) (set! interpolated-speed (fmax 163840.0 interpolated-speed)) ) (let ((movement-speed (* 0.0033333334 interpolated-speed))) @@ -807,7 +799,7 @@ The faster it's moving the fast it flaps it's wings, etc (defstate stare (pegasus) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((awareness (-> self focus aware))) (cond ((and (>= 1 (the-as int awareness)) @@ -854,10 +846,7 @@ The faster it's moving the fast it flaps it's wings, etc "Handles the flying animations and sounds @TODO - cleanup a bit more" (let ((anim-speed (pegasus-calc-anim-speed))) - (let ((gp-0 - (and (-> self can-run) (< (the-as time-frame (-> self ambient-possible)) (-> self clock frame-counter))) - ) - ) + (let ((gp-0 (and (-> self can-run) (< (the-as time-frame (-> self ambient-possible)) (current-time))))) (let* ((min-dist (lerp-scale 61440.0 32768.0 (the float arg0) 0.0 3000.0)) (min-speed (lerp-scale 122880.0 81920.0 (the float arg0) 0.0 3000.0)) (s4-0 (pegasus-calc-speed min-dist 122880.0 min-speed 49152.0)) @@ -930,7 +919,7 @@ The faster it's moving the fast it flaps it's wings, etc ((let ((v1-72 (ja-group))) (and v1-72 (= v1-72 pegasus-run-ja)) ) - (if (or (not (-> self can-run)) (< (the-as time-frame (-> self ambient-expire)) (-> self clock frame-counter))) + (if (or (not (-> self can-run)) (< (the-as time-frame (-> self ambient-expire)) (current-time))) (ja :group! pegasus-run-to-fly-ja) ) (ja :num-func num-func-identity :frame-num 0.0) @@ -939,7 +928,7 @@ The faster it's moving the fast it flaps it's wings, etc (ja-channel-push! 1 (seconds 0.125)) (ja :group! pegasus-fly-to-run-ja) (ja :num-func num-func-identity :frame-num 0.0) - (let* ((s5-4 (-> self clock frame-counter)) + (let* ((s5-4 (current-time)) (f30-1 300.0) (f28-1 2.0) (f26-0 3.0) @@ -1019,8 +1008,8 @@ The faster it's moving the fast it flaps it's wings, etc (func) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self far-time) (current-time)) (set-setting! 'sound-mode #f 0.0 1) (none) ) @@ -1045,24 +1034,22 @@ The faster it's moving the fast it flaps it's wings, etc (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (set! (-> self state-time) - (the-as time-frame (max (+ (-> self clock frame-counter) (seconds -10)) (-> self state-time))) - ) + (set! (-> self state-time) (the-as time-frame (max (+ (current-time) (seconds -10)) (-> self state-time)))) ) (else - (+! (-> self state-time) (* 10 (- (-> self clock frame-counter) (-> self far-time)))) - (if (>= (-> self state-time) (-> self clock frame-counter)) + (+! (-> self state-time) (* 10 (- (current-time) (-> self far-time)))) + (if (>= (-> self state-time) (current-time)) (go-virtual flee) ) ) ) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) (none) ) :code (behavior () (until #f (set! (-> self y-offset-desired) 0.0) - (pegasus-fly-code (the-as int (- (-> self clock frame-counter) (-> self state-time)))) + (pegasus-fly-code (the-as int (- (current-time) (-> self state-time)))) (suspend) ) #f @@ -1080,7 +1067,7 @@ The faster it's moving the fast it flaps it's wings, etc ) ) (set! (-> self near-timer) 3000) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) (set-setting! 'sound-mode #f 0.0 1) (none) ) @@ -1107,16 +1094,15 @@ The faster it's moving the fast it flaps it's wings, etc (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (set! (-> self near-timer) (- (the-as time-frame (-> self near-timer)) - (- (-> self clock frame-counter) (-> self clock old-frame-counter)) - ) + (set! (-> self near-timer) + (- (the-as time-frame (-> self near-timer)) (- (current-time) (-> self clock old-frame-counter))) ) (if (<= (-> self near-timer) 0) (go pegasus-tired) ) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) ) - (if (>= (- (-> self clock frame-counter) (-> self far-time)) (seconds 3)) + (if (>= (- (current-time) (-> self far-time)) (seconds 3)) (set! (-> self near-timer) (the-as int (-> self timeout))) ) (none) @@ -1252,7 +1238,6 @@ The faster it's moving the fast it flaps it's wings, etc (defmethod init-enemy-collision! pegasus ((obj pegasus)) "Initializes the [[collide-shape-moving]] and any ancillary tasks to make the enemy collide properly" - (stack-size-set! (-> obj main-thread) 512) ;; added (let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) (set! (-> cshape dynam) (copy *standard-dynamics* 'process)) (set! (-> cshape reaction) cshape-reaction-default) @@ -1441,7 +1426,7 @@ The faster it's moving the fast it flaps it's wings, etc (lambda :behavior task-manager () (local-vars (data int)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-pegasus :init hud-init-by-other :to self))) (while (> (-> self data-int32 0) 0) (set! data (-> self data-int32 1)) diff --git a/goal_src/jak2/levels/forest/predator.gc b/goal_src/jak2/levels/forest/predator.gc index bb385c4907..ed24ce7053 100644 --- a/goal_src/jak2/levels/forest/predator.gc +++ b/goal_src/jak2/levels/forest/predator.gc @@ -412,23 +412,21 @@ (defmethod general-event-handler predator ((obj predator) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('attack) - (set! (-> obj shock-effect-end) (the-as uint (+ (-> pp clock frame-counter) (seconds 1)))) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + (case arg2 + (('attack) + (set! (-> obj shock-effect-end) (the-as uint (+ (current-time) (seconds 1)))) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('death-end) + (when (nonzero? (-> obj ambient-sound-id)) + (sound-stop (-> obj ambient-sound-id)) + (set! (-> obj ambient-sound-id) (new 'static 'sound-id)) + 0 ) - (('death-end) - (when (nonzero? (-> obj ambient-sound-id)) - (sound-stop (-> obj ambient-sound-id)) - (set! (-> obj ambient-sound-id) (new 'static 'sound-id)) - 0 - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -852,9 +850,9 @@ (if (< 245760.0 (vector-vector-distance (-> obj root-override2 trans) (camera-pos))) (setup-masks (-> obj draw) 0 8) ) - (when (< (-> pp clock frame-counter) (the-as time-frame (-> obj shock-effect-end))) - (when (>= (- (-> pp clock frame-counter) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (-> pp clock frame-counter)) + (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) (process-drawable-shock-skel-effect obj (-> *lightning-spec-id-table* 18) @@ -1063,14 +1061,14 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior predator) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) ) 0 (set! (-> self next-change) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) ) (none) ) @@ -1096,7 +1094,7 @@ ) ) ) - (if (< (the-as time-frame (-> self next-change)) (-> self clock frame-counter)) + (if (< (the-as time-frame (-> self next-change)) (current-time)) (go-virtual hide) ) (none) @@ -1139,7 +1137,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior predator) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) @@ -1165,7 +1163,7 @@ ) (go-virtual hostile) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (check-los? (-> self los) 0) (not (logtest? (-> self draw status) (draw-control-status on-screen))) ) @@ -1182,7 +1180,7 @@ (set! (-> a0-12 target-post quad) (-> v1-30 quad)) ) 0 - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) (go-virtual hidden) @@ -1219,9 +1217,9 @@ ) ) (set! (-> self want-stop) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self next-change) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 4.0 8.0))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 4.0 8.0))))) ) (if (zero? (get-rand-int self 3)) (sound-play "pred-talk") @@ -1234,7 +1232,7 @@ (t9-0) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 5)) (go-virtual hide) ) (let ((gp-0 (handle->process (-> self focus handle)))) @@ -1242,7 +1240,7 @@ (go-virtual active) ) (when (get-enemy-target self) - (when (and gp-0 (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time))) + (when (and gp-0 (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (let ((f0-0 (vector-vector-xz-distance (get-trans (the-as process-focusable gp-0) 0) (-> self root-override2 trans)) ) diff --git a/goal_src/jak2/levels/forest/wren.gc b/goal_src/jak2/levels/forest/wren.gc index 19c6534341..71fe15e464 100644 --- a/goal_src/jak2/levels/forest/wren.gc +++ b/goal_src/jak2/levels/forest/wren.gc @@ -187,13 +187,13 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (defstate peck (wren) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self peck-timer) (the-as uint (the int (* 300.0 (rand-vu-float-range 1.4 4.3))))) (set! (-> self flags) (logand -7 (-> self flags))) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self peck-timer))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self peck-timer))) (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans)))) (if (< (fabs (deg-diff (quaternion-y-angle (-> self root quat)) (vector-y-angle gp-1))) 728.1778) (go-virtual hunt) @@ -235,23 +235,23 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (set! v1-33 v1-33) (cmove-#f-zero v1-34 v1-33 v1-33) ) - (let ((gp-1 (-> self clock frame-counter)) + (let ((gp-1 (current-time)) (s5-1 (the int (* 300.0 (rand-vu-float-range 0.1 0.6)))) (f30-1 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-1) s5-1) + (until (>= (- (current-time) gp-1) s5-1) (suspend) (ja :num! (loop! f30-1)) ) ) (logior! (-> self flags) 1) - (let ((gp-2 (-> self clock frame-counter)) + (let ((gp-2 (current-time)) (s5-2 (the int (* 300.0 (rand-vu-float-range 0.2 1.5)))) (f30-3 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-3) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-2) s5-2) + (until (>= (- (current-time) gp-2) s5-2) (suspend) (ja :num! (loop! f30-3)) ) @@ -291,12 +291,12 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 240) (f30-0 2.0) ) (ja-no-eval :group! wren-takeoff-ja :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-0)) ) @@ -391,7 +391,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" :trans (behavior () (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans)))) (when (< (fabs (deg-diff (quaternion-y-angle (-> self root quat)) (vector-y-angle gp-1))) 728.1778) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self peck-timer))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self peck-timer))) (set! (-> self fly-index) (logand (+ (-> self fly-index) 1) 1)) (go-virtual fly) ) @@ -402,23 +402,23 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" :code (behavior () (set! (-> self flags) (logand -2 (-> self flags))) (ja-channel-push! 1 (seconds 0.2)) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (* 300.0 (rand-vu-float-range 4.2 16.8)))) (f30-1 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-1)) ) ) (logior! (-> self flags) 1) - (let ((gp-1 (-> self clock frame-counter)) + (let ((gp-1 (current-time)) (s5-1 600) (f30-2 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-2) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-1) s5-1) + (until (>= (- (current-time) gp-1) s5-1) (suspend) (ja :num! (loop! f30-2)) ) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fordumpa-obs.gc b/goal_src/jak2/levels/fortress/ammo_dump/fordumpa-obs.gc index b5b57f0e5d..385360ce49 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fordumpa-obs.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fordumpa-obs.gc @@ -52,16 +52,16 @@ :virtual #t :event (-> (method-of-type fort-elec-switch idle) event) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 16)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 16)) (suspend) ) ) (until (logtest? (-> self draw status) (draw-control-status on-screen)) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.4)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.4)) (suspend) ) ) @@ -143,8 +143,8 @@ ) ) (sound-play "elec-switch") - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -179,8 +179,8 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (suspend) ) ) @@ -199,8 +199,8 @@ ) ) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 1.5)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 1.5)) (suspend) ) ) @@ -245,7 +245,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 512) + (stack-size-set! (-> obj main-thread) 512) ;; added (local-vars (sv-16 res-tag)) (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fordumpb-obs.gc b/goal_src/jak2/levels/fortress/ammo_dump/fordumpb-obs.gc index 1be5ef87ed..3e475c0218 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fordumpb-obs.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fordumpb-obs.gc @@ -289,7 +289,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn fort-plat-shuttle-plat 0 :to self) (set! (-> self next-spawn-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -299,24 +299,22 @@ This commonly includes things such as: ) (defmethod fort-plat-shuttle-method-22 fort-plat-shuttle ((obj fort-plat-shuttle)) - (with-pp - (let* ((f28-0 (total-distance (-> obj path))) - (s5-0 (-> obj sync)) - (f26-0 81.92) - (a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0))) - (v1-6 (-> s5-0 period)) - (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) - (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) - ) - (while (>= 1.0 f30-0) - (if (>= f30-0 0.0) - (process-spawn fort-plat-shuttle-plat f30-0 :to obj) - ) - (+! f30-0 f28-1) - ) + (let* ((f28-0 (total-distance (-> obj path))) + (s5-0 (-> obj sync)) + (f26-0 81.92) + (a0-3 (- (current-time) (get-timeframe-offset! s5-0 0))) + (v1-6 (-> s5-0 period)) + (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) + (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) + ) + (while (>= 1.0 f30-0) + (if (>= f30-0 0.0) + (process-spawn fort-plat-shuttle-plat f30-0 :to obj) + ) + (+! f30-0 f28-1) ) - #f ) + #f ) ;; WARN: Return type mismatch object vs none. diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fordumpc-obs.gc b/goal_src/jak2/levels/fortress/ammo_dump/fordumpc-obs.gc index b624070bb1..544bf10f47 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fordumpc-obs.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fordumpc-obs.gc @@ -139,8 +139,8 @@ ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -366,8 +366,8 @@ This commonly includes things such as: (-> gp-2 ppointer) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) @@ -540,8 +540,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 8)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 8)) (suspend) ) ) @@ -549,15 +549,15 @@ This commonly includes things such as: (suspend) ) (when (= (-> self bomb-count) 4) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.4)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.4)) (suspend) ) ) (add-process *gui-control* self (gui-channel daxter) (gui-action play) "ds017" -99.0 0) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 20)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 20)) (suspend) ) ) @@ -565,14 +565,14 @@ This commonly includes things such as: (add-process *gui-control* self (gui-channel daxter) (gui-action play) "ds018" -99.0 0) ) (while (> (-> self bomb-count) 0) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.2)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.2)) (suspend) ) ) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.8)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.8)) (suspend) ) ) @@ -621,8 +621,8 @@ This commonly includes things such as: ) ) (set-fordumpc-light-flag! #t) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -632,8 +632,8 @@ This commonly includes things such as: (set-setting! 'entity-name "camera-182" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (task-node-close! (game-task-node fortress-dump-missile)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.75)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.75)) (suspend) ) ) @@ -667,8 +667,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1.5)) (suspend) ) ) @@ -694,8 +694,8 @@ This commonly includes things such as: (set! (-> *game-info* timer) 0) (set! (-> self hud) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.4)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.4)) (suspend) ) ) @@ -704,8 +704,8 @@ This commonly includes things such as: ) (dotimes (gp-5 10) (set! (-> *game-info* timer) (the-as time-frame (- 3000 (the int (* 300.0 (the float gp-5)))))) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 1)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) (suspend) ) ) @@ -759,8 +759,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.4)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.4)) (suspend) ) ) @@ -931,13 +931,13 @@ This commonly includes things such as: (set! (-> s5-3 trans w) 1.0) (spawn-with-matrix (-> self part-doom) s5-3) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 10)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 10)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc index 22c1c4cac2..4658dd4f5a 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc @@ -103,7 +103,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('trigger) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (go-virtual active) ) (('die) @@ -180,7 +180,7 @@ ) :code (behavior () (until #f - (when (and (not (paused?)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + (when (and (not (paused?)) (>= (- (current-time) (-> self state-time)) (seconds 1))) (seek! (-> self anim-frame) 0.0 (* 0.2 (-> self clock time-adjust-ratio))) (seek! (-> self transition) 1.0 (* 0.01 (-> self clock time-adjust-ratio))) ) @@ -234,8 +234,8 @@ (defstate die (fort-roboscreen) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (seek! (-> self transition) 0.0 (-> self clock seconds-per-frame)) (set-roboscreen-alpha! (-> self transition)) (suspend) @@ -505,7 +505,7 @@ (none) ) :post (behavior () - (when (< (-> self ring-timer) (-> self clock frame-counter)) + (when (< (-> self ring-timer) (current-time)) (let ((v1-2 (rand-vu-int-range 0 7))) (dotimes (a0-3 3) (if (logand (ash 1 a0-3) v1-2) @@ -513,9 +513,7 @@ ) ) ) - (set! (-> self ring-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.6 1.8)))) - ) + (set! (-> self ring-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.6 1.8))))) ) (fort-robotank-reticle-post) (none) @@ -1128,19 +1126,19 @@ :virtual #t :event robotank-turret-handler :enter (behavior () - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) (none) ) :trans (behavior () (if (logtest? (-> self flags) 16) - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) ) (let ((gp-0 *target*)) (if (and (if (type? gp-0 process-focusable) gp-0 ) (or (not (logtest? (-> self flags) 512)) (check-los? (-> self los) 0)) - (>= (- (-> self clock frame-counter) (-> self gun-timer)) (seconds 1)) + (>= (- (current-time) (-> self gun-timer)) (seconds 1)) ) (go-virtual fire) ) @@ -1206,8 +1204,8 @@ (logior! (-> self flags) 8) (set! (-> self firing-sight-pos quad) (-> self sight-pos quad)) (send-event (handle->process (-> self reticle)) 'lock) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) @@ -1245,9 +1243,9 @@ ) ) (let ((f30-0 (rand-vu-float-range 0.05 0.43)) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) (the int (* 300.0 f30-0))) + (until (>= (- (current-time) s4-2) (the int (* 300.0 f30-0))) (suspend) ) ) @@ -1267,9 +1265,9 @@ 2.11 ) ) - (gp-3 (-> self clock frame-counter)) + (gp-3 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 f30-1))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 f30-1))) (suspend) ) ) @@ -1285,8 +1283,8 @@ :code (behavior () (send-event (handle->process (-> self reticle)) 'die) (send-event (handle->process (-> self screen)) 'die) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1393,7 +1391,7 @@ (set! (-> self aim-pos 0 quad) (-> self root-override trans quad)) (set! (-> self aim-pos-2 quad) (-> self root-override trans quad)) (set! (-> self aim-pos-1 quad) (-> self root-override trans quad)) - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) (set! (-> self flags) (the-as uint 0)) (set! (-> self fov-mult) 1.0) (set! (-> self shot-range) 204800.0) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank.gc b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank.gc index ce31f8d273..47f144c221 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank.gc @@ -290,7 +290,7 @@ (defbehavior fort-robotank-post fort-robotank () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -362,11 +362,11 @@ ) (let* ((f0-35 30.0) (f1-7 65536.0) - (f2-1 (the float (-> self clock frame-counter))) + (f2-1 (the float (current-time))) (f0-36 (/ (* f1-7 (- f2-1 (* (the float (the int (/ f2-1 f0-35))) f0-35))) f0-35)) (f28-1 (sin f0-36)) (f30-2 (* 300.0 (/ 1.0 (-> self engine-vibe-rate)))) - (f0-39 (the float (-> self clock frame-counter))) + (f0-39 (the float (current-time))) (f24-0 (/ (- f0-39 (* (the float (the int (/ f0-39 f30-2))) f30-2)) f30-2)) (f28-2 (* f28-1 (sin (* 65536.0 f24-0)))) ) @@ -375,7 +375,7 @@ (f26-0 0.0) ) (when (and (or (< f0-44 f24-0) (< f24-0 f1-16)) - (>= (- (-> self clock frame-counter) (-> self buzz-timer)) (the int (* 0.5 f30-2))) + (>= (- (current-time) (-> self buzz-timer)) (the int (* 0.5 f30-2))) ) (let* ((gp-2 *target*) (a0-43 (if (type? gp-2 process-focusable) @@ -401,7 +401,7 @@ (the int (* 255.0 (* 0.49 f26-0))) (the-as time-frame (max 45 (the int (* 0.25 f30-2)))) ) - (set! (-> self buzz-timer) (-> self clock frame-counter)) + (set! (-> self buzz-timer) (current-time)) ) ) (quaternion-axis-angle! @@ -536,7 +536,7 @@ (set! (-> a1-19 param 1) (the-as uint v1-40)) ) (the-as object (when (send-event-function s5-0 a1-19) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-45 (-> self root-override root-prim))) (set! (-> v1-45 prim-core collide-as) (collide-spec)) (set! (-> v1-45 prim-core collide-with) (collide-spec)) @@ -804,8 +804,8 @@ ) :code (behavior () (set! (-> self flags) (logand -5 (-> self flags))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.1)) (suspend) ) ) @@ -943,8 +943,8 @@ (remove-setting! 'process-mask) (remove-setting! 'target-height) (send-event (handle->process (-> self turret)) 'die) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/exit/forexita-obs.gc b/goal_src/jak2/levels/fortress/exit/forexita-obs.gc index 462ab70c15..40874214f5 100644 --- a/goal_src/jak2/levels/fortress/exit/forexita-obs.gc +++ b/goal_src/jak2/levels/fortress/exit/forexita-obs.gc @@ -68,7 +68,7 @@ (none) ) :post (behavior () - (when (< (-> self sound-time) (-> self clock frame-counter)) + (when (< (-> self sound-time) (current-time)) (sound-stop (-> self sound-id)) (set! (-> self sound-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -105,7 +105,7 @@ ) :code (the-as (function none :behavior fort-lift-plat) sleep-code) :post (behavior () - (when (< (-> self sound-time) (-> self clock frame-counter)) + (when (< (-> self sound-time) (current-time)) (sound-stop (-> self sound-id)) (set! (-> self sound-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -282,11 +282,11 @@ otherwise, [[plat::34]] (defstate pause (fort-claw) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual idle) ) (none) @@ -332,8 +332,8 @@ This commonly includes things such as: () (until #f (sound-play "fortress-alarm") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/fort-turret.gc b/goal_src/jak2/levels/fortress/fort-turret.gc index caa945f6df..599a659798 100644 --- a/goal_src/jak2/levels/fortress/fort-turret.gc +++ b/goal_src/jak2/levels/fortress/fort-turret.gc @@ -619,66 +619,64 @@ ) (defmethod fort-turret-method-141 fort-turret ((obj fort-turret)) - (with-pp - (let* ((s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) - (v1-3 - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj node-list data 12 bone transform vector 2) 1.0) - ) - (s4-1 (vector-float*! (new 'stack-no-clear 'vector) v1-3 163840.0)) + (let* ((s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) + (v1-3 + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj node-list data 12 bone transform vector 2) 1.0) ) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) - (set! (-> s3-0 move-dist quad) (-> s4-1 quad)) - (let ((v1-6 s3-0)) - (set! (-> v1-6 radius) 409.6) - (set! (-> v1-6 collide-with) - (collide-spec backgnd jak crate obstacle hit-by-player-list hit-by-others-list player-list pusher) - ) - (set! (-> v1-6 ignore-process0) obj) - (set! (-> v1-6 ignore-process1) #f) - (set! (-> v1-6 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-6 action-mask) (collide-action solid)) - ) - (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (cond - ((>= f30-0 0.0) - (set! (-> obj beam-intersect) (the-as basic 'wall)) - (when (-> s3-0 best-other-tri collide-ptr) - (let* ((s3-1 (-> s3-0 best-other-tri collide-ptr)) - (a0-14 (if (type? s3-1 collide-shape-prim) - (the-as collide-shape-prim s3-1) - ) - ) - ) - (when a0-14 - (when (= (-> a0-14 cshape process type) target) - (set! (-> obj target-timeout) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj beam-intersect) (the-as basic 'target)) - ) + (s4-1 (vector-float*! (new 'stack-no-clear 'vector) v1-3 163840.0)) + ) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) + (set! (-> s3-0 move-dist quad) (-> s4-1 quad)) + (let ((v1-6 s3-0)) + (set! (-> v1-6 radius) 409.6) + (set! (-> v1-6 collide-with) + (collide-spec backgnd jak crate obstacle hit-by-player-list hit-by-others-list player-list pusher) + ) + (set! (-> v1-6 ignore-process0) obj) + (set! (-> v1-6 ignore-process1) #f) + (set! (-> v1-6 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-6 action-mask) (collide-action solid)) + ) + (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (cond + ((>= f30-0 0.0) + (set! (-> obj beam-intersect) (the-as basic 'wall)) + (when (-> s3-0 best-other-tri collide-ptr) + (let* ((s3-1 (-> s3-0 best-other-tri collide-ptr)) + (a0-14 (if (type? s3-1 collide-shape-prim) + (the-as collide-shape-prim s3-1) + ) + ) + ) + (when a0-14 + (when (= (-> a0-14 cshape process type) target) + (set! (-> obj target-timeout) (the-as uint (current-time))) + (set! (-> obj beam-intersect) (the-as basic 'target)) ) ) ) - (vector-float*! s4-1 s4-1 f30-0) - (let ((s3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 s4-1)) - (a0-21 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 10))) - (v1-23 (-> obj gun-shadow-jm twist-max)) - ) - (set! (-> v1-23 z) - (+ 2.0 (* 0.00024414062 (vector-length (vector-! (new 'stack-no-clear 'vector) s3-3 a0-21)))) - ) - (if (= (-> obj beam-intersect) 'wall) - (set! (-> v1-23 z) (+ -5.0 (-> v1-23 z))) - ) - ) ) - (else - (set! (-> obj beam-intersect) (the-as basic 'nothing)) - ) + (vector-float*! s4-1 s4-1 f30-0) + (let ((s3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 s4-1)) + (a0-21 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 10))) + (v1-23 (-> obj gun-shadow-jm twist-max)) + ) + (set! (-> v1-23 z) + (+ 2.0 (* 0.00024414062 (vector-length (vector-! (new 'stack-no-clear 'vector) s3-3 a0-21)))) + ) + (if (= (-> obj beam-intersect) 'wall) + (set! (-> v1-23 z) (+ -5.0 (-> v1-23 z))) + ) + ) + ) + (else + (set! (-> obj beam-intersect) (the-as basic 'nothing)) ) ) ) - (vector+! (-> obj target-bullseye) s5-0 s4-1) ) + (vector+! (-> obj target-bullseye) s5-0 s4-1) ) ) @@ -737,15 +735,15 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) ) (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (fort-turret-method-141 self) - (if (or (>= (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (< (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (or (>= (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (< (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual hostile) ) @@ -762,8 +760,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -786,8 +784,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.33)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.33)) (suspend) ) ) @@ -798,8 +796,8 @@ ) ) (set! (-> self flash-state) #f) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1.5)) (suspend) ) ) @@ -821,14 +819,14 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior fort-turret) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) @@ -837,8 +835,8 @@ (set! (-> self desired-twist) (* 8192.0 (cos (get-scaled-val! (-> self sync) 32768.0 0)))) (fort-turret-method-140 self 0.1 91.022224) (fort-turret-method-141 self) - (if (and (< (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (and (< (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual attack) ) @@ -869,15 +867,15 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) ) (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (fort-turret-method-141 self) - (if (and (< (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (and (< (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual attack) ) @@ -897,37 +895,35 @@ (defmethod general-event-handler fort-turret ((obj fort-turret) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (if (and (= arg2 'notify) (< 1 arg1) (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) - (set! (-> obj last-hit-time) (-> pp clock frame-counter)) + (if (and (= arg2 'notify) (< 1 arg1) (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) + (set! (-> obj last-hit-time) (current-time)) + ) + (case arg2 + (('start) + (let ((v0-0 (the-as object #t))) + (set! (-> obj can-shoot) (the-as symbol v0-0)) + v0-0 + ) + ) + (('stop) + (set! (-> obj can-shoot) #f) + #f + ) + (('attack) + (cond + ((= (-> arg0 type) target) + #f ) - (case arg2 - (('start) - (let ((v0-0 (the-as object #t))) - (set! (-> obj can-shoot) (the-as symbol v0-0)) - v0-0 + ((-> obj invincible) + #f + ) + (else + ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (('stop) - (set! (-> obj can-shoot) #f) - #f - ) - (('attack) - (cond - ((= (-> arg0 type) target) - #f - ) - ((-> obj invincible) - #f - ) - (else - ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - (else - ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -961,15 +957,15 @@ (suspend) (ja-channel-set! 0) (let ((gp-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))) - (s5-2 (-> self clock frame-counter)) + (s5-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 2)) + (until (>= (- (current-time) s5-2) (seconds 2)) (spawn (-> self part) gp-2) (suspend) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/fortress-obs.gc b/goal_src/jak2/levels/fortress/fortress-obs.gc index 57955ec748..109e112fe4 100644 --- a/goal_src/jak2/levels/fortress/fortress-obs.gc +++ b/goal_src/jak2/levels/fortress/fortress-obs.gc @@ -137,8 +137,8 @@ ) (suspend) (ja-channel-set! 0) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 1)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/prison/prison-obs.gc b/goal_src/jak2/levels/fortress/prison/prison-obs.gc index f5b0fb547b..5f0887add2 100644 --- a/goal_src/jak2/levels/fortress/prison/prison-obs.gc +++ b/goal_src/jak2/levels/fortress/prison/prison-obs.gc @@ -234,7 +234,7 @@ (defstate idle (prsn-hang-cell) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((f0-2 (* (/ 1.0 (-> self path-du)) (-> self path-u))) (f0-3 (- f0-2 (* (the float (the int (/ f0-2 1.0))) 1.0))) ) @@ -251,7 +251,7 @@ (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) (when (>= (-> self path-u) 1.0) (set! (-> self path-u) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (get-point-at-percent-along-path! (-> self path) (-> self root trans) (-> self path-u) 'interp) (ja-post) @@ -267,42 +267,40 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (process-drawable-from-entity! obj arg0) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-prsn-hang-cell" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! (-> obj path-du) 0.01) - (let ((f0-2 (* 300.0 (/ 1.0 (-> obj path-du)))) - (f1-3 (the float (-> pp clock frame-counter))) - ) - (set! (-> obj path-u) (/ (- f1-3 (* (the float (the int (/ f1-3 f0-2))) f0-2)) f0-2)) - ) - (let* ((f30-0 (-> obj path-u)) - (f28-0 8.0) - (f26-0 (/ 1.0 f28-0)) - ) - (dotimes (s5-2 (+ (the int f28-0) -1)) - (+! f30-0 f26-0) - (process-spawn - prsn-hang-cell - (if (>= f30-0 1.0) - (+ -1.0 f30-0) - f30-0 - ) - :to obj - ) + (set! (-> obj root) (new 'process 'trsqv)) + (process-drawable-from-entity! obj arg0) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-prsn-hang-cell" (the-as (pointer uint32) #f))) + (the-as pair 0) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! (-> obj path-du) 0.01) + (let ((f0-2 (* 300.0 (/ 1.0 (-> obj path-du)))) + (f1-3 (the float (current-time))) + ) + (set! (-> obj path-u) (/ (- f1-3 (* (the float (the int (/ f1-3 f0-2))) f0-2)) f0-2)) + ) + (let* ((f30-0 (-> obj path-u)) + (f28-0 8.0) + (f26-0 (/ 1.0 f28-0)) + ) + (dotimes (s5-2 (+ (the int f28-0) -1)) + (+! f30-0 f26-0) + (process-spawn + prsn-hang-cell + (if (>= f30-0 1.0) + (+ -1.0 f30-0) + f30-0 + ) + :to obj ) ) - (go (method-of-object obj idle)) - (none) ) + (go (method-of-object obj idle)) + (none) ) ;; WARN: Return type mismatch object vs none. diff --git a/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc b/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc index 2d6d9e4c18..c8d3ee6db6 100644 --- a/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc +++ b/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc @@ -232,8 +232,8 @@ This commonly includes things such as: (let ((a0-0 *target*)) (when (and a0-0 (< 81920.0 (vector-vector-distance (get-trans a0-0 0) (-> self root trans)))) (set! (-> self quality-enabled?) #f) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -241,8 +241,8 @@ This commonly includes things such as: (set-setting! 'entity-name "camera-243" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (process-grab? *target* #f) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) @@ -341,8 +341,8 @@ This commonly includes things such as: ) :code (behavior () (until (-> self all-gone?) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) diff --git a/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc b/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc index 695ac21240..469ec864d1 100644 --- a/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc +++ b/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc @@ -490,7 +490,7 @@ This commonly includes things such as: ) :trans (behavior () (set-forrescb-electricity-scale! 1.0 0) - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn fort-elec-belt-inst (-> self init-quat) @@ -509,32 +509,30 @@ This commonly includes things such as: ;; WARN: Return type mismatch symbol vs none. (defmethod fort-elec-belt-method-15 fort-elec-belt ((obj fort-elec-belt)) - (with-pp - (let* ((f28-0 (total-distance (-> obj path))) - (s5-0 (-> obj sync)) - (f26-0 81.92) - (a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0))) - (v1-6 (-> s5-0 period)) - (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) - (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) - ) - (while (>= 1.0 f30-0) - (if (>= f30-0 0.0) - (process-spawn - fort-elec-belt-inst - (-> obj init-quat) - f30-0 - (-> obj path-du) - (-> obj l-spec) - (-> obj attack-id) - :to obj - ) + (let* ((f28-0 (total-distance (-> obj path))) + (s5-0 (-> obj sync)) + (f26-0 81.92) + (a0-3 (- (current-time) (get-timeframe-offset! s5-0 0))) + (v1-6 (-> s5-0 period)) + (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) + (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) + ) + (while (>= 1.0 f30-0) + (if (>= f30-0 0.0) + (process-spawn + fort-elec-belt-inst + (-> obj init-quat) + f30-0 + (-> obj path-du) + (-> obj l-spec) + (-> obj attack-id) + :to obj ) - (+! f30-0 f28-1) - ) + ) + (+! f30-0 f28-1) ) - (none) ) + (none) ) ;; WARN: Return type mismatch process vs fort-elec-belt. diff --git a/goal_src/jak2/levels/gungame/gun-dummy.gc b/goal_src/jak2/levels/gungame/gun-dummy.gc index 0599e9978c..f379f5d364 100644 --- a/goal_src/jak2/levels/gungame/gun-dummy.gc +++ b/goal_src/jak2/levels/gungame/gun-dummy.gc @@ -1962,7 +1962,7 @@ (set! (-> event-msg-block message) 'path) (set! (-> event-msg-block param 0) (-> obj path-num)) (let ((path (the-as path-control (send-event-function (handle->process (-> obj train-man)) event-msg-block))) - (f30-0 (* 0.0033333334 (the float (- (-> pp clock frame-counter) (-> obj state-time))))) + (f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj state-time))))) ) (if (not path) (return #f) @@ -2000,7 +2000,7 @@ (when (>= f30-0 (-> curr-path-command 0 time)) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2015,7 +2015,7 @@ (when (>= f30-0 (-> curr-path-command 0 time)) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2050,7 +2050,7 @@ (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj inout-percent) 1.0) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2116,10 +2116,8 @@ ) (sound-play-by-spec s4-7 (-> obj move-sound) (-> obj root-override trans)) ) - (when (< (-> obj next-spark) (-> pp clock frame-counter)) - (set! (-> obj next-spark) - (the-as int (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.0 0.3))))) - ) + (when (< (-> obj next-spark) (current-time)) + (set! (-> obj next-spark) (the-as int (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.0 0.3)))))) (spawn (-> obj part) (-> obj root-override trans)) ) (set! (-> obj first-time-command) #f) @@ -2133,7 +2131,7 @@ (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj path-pos) (* 0.007843138 (the float (-> curr-path-command 0 path-pos)))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2148,7 +2146,7 @@ ) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2189,7 +2187,7 @@ object (case event-type (('combo) - (set! (-> self last-combo-time) (-> self clock frame-counter)) + (set! (-> self last-combo-time) (current-time)) #t ) (('track) @@ -2247,7 +2245,7 @@ ) (else (if (and (logtest? (process-mask projectile) (-> proc-draw mask)) - (< (- (-> self clock frame-counter) (-> self last-combo-time)) (seconds 1)) + (< (- (current-time) (-> self last-combo-time)) (seconds 1)) ) (send-event (ppointer->process (-> self parent)) 'combo) ) @@ -2267,7 +2265,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self inout-percent) 1.0) (set! (-> self y-offset) 0.0) (set! (-> self rot-y-offset) 0.0) diff --git a/goal_src/jak2/levels/gungame/gungame-obs.gc b/goal_src/jak2/levels/gungame/gungame-obs.gc index 9b1e2c5995..07a5af56fc 100644 --- a/goal_src/jak2/levels/gungame/gungame-obs.gc +++ b/goal_src/jak2/levels/gungame/gungame-obs.gc @@ -446,7 +446,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) (if (task-node-open? (game-task-node city-yellow-gun-training-introduction)) (go-virtual yellow-training-intro) @@ -496,7 +496,7 @@ This commonly includes things such as: ) ) (else - (when (< (-> self start-time) (-> self clock frame-counter)) + (when (< (-> self start-time) (current-time)) (set! (-> self course) *red-training-path-global-info*) (set! (-> self end-door) (the-as uint 1)) (training-manager-method-24 self) @@ -565,7 +565,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -617,7 +617,7 @@ This commonly includes things such as: ) ) (else - (when (< (-> self start-time) (-> self clock frame-counter)) + (when (< (-> self start-time) (current-time)) (set! (-> self end-door) (the-as uint 0)) (set! (-> self course) *yellow-training-path-global-info*) (training-manager-method-24 self) @@ -693,7 +693,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ((let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) (process->ppointer self)) @@ -735,7 +735,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -783,7 +783,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ((and (logtest? (-> *game-info* secrets) (game-secrets gungame-dark)) (let ((a1-12 (new 'stack-no-clear 'event-message-block))) @@ -825,7 +825,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -903,7 +903,7 @@ This commonly includes things such as: (label cfg-30) (b! #t cfg-33 :delay (nop!)) (label cfg-31) - (if (< (-> self start-time) (-> self clock frame-counter)) + (if (< (-> self start-time) (current-time)) (go-virtual course) ) (label cfg-33) @@ -1130,7 +1130,7 @@ This commonly includes things such as: :enter (behavior () (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :to self))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 2))) + (set! (-> self start-time) (+ (current-time) (seconds 2))) (set! (-> self first-enemy-shown?) #f) (set! (-> self first-citizen-shown?) #f) (set! (-> self open-end?) #t) @@ -1426,7 +1426,7 @@ This commonly includes things such as: (training-manager-method-32 self) (training-manager-method-31 self) (when (-> self open-end?) - (let ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> self start-time)))))) (when (and (handle->process (-> self voicebox)) (or (and (task-node-closed? (game-task-node city-red-gun-training-try-once)) (< 1.0 f30-0)) (and (task-node-open? (game-task-node city-red-gun-training-try-once)) (< 15.0 f30-0)) @@ -1860,8 +1860,8 @@ This commonly includes things such as: t1-0 ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2309,8 +2309,8 @@ This commonly includes things such as: ) :code (behavior () (sound-play "gungame-door") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.2)) (suspend) (suspend) ) diff --git a/goal_src/jak2/levels/hiphog/whack.gc b/goal_src/jak2/levels/hiphog/whack.gc index d1736d9632..05629a9343 100644 --- a/goal_src/jak2/levels/hiphog/whack.gc +++ b/goal_src/jak2/levels/hiphog/whack.gc @@ -1615,8 +1615,8 @@ (ja :num! (seek!)) ) (ja-channel-push! 1 (seconds 0.05)) - (let ((s5-0 (-> self clock frame-counter))) - (while (and (< (- (-> self clock frame-counter) s5-0) arg0) (not (-> self abort?))) + (let ((s5-0 (current-time))) + (while (and (< (- (current-time) s5-0) arg0) (not (-> self abort?))) (ja :group! (-> self draw art-group data 4) :num! (loop!)) (suspend) ) @@ -1819,238 +1819,232 @@ ) (defmethod whack-a-metal-method-27 whack-a-metal ((obj whack-a-metal)) - (with-pp - (let ((s4-0 (-> *mole-data* (-> obj wave) (-> obj event))) - (s5-0 #t) - ) - (when (zero? (-> obj event-length)) - (set! (-> obj event-length) - (rand-vu-int-range (the-as int (-> s4-0 min-time)) (the-as int (+ (-> s4-0 min-time) (-> s4-0 max-time)))) - ) - (set! (-> obj event-time) (-> pp clock frame-counter)) + (let ((s4-0 (-> *mole-data* (-> obj wave) (-> obj event))) + (s5-0 #t) ) - (let ((v1-8 (-> s4-0 mode))) - (cond - ((= v1-8 8) - (set! s5-0 (>= (- (-> pp clock frame-counter) (-> obj event-time)) (-> obj event-length))) - ) - ((or (= v1-8 9) (= v1-8 10) (= v1-8 11)) - (let ((v1-13 (rand-vu-int-range 0 7))) - (let ((s3-0 0)) - (while (let ((a0-20 (-> obj mole v1-13))) - (and (-> (the-as hip-mole (if a0-20 - (the-as hip-mole (-> a0-20 0 self)) - ) - ) - next-state - ) - (let ((a0-26 (-> obj mole v1-13))) - (= (-> (the-as hip-mole (if a0-26 - (the-as hip-mole (-> a0-26 0 self)) - ) - ) - next-state - name - ) - 'active - ) + (when (zero? (-> obj event-length)) + (set! (-> obj event-length) + (rand-vu-int-range (the-as int (-> s4-0 min-time)) (the-as int (+ (-> s4-0 min-time) (-> s4-0 max-time)))) + ) + (set! (-> obj event-time) (current-time)) + ) + (let ((v1-8 (-> s4-0 mode))) + (cond + ((= v1-8 8) + (set! s5-0 (>= (- (current-time) (-> obj event-time)) (-> obj event-length))) + ) + ((or (= v1-8 9) (= v1-8 10) (= v1-8 11)) + (let ((v1-13 (rand-vu-int-range 0 7))) + (let ((s3-0 0)) + (while (let ((a0-20 (-> obj mole v1-13))) + (and (-> (the-as hip-mole (if a0-20 + (the-as hip-mole (-> a0-20 0 self)) + ) + ) + next-state ) + (let ((a0-26 (-> obj mole v1-13))) + (= (-> (the-as hip-mole (if a0-26 + (the-as hip-mole (-> a0-26 0 self)) + ) + ) + next-state + name + ) + 'active + ) ) - ) - (set! v1-13 (rand-vu-int-range 0 7)) - (+! s3-0 1) - (if (< 100 s3-0) - (goto cfg-27) - ) - ) + ) + ) + (set! v1-13 (rand-vu-int-range 0 7)) + (+! s3-0 1) + (if (< 100 s3-0) + (goto cfg-27) + ) ) - (send-event (ppointer->process (-> obj mole v1-13)) 'active (-> obj event-length) (-> s4-0 mode)) ) - (label cfg-27) + (send-event (ppointer->process (-> obj mole v1-13)) 'active (-> obj event-length) (-> s4-0 mode)) ) - ((or (zero? v1-8) (= v1-8 1) (= v1-8 2) (= v1-8 3) (= v1-8 4) (= v1-8 5) (= v1-8 6) (= v1-8 7)) - (let ((v1-22 (the-as int (-> s4-0 mode)))) - (let ((s3-1 0)) - (while (let ((a0-49 (-> obj mole v1-22))) - (and (-> (the-as hip-mole (if a0-49 - (the-as hip-mole (-> a0-49 0 self)) - ) - ) - next-state - ) - (let ((a0-55 (-> obj mole v1-22))) - (= (-> (the-as hip-mole (if a0-55 - (the-as hip-mole (-> a0-55 0 self)) - ) - ) - next-state - name - ) - 'active - ) + (label cfg-27) + ) + ((or (zero? v1-8) (= v1-8 1) (= v1-8 2) (= v1-8 3) (= v1-8 4) (= v1-8 5) (= v1-8 6) (= v1-8 7)) + (let ((v1-22 (the-as int (-> s4-0 mode)))) + (let ((s3-1 0)) + (while (let ((a0-49 (-> obj mole v1-22))) + (and (-> (the-as hip-mole (if a0-49 + (the-as hip-mole (-> a0-49 0 self)) + ) + ) + next-state ) + (let ((a0-55 (-> obj mole v1-22))) + (= (-> (the-as hip-mole (if a0-55 + (the-as hip-mole (-> a0-55 0 self)) + ) + ) + next-state + name + ) + 'active + ) ) - ) - (set! v1-22 (rand-vu-int-range 0 7)) - (+! s3-1 1) - (if (< 100 s3-1) - (goto cfg-61) - ) - ) + ) + ) + (set! v1-22 (rand-vu-int-range 0 7)) + (+! s3-1 1) + (if (< 100 s3-1) + (goto cfg-61) + ) ) - (send-event (ppointer->process (-> obj mole v1-22)) 'active (-> obj event-length) (-> s4-0 mode)) ) + (send-event (ppointer->process (-> obj mole v1-22)) 'active (-> obj event-length) (-> s4-0 mode)) ) - ) - ) - (label cfg-61) - (when s5-0 - (set! (-> obj event-length) 0) - (+! (-> obj event) 1) - (when (>= (-> obj event) (-> *mole-data* (-> obj wave) length)) - (set! (-> obj event) 0) - (+! (-> obj wave) 1) - (if (>= (-> obj wave) (-> *mole-data* length)) - (set! (-> obj wave) (+ (-> *mole-data* length) -1)) - ) - ) + ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> obj speech-time)) (seconds 15)) - (if (nonzero? (cond - ((= (-> obj speech-count) 1) - 0 - ) - ((>= (-> obj score) 1300.0) - (set! (-> obj speech-count) 1) - (let ((v1-50 (whack-a-metal-method-29 obj 0 3))) - (cond - ((zero? v1-50) - (talker-spawn-func (-> *talker-speech* 430) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-50 1) - (talker-spawn-func (-> *talker-speech* 431) *entity-pool* (target-pos 0) (the-as region #f)) - ) - (else - (talker-spawn-func (-> *talker-speech* 432) *entity-pool* (target-pos 0) (the-as region #f)) - ) + (label cfg-61) + (when s5-0 + (set! (-> obj event-length) 0) + (+! (-> obj event) 1) + (when (>= (-> obj event) (-> *mole-data* (-> obj wave) length)) + (set! (-> obj event) 0) + (+! (-> obj wave) 1) + (if (>= (-> obj wave) (-> *mole-data* length)) + (set! (-> obj wave) (+ (-> *mole-data* length) -1)) + ) + ) + ) + ) + (when (>= (- (current-time) (-> obj speech-time)) (seconds 15)) + (if (nonzero? (cond + ((= (-> obj speech-count) 1) + 0 + ) + ((>= (-> obj score) 1300.0) + (set! (-> obj speech-count) 1) + (let ((v1-50 (whack-a-metal-method-29 obj 0 3))) + (cond + ((zero? v1-50) + (talker-spawn-func (-> *talker-speech* 430) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-50 1) + (talker-spawn-func (-> *talker-speech* 431) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (else + (talker-spawn-func (-> *talker-speech* 432) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) - (else - (let ((v1-55 (whack-a-metal-method-29 obj 1 20))) - (cond - ((zero? v1-55) - (talker-spawn-func (-> *talker-speech* 395) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 1) - (talker-spawn-func (-> *talker-speech* 396) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 2) - (talker-spawn-func (-> *talker-speech* 397) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 3) - (talker-spawn-func (-> *talker-speech* 398) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 4) - (talker-spawn-func (-> *talker-speech* 401) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 5) - (talker-spawn-func (-> *talker-speech* 403) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 6) - (talker-spawn-func (-> *talker-speech* 404) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 7) - (talker-spawn-func (-> *talker-speech* 405) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 8) - (talker-spawn-func (-> *talker-speech* 406) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 9) - (talker-spawn-func (-> *talker-speech* 407) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 10) - (talker-spawn-func (-> *talker-speech* 408) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 11) - (talker-spawn-func (-> *talker-speech* 409) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 12) - (talker-spawn-func (-> *talker-speech* 410) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 13) - (talker-spawn-func (-> *talker-speech* 411) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 14) - (talker-spawn-func (-> *talker-speech* 412) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 15) - (talker-spawn-func (-> *talker-speech* 413) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 16) - (talker-spawn-func (-> *talker-speech* 414) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 17) - (talker-spawn-func (-> *talker-speech* 415) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 18) - (talker-spawn-func (-> *talker-speech* 416) *entity-pool* (target-pos 0) (the-as region #f)) - ) - (else - (talker-spawn-func (-> *talker-speech* 417) *entity-pool* (target-pos 0) (the-as region #f)) - ) + ) + (else + (let ((v1-55 (whack-a-metal-method-29 obj 1 20))) + (cond + ((zero? v1-55) + (talker-spawn-func (-> *talker-speech* 395) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 1) + (talker-spawn-func (-> *talker-speech* 396) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 2) + (talker-spawn-func (-> *talker-speech* 397) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 3) + (talker-spawn-func (-> *talker-speech* 398) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 4) + (talker-spawn-func (-> *talker-speech* 401) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 5) + (talker-spawn-func (-> *talker-speech* 403) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 6) + (talker-spawn-func (-> *talker-speech* 404) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 7) + (talker-spawn-func (-> *talker-speech* 405) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 8) + (talker-spawn-func (-> *talker-speech* 406) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 9) + (talker-spawn-func (-> *talker-speech* 407) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 10) + (talker-spawn-func (-> *talker-speech* 408) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 11) + (talker-spawn-func (-> *talker-speech* 409) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 12) + (talker-spawn-func (-> *talker-speech* 410) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 13) + (talker-spawn-func (-> *talker-speech* 411) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 14) + (talker-spawn-func (-> *talker-speech* 412) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 15) + (talker-spawn-func (-> *talker-speech* 413) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 16) + (talker-spawn-func (-> *talker-speech* 414) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 17) + (talker-spawn-func (-> *talker-speech* 415) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 18) + (talker-spawn-func (-> *talker-speech* 416) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (else + (talker-spawn-func (-> *talker-speech* 417) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) ) ) - (set! (-> obj speech-time) (-> pp clock frame-counter)) - ) - ) - (whack-a-metal-method-28 obj) - 0 - (none) + ) + (set! (-> obj speech-time) (current-time)) + ) ) + (whack-a-metal-method-28 obj) + 0 + (none) ) (defmethod whack-a-metal-method-28 whack-a-metal ((obj whack-a-metal)) - (with-pp - (cond - ((>= (-> *game-info* score) (-> obj score)) - (set! (-> *game-info* score) (-> obj score)) - ) - ((and (< (-> *game-info* score) (-> obj score)) - (>= (- (-> pp clock frame-counter) (-> obj score-time)) (seconds 0.1)) - ) - (sound-play "whack-score") - (seek! (-> *game-info* score) (-> obj score) 2.0) - (set! (-> obj score-time) (-> pp clock frame-counter)) - ) - ) - (let ((s5-1 (handle->process (-> obj cabinet)))) - (when s5-1 - (spawn-with-matrix (-> obj score-part 1) (-> (the-as process-drawable s5-1) node-list data 13 bone transform)) - (spawn-with-matrix (-> obj score-part 0) (-> (the-as process-drawable s5-1) node-list data 12 bone transform)) - (dotimes (s4-1 (- 20 (-> obj miss-count))) - (set! (-> *part-id-table* 3336 init-specs 2 initial-valuef) (+ -1228.8 (* 614.4 (the float (mod s4-1 5))))) - (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) - (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) - (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 3336) - (-> (the-as process-drawable s5-1) node-list data 12 bone transform) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (cond + ((>= (-> *game-info* score) (-> obj score)) + (set! (-> *game-info* score) (-> obj score)) + ) + ((and (< (-> *game-info* score) (-> obj score)) (>= (- (current-time) (-> obj score-time)) (seconds 0.1))) + (sound-play "whack-score") + (seek! (-> *game-info* score) (-> obj score) 2.0) + (set! (-> obj score-time) (current-time)) + ) + ) + (let ((s5-1 (handle->process (-> obj cabinet)))) + (when s5-1 + (spawn-with-matrix (-> obj score-part 1) (-> (the-as process-drawable s5-1) node-list data 13 bone transform)) + (spawn-with-matrix (-> obj score-part 0) (-> (the-as process-drawable s5-1) node-list data 12 bone transform)) + (dotimes (s4-1 (- 20 (-> obj miss-count))) + (set! (-> *part-id-table* 3336 init-specs 2 initial-valuef) (+ -1228.8 (* 614.4 (the float (mod s4-1 5))))) + (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) + (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) + (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 3336) + (-> (the-as process-drawable s5-1) node-list data 12 bone transform) + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) ) ) - 0 - (none) ) + 0 + (none) ) (defstate hide (whack-a-metal) @@ -2117,7 +2111,7 @@ (set-setting! 'borrow '((ctywide 1 lwidea #f) (hiphog 0 lwhack special)) 0.0 0) (want-display-level *load-state* 'ctyport #f) (want-display-level *load-state* 'ctywide #f) - (set! (-> self speech-time) (-> self clock frame-counter)) + (set! (-> self speech-time) (current-time)) (if (not (task-node-closed? (game-task-node city-whack-resolution))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) ) @@ -2264,7 +2258,7 @@ ) ) ) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (ja-blend-eval) (suspend) (ja :num! (seek!)) @@ -2285,7 +2279,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (suspend) (ja :num! (seek!)) ) @@ -2298,7 +2292,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (suspend) (ja :num! (seek!)) ) @@ -2328,7 +2322,7 @@ :exit (-> (method-of-type whack-a-metal active) exit) :code (behavior ((arg0 int)) (sound-play "whack-swish") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dotimes (v1-3 3) (set! (-> self slot-buffer v1-3) (-> self slot-buffer (+ v1-3 1))) ) @@ -2557,7 +2551,7 @@ (set! (-> self score) (+ 50.0 (-> self score))) ) (else - (when (>= (- (-> self clock frame-counter) (-> self speech-time)) (seconds 12)) + (when (>= (- (current-time) (-> self speech-time)) (seconds 12)) (let ((v1-78 (whack-a-metal-method-29 self 3 3))) (cond ((zero? v1-78) @@ -2571,7 +2565,7 @@ ) ) ) - (set! (-> self speech-time) (-> self clock frame-counter)) + (set! (-> self speech-time) (current-time)) ) (process-spawn part-tracker @@ -2661,11 +2655,9 @@ ) ) ) - (s5-8 (-> self clock frame-counter)) + (s5-8 (current-time)) ) - (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) - (< (- (-> self clock frame-counter) s5-8) (seconds 2)) - ) + (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) (< (- (current-time) s5-8) (seconds 2))) (suspend) (ja :num! (loop!)) ) @@ -2736,11 +2728,9 @@ ) ) ) - (s5-8 (-> self clock frame-counter)) + (s5-8 (current-time)) ) - (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) - (< (- (-> self clock frame-counter) s5-8) (seconds 2)) - ) + (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) (< (- (current-time) s5-8) (seconds 2))) (suspend) (ja :num! (loop!)) ) diff --git a/goal_src/jak2/levels/intro/intro-obs.gc b/goal_src/jak2/levels/intro/intro-obs.gc index afe5e0d61f..cf10500c2b 100644 --- a/goal_src/jak2/levels/intro/intro-obs.gc +++ b/goal_src/jak2/levels/intro/intro-obs.gc @@ -52,9 +52,7 @@ (if (= (-> self path-u) 1.0) (go-virtual die) ) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self flit-timer))) - (the-as time-frame (-> self flit-interval)) - ) + (when (>= (- (current-time) (the-as int (-> self flit-timer))) (the-as time-frame (-> self flit-interval))) (let ((f28-0 (rand-vu-float-range -1.0 1.0)) (f30-0 (rand-vu-float-range -1.0 1.0)) (f0-1 (rand-vu-float-range 0.2 0.6)) @@ -64,7 +62,7 @@ (set! (-> self flit-factor) 0.0) (set! (-> self flit-interval) (the-as uint (the int (* 300.0 f0-1)))) ) - (set! (-> self flit-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self flit-timer) (the-as uint (current-time))) ) (none) ) @@ -247,7 +245,7 @@ This commonly includes things such as: (set! (-> self path-u) 0.0) (set! (-> self path-du) (rand-vu-float-range 0.15 0.32)) (set! (-> self z-rot) 0.0) - (set! (-> self flit-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self flit-timer) (the-as uint (current-time))) (set! (-> self flit-interval) (the-as uint 0)) (vector-reset! (-> self flit-prev-offset)) (vector-reset! (-> self flit-next-offset)) @@ -327,9 +325,9 @@ This commonly includes things such as: ) ) (let ((s5-1 (the int (* 300.0 (rand-vu-float-range 0.03 0.08)))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-0) s5-1) + (until (>= (- (current-time) s4-0) s5-1) (suspend) ) ) diff --git a/goal_src/jak2/levels/intro/intro-scenes.gc b/goal_src/jak2/levels/intro/intro-scenes.gc index 49af78beba..53666951cb 100644 --- a/goal_src/jak2/levels/intro/intro-scenes.gc +++ b/goal_src/jak2/levels/intro/intro-scenes.gc @@ -2192,8 +2192,8 @@ (lambda :behavior scene-player () (talker-spawn-func (-> *talker-speech* 123) self (target-pos 0) (the-as region #f)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 5)) (if (cpad-pressed? 0 square) (return #f) ) @@ -2256,8 +2256,8 @@ (set! (-> gp-0 scale-x) 1.0) (set! (-> gp-0 scale-y) 1.0) (when (and s5-0 (-> gp-0 tex)) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (seconds 5)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (seconds 5)) (let ((f0-2 1.0)) (cond ((< f30-0 2.0) @@ -2379,8 +2379,8 @@ ) ) (when (and s4-0 (-> gp-0 tex)) - (let ((s3-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-0) (seconds 8)) + (let ((s3-0 (current-time))) + (until (>= (- (current-time) s3-0) (seconds 8)) (let ((f0-6 1.0)) (cond ((< f30-0 2.0) diff --git a/goal_src/jak2/levels/landing_pad/castle-obs.gc b/goal_src/jak2/levels/landing_pad/castle-obs.gc index 88bb5287fd..2f2937e031 100644 --- a/goal_src/jak2/levels/landing_pad/castle-obs.gc +++ b/goal_src/jak2/levels/landing_pad/castle-obs.gc @@ -298,7 +298,7 @@ This commonly includes things such as: (local-vars (sv-608 symbol) (sv-624 symbol) (sv-640 (function vector cspace vector)) (sv-656 vector)) (when (and (logtest? (actor-option user17) (-> self fact options)) (not (-> self track-flag)) - (< (-> self lightning-timer) (-> self clock frame-counter)) + (< (-> self lightning-timer) (current-time)) ) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> *y-vector* quad)) @@ -357,9 +357,7 @@ This commonly includes things such as: (-> s4-2 ppointer) ) ) - (set! (-> self lightning-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.04 0.1)))) - ) + (set! (-> self lightning-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.04 0.1))))) ) ) ) @@ -513,8 +511,8 @@ This commonly includes things such as: (sound-play "lightning-node") (suspend) (logior! (-> self entity extra perm status) (entity-perm-status dead)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) @@ -551,7 +549,7 @@ This commonly includes things such as: :code (the-as (function none :behavior cas-electric-fence) sleep-code) :post (behavior () (when (not (-> self stop)) - (when (< (-> self next-spawn-time) (-> self clock frame-counter)) + (when (< (-> self next-spawn-time) (current-time)) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> *y-vector* quad)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) @@ -614,9 +612,7 @@ This commonly includes things such as: (t9-10 a0-21 a1-10 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) - (set! (-> self next-spawn-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.07 0.4)))) - ) + (set! (-> self next-spawn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.07 0.4))))) ) ) ) @@ -1762,8 +1758,8 @@ This commonly includes things such as: (sound-play "trapdoor") (suspend) (ja-channel-set! 0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -1949,16 +1945,10 @@ This commonly includes things such as: ) (defun cas-rot-blade-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (quaternion-rotate-local-y! - (-> arg1 quat) - (-> arg1 quat) - (* 606.8148 (the float (-> pp clock frame-counter))) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) - ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (* 606.8148 (the float (current-time)))) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) (defstate idle (cas-rot-blade) @@ -2257,11 +2247,11 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.6)) (let ((a0-1 *target*)) (if (and a0-1 (not (focus-test? a0-1 disable dead)) @@ -2270,7 +2260,7 @@ This commonly includes things such as: (go-virtual spawning) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -2291,20 +2281,20 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self spawn-count) 0) (set! (-> self spawn-count-total) 0) (set! (-> self player-dist) (-> self notice-dist)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.6)) (let ((a0-1 *target*)) (if (and a0-1 (not (logtest? (-> a0-1 focus-status) (focus-status disable dead)))) (set! (-> self player-dist) (vector-vector-distance (get-trans a0-1 0) (-> self root trans))) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -2319,8 +2309,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -2359,15 +2349,15 @@ This commonly includes things such as: ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (rand-vu-float-range 0.5 1.0)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (rand-vu-float-range 0.5 1.0)))) (suspend) ) ) ) (while (> (-> self spawn-count) 0) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.43)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.43)) (suspend) ) ) @@ -2388,8 +2378,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-4 0.0 0) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 2)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 2)) (suspend) ) ) @@ -2422,8 +2412,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-6 0.0 0) ) ) - (let ((gp-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-7) (seconds 1)) + (let ((gp-7 (current-time))) + (until (>= (- (current-time) gp-7) (seconds 1)) (suspend) ) ) @@ -2459,8 +2449,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek! 0.0)) ) - (let ((gp-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-10) (seconds 1)) + (let ((gp-10 (current-time))) + (until (>= (- (current-time) gp-10) (seconds 1)) (suspend) ) ) @@ -2504,8 +2494,8 @@ This commonly includes things such as: (label cfg-14) (not v1-28) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.51)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.51)) (suspend) ) ) @@ -2518,8 +2508,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-2 0.0 0) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1)) (suspend) ) ) @@ -2558,8 +2548,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 2.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 2.5)) (suspend) ) ) @@ -2580,7 +2570,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 512) + (stack-size-set! (-> obj main-thread) 512) ;; added (local-vars (sv-16 res-tag) (sv-32 res-tag)) (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) @@ -2686,7 +2676,7 @@ This commonly includes things such as: :virtual #t :code (the-as (function none :behavior lightning-ball) sleep-code) :post (behavior () - (when (>= (- (-> self clock frame-counter) (-> self timer)) (seconds 0.08)) + (when (>= (- (current-time) (-> self timer)) (seconds 0.08)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) (let ((f30-1 (* 182.04445 (rand-vu-float-range -20.0 20.0))) (f28-1 (* 182.04445 (rand-vu-float-range -180.0 180.0))) @@ -2722,7 +2712,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self timer) (-> self clock frame-counter)) + (set! (-> self timer) (current-time)) ) (none) ) @@ -2736,26 +2726,24 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) - (let ((v1-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-2 prim-core collide-as) (collide-spec obstacle)) - (set! (-> v1-2 prim-core action) (collide-action solid)) - (set-vector! (-> v1-2 local-sphere) 0.0 0.0 0.0 56320.0) - (set! (-> s4-0 total-prims) (the-as uint 1)) - (set! (-> s4-0 root-prim) v1-2) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (let ((v1-5 (-> s4-0 root-prim))) - (set! (-> s4-0 backup-collide-as) (-> v1-5 prim-core collide-as)) - (set! (-> s4-0 backup-collide-with) (-> v1-5 prim-core collide-with)) - ) - (set! (-> obj root-override) s4-0) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) + (let ((v1-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-2 prim-core collide-as) (collide-spec obstacle)) + (set! (-> v1-2 prim-core action) (collide-action solid)) + (set-vector! (-> v1-2 local-sphere) 0.0 0.0 0.0 56320.0) + (set! (-> s4-0 total-prims) (the-as uint 1)) + (set! (-> s4-0 root-prim) v1-2) ) - (process-drawable-from-entity! obj arg0) - (set! (-> obj timer) (-> pp clock frame-counter)) - (update-transforms (-> obj root-override)) - (go (method-of-object obj idle)) - (none) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (let ((v1-5 (-> s4-0 root-prim))) + (set! (-> s4-0 backup-collide-as) (-> v1-5 prim-core collide-as)) + (set! (-> s4-0 backup-collide-with) (-> v1-5 prim-core collide-with)) + ) + (set! (-> obj root-override) s4-0) ) + (process-drawable-from-entity! obj arg0) + (set! (-> obj timer) (current-time)) + (update-transforms (-> obj root-override)) + (go (method-of-object obj idle)) + (none) ) diff --git a/goal_src/jak2/levels/landing_pad/castle-part.gc b/goal_src/jak2/levels/landing_pad/castle-part.gc index 77e2c9d646..3ebb197279 100644 --- a/goal_src/jak2/levels/landing_pad/castle-part.gc +++ b/goal_src/jak2/levels/landing_pad/castle-part.gc @@ -393,18 +393,16 @@ ) (defun castle-green-dome-light-pulsate ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) - (with-pp - (let ((s5-0 lerp-scale) - (s4-0 32.0) - (s3-0 64.0) - (t9-0 sin) - (f0-0 3640.889) - (f1-1 (* 0.0033333334 (the float (-> pp clock frame-counter)))) + (let ((s5-0 lerp-scale) + (s4-0 32.0) + (s3-0 64.0) + (t9-0 sin) + (f0-0 3640.889) + (f1-1 (* 0.0033333334 (the float (current-time)))) + ) + (set! (-> arg2 coneradius) + (s5-0 s4-0 s3-0 (t9-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 360.0))) 360.0)))) -1.0 1.0) ) - (set! (-> arg2 coneradius) - (s5-0 s4-0 s3-0 (t9-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 360.0))) 360.0)))) -1.0 1.0) - ) - ) ) ) diff --git a/goal_src/jak2/levels/landing_pad/roboguard-level.gc b/goal_src/jak2/levels/landing_pad/roboguard-level.gc index 042fd93768..5df880034f 100644 --- a/goal_src/jak2/levels/landing_pad/roboguard-level.gc +++ b/goal_src/jak2/levels/landing_pad/roboguard-level.gc @@ -486,7 +486,7 @@ ) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -592,7 +592,7 @@ ) 0 (logior! (-> self focus-status) (focus-status dangerous)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (roboguard-level-method-185 self (the-as symbol 1)) (vector-z-quaternion! (-> self roll-dir) (-> self root-override2 quat)) (set! (-> self roll-timer) 0) @@ -635,10 +635,8 @@ ) 0 (nav-enemy-method-160 self) - (when (< (-> self roll-timer) (-> self clock frame-counter)) - (set! (-> self roll-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 3.0 5.0)))) - ) + (when (< (-> self roll-timer) (current-time)) + (set! (-> self roll-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 3.0 5.0))))) (let ((gp-2 (handle->process (-> self focus handle)))) (when (and gp-2 (and gp-2 @@ -1088,99 +1086,94 @@ ;; WARN: Return type mismatch object vs symbol. (defmethod enemy-method-76 roboguard-level ((obj roboguard-level) (arg0 process) (arg1 event-message-block)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (the-as - symbol - (cond - ((or (= (-> arg0 type) target) (not (logtest? (-> obj flags) 4))) - ((method-of-type nav-enemy enemy-method-76) obj arg0 arg1) - ) - (else - (when (!= (-> arg0 type) target) - (-> arg1 param 0) - (let* ((s3-0 arg0) - (s1-0 (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - (when (and s1-0 (logtest? (process-mask enemy) (-> s1-0 mask))) - (let ((s2-1 (vector-! - (new 'stack-no-clear 'vector) - (-> obj root-override2 trans) - (-> (the-as process-drawable s1-0) root trans) - ) - ) - ) - (new 'stack-no-clear 'vector) - 0.0 - (let ((s3-1 (new 'stack-no-clear 'vector))) - (vector-normalize! s2-1 1.0) - (let ((f0-3 - (- (vector-dot (-> obj root-override2 transv) s2-1) - (vector-dot (-> (the-as process-drawable s1-0) root transv) s2-1) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (the-as + symbol + (cond + ((or (= (-> arg0 type) target) (not (logtest? (-> obj flags) 4))) + ((method-of-type nav-enemy enemy-method-76) obj arg0 arg1) + ) + (else + (when (!= (-> arg0 type) target) + (-> arg1 param 0) + (let* ((s3-0 arg0) + (s1-0 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when (and s1-0 (logtest? (process-mask enemy) (-> s1-0 mask))) + (let ((s2-1 (vector-! + (new 'stack-no-clear 'vector) + (-> obj root-override2 trans) + (-> (the-as process-drawable s1-0) root trans) ) ) - (let ((a1-5 (-> obj nav state))) - (set! (-> s3-1 quad) (-> a1-5 velocity quad)) - ) - (let ((a0-16 s3-1)) - (let ((v1-20 s3-1)) - (let ((a1-9 (* -1.0 f0-3))) - (.mov vf7 a1-9) - ) - (.lvf vf5 (&-> s2-1 quad)) - (.lvf vf4 (&-> v1-20 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-16 quad) vf6) - ) - ) - (let ((a0-17 (-> obj nav state)) - (v1-22 s3-1) - ) - (set! (-> a0-17 velocity quad) (-> v1-22 quad)) - ) - 0 - (set! (-> obj speed) (vector-length s3-1)) - (let ((v1-28 (-> obj nav state))) - (set! (-> v1-28 speed) (-> obj speed)) - ) - 0 - (let ((v1-30 (-> obj nav))) - (set! (-> v1-30 target-speed) (-> obj speed)) - ) - 0 - (set! (-> obj roll-timer) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 3.0 5.0)))) - ) - (set! (-> obj roll-dir quad) (-> s3-1 quad)) ) - ) - (set! (-> obj roll-dir y) 0.0) - (vector-xz-normalize! (-> obj roll-dir) 1.0) - (let ((a0-22 (-> obj nav state)) - (v1-40 (-> obj roll-dir)) + (new 'stack-no-clear 'vector) + 0.0 + (let ((s3-1 (new 'stack-no-clear 'vector))) + (vector-normalize! s2-1 1.0) + (let ((f0-3 (- (vector-dot (-> obj root-override2 transv) s2-1) + (vector-dot (-> (the-as process-drawable s1-0) root transv) s2-1) + ) + ) + ) + (let ((a1-5 (-> obj nav state))) + (set! (-> s3-1 quad) (-> a1-5 velocity quad)) ) - (set! (-> a0-22 heading quad) (-> v1-40 quad)) + (let ((a0-16 s3-1)) + (let ((v1-20 s3-1)) + (let ((a1-9 (* -1.0 f0-3))) + (.mov vf7 a1-9) + ) + (.lvf vf5 (&-> s2-1 quad)) + (.lvf vf4 (&-> v1-20 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-16 quad) vf6) + ) + ) + (let ((a0-17 (-> obj nav state)) + (v1-22 s3-1) + ) + (set! (-> a0-17 velocity quad) (-> v1-22 quad)) + ) + 0 + (set! (-> obj speed) (vector-length s3-1)) + (let ((v1-28 (-> obj nav state))) + (set! (-> v1-28 speed) (-> obj speed)) + ) + 0 + (let ((v1-30 (-> obj nav))) + (set! (-> v1-30 target-speed) (-> obj speed)) + ) + 0 + (set! (-> obj roll-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 3.0 5.0))))) + (set! (-> obj roll-dir quad) (-> s3-1 quad)) ) - 0 - (logior! (-> obj flags) 64) ) + (set! (-> obj roll-dir y) 0.0) + (vector-xz-normalize! (-> obj roll-dir) 1.0) + (let ((a0-22 (-> obj nav state)) + (v1-40 (-> obj roll-dir)) + ) + (set! (-> a0-22 heading quad) (-> v1-40 quad)) + ) + 0 + (logior! (-> obj flags) 64) ) - (send-event arg0 'touch (-> arg1 param 0)) ) + (send-event arg0 'touch (-> arg1 param 0)) ) ) ) diff --git a/goal_src/jak2/levels/mars_tomb/left/chase/target-indax.gc b/goal_src/jak2/levels/mars_tomb/left/chase/target-indax.gc index a6498227fb..1beb1d8e16 100644 --- a/goal_src/jak2/levels/mars_tomb/left/chase/target-indax.gc +++ b/goal_src/jak2/levels/mars_tomb/left/chase/target-indax.gc @@ -279,7 +279,7 @@ (set! (-> self control bend-target) 0.0) (target-collide-set! 'indax 0.0) (set! (-> self fact-override health) (-> self fact-override health-max)) - (set! (-> self indax indax-start-time) (-> self clock frame-counter)) + (set! (-> self indax indax-start-time) (current-time)) (set! (-> self indax art-group-backup) (-> self draw art-group)) (set! (-> self draw art-group) (-> self sidekick 0 draw art-group)) (logior! (-> self draw status) (draw-control-status no-draw-bounds2)) @@ -586,7 +586,7 @@ (defstate target-indax-walk (target) :event target-indax-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *indax-walk-mods*) (none) ) @@ -648,7 +648,7 @@ (let ((f26-0 0.0) (f30-0 0.0) (f28-0 0.0) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (let ((v1-3 (ja-group))) (cond @@ -700,12 +700,12 @@ (suspend) (let ((f26-1 (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0))) (cond - ((>= (- (-> self clock frame-counter) gp-0) (seconds 5)) - (set! gp-0 (-> self clock frame-counter)) + ((>= (- (current-time) gp-0) (seconds 5)) + (set! gp-0 (current-time)) ) - ((>= (- (-> self clock frame-counter) gp-0) (seconds 2.5)) + ((>= (- (current-time) gp-0) (seconds 2.5)) ) - ((>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + ((>= (- (current-time) gp-0) (seconds 1)) (set! f28-0 (seek f28-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) ) (else @@ -902,7 +902,7 @@ (defstate target-indax-double-jump (target) :event target-indax-jump-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (if (!= (-> self control mod-surface) *slide-jump-mods*) @@ -1037,7 +1037,7 @@ (defstate target-indax-trip (target) :event target-indax-jump-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (none) @@ -1210,13 +1210,13 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-indax-falling #f) @@ -1226,14 +1226,12 @@ (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) - (seconds 0.05) - ) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -1263,7 +1261,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) f28-0))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -1273,7 +1271,7 @@ ) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1328,7 +1326,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (let ((gp-0 (-> self attack-info))) (let ((s5-0 (new 'stack-no-clear 'vector))) @@ -1376,7 +1374,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -1384,8 +1382,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) @@ -1561,7 +1559,7 @@ ) (set! (-> self control transv quad) (the-as uint128 0)) (initialize! (-> self game) 'life (the-as game-save #f) (the-as string #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) (none) ) diff --git a/goal_src/jak2/levels/mars_tomb/monster-frog.gc b/goal_src/jak2/levels/mars_tomb/monster-frog.gc index 39efd0d998..3dbbfea490 100644 --- a/goal_src/jak2/levels/mars_tomb/monster-frog.gc +++ b/goal_src/jak2/levels/mars_tomb/monster-frog.gc @@ -539,7 +539,7 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (nav-enemy-method-163 self) (go-stare2 self) ) @@ -728,7 +728,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior monster-frog) enemy-event-handler) :enter (behavior ((arg0 vector)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) diff --git a/goal_src/jak2/levels/mars_tomb/tomb-beetle.gc b/goal_src/jak2/levels/mars_tomb/tomb-beetle.gc index 0db4ed9bc8..22d7009223 100644 --- a/goal_src/jak2/levels/mars_tomb/tomb-beetle.gc +++ b/goal_src/jak2/levels/mars_tomb/tomb-beetle.gc @@ -193,44 +193,42 @@ (defmethod general-event-handler tomb-beetle ((obj tomb-beetle) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 (new 'static 'array int64 2 -1 0))) - (case arg2 - (('cue-chase) - (set! (-> obj round) (-> arg3 param 0)) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('attack) - (when (and (-> obj next-state) (let ((a1-4 (-> obj next-state name))) - (or (= a1-4 'active) (= a1-4 'stand)) - ) - ) - (-> arg3 param 1) - (cond - ((logtest? (-> obj fact-info-override enemy-options) (ash 1 (+ (-> obj round) 8))) - (set! (-> v1-0 0) (the-as int (-> pp clock frame-counter))) - (go (method-of-object obj go-to-door)) - ) - ((>= (- (-> pp clock frame-counter) (the-as time-frame (-> v1-0 0))) (seconds 0.5)) - (logior! (-> obj flags) 1) - (go (method-of-object obj die)) - ) - ) - ) - ) - (('die) + (let ((v1-0 (new 'static 'array int64 2 -1 0))) + (case arg2 + (('cue-chase) + (set! (-> obj round) (-> arg3 param 0)) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('attack) + (when (and (-> obj next-state) (let ((a1-4 (-> obj next-state name))) + (or (= a1-4 'active) (= a1-4 'stand)) + ) + ) + (-> arg3 param 1) (cond - ((and (-> obj next-state) (= (-> obj next-state name) 'key)) - (go (method-of-object obj explode)) + ((logtest? (-> obj fact-info-override enemy-options) (ash 1 (+ (-> obj round) 8))) + (set! (-> v1-0 0) (the-as int (current-time))) + (go (method-of-object obj go-to-door)) ) - ((not (and (-> obj next-state) (= (-> obj next-state name) 'dormant))) - (go (method-of-object obj fly-away)) + ((>= (- (current-time) (the-as time-frame (-> v1-0 0))) (seconds 0.5)) + (logior! (-> obj flags) 1) + (go (method-of-object obj die)) ) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('die) + (cond + ((and (-> obj next-state) (= (-> obj next-state name) 'key)) + (go (method-of-object obj explode)) ) + ((not (and (-> obj next-state) (= (-> obj next-state name) 'dormant))) + (go (method-of-object obj fly-away)) + ) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -395,7 +393,7 @@ (logclear! (-> v1-1 settings flags) (shadow-flags disable-draw)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -407,12 +405,12 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (* 300.0 (rand-vu-float-range 1.1 2.3)))) (f30-1 (rand-vu-float-range 0.8 1.4)) ) (ja-no-eval :group! tomb-beetle-wiggle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-1)) ) @@ -517,7 +515,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior tomb-beetle) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -531,7 +529,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-virtual active) ) (none) @@ -590,15 +588,13 @@ (none) ) :code (behavior () - (set! (-> self state-timeout) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.0 0.8)))) - ) + (set! (-> self state-timeout) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.0 0.8))))) (let ((v1-6 (ja-group))) (cond ((and v1-6 (= v1-6 tomb-beetle-stand0-ja)) (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (if (>= (-> self clock frame-counter) (-> self state-timeout)) + (if (>= (current-time) (-> self state-timeout)) (goto cfg-20) ) (suspend) @@ -616,7 +612,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (if (>= (-> self clock frame-counter) (-> self state-timeout)) + (if (>= (current-time) (-> self state-timeout)) (goto cfg-20) ) (suspend) @@ -804,8 +800,8 @@ (-> gp-1 ppointer) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) diff --git a/goal_src/jak2/levels/mars_tomb/tomb-obs.gc b/goal_src/jak2/levels/mars_tomb/tomb-obs.gc index f919344e4c..75e866f0eb 100644 --- a/goal_src/jak2/levels/mars_tomb/tomb-obs.gc +++ b/goal_src/jak2/levels/mars_tomb/tomb-obs.gc @@ -426,8 +426,8 @@ This commonly includes things such as: ) (defbehavior position-spikes tomb-stair-block ((arg0 int)) - (let ((s5-0 (and (nonzero? arg0) (< (mod (-> self clock frame-counter) arg0) (/ arg0 2)))) - (s4-0 (and (nonzero? arg0) (< (mod (+ (-> self clock frame-counter) (seconds 0.75)) arg0) (/ arg0 2)))) + (let ((s5-0 (and (nonzero? arg0) (< (mod (current-time) arg0) (/ arg0 2)))) + (s4-0 (and (nonzero? arg0) (< (mod (+ (current-time) (seconds 0.75)) arg0) (/ arg0 2)))) ) (dotimes (s3-0 4) (let ((f0-1 (seek @@ -494,7 +494,7 @@ This commonly includes things such as: :virtual #t :enter (behavior () (set! (-> self camera-state) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (task-node-close! (game-task-node tomb-poles-block)) (none) ) @@ -515,7 +515,7 @@ This commonly includes things such as: (remove-setting! 'string-startup-vector) (set! (-> self camera-state) 3) ) - ((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 8))) + ((and (= (-> self camera-state) 1) (>= (- (current-time) (-> self state-time)) (seconds 8))) (set-setting! 'interp-time 'abs 0.0 0) (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) (remove-setting! 'entity-name) @@ -538,8 +538,8 @@ This commonly includes things such as: (set! (-> self camera-state) 1) (ja-channel-push! 1 (seconds 2)) (ja :group! (-> self draw art-group data 3) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (lift-pool 0) (drop-pool 1) (suspend) @@ -626,7 +626,7 @@ This commonly includes things such as: (set! (-> self camera-state) 3) ) ) - ((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4))) + ((and (= (-> self camera-state) 1) (>= (- (current-time) (-> self state-time)) (seconds 4))) (set-setting! 'interp-time 'abs 0.0 0) (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) (remove-setting! 'entity-name) @@ -657,7 +657,7 @@ This commonly includes things such as: (set! v1-1 (or (not *target*) (process-grab? *target* #f))) ) (set-setting! 'entity-name "camera-170" 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self camera-state) 1) (ja-channel-push! 1 (seconds 2)) (until #f @@ -1162,7 +1162,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1266,7 +1266,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) @@ -1516,7 +1516,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (none) ) @@ -1524,9 +1524,9 @@ This commonly includes things such as: (set! (-> self flags) (logand -2 (-> self flags))) (plat-trans) (if (not (logtest? (-> self flags) 1)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) (if (= (-> self path-pos) 0.0) (set! (-> self dest-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -1585,7 +1585,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1597,7 +1597,7 @@ This commonly includes things such as: ) :trans (behavior () (plat-trans) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (cond ((= (-> self path-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -1831,7 +1831,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1863,7 +1863,7 @@ This commonly includes things such as: (set! sv-96 s4-0) (let ((s1-0 s5-1)) (let ((s0-1 (vector-! (new 'stack-no-clear 'vector) gp-2 s5-1))) - (let ((v1-13 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 300.0))) + (let ((v1-13 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self state-time))) 0.0 300.0))) (.mov vf7 v1-13) ) (.lvf vf5 (&-> s0-1 quad)) @@ -1893,7 +1893,7 @@ This commonly includes things such as: (defstate doors-open (tomb-sphinx) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1950,7 +1950,7 @@ This commonly includes things such as: (.mov.vf vf6 vf0 :mask #b1000) (.sub.vf vf6 vf4 vf5 :mask #b111) (.svf (&-> sv-96 quad) vf6) - (let ((v1-15 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 930.0))) + (let ((v1-15 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self state-time))) 0.0 930.0))) (.mov vf7 v1-15) ) (.lvf vf5 (&-> sv-96 quad)) diff --git a/goal_src/jak2/levels/mars_tomb/tomb-scenes.gc b/goal_src/jak2/levels/mars_tomb/tomb-scenes.gc index 79ec9843cd..046b5b2333 100644 --- a/goal_src/jak2/levels/mars_tomb/tomb-scenes.gc +++ b/goal_src/jak2/levels/mars_tomb/tomb-scenes.gc @@ -346,12 +346,12 @@ (let ((v1-0 #f) (sub-change-time (-> self subtitle-change-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self speed-press-time)) 0) + (when (>= (- (current-time) (-> self speed-press-time)) 0) (set! sub-change-time (logxor sub-change-time 2048)) - (set! (-> self speed-press-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self speed-press-time) (+ (current-time) (seconds 0.5))) (set! v1-0 #t) ) - (when (>= (- (-> self clock frame-counter) (-> self unknown-time)) 0) + (when (>= (- (current-time) (-> self unknown-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -363,9 +363,7 @@ ) ) ) - (set! (-> self unknown-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) - ) + (set! (-> self unknown-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) (set! v1-0 #t) ) (when v1-0 diff --git a/goal_src/jak2/levels/mars_tomb/tomb-water.gc b/goal_src/jak2/levels/mars_tomb/tomb-water.gc index a2e276dda3..bf04fd7e5d 100644 --- a/goal_src/jak2/levels/mars_tomb/tomb-water.gc +++ b/goal_src/jak2/levels/mars_tomb/tomb-water.gc @@ -130,8 +130,8 @@ (none) ) :code (behavior ((arg0 time-frame)) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) arg0) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) arg0) (suspend) ) ) @@ -507,35 +507,33 @@ This commonly includes things such as: (defmethod tomb-beetle-button-method-39 tomb-beetle-button ((obj tomb-beetle-button)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj speech-timer)) (seconds 6)) - (let ((s5-0 (rand-vu-int-count-excluding 4 (the-as int (-> obj speech-mask))))) - (let* ((v1-4 s5-0) - (t0-0 (cond - ((zero? v1-4) - "ora011" - ) - ((= v1-4 1) - "ora012" - ) - ((= v1-4 2) - "ora013" - ) - ((= v1-4 3) - "ora014" - ) - ) + (when (>= (- (current-time) (-> obj speech-timer)) (seconds 6)) + (let ((s5-0 (rand-vu-int-count-excluding 4 (the-as int (-> obj speech-mask))))) + (let* ((v1-4 s5-0) + (t0-0 (cond + ((zero? v1-4) + "ora011" + ) + ((= v1-4 1) + "ora012" + ) + ((= v1-4 2) + "ora013" + ) + ((= v1-4 3) + "ora014" + ) ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) t0-0 -99.0 0) - ) - (set! (-> obj speech-mask) (the-as uint (ash 1 s5-0))) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) t0-0 -99.0 0) ) - (set! (-> obj speech-timer) (-> pp clock frame-counter)) + (set! (-> obj speech-mask) (the-as uint (ash 1 s5-0))) ) - 0 - (none) + (set! (-> obj speech-timer) (current-time)) ) + 0 + (none) ) (defstate going-down (tomb-beetle-button) @@ -589,7 +587,7 @@ This commonly includes things such as: (t9-0) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (when (>= (- (current-time) (-> self state-time)) (seconds 4)) (if (and *target* (focus-test? *target* grabbed)) (process-release? *target*) ) @@ -914,7 +912,7 @@ This commonly includes things such as: (sv-160 int) (sv-176 (function vector vector float)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self plat-idx) 0) (dotimes (gp-0 (-> self plat-count)) (if (nonzero? (-> self plat gp-0)) @@ -987,8 +985,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) @@ -1001,14 +999,14 @@ This commonly includes things such as: :virtual #t :event tomb-plat-simon-handler :enter (behavior () - (set! (-> self state-time) (+ (-> self clock frame-counter) (seconds -1))) + (set! (-> self state-time) (+ (current-time) (seconds -1))) (set! (-> self plat-idx) 0) 0 (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) (if (< (-> self plat-idx) (-> self plat-seq-count)) (send-event (handle->process (-> self plat (-> self plat-seq (-> self plat-idx)))) 'blink) ) @@ -1139,7 +1137,7 @@ This commonly includes things such as: (defbehavior tomb-simon-block-trans tomb-simon-block () (when (logtest? (-> self flags) (simon-block-flags sbf0)) - (when (>= (-> self clock frame-counter) (-> self blink-timer 1)) + (when (>= (current-time) (-> self blink-timer 1)) (cond ((logtest? (-> self flags) (simon-block-flags sbf1)) (set! (-> self draw color-mult quad) (-> self color quad)) @@ -1150,9 +1148,9 @@ This commonly includes things such as: ) ) (logxor! (-> self flags) (simon-block-flags sbf1)) - (set! (-> self blink-timer 1) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self blink-timer 1) (+ (current-time) (seconds 0.2))) ) - (when (>= (- (-> self clock frame-counter) (-> self blink-timer 0)) (seconds 1.2)) + (when (>= (- (current-time) (-> self blink-timer 0)) (seconds 1.2)) (logclear! (-> self flags) (simon-block-flags sbf0)) (set! (-> self draw color-mult quad) (-> self color quad)) ) @@ -1204,7 +1202,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self flags) (simon-block-flags sbf0 sbf1 sbf2 sbf5)) (set! (-> self move-rate) 122880.0) (none) @@ -1212,7 +1210,7 @@ This commonly includes things such as: :trans tomb-simon-block-trans :code (the-as (function none :behavior tomb-simon-block) sleep-code) :post (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) + (if (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (+ (* 0.1 (the float (-> self order))) (* 0.015 (the float (-> self my-idx)))))) ) (tomb-simon-block-post) @@ -1233,7 +1231,7 @@ This commonly includes things such as: (go-virtual idle) ) (('touch 'ridden 'bonk 'edge-grabbed) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (when (logtest? (-> self flags) (simon-block-flags sbf4)) (let* ((gp-0 *target*) (a0-10 (if (type? gp-0 process-focusable) @@ -1280,14 +1278,14 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self flags) (simon-block-flags sbf4)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (send-event (ppointer->process (-> self parent)) 'die-but (-> self my-idx)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (sound-play "tomb-simon-last") (go-virtual die) ) @@ -1346,7 +1344,7 @@ This commonly includes things such as: (go-virtual temporary) ) (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1355,7 +1353,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (none) ) :trans (behavior () @@ -1370,7 +1368,7 @@ This commonly includes things such as: (a0-3 (-> self root-override trans)) ) (when (and (or (< 16384.0 (fabs (- (-> a0-3 x) (-> v1-2 x)))) (< 16384.0 (fabs (- (-> a0-3 z) (-> v1-2 z))))) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.25)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.25)) ) (when (= (-> self next-idx) -1) (when (< (-> *event-queue* length) (-> *event-queue* allocated-length)) @@ -1412,7 +1410,7 @@ This commonly includes things such as: (('ridden) (when (not (logtest? (-> self flags) (simon-block-flags sbf2))) (logior! (-> self flags) (simon-block-flags sbf2)) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1428,7 +1426,7 @@ This commonly includes things such as: ) :trans (behavior () (if (and (logtest? (-> self flags) (simon-block-flags sbf2)) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) ) (go-virtual wobble-die) ) @@ -1472,14 +1470,14 @@ This commonly includes things such as: :virtual #t :code (behavior () (set! (-> self move-rate) (* 4096.0 (rand-vu-float-range 0.5 1.5))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.25)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.25)) (suspend) ) ) (logclear! (-> self root-override root-prim prim-core action) (collide-action rideable)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -1498,12 +1496,10 @@ This commonly includes things such as: ;; WARN: Return type mismatch time-frame vs none. (defmethod set-blink-timers! tomb-simon-block ((obj tomb-simon-block)) - (with-pp - (logior! (-> obj flags) (simon-block-flags sbf0 sbf1)) - (set! (-> obj blink-timer 0) (-> pp clock frame-counter)) - (set! (-> obj blink-timer 1) (-> pp clock frame-counter)) - (none) - ) + (logior! (-> obj flags) (simon-block-flags sbf0 sbf1)) + (set! (-> obj blink-timer 0) (current-time)) + (set! (-> obj blink-timer 1) (current-time)) + (none) ) (defmethod get-art-group tomb-simon-block ((obj tomb-simon-block)) @@ -1910,8 +1906,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.45)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.45)) (suspend) ) ) @@ -2020,7 +2016,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self pat-entry-index) 0) (set-vector! (-> self draw color-mult) 0.9 0.9 0.9 1.0) (let ((gp-0 (-> self actor-group 0))) @@ -2063,8 +2059,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -2077,18 +2073,18 @@ This commonly includes things such as: 0.0 (+ (-> (the-as (pointer int32) (+ (the-as uint (-> self pat-tbl)) (* (-> self pat-index) 4)))) 18) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.2)) (suspend) ) ) (process-grab? *target* #f) - (let ((gp-2 (-> self clock frame-counter)) + (let ((gp-2 (current-time)) (s5-0 540) (f30-0 1.0) ) (ja-no-eval :group! (-> self draw art-group data 4) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-2) s5-0) + (until (>= (- (current-time) gp-2) s5-0) (suspend) (ja :num! (loop! f30-0)) ) @@ -2385,10 +2381,10 @@ This commonly includes things such as: (until #f (set! (-> self can-exit-running?) #f) (let ((gp-0 0) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s5-0) (-> self on-duration)) - (when (< (-> self harmless-time) (-> self clock frame-counter)) + (until (>= (- (current-time) s5-0) (-> self on-duration)) + (when (< (-> self harmless-time) (current-time)) (tomb-water-trap-method-22 self) (dotimes (s4-0 (+ (-> self path curve num-cverts) -1)) (let ((s3-0 (get-point-in-path! (-> self path) (new 'stack-no-clear 'vector) (the float s4-0) 'interp)) @@ -2430,18 +2426,18 @@ This commonly includes things such as: ) (set! (-> self can-exit-running?) #t) (let ((gp-1 90)) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) gp-1) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) gp-1) (suspend) ) ) (let ((s5-2 #f) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) + (until (>= (- (current-time) s4-2) (the-as time-frame (- (- (-> self sync period) (the-as uint (-> self on-duration))) (the-as uint gp-1))) ) - (when (and (not s5-2) (>= (- (-> self clock frame-counter) s4-2) (seconds 0.3))) + (when (and (not s5-2) (>= (- (current-time) s4-2) (seconds 0.3))) (set! s5-2 #t) (set-tombc-electricity-scale! 0.0) ) @@ -2518,7 +2514,7 @@ This commonly includes things such as: (set! (-> a1-5 param 1) (the-as uint a0-17)) ) (if (send-event-function (-> s4-1 cshape process) a1-5) - (set! (-> obj harmless-time) (+ (-> pp clock frame-counter) (seconds 3))) + (set! (-> obj harmless-time) (+ (current-time) (seconds 3))) ) ) ) @@ -2700,11 +2696,11 @@ This commonly includes things such as: (defstate open (tomb-smash-door) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self timeout)) (let* ((s5-0 *target*) (gp-0 (if (type? s5-0 process-focusable) s5-0 diff --git a/goal_src/jak2/levels/mars_tomb/widow-baron.gc b/goal_src/jak2/levels/mars_tomb/widow-baron.gc index 7517d207cb..579fab0a6e 100644 --- a/goal_src/jak2/levels/mars_tomb/widow-baron.gc +++ b/goal_src/jak2/levels/mars_tomb/widow-baron.gc @@ -129,7 +129,7 @@ (defmethod widow-rand-vector-method-10 widow-rand-vector ((obj widow-rand-vector)) (with-pp (set! (-> obj timer) - (- (the-as time-frame (-> obj timer)) (- (-> pp clock frame-counter) (-> pp clock old-frame-counter))) + (- (the-as time-frame (-> obj timer)) (- (current-time) (-> pp clock old-frame-counter))) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -360,84 +360,82 @@ ) (defmethod baron-pod-method-21 baron-pod ((obj baron-pod) (arg0 symbol)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj red-tip-change-time)) 0) - (set! (-> obj alt-red-tip-on) (not (-> obj alt-red-tip-on))) - (set! (-> obj red-tip-change-time) (+ (-> pp clock frame-counter) (seconds 0.5))) - (set! arg0 #t) - ) - (when (>= (- (-> pp clock frame-counter) (-> obj blink-time)) 0) - (set! (-> obj blink-mask) 0) - (dotimes (s5-0 10) - (let* ((f30-0 0.5) - (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-18 (the-as number (logior #x3f800000 v1-17))) - ) - (if (< f30-0 (+ -1.0 (the-as float v1-18))) - (logior! (-> obj blink-mask) (ash 1 s5-0)) - ) - ) - ) - (set! (-> obj blink-time) (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) - (set! arg0 #t) - ) - (when arg0 - (remove-from-process *part-engine* obj) - (add-connection *part-engine* obj 13 obj 3264 (new 'static 'vector :w 819200.0)) - (add-connection *part-engine* obj 14 obj 3264 (new 'static 'vector :w 819200.0)) - (if (-> obj alt-red-tip-on) - (add-connection *part-engine* obj 5 obj 3251 (new 'static 'vector :w 819200.0)) - (add-connection *part-engine* obj 6 obj 3251 (new 'static 'vector :w 819200.0)) - ) - (let ((s5-2 (-> obj blink-mask))) - (if (logtest? s5-2 1) - (add-connection *part-engine* obj 8 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 2) - (add-connection *part-engine* obj 9 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 4) - (add-connection *part-engine* obj 10 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 8) - (add-connection *part-engine* obj 11 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 16) - (add-connection *part-engine* obj 12 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 32) - (add-connection *part-engine* obj 15 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 64) - (add-connection *part-engine* obj 16 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 128) - (add-connection *part-engine* obj 17 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 256) - (add-connection *part-engine* obj 18 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 512) - (add-connection *part-engine* obj 19 obj 3252 (new 'static 'vector :w 819200.0)) - ) - ) - (cond - ((-> obj has-stone) - (add-connection *part-engine* obj 4 obj 3258 (new 'static 'vector :y 4096.0 :w 819200.0)) - (add-connection *part-engine* obj 4 obj 3259 (new 'static 'vector :y 4096.0 :w 819200.0)) - ) - (else - (add-connection *part-engine* obj 4 obj 3256 (new 'static 'vector :y 4096.0 :w 819200.0)) - (add-connection *part-engine* obj 4 obj 3257 (new 'static 'vector :y 4096.0 :w 819200.0)) - ) - ) - ) - (if (-> obj has-stone) - (spawn (-> obj part) (-> obj root trans)) - ) - 0 - (none) + (when (>= (- (current-time) (-> obj red-tip-change-time)) 0) + (set! (-> obj alt-red-tip-on) (not (-> obj alt-red-tip-on))) + (set! (-> obj red-tip-change-time) (+ (current-time) (seconds 0.5))) + (set! arg0 #t) ) + (when (>= (- (current-time) (-> obj blink-time)) 0) + (set! (-> obj blink-mask) 0) + (dotimes (s5-0 10) + (let* ((f30-0 0.5) + (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-18 (the-as number (logior #x3f800000 v1-17))) + ) + (if (< f30-0 (+ -1.0 (the-as float v1-18))) + (logior! (-> obj blink-mask) (ash 1 s5-0)) + ) + ) + ) + (set! (-> obj blink-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) + (set! arg0 #t) + ) + (when arg0 + (remove-from-process *part-engine* obj) + (add-connection *part-engine* obj 13 obj 3264 (new 'static 'vector :w 819200.0)) + (add-connection *part-engine* obj 14 obj 3264 (new 'static 'vector :w 819200.0)) + (if (-> obj alt-red-tip-on) + (add-connection *part-engine* obj 5 obj 3251 (new 'static 'vector :w 819200.0)) + (add-connection *part-engine* obj 6 obj 3251 (new 'static 'vector :w 819200.0)) + ) + (let ((s5-2 (-> obj blink-mask))) + (if (logtest? s5-2 1) + (add-connection *part-engine* obj 8 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 2) + (add-connection *part-engine* obj 9 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 4) + (add-connection *part-engine* obj 10 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 8) + (add-connection *part-engine* obj 11 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 16) + (add-connection *part-engine* obj 12 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 32) + (add-connection *part-engine* obj 15 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 64) + (add-connection *part-engine* obj 16 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 128) + (add-connection *part-engine* obj 17 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 256) + (add-connection *part-engine* obj 18 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 512) + (add-connection *part-engine* obj 19 obj 3252 (new 'static 'vector :w 819200.0)) + ) + ) + (cond + ((-> obj has-stone) + (add-connection *part-engine* obj 4 obj 3258 (new 'static 'vector :y 4096.0 :w 819200.0)) + (add-connection *part-engine* obj 4 obj 3259 (new 'static 'vector :y 4096.0 :w 819200.0)) + ) + (else + (add-connection *part-engine* obj 4 obj 3256 (new 'static 'vector :y 4096.0 :w 819200.0)) + (add-connection *part-engine* obj 4 obj 3257 (new 'static 'vector :y 4096.0 :w 819200.0)) + ) + ) + ) + (if (-> obj has-stone) + (spawn (-> obj part) (-> obj root trans)) + ) + 0 + (none) ) (defstate idle (baron-pod) diff --git a/goal_src/jak2/levels/mars_tomb/widow-extras.gc b/goal_src/jak2/levels/mars_tomb/widow-extras.gc index d4d506d9bd..12f0ccc64f 100644 --- a/goal_src/jak2/levels/mars_tomb/widow-extras.gc +++ b/goal_src/jak2/levels/mars_tomb/widow-extras.gc @@ -703,7 +703,7 @@ This commonly includes things such as: ) ) (('fizzle) - (let* ((gp-1 (-> self clock frame-counter)) + (let* ((gp-1 (current-time)) (f30-1 600.0) (v1-34 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-35 (the-as number (logior #x3f800000 v1-34))) @@ -745,7 +745,7 @@ This commonly includes things such as: ) ) (('fizzle) - (let* ((gp-1 (-> self clock frame-counter)) + (let* ((gp-1 (current-time)) (f30-0 600.0) (v1-34 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-35 (the-as number (logior #x3f800000 v1-34))) @@ -761,13 +761,11 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-back-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (and (nonzero? (-> self fizzle-timer)) - (>= (- (-> self clock frame-counter) (-> self fizzle-timer)) (seconds 3)) - ) + (if (and (nonzero? (-> self fizzle-timer)) (>= (- (current-time) (-> self fizzle-timer)) (seconds 3))) (go-virtual explode) ) (set! (-> self x-rotate) (+ 1092.2667 (-> self x-rotate))) @@ -775,7 +773,7 @@ This commonly includes things such as: (widow-bomb-method-34 self) (spawn-with-cspace (-> self part) (-> self node-list data 3)) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual explode) ) (else @@ -804,7 +802,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-back-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (initialize (-> self impact) self @@ -819,16 +817,14 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (nonzero? (-> self fizzle-timer)) - (>= (- (-> self clock frame-counter) (-> self fizzle-timer)) (seconds 3)) - ) + (if (and (nonzero? (-> self fizzle-timer)) (>= (- (current-time) (-> self fizzle-timer)) (seconds 3))) (go-virtual explode) ) (set! (-> self x-rotate) (+ 4369.067 (-> self x-rotate))) (set! (-> self y-rotate) (+ 3458.8445 (-> self y-rotate))) (widow-bomb-method-34 self) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self traj time))) + ((>= (- (current-time) (-> self state-time)) (the int (-> self traj time))) (compute-transv-at-time (-> self traj) (-> self traj time) (-> self root-override transv)) (vector-float*! (-> self root-override transv) (-> self root-override transv) 300.0) (go-virtual freefall) @@ -836,11 +832,11 @@ This commonly includes things such as: (else (compute-trans-at-time (-> self traj) - (the float (- (-> self clock frame-counter) (-> self state-time))) + (the float (- (current-time) (-> self state-time))) (-> self root-override trans) ) (update-from-cspace (-> self impact)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) 1) + (when (>= (- (current-time) (-> self state-time)) 1) (let* ((a1-4 (new 'stack-no-clear 'collide-query)) (f0-10 (impact-control-method-11 (-> self impact) @@ -854,7 +850,7 @@ This commonly includes things such as: (set! (-> self root-override trans quad) (-> self impact trans 1 quad)) (compute-transv-at-time (-> self traj) - (the float (- (-> self clock frame-counter) (-> self state-time))) + (the float (- (current-time) (-> self state-time))) (-> self root-override transv) ) (vector-float*! (-> self root-override transv) (-> self root-override transv) 300.0) @@ -909,12 +905,12 @@ This commonly includes things such as: ) 0 (sound-play "w-bomb-explode") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + ((< (- (current-time) (-> self state-time)) (seconds 2)) (let ((a1-0 (new 'stack-no-clear 'vector))) (set! (-> a1-0 quad) (-> self root-override trans quad)) (set! (-> a1-0 y) (+ 2048.0 (-> a1-0 y))) @@ -932,59 +928,55 @@ This commonly includes things such as: ) (defmethod widow-bomb-method-32 widow-bomb ((obj widow-bomb)) - (with-pp - (spawn-with-cspace (-> obj part) (-> obj node-list data 3)) - (sound-play "w-bomb-steam" :id (the-as sound-id (-> obj steam-sound)) :position (-> obj root-override trans)) - (let ((s5-0 (the-as int (- (-> pp clock frame-counter) (-> obj state-time))))) - (if (nonzero? (-> obj fizzle-timer)) - (set! s5-0 (max - (the-as time-frame s5-0) - (- (seconds 12) (- (seconds 3) (- (-> pp clock frame-counter) (-> obj fizzle-timer)))) - ) - ) - ) - (if (< 3600 s5-0) - (go (method-of-object obj explode)) - ) - (when (< 3000 s5-0) - (spawn-with-cspace (-> obj warning-spark-part) (-> obj node-list data 3)) - (when (not (-> obj firework-sound-played)) - (set! (-> obj firework-sound-played) #t) - (sound-play "w-bomb-firewrks") - ) + (spawn-with-cspace (-> obj part) (-> obj node-list data 3)) + (sound-play "w-bomb-steam" :id (the-as sound-id (-> obj steam-sound)) :position (-> obj root-override trans)) + (let ((s5-0 (the-as int (- (current-time) (-> obj state-time))))) + (if (nonzero? (-> obj fizzle-timer)) + (set! s5-0 + (max (the-as time-frame s5-0) (- (seconds 12) (- (seconds 3) (- (current-time) (-> obj fizzle-timer))))) + ) ) - (let* ((v1-27 (* s5-0 s5-0)) - (a0-10 3600) - (v1-28 (- (* a0-10 a0-10) v1-27)) - ) - (when (< v1-28 (-> obj next-countdown-tick)) - (let ((a0-14 540)) - (set! (-> obj next-countdown-tick) (the-as time-frame (- v1-28 (mod v1-28 (* a0-14 a0-14))))) - ) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (vector<-cspace! s5-2 (-> obj node-list data 7)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 6)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 5)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 4)) - (spawn (-> obj warning-glow-part) s5-2) - ) - (sound-play "w-bomb-timer") - ) + (if (< 3600 s5-0) + (go (method-of-object obj explode)) + ) + (when (< 3000 s5-0) + (spawn-with-cspace (-> obj warning-spark-part) (-> obj node-list data 3)) + (when (not (-> obj firework-sound-played)) + (set! (-> obj firework-sound-played) #t) + (sound-play "w-bomb-firewrks") + ) + ) + (let* ((v1-27 (* s5-0 s5-0)) + (a0-10 3600) + (v1-28 (- (* a0-10 a0-10) v1-27)) + ) + (when (< v1-28 (-> obj next-countdown-tick)) + (let ((a0-14 540)) + (set! (-> obj next-countdown-tick) (the-as time-frame (- v1-28 (mod v1-28 (* a0-14 a0-14))))) + ) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (vector<-cspace! s5-2 (-> obj node-list data 7)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 6)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 5)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 4)) + (spawn (-> obj warning-glow-part) s5-2) + ) + (sound-play "w-bomb-timer") ) ) - 0 - (none) ) + 0 + (none) ) (defstate smoke (widow-bomb) :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((v1-2 3600) (v1-3 (* v1-2 v1-2)) (a0-0 540) @@ -1059,7 +1051,7 @@ This commonly includes things such as: ) ) ((= v1-0 'fizzle) - (let* ((gp-0 (-> self clock frame-counter)) + (let* ((gp-0 (current-time)) (f30-0 600.0) (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-18 (the-as number (logior #x3f800000 v1-17))) @@ -1077,13 +1069,13 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (initialize (-> self impact) self 3 4096.0 (collide-spec backgnd obstacle hit-by-others-list player-list)) (none) ) :exit (behavior () (when (nonzero? (-> self fizzle-timer)) - (let* ((gp-0 (-> self clock frame-counter)) + (let* ((gp-0 (current-time)) (f30-0 600.0) (v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-5 (the-as number (logior #x3f800000 v1-4))) @@ -1122,17 +1114,17 @@ This commonly includes things such as: ) ) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self traj time))) + ((>= (- (current-time) (-> self state-time)) (the int (-> self traj time))) (let ((v1-29 (-> self which-trajectory))) (cond ((zero? v1-29) (set! (-> self which-trajectory) 1) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self root-override trans) (the-as vector (-> self traj))))) (set! (-> gp-1 y) 0.0) (vector-normalize! gp-1 12288.0) @@ -1146,10 +1138,10 @@ This commonly includes things such as: (set! (-> self which-trajectory) 2) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-4 (vector-! (new 'stack-no-clear 'vector) (-> self root-override trans) (the-as vector (-> self traj))))) (set! (-> gp-4 y) 0.0) (vector-normalize! gp-4 4096.0) @@ -1162,7 +1154,7 @@ This commonly includes things such as: ((= v1-29 2) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) (set! (-> self which-trajectory) 3) @@ -1184,11 +1176,11 @@ This commonly includes things such as: ((< (-> self which-trajectory) 3) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) (when (and (zero? (-> self which-trajectory)) - (< (- (-> self clock frame-counter) (-> self state-time)) (the int (* 0.75 (-> self traj time)))) + (< (- (current-time) (-> self state-time)) (the int (* 0.75 (-> self traj time)))) ) (vector+float*! (-> self launch-pos) (-> self launch-pos) (-> self launch) (-> self clock time-adjust-ratio)) (vector-lerp! @@ -1196,14 +1188,14 @@ This commonly includes things such as: (-> self launch-pos) (-> self root-override trans) (parameter-ease-sin-clamp - (* 1.3333334 (/ (the float (- (-> self clock frame-counter) (-> self state-time))) (-> self traj time))) + (* 1.3333334 (/ (the float (- (current-time) (-> self state-time))) (-> self traj time))) ) ) ) (spawn-with-cspace (-> self trail-part) (-> self node-list data 3)) (when (zero? (-> self which-trajectory)) (update-from-cspace (-> self impact)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (let ((f0-42 (impact-control-method-11 (-> self impact) (new 'stack-no-clear 'collide-query) @@ -1545,11 +1537,11 @@ This commonly includes things such as: :virtual #t :enter (behavior () (set! (-> self draw bounds w) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (spawn-with-cspace (-> self explode-part) (-> self node-list data 6)) ) (let ((v1-9 (ja-group))) @@ -1587,7 +1579,7 @@ This commonly includes things such as: ((>= (-> self segs-shot) 16) (go-virtual break-it) ) - ((>= (- (-> self clock frame-counter) (-> self last-pillar-hit)) (seconds 2)) + ((>= (- (current-time) (-> self last-pillar-hit)) (seconds 2)) (process-spawn part-tracker :init part-tracker-init @@ -1599,7 +1591,7 @@ This commonly includes things such as: 0 :to *entity-pool* ) - (set! (-> self last-pillar-hit) (-> self clock frame-counter)) + (set! (-> self last-pillar-hit) (current-time)) (sound-play "pillar-hit" :position (-> self root-override trans)) ) ) @@ -1614,7 +1606,7 @@ This commonly includes things such as: (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/goal_src/jak2/levels/mars_tomb/widow-more-extras.gc b/goal_src/jak2/levels/mars_tomb/widow-more-extras.gc index a60f7bde14..86346a3262 100644 --- a/goal_src/jak2/levels/mars_tomb/widow-more-extras.gc +++ b/goal_src/jak2/levels/mars_tomb/widow-more-extras.gc @@ -458,20 +458,18 @@ (defstate idle (cave-in-master) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (spawn (-> self part) (-> self root trans)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) 0) + (when (>= (- (current-time) (-> self state-time)) 0) (let ((gp-0 (new 'stack-no-clear 'vector))) (cavein-get-random-point gp-0) (set! (-> gp-0 y) (+ 327680.0 (-> gp-0 y))) (process-spawn tomb-boss-debris gp-0 (rand-vu-int-count 8) :to self) ) - (set! (-> self state-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.1 0.5)))) - ) + (set! (-> self state-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.1 0.5))))) ) (none) ) diff --git a/goal_src/jak2/levels/nest/boss/metalkor-extras.gc b/goal_src/jak2/levels/nest/boss/metalkor-extras.gc index c5a361f8d5..4b836a4347 100644 --- a/goal_src/jak2/levels/nest/boss/metalkor-extras.gc +++ b/goal_src/jak2/levels/nest/boss/metalkor-extras.gc @@ -115,7 +115,7 @@ :virtual #t :event metalkor-egg-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -142,7 +142,7 @@ ((< f0-0 (* f1-0 f1-0)) (go-virtual idle) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual hatch) ) (else @@ -227,11 +227,11 @@ :virtual #t :event metalkor-egg-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual hatch) ) (let ((v1-9 (ja-group))) @@ -544,7 +544,7 @@ ) (defbehavior ik-adjust metalkor-legs () - (let* ((f0-1 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (let* ((f0-1 (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (f0-2 (* 9102.223 f0-1)) (f0-3 (- f0-2 (* (the float (the int (/ f0-2 65536.0))) 65536.0))) (f0-4 (sin f0-3)) @@ -693,7 +693,7 @@ :virtual #t :event metalkor-legs-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dotimes (gp-0 6) (enable-set! (-> self joint-ik gp-0) #t) ((method-of-type cam-float-seeker init) (the-as cam-float-seeker (-> self foot-locks gp-0)) 0.0 0.1 0.3 0.9) @@ -1391,7 +1391,7 @@ (set! (-> a1-14 param 1) (the-as uint v1-47)) ) (when (send-event-function proc a1-14) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-52 (-> self root-override root-prim))) (set! (-> v1-52 prim-core collide-as) (collide-spec)) (set! (-> v1-52 prim-core collide-with) (collide-spec)) @@ -1408,12 +1408,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-params! (-> self egg-toss-joint-angle) 0.0 0.05 0.3 0.9) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) (seconds 0.1)) + (when (>= (- (current-time) (-> self no-collision-timer)) (seconds 0.1)) (let ((v1-5 (-> self root-override root-prim))) (set! (-> v1-5 prim-core collide-as) (-> self root-override backup-collide-as)) (set! (-> v1-5 prim-core collide-with) (-> self root-override backup-collide-with)) @@ -1749,7 +1749,7 @@ This commonly includes things such as: (set! (-> self chain joint-length) (* 12288.0 (-> self root scale y))) (set! (-> self root scale y) 1.0) (initialize-chain-joints (-> self chain)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((f30-0 0.9) (f28-0 0.2) (v1-12 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -1777,7 +1777,7 @@ This commonly includes things such as: (quaternion-normalize! (-> self root quat)) (update (-> self chain) self) (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + ((< (- (current-time) (-> self state-time)) (seconds 1)) ) ((let ((v1-13 (ja-group))) (and v1-13 (= v1-13 (-> self draw art-group data 53))) diff --git a/goal_src/jak2/levels/nest/boss/metalkor-setup.gc b/goal_src/jak2/levels/nest/boss/metalkor-setup.gc index 8c01f33828..d58401341d 100644 --- a/goal_src/jak2/levels/nest/boss/metalkor-setup.gc +++ b/goal_src/jak2/levels/nest/boss/metalkor-setup.gc @@ -935,7 +935,7 @@ This commonly includes things such as: (cshape-reaction-update-state arg0 arg1 sv-16) (let ((s5-0 (-> arg0 process))) (cond - ((>= (- (-> self clock frame-counter) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.05)) + ((>= (- (current-time) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.05)) (let ((t9-1 vector--float*!) (a0-3 arg2) (a1-1 sv-16) @@ -996,7 +996,7 @@ This commonly includes things such as: ) ((let ((f1-6 4096.0)) (and (< (* f1-6 f1-6) f0-10) - (>= (- (-> self clock frame-counter) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.2)) + (>= (- (current-time) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.2)) ) ) (vector-float*! arg2 arg2 (/ 4096.0 (sqrtf f0-10))) diff --git a/goal_src/jak2/levels/nest/boss/metalkor-states.gc b/goal_src/jak2/levels/nest/boss/metalkor-states.gc index 963282d5af..dd175de90c 100644 --- a/goal_src/jak2/levels/nest/boss/metalkor-states.gc +++ b/goal_src/jak2/levels/nest/boss/metalkor-states.gc @@ -238,12 +238,10 @@ 0 ) ) - (if (and (nonzero? (-> self next-stage-timer)) - (>= (- (-> self clock frame-counter) (-> self next-stage-timer)) 0) - ) + (if (and (nonzero? (-> self next-stage-timer)) (>= (- (current-time) (-> self next-stage-timer)) 0)) (metalkor-go-next-stage) ) - (when (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) (seconds 0.1)) + (when (>= (- (current-time) (-> self no-collision-timer)) (seconds 0.1)) (let ((v1-25 (-> self root-override root-prim))) (set! (-> v1-25 prim-core collide-as) (-> self root-override backup-collide-as)) (set! (-> v1-25 prim-core collide-with) (-> self root-override backup-collide-with)) @@ -742,7 +740,7 @@ (logtest? (penetrate dark-bomb) (-> (the-as attack-info s5-2) penetrate-using)) (= (-> self stage-hit-points) 0.0) ) - (set! v0-2 (the-as none (+ (-> self clock frame-counter) (seconds 1)))) + (set! v0-2 (the-as none (+ (current-time) (seconds 1)))) (set! (-> self next-stage-timer) (the-as time-frame v0-2)) v0-2 ) @@ -832,7 +830,7 @@ (set! (-> a1-43 param 1) (the-as uint v1-170)) ) (when (send-event-function gp-5 a1-43) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-175 (-> self root-override root-prim))) (set! (-> v1-175 prim-core collide-as) (collide-spec)) (set! (-> v1-175 prim-core collide-with) (collide-spec)) @@ -857,7 +855,7 @@ (when (not (handle->process (-> self flitters v1-3))) (new 'stack-no-clear 'vector) (let ((f0-1 (* 182.04445 (rand-vu-float-range 70.0 290.0)))) - (set! (-> self egg-timer) (-> self clock frame-counter)) + (set! (-> self egg-timer) (current-time)) (set! (-> self egg-angle) f0-1) (if (< 32768.0 f0-1) (send-event (handle->process (-> self lowtorso)) 'egg-toss 1.0) @@ -875,7 +873,7 @@ (if (zero? (-> self egg-timer)) (return #f) ) - (if (< (- (-> self clock frame-counter) (-> self egg-timer)) (seconds 0.2)) + (if (< (- (current-time) (-> self egg-timer)) (seconds 0.2)) (return #t) ) (dotimes (gp-0 10) @@ -1820,7 +1818,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-push! 1 (seconds 0.1)) (ja :group! (-> self draw art-group data 30) :num! min) (none) @@ -1876,7 +1874,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self min-state-hit-points) (+ -0.34 (-> self stage-hit-points))) (if (nonzero? (-> self neck)) (set! (-> self neck flex-blend) 0.0) @@ -1903,7 +1901,7 @@ (none) ) :trans (behavior () - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 1)) (>= (-> self min-state-hit-points) (-> self stage-hit-points)) ) (go-virtual overload-recover) @@ -1971,13 +1969,13 @@ (defstate play-drop-movie (metalkor) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-entity-status! self (entity-perm-status subtask-complete) #t) (process-spawn scene-player :init scene-player-init "nest-kor-boss-fight-mid" #t "nestb-boss") (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (deactivate self) ) (none) @@ -2013,7 +2011,7 @@ (set! sv-864 (target-pos 0)) (metalkor-face-to-vector sv-864 546.13336 0.005) (when (and (nonzero? (-> self previous-flat-travel-long-timer)) - (>= (+ (-> self clock frame-counter) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) + (>= (+ (current-time) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) ) (set! (-> self previous-flat-travel-long-timer) 0) (set! (-> self previous-flat-travel-timer) 0) @@ -2082,7 +2080,7 @@ (vector-normalize! s4-0 f0-12) ) ) - (if (and (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer)) + (if (and (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer)) (< (vector-dot s4-0 (-> self previous-flat-travel)) 0.0) ) (vector-negate! s4-0 s4-0) @@ -2090,11 +2088,11 @@ (set! (-> s3-0 x) (-> s2-0 intersection x)) (set! (-> s3-0 z) (-> s2-0 intersection z)) (vector-! s3-0 s3-0 (-> s2-0 boundary-normal)) - (when (or s1-0 (> s0-1 0) (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer))) + (when (or s1-0 (> s0-1 0) (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer))) (set! (-> self previous-flat-travel quad) (-> s4-0 quad)) - (set! (-> self previous-flat-travel-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-timer) (current-time)) (if (zero? (-> self previous-flat-travel-long-timer)) - (set! (-> self previous-flat-travel-long-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-long-timer) (current-time)) ) ) ) @@ -2289,12 +2287,12 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual chase-target) ) ((let ((f0-0 57344.0)) @@ -2334,7 +2332,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self shots-fired) 0) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) @@ -2368,12 +2366,10 @@ (sound-play "nboss-pre-shot") ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.25)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.75)) - (nonzero? (-> self shots-fired)) - ) + (when (or (>= (- (current-time) (-> self state-time)) (seconds 1.25)) + (and (>= (- (current-time) (-> self state-time)) (seconds 0.75)) (nonzero? (-> self shots-fired))) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (metalkor-shoot-projectile) (set-nestb-purple! (fmax 1.0 (get-nestb-purple))) (metalkor-ja-float-stop (the-as art-joint-anim (-> self draw art-group data 32))) @@ -2382,10 +2378,10 @@ ) (if (zero? (-> self shots-fired)) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0013333333 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (fmax (get-nestb-purple) (* 0.0013333333 (the float (- (current-time) (-> self state-time))))) ) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (current-time) (-> self state-time))))) ) ) (metalkor-common) @@ -2403,7 +2399,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) (-> self root-override trans) @@ -2416,7 +2412,7 @@ :trans (behavior () (let ((v1-2 (ja-group))) (when (and (not (and v1-2 (= v1-2 (-> self draw art-group data 33)))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) ) (cond ((or (< (-> self last-standing-attack) -1) @@ -2519,7 +2515,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) (set! (-> self shots-fired) 0) (set! (-> self wave-timer) 0) (set! (-> self in-wave) #f) @@ -2542,9 +2538,9 @@ (if (and (-> self in-wave) (= (-> self stage) 1)) (set! v1-0 3000) ) - (when (>= (- (-> self clock frame-counter) (-> self wave-timer)) v1-0) + (when (>= (- (current-time) (-> self wave-timer)) v1-0) (set! (-> self in-wave) (not (-> self in-wave))) - (set! (-> self wave-timer) (-> self clock frame-counter)) + (set! (-> self wave-timer) (current-time)) ) ) (cond @@ -2555,8 +2551,8 @@ (set! (-> self launching-wasps) #t) ) ) - (when (and (-> self launching-wasps) (>= (- (-> self clock frame-counter) (-> self wasp-timer)) (seconds 1.5))) - (set! (-> self wasp-timer) (-> self clock frame-counter)) + (when (and (-> self launching-wasps) (>= (- (current-time) (-> self wasp-timer)) (seconds 1.5))) + (set! (-> self wasp-timer) (current-time)) (dotimes (gp-0 3) (when (not (handle->process (-> self wasps gp-0))) (set! sv-16 (new 'static 'res-tag)) @@ -2626,31 +2622,31 @@ ) (rotate-and-update-hang-anim) (if (and (< 10922.667 (-> self target-angle)) - (< (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 3.75)) + (< (- (current-time) (-> self shoot-timer)) (seconds 3.75)) (zero? (mod (-> self shots-fired) (-> self stage))) ) (set! (-> self shoot-timer) - (the-as time-frame (max (-> self shoot-timer) (+ (-> self clock frame-counter) (seconds -2.75)))) + (the-as time-frame (max (-> self shoot-timer) (+ (current-time) (seconds -2.75)))) ) ) (cond ((metalkor-check-egg) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) ) - ((or (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 3.75)) + ((or (>= (- (current-time) (-> self shoot-timer)) (seconds 3.75)) (nonzero? (mod (-> self shots-fired) (-> self stage))) ) - (set! (-> self flitter-timer) (-> self clock frame-counter)) + (set! (-> self flitter-timer) (current-time)) (spawn (-> self shot-anticipate) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 7))) (if (zero? (mod (-> self shots-fired) (-> self stage))) (set-nestb-purple! (fmax (get-nestb-purple) - (* 0.0013333333 (the float (+ (- (seconds -3.75) (-> self shoot-timer)) (-> self clock frame-counter)))) + (* 0.0013333333 (the float (+ (- (seconds -3.75) (-> self shoot-timer)) (current-time)))) ) ) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (-> self clock frame-counter) (-> self shoot-timer))))) + (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (current-time) (-> self shoot-timer))))) ) ) (let* ((v1-123 (the-as art-joint-anim (-> self draw art-group data 23))) @@ -2664,12 +2660,12 @@ (sound-play "nboss-pre-shot") ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 5)) - (and (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 0.75)) + (when (or (>= (- (current-time) (-> self shoot-timer)) (seconds 5)) + (and (>= (- (current-time) (-> self shoot-timer)) (seconds 0.75)) (nonzero? (mod (-> self shots-fired) (-> self stage))) ) ) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) (metalkor-shoot-projectile) (set-nestb-purple! (fmax 1.0 (get-nestb-purple))) (metalkor-ja-float-stop (the-as art-joint-anim (-> self draw art-group data 23))) @@ -2678,11 +2674,9 @@ (metalkor-all-spinners-on) ) ) - ((and (-> self launching-flitters) - (>= (+ (-> self clock frame-counter) (seconds -0.5)) (-> self flitter-timer)) - ) - (set! (-> self flitter-timer) (-> self clock frame-counter)) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + ((and (-> self launching-flitters) (>= (+ (current-time) (seconds -0.5)) (-> self flitter-timer))) + (set! (-> self flitter-timer) (current-time)) + (set! (-> self shoot-timer) (current-time)) (metalkor-start-egg) ) ) @@ -2724,7 +2718,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) (-> self root-override trans) @@ -2743,7 +2737,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) (cpad-hold? 1 x)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (cpad-hold? 1 x)) (go-virtual test) ) (let ((s4-0 (new-stack-vector0)) @@ -2764,7 +2758,7 @@ (matrix->quaternion (-> self root-override quat) s1-0) (quaternion-normalize! (-> self root-override quat)) (when (and (nonzero? (-> self previous-flat-travel-long-timer)) - (>= (+ (-> self clock frame-counter) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) + (>= (+ (current-time) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) ) (set! (-> self previous-flat-travel-long-timer) 0) (set! (-> self previous-flat-travel-timer) 0) @@ -2792,7 +2786,7 @@ (vector-normalize! s5-1 f0-9) ) ) - (if (and (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer)) + (if (and (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer)) (< (vector-dot s5-1 (-> self previous-flat-travel)) 0.0) ) (vector-negate! s5-1 s5-1) @@ -2800,11 +2794,11 @@ (set! (-> s4-1 x) (-> s3-0 intersection x)) (set! (-> s4-1 z) (-> s3-0 intersection z)) (vector-! s4-1 s4-1 (-> s3-0 boundary-normal)) - (when (or (> s2-1 0) (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer))) + (when (or (> s2-1 0) (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer))) (set! (-> self previous-flat-travel quad) (-> s5-1 quad)) - (set! (-> self previous-flat-travel-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-timer) (current-time)) (if (zero? (-> self previous-flat-travel-long-timer)) - (set! (-> self previous-flat-travel-long-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-long-timer) (current-time)) ) ) ) diff --git a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc index ace5c5be12..f5f999d621 100644 --- a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc +++ b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc @@ -20,14 +20,14 @@ (set! (-> a1-0 message) 'test-pickup) (set! (-> a1-0 param 0) (the-as uint 7)) (let ((f30-0 (send-event-function *target* a1-0))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.1)) (suspend) ) ) (send-event *target* 'change-mode 'darkjak #f 64) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/nest/flying-spider.gc b/goal_src/jak2/levels/nest/flying-spider.gc index fcdbe3c362..6f692746bc 100644 --- a/goal_src/jak2/levels/nest/flying-spider.gc +++ b/goal_src/jak2/levels/nest/flying-spider.gc @@ -575,7 +575,7 @@ :event (the-as (function process int symbol event-message-block object :behavior flying-spider) enemy-event-handler) :enter (behavior () (dispose! self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hit-points) 0) (enemy-method-103 self) (none) @@ -695,48 +695,46 @@ ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 flying-spider ((obj flying-spider) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) - (when (>= (- (-> pp clock frame-counter) (-> obj gspot-timer)) (seconds 0.2)) - (let ((a1-2 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) - (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) - (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) - (let ((v1-10 a1-2)) - (set! (-> v1-10 radius) 4915.2) - (set! (-> v1-10 collide-with) arg1) - (set! (-> v1-10 ignore-process0) obj) - (set! (-> v1-10 ignore-process1) #f) - (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-10 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-2) + (the-as + pat-surface + (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) + (when (>= (- (current-time) (-> obj gspot-timer)) (seconds 0.2)) + (let ((a1-2 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) + (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) + (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) + (let ((v1-10 a1-2)) + (set! (-> v1-10 radius) 4915.2) + (set! (-> v1-10 collide-with) arg1) + (set! (-> v1-10 ignore-process0) obj) + (set! (-> v1-10 ignore-process1) #f) + (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-10 action-mask) (collide-action solid)) ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (vector-reset! s5-1) - (dotimes (s4-1 (-> *collide-cache* num-tris)) - (let* ((v1-16 (-> *collide-cache* tris s4-1)) - (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s2-1 1.0) - (vector-normalize! s1-1 1.0) - (vector-cross! s3-0 s2-1 s1-1) - (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) - (vector+! s5-1 s5-1 s3-0) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) - ) - (set! (-> obj gspot-timer) (-> pp clock frame-counter)) + (fill-using-line-sphere *collide-cache* a1-2) ) - #t + (let ((s5-1 (new 'stack-no-clear 'vector))) + (vector-reset! s5-1) + (dotimes (s4-1 (-> *collide-cache* num-tris)) + (let* ((v1-16 (-> *collide-cache* tris s4-1)) + (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s2-1 1.0) + (vector-normalize! s1-1 1.0) + (vector-cross! s3-0 s2-1 s1-1) + (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) + (vector+! s5-1 s5-1 s3-0) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) + ) + (set! (-> obj gspot-timer) (current-time)) ) + #t ) ) ) diff --git a/goal_src/jak2/levels/nest/mammoth.gc b/goal_src/jak2/levels/nest/mammoth.gc index fc873f652b..3a15090e35 100644 --- a/goal_src/jak2/levels/nest/mammoth.gc +++ b/goal_src/jak2/levels/nest/mammoth.gc @@ -494,8 +494,8 @@ (ja :num! (seek!)) ) (mammoth-walk-check-end) - (when (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self attack-timer)) (seconds 5)) + (set! (-> self attack-timer) (current-time)) (go-virtual walking-attack) ) ) @@ -510,7 +510,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('event-attack) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self lightning-timer) (the-as time-frame v0-0)) v0-0 ) @@ -538,15 +538,11 @@ (none) ) :trans (behavior () - (when (and (< (- (-> self clock frame-counter) (-> self lightning-timer)) (seconds 3)) - (< (-> self spawn-timer) (-> self clock frame-counter)) - ) + (when (and (< (- (current-time) (-> self lightning-timer)) (seconds 3)) (< (-> self spawn-timer) (current-time))) (let ((s5-0 *mammoth-lightning-joint-tbl*)) (mammoth-method-185 self (-> self root-override2 trans) (-> s5-0 (get-rand-int self (-> s5-0 length)))) ) - (set! (-> self spawn-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 0.0 0.1)))) - ) + (set! (-> self spawn-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 0.0 0.1))))) ) (none) ) @@ -573,8 +569,8 @@ (ja :num! (seek! max 0.8)) ) (mammoth-walk-check-end) - (when (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 3)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self attack-timer)) (seconds 3)) + (set! (-> self attack-timer) (current-time)) (go-virtual walking) ) ) @@ -1474,8 +1470,8 @@ (when (logtest? (ash 1 v1-37) (-> obj foot-flags)) ) ) - (when (and (< (- (-> pp clock frame-counter) (-> obj lightning-timer)) (seconds 3)) - (< (-> obj lightning-attack-timer) (-> pp clock frame-counter)) + (when (and (< (- (current-time) (-> obj lightning-timer)) (seconds 3)) + (< (-> obj lightning-attack-timer) (current-time)) ) (let ((s5-2 *target*)) (when s5-2 @@ -1568,7 +1564,7 @@ ) ) (set! (-> obj lightning-attack-timer) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 0.067 0.1)))) + (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 0.067 0.1)))) ) ) ) @@ -1696,92 +1692,90 @@ (defmethod init-enemy! mammoth ((obj mammoth)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-mammoth" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (init-enemy-behaviour-and-stats! obj *mammoth-nav-enemy-info*) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set-vector! (-> obj root-override2 scale) 1.5 1.5 1.5 1.0) - (set! (-> obj y-level) -40959590.0) - (set! (-> obj foot-flags) (the-as uint 0)) - (set! (-> obj old-foot-flags) (the-as uint 0)) - (set! (-> obj attack-timer) (-> pp clock frame-counter)) - (set! (-> obj spawn-timer) 0) - (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) - (quaternion-copy! (-> obj my-up-quat) *unity-quaternion*) - (set! (-> obj gspot-timer) 0) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - (set! (-> obj align) (new 'process 'align-control obj)) - (dotimes (s5-1 4) - (set! (-> obj joint-ik s5-1) (new - 'process - 'joint-mod-ik - obj - (-> *mammoth-ik-setup* s5-1 elbow-index) - (-> *mammoth-ik-setup* s5-1 hand-dist) - ) - ) - (set! (-> obj joint-ik s5-1 elbow-pole-vector-axis) (the-as uint 2)) - (set! (-> obj joint-ik s5-1 elbow-rotation-axis) (the-as uint 0)) - (set! (-> obj joint-ik 0 callback) mammoth-leg-ik-callback) - ) - (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-trans-neg)) - (logior! (-> obj joint-ik 2 flags) (joint-mod-ik-flags elbow-trans-neg)) - (logior! (-> obj joint-ik 0 flags) (joint-mod-ik-flags elbow-rot-neg)) - (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-rot-neg)) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (set! (-> obj path-pos) 0.0) - (set! (-> obj path-index) 0) - (set! (-> obj path-index-dir) 1) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (get-point-in-path! (-> obj path) (-> obj root-override2 trans) 0.0 'interp) - (set! (-> obj move-pos 0 quad) (-> obj root-override2 trans quad)) - (set! (-> obj move-pos 1 quad) (-> obj root-override2 trans quad)) - (forward-up-nopitch->quaternion - (-> obj root-override2 quat) - (vector-! - (new 'stack-no-clear 'vector) - (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) (the float (+ (-> obj path-index) 1)) 'interp) - (-> obj root-override2 trans) - ) - *up-vector* - ) - (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) - (let ((a0-38 (-> obj node-list data 4))) - (set! (-> a0-38 param0) mammoth-joint-mod-tilt) - (set! (-> a0-38 param1) obj) - ) - (let ((a0-39 (-> obj node-list data 10))) - (set! (-> a0-39 param0) mammoth-joint-mod-heel) - (set! (-> a0-39 param1) obj) - (set! (-> a0-39 param2) (the-as basic 0)) - ) - (let ((v1-61 (-> obj node-list data 13))) - (set! (-> v1-61 param0) mammoth-joint-mod-heel) - (set! (-> v1-61 param1) obj) - (set! (-> v1-61 param2) (the-as basic 1)) - ) - (let ((v1-63 (-> obj node-list data 25))) - (set! (-> v1-63 param0) mammoth-joint-mod-heel) - (set! (-> v1-63 param1) obj) - (set! (-> v1-63 param2) (the-as basic 2)) - ) - (let ((v1-65 (-> obj node-list data 28))) - (set! (-> v1-65 param0) mammoth-joint-mod-heel) - (set! (-> v1-65 param1) obj) - (set! (-> v1-65 param2) (the-as basic 3)) - ) - (dotimes (v1-66 4) - (set! (-> obj heel-lerp v1-66) 0.0) - ) - (set! (-> obj lightning-timer) 0) - (set! (-> obj lightning-attack-timer) 0) - (set! (-> obj feet-ik-init-timer) (-> pp clock frame-counter)) - (logclear! (-> obj enemy-flags) (enemy-flag check-water-backup)) - 0 - (none) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-mammoth" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (init-enemy-behaviour-and-stats! obj *mammoth-nav-enemy-info*) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set-vector! (-> obj root-override2 scale) 1.5 1.5 1.5 1.0) + (set! (-> obj y-level) -40959590.0) + (set! (-> obj foot-flags) (the-as uint 0)) + (set! (-> obj old-foot-flags) (the-as uint 0)) + (set! (-> obj attack-timer) (current-time)) + (set! (-> obj spawn-timer) 0) + (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) + (quaternion-copy! (-> obj my-up-quat) *unity-quaternion*) + (set! (-> obj gspot-timer) 0) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + (set! (-> obj align) (new 'process 'align-control obj)) + (dotimes (s5-1 4) + (set! (-> obj joint-ik s5-1) (new + 'process + 'joint-mod-ik + obj + (-> *mammoth-ik-setup* s5-1 elbow-index) + (-> *mammoth-ik-setup* s5-1 hand-dist) + ) + ) + (set! (-> obj joint-ik s5-1 elbow-pole-vector-axis) (the-as uint 2)) + (set! (-> obj joint-ik s5-1 elbow-rotation-axis) (the-as uint 0)) + (set! (-> obj joint-ik 0 callback) mammoth-leg-ik-callback) + ) + (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-trans-neg)) + (logior! (-> obj joint-ik 2 flags) (joint-mod-ik-flags elbow-trans-neg)) + (logior! (-> obj joint-ik 0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-rot-neg)) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (set! (-> obj path-pos) 0.0) + (set! (-> obj path-index) 0) + (set! (-> obj path-index-dir) 1) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (get-point-in-path! (-> obj path) (-> obj root-override2 trans) 0.0 'interp) + (set! (-> obj move-pos 0 quad) (-> obj root-override2 trans quad)) + (set! (-> obj move-pos 1 quad) (-> obj root-override2 trans quad)) + (forward-up-nopitch->quaternion + (-> obj root-override2 quat) + (vector-! + (new 'stack-no-clear 'vector) + (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) (the float (+ (-> obj path-index) 1)) 'interp) + (-> obj root-override2 trans) + ) + *up-vector* + ) + (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) + (let ((a0-38 (-> obj node-list data 4))) + (set! (-> a0-38 param0) mammoth-joint-mod-tilt) + (set! (-> a0-38 param1) obj) + ) + (let ((a0-39 (-> obj node-list data 10))) + (set! (-> a0-39 param0) mammoth-joint-mod-heel) + (set! (-> a0-39 param1) obj) + (set! (-> a0-39 param2) (the-as basic 0)) + ) + (let ((v1-61 (-> obj node-list data 13))) + (set! (-> v1-61 param0) mammoth-joint-mod-heel) + (set! (-> v1-61 param1) obj) + (set! (-> v1-61 param2) (the-as basic 1)) + ) + (let ((v1-63 (-> obj node-list data 25))) + (set! (-> v1-63 param0) mammoth-joint-mod-heel) + (set! (-> v1-63 param1) obj) + (set! (-> v1-63 param2) (the-as basic 2)) + ) + (let ((v1-65 (-> obj node-list data 28))) + (set! (-> v1-65 param0) mammoth-joint-mod-heel) + (set! (-> v1-65 param1) obj) + (set! (-> v1-65 param2) (the-as basic 3)) + ) + (dotimes (v1-66 4) + (set! (-> obj heel-lerp v1-66) 0.0) + ) + (set! (-> obj lightning-timer) 0) + (set! (-> obj lightning-attack-timer) 0) + (set! (-> obj feet-ik-init-timer) (current-time)) + (logclear! (-> obj enemy-flags) (enemy-flag check-water-backup)) + 0 + (none) ) diff --git a/goal_src/jak2/levels/nest/mantis.gc b/goal_src/jak2/levels/nest/mantis.gc index 3dedd6de10..e7b54b049d 100644 --- a/goal_src/jak2/levels/nest/mantis.gc +++ b/goal_src/jak2/levels/nest/mantis.gc @@ -543,14 +543,14 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.6)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.6)) (suspend) ) ) (logior! (-> self draw status) (draw-control-status no-draw)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -605,7 +605,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override2 trans y) (+ -18841.6 (-> self base-height))) (let ((gp-0 (-> self root-override2))) (let ((v1-11 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> gp-0 quat)))) @@ -668,8 +668,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (if (logtest? (-> self root-override2 status) (collide-status on-ground)) (goto cfg-32) ) @@ -726,7 +726,7 @@ (let ((f30-1 (vector-length s5-1))) (when (not (logtest? (-> self flags) (mantis-flag tracked))) (cond - ((< (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) + ((< (- (current-time) (-> self attack-timer)) (seconds 5)) (if (and (< 73728.0 f30-1) (mantis-method-194 self)) (go-virtual crawl) ) @@ -739,7 +739,7 @@ (when (and (and gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status disable dead ignore grabbed))) ) - (and (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) + (and (>= (- (current-time) (-> self attack-timer)) (seconds 5)) (enemy-method-95 self s4-0 8192.0) (< f30-1 32768.0) ) @@ -775,7 +775,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (change-to (nav-mesh-from-res-tag (-> self entity) 'nav-mesh-actor 1) self) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) @@ -895,9 +895,7 @@ (suspend) (ja :num! (seek!)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) - (< 1 (the-as int (-> self focus aware))) - ) + (if (and (>= (- (current-time) (-> self attack-timer)) (seconds 5)) (< 1 (the-as int (-> self focus aware)))) (go-virtual hostile) ) (if (< (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest)) 13107.2) @@ -916,7 +914,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -925,7 +923,7 @@ (set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info)) ) 0 - (set! (-> self attack-timer) (-> self clock frame-counter)) + (set! (-> self attack-timer) (current-time)) (none) ) :exit (behavior () @@ -985,8 +983,8 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self attack-timer) (current-time)) (none) ) :exit (behavior () @@ -1187,7 +1185,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -1204,7 +1202,7 @@ ) 0 (logclear! (-> self mask) (process-mask actor-pause)) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :trans (behavior () @@ -1249,7 +1247,7 @@ (go-virtual crawl) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (>= (the-as int (-> self focus aware)) 3) (get-enemy-target self) ) @@ -1278,73 +1276,71 @@ (defmethod general-event-handler mantis ((obj mantis) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('track) - (if (and (-> arg3 param 0) (>= (- (-> pp clock frame-counter) (-> obj track-timer)) (seconds 0.5))) - 'abort - #t - ) - ) - (('tracked) - (logior! (-> obj flags) (mantis-flag tracked)) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj track-timer) (the-as time-frame v0-0)) - v0-0 + (case arg2 + (('track) + (if (and (-> arg3 param 0) (>= (- (current-time) (-> obj track-timer)) (seconds 0.5))) + 'abort + #t ) + ) + (('tracked) + (logior! (-> obj flags) (mantis-flag tracked)) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj track-timer) (the-as time-frame v0-0)) + v0-0 ) - (('hit 'hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (cond - ((zero? (-> obj hit-points)) - (let ((s5-1 (-> obj incoming knocked-type))) - (cond - ((and (= s5-1 (knocked-type knocked-type-4)) - (not (and (-> obj next-state) (let ((v1-41 (-> obj next-state name))) - (or (= v1-41 'knocked) (= v1-41 'jump) (= v1-41 'jump-land)) - ) - ) - ) - (zero? (get-rand-int obj 3)) - (let ((f0-0 (vector-vector-distance-squared (-> obj root-override2 trans) (target-pos 0))) - (f1-0 32768.0) - ) - (>= f0-0 (* f1-0 f1-0)) - ) + ) + (('hit 'hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (cond + ((zero? (-> obj hit-points)) + (let ((s5-1 (-> obj incoming knocked-type))) + (cond + ((and (= s5-1 (knocked-type knocked-type-4)) + (not (and (-> obj next-state) (let ((v1-41 (-> obj next-state name))) + (or (= v1-41 'knocked) (= v1-41 'jump) (= v1-41 'jump-land)) + ) + ) + ) + (zero? (get-rand-int obj 3)) + (let ((f0-0 (vector-vector-distance-squared (-> obj root-override2 trans) (target-pos 0))) + (f1-0 32768.0) + ) + (>= f0-0 (* f1-0 f1-0)) ) - (kill-prefer-falling obj) - ) - ((or (= s5-1 (knocked-type knocked-type-4)) (= s5-1 (knocked-type knocked-type-6))) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - (go (method-of-object obj knocked)) - ) - (else - (go (method-of-object obj knocked)) - ) + ) + (kill-prefer-falling obj) + ) + ((or (= s5-1 (knocked-type knocked-type-4)) (= s5-1 (knocked-type knocked-type-6))) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) + (go (method-of-object obj knocked)) + ) + (else + (go (method-of-object obj knocked)) ) ) ) - (else - (go (method-of-object obj knocked)) - ) - ) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + (else + (go (method-of-object obj knocked)) + ) + ) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1427,48 +1423,46 @@ ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 mantis ((obj mantis) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) - (when (>= (- (-> pp clock frame-counter) (-> obj gspot-timer)) (seconds 0.2)) - (let ((a1-2 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) - (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) - (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) - (let ((v1-10 a1-2)) - (set! (-> v1-10 radius) 4915.2) - (set! (-> v1-10 collide-with) arg1) - (set! (-> v1-10 ignore-process0) obj) - (set! (-> v1-10 ignore-process1) #f) - (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-10 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-2) + (the-as + pat-surface + (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) + (when (>= (- (current-time) (-> obj gspot-timer)) (seconds 0.2)) + (let ((a1-2 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) + (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) + (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) + (let ((v1-10 a1-2)) + (set! (-> v1-10 radius) 4915.2) + (set! (-> v1-10 collide-with) arg1) + (set! (-> v1-10 ignore-process0) obj) + (set! (-> v1-10 ignore-process1) #f) + (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-10 action-mask) (collide-action solid)) ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (vector-reset! s5-1) - (dotimes (s4-1 (-> *collide-cache* num-tris)) - (let* ((v1-16 (-> *collide-cache* tris s4-1)) - (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s2-1 1.0) - (vector-normalize! s1-1 1.0) - (vector-cross! s3-0 s2-1 s1-1) - (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) - (vector+! s5-1 s5-1 s3-0) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) - ) - (set! (-> obj gspot-timer) (-> pp clock frame-counter)) + (fill-using-line-sphere *collide-cache* a1-2) ) - #t + (let ((s5-1 (new 'stack-no-clear 'vector))) + (vector-reset! s5-1) + (dotimes (s4-1 (-> *collide-cache* num-tris)) + (let* ((v1-16 (-> *collide-cache* tris s4-1)) + (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s2-1 1.0) + (vector-normalize! s1-1 1.0) + (vector-cross! s3-0 s2-1 s1-1) + (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) + (vector+! s5-1 s5-1 s3-0) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) + ) + (set! (-> obj gspot-timer) (current-time)) ) + #t ) ) ) @@ -2001,20 +1995,18 @@ (defmethod init-enemy! mantis ((obj mantis)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-mantis" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (init-enemy-behaviour-and-stats! obj *mantis-nav-enemy-info*) - (set! (-> obj flags) (mantis-flag)) - (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - (set! (-> obj gspot-timer) 0) - (set! (-> obj attack-timer) (+ (-> pp clock frame-counter) (seconds -5))) - (set! (-> obj track-timer) 0) - (set! (-> obj draw light-index) (the-as uint 30)) - (none) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-mantis" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (init-enemy-behaviour-and-stats! obj *mantis-nav-enemy-info*) + (set! (-> obj flags) (mantis-flag)) + (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + (set! (-> obj gspot-timer) 0) + (set! (-> obj attack-timer) (+ (current-time) (seconds -5))) + (set! (-> obj track-timer) 0) + (set! (-> obj draw light-index) (the-as uint 30)) + (none) ) diff --git a/goal_src/jak2/levels/nest/nest-obs.gc b/goal_src/jak2/levels/nest/nest-obs.gc index 1371e465ad..0448ddb01a 100644 --- a/goal_src/jak2/levels/nest/nest-obs.gc +++ b/goal_src/jak2/levels/nest/nest-obs.gc @@ -67,12 +67,12 @@ (defstate down (nest-switch) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self set-camera) #f) (none) ) :trans (behavior () - (when (and (not (-> self set-camera)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6))) + (when (and (not (-> self set-camera)) (>= (- (current-time) (-> self state-time)) (seconds 0.6))) (process-grab? *target* #f) (hide-hud-quick #f) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) @@ -96,8 +96,8 @@ (set! (-> self root trans y) (+ (-> self y-start) (-> self y-delta))) (suspend) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (-> self clock seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) @@ -107,8 +107,8 @@ (suspend) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -215,8 +215,8 @@ This commonly includes things such as: :virtual #t :trans (the-as (function none :behavior nest-piston) rider-trans) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/goal_src/jak2/levels/nest/nest-scenes.gc b/goal_src/jak2/levels/nest/nest-scenes.gc index 208247a2e3..66acd4a48a 100644 --- a/goal_src/jak2/levels/nest/nest-scenes.gc +++ b/goal_src/jak2/levels/nest/nest-scenes.gc @@ -78,7 +78,7 @@ (defstate zap (canyon-lightning-thingy) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -106,7 +106,7 @@ ) :trans (behavior () (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.125)) + ((>= (- (current-time) (-> self state-time)) (seconds 0.125)) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 quad) (-> self root trans quad)) (let ((v1-7 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> self root quat))) diff --git a/goal_src/jak2/levels/palace/boss/squid-extras.gc b/goal_src/jak2/levels/palace/boss/squid-extras.gc index 437783ec6b..55b9b7dadf 100644 --- a/goal_src/jak2/levels/palace/boss/squid-extras.gc +++ b/goal_src/jak2/levels/palace/boss/squid-extras.gc @@ -152,7 +152,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (let ((f28-0 (/ (the float (- (-> pp clock frame-counter) (-> arg0 traj-timer))) (-> arg0 traj-duration))) + (let ((f28-0 (/ (the float (- (current-time) (-> arg0 traj-timer))) (-> arg0 traj-duration))) (s5-0 (new 'stack-no-clear 'vector)) ) (let ((f30-0 (compute-time-until-apex (-> arg0 traj)))) @@ -299,28 +299,26 @@ (defmethod init-proj-settings! squid-grenade ((obj squid-grenade)) "Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc" - (with-pp - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1120) obj)) - (set! (-> obj attack-mode) 'squid-grenade) - (set! (-> obj max-speed) 655360.0) - (set! (-> obj move) squid-grenade-move) - (set! (-> obj timeout) (seconds 5)) - (set! (-> obj stop-speed) 4.096) - (set! (-> obj fly-sound) (new-sound-id)) - (set! (-> obj traj-timer) (-> pp clock frame-counter)) - (vector+! (-> obj traj-dest) (-> obj root-override trans) (-> obj root-override transv)) - (set! (-> obj traj-duration) - (fmax 600.0 (* 0.0018310547 (vector-vector-xz-distance (-> obj root-override trans) (-> obj traj-dest)))) - ) - (+! (-> obj traj-duration) (* 75.0 (rand-vu))) - (let ((f0-8 32768.0)) - (if (< (-> obj root-override trans y) (-> obj traj-dest y)) - (+! f0-8 (- (-> obj traj-dest y) (-> obj root-override trans y))) - ) - (setup-from-to-duration-and-height! (-> obj traj) (-> obj root-override trans) (-> obj traj-dest) 1.0 f0-8) - ) - (none) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1120) obj)) + (set! (-> obj attack-mode) 'squid-grenade) + (set! (-> obj max-speed) 655360.0) + (set! (-> obj move) squid-grenade-move) + (set! (-> obj timeout) (seconds 5)) + (set! (-> obj stop-speed) 4.096) + (set! (-> obj fly-sound) (new-sound-id)) + (set! (-> obj traj-timer) (current-time)) + (vector+! (-> obj traj-dest) (-> obj root-override trans) (-> obj root-override transv)) + (set! (-> obj traj-duration) + (fmax 600.0 (* 0.0018310547 (vector-vector-xz-distance (-> obj root-override trans) (-> obj traj-dest)))) + ) + (+! (-> obj traj-duration) (* 75.0 (rand-vu))) + (let ((f0-8 32768.0)) + (if (< (-> obj root-override trans y) (-> obj traj-dest y)) + (+! f0-8 (- (-> obj traj-dest y) (-> obj root-override trans y))) + ) + (setup-from-to-duration-and-height! (-> obj traj) (-> obj root-override trans) (-> obj traj-dest) 1.0 f0-8) ) + (none) ) (defbehavior squid-whirlwind-move squid-whirlwind () @@ -331,12 +329,8 @@ (* 819.2 (-> self clock time-adjust-ratio)) ) (let ((gp-0 (new 'stack-no-clear 'vector))) - (let ((f30-0 - (lerp-scale 12288.0 32768.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) - (f28-0 - (lerp-scale 1024.0 4096.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (let ((f30-0 (lerp-scale 12288.0 32768.0 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) + (f28-0 (lerp-scale 1024.0 4096.0 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) (vector-! (-> self root transv) (-> self root trans) (-> self center)) (set-vector! gp-0 (- (-> self root transv z)) 0.0 (-> self root transv x) 1.0) @@ -395,7 +389,7 @@ (defstate idle (squid-whirlwind) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self duration) (the-as time-frame (+ (the int (* 150.0 (rand-vu))) 1050))) (none) ) @@ -409,7 +403,7 @@ (set! (-> a1-2 y) (+ 2048.0 (-> a1-2 y))) (spawn (-> self part) a1-2) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self duration)) + (when (or (>= (- (current-time) (-> self state-time)) (-> self duration)) (let ((f0-3 (vector-vector-xz-distance-squared (target-pos 0) (-> self root trans))) (f1-1 12288.0) ) diff --git a/goal_src/jak2/levels/palace/boss/squid-setup.gc b/goal_src/jak2/levels/palace/boss/squid-setup.gc index 77bb628f72..fd014936ee 100644 --- a/goal_src/jak2/levels/palace/boss/squid-setup.gc +++ b/goal_src/jak2/levels/palace/boss/squid-setup.gc @@ -1274,7 +1274,7 @@ ;; WARN: Return type mismatch vector vs none. (defbehavior squid-increment-shield squid ((arg0 float)) (set! (-> self shield-hit-points) (fmin 1.0 (fmax 0.0 (+ (-> self shield-hit-points) arg0)))) - (set! (-> self shield-timer) (+ (-> self clock frame-counter) (seconds -0.125))) + (set! (-> self shield-timer) (+ (current-time) (seconds -0.125))) (let ((gp-0 (new 'stack-no-clear 'vector))) (cond ((< (-> self shield-hit-points) 0.5) @@ -1480,7 +1480,7 @@ (squid-take-hit (the-as touching-shapes-entry (-> arg3 param 0)) (the-as attack-info (-> arg3 param 1)) #f) ) ) - ((>= (- (-> self clock frame-counter) (-> self invincible-timer)) (seconds 3)) + ((>= (- (current-time) (-> self invincible-timer)) (seconds 3)) (cond ((and (= (-> self shield-hit-points) 0.0) (not (and (-> self next-state) (= (-> self next-state name) 'recharge))) @@ -1494,7 +1494,7 @@ ) ) (squid-take-hit (the-as touching-shapes-entry (-> arg3 param 0)) (the-as attack-info (-> arg3 param 1)) #t) - (set! (-> self invincible-timer) (-> self clock frame-counter)) + (set! (-> self invincible-timer) (current-time)) (squid-check-hit-points) ) ((or (!= (-> self shield-hit-points) 0.0) (and (-> self next-state) (= (-> self next-state name) 'recharge))) @@ -2132,23 +2132,21 @@ This commonly includes things such as: (defmethod set-traj-towards-vec squid ((obj squid) (src vector) (arg2 vector) (dest vector)) "Set up the [[trajectory]] towards `dest`." - (with-pp - (set! (-> obj traj-timer) (-> pp clock frame-counter)) - (set! (-> obj traj-src quad) (-> src quad)) - (set! (-> obj traj-dest quad) (-> dest quad)) - (set! (-> obj traj-duration) (* 0.00091552734 (vector-vector-xz-distance arg2 dest))) - (set! (-> obj traj-duration) (fmax 480.0 (-> obj traj-duration))) - (let ((f0-4 49152.0)) - (if (< (-> arg2 y) (-> dest y)) - (+! f0-4 (- (-> dest y) (-> arg2 y))) - ) - (setup-from-to-duration-and-height! (-> obj traj) arg2 dest 1.0 f0-4) - ) - (set! (-> obj residual-accumulator-1) 1.0) - (set! (-> obj residual-accumulator-2) 0.0) - 0 - (none) + (set! (-> obj traj-timer) (current-time)) + (set! (-> obj traj-src quad) (-> src quad)) + (set! (-> obj traj-dest quad) (-> dest quad)) + (set! (-> obj traj-duration) (* 0.00091552734 (vector-vector-xz-distance arg2 dest))) + (set! (-> obj traj-duration) (fmax 480.0 (-> obj traj-duration))) + (let ((f0-4 49152.0)) + (if (< (-> arg2 y) (-> dest y)) + (+! f0-4 (- (-> dest y) (-> arg2 y))) + ) + (setup-from-to-duration-and-height! (-> obj traj) arg2 dest 1.0 f0-4) ) + (set! (-> obj residual-accumulator-1) 1.0) + (set! (-> obj residual-accumulator-2) 0.0) + 0 + (none) ) (defmethod float-sin-clamp squid ((obj squid) (arg0 float)) @@ -2156,223 +2154,219 @@ This commonly includes things such as: ) (defmethod squid-method-48 squid ((obj squid)) - (with-pp - (when (< 0.00001 (-> obj residual-accumulator-1)) - (set! (-> obj residual-accumulator-1) (* 0.95 (-> obj residual-accumulator-1))) - (+! (-> obj residual-accumulator-2) (-> obj residual-accumulator-1)) - ) - (let* ((f28-0 ((method-of-type trajectory compute-time-until-apex) - (the-as trajectory (&-> (the-as squid-grenade (-> obj self)) ignore-handle)) - ) - ) - (s3-0 (compute-trans-at-time (-> obj traj) f28-0 (new 'stack-no-clear 'vector))) - (s5-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (f30-0 (/ (the float (- (-> pp clock frame-counter) (-> obj traj-timer))) (-> obj traj-duration))) - ) - (let ((f26-0 (float-sin-clamp obj f30-0))) - (when (and (-> obj can-play-squid-boost) (< 0.125 f30-0)) - (set! (-> obj can-play-squid-boost) #f) - (sound-play "squid-boost") - ) - (cond - ((< f26-0 1.0) - (compute-trans-at-time (-> obj traj) f26-0 s5-0) - (set! (-> s4-0 quad) (-> obj traj-src quad)) - (+! (-> s4-0 y) (* 204.8 (the float (- (-> pp clock frame-counter) (-> obj traj-timer))) (/ f26-0 f30-0))) - (vector+float*! s4-0 s4-0 (-> obj residual-velocity) (-> obj residual-accumulator-2)) - (vector-lerp! s5-0 s4-0 s5-0 f26-0) - (cond - ((< f28-0 f26-0) - (let ((f28-1 (/ (- f26-0 f28-0) (- 1.0 f28-0)))) - (vector-lerp! s4-0 s3-0 (-> obj traj-dest) f28-1) - (vector-lerp! s5-0 s5-0 s4-0 f28-1) - ) - (squid-method-43 obj (squid-method-42 obj (new 'stack-no-clear 'vector)) 1092.2667 0.05) - (vector-! s4-0 (-> obj traj-dest) (-> obj trans)) - (vector-normalize! s4-0 1.75) - (dotimes (s3-2 6) - (send-event (handle->process (-> obj tentacles s3-2)) 'set-gravity s4-0) + (when (< 0.00001 (-> obj residual-accumulator-1)) + (set! (-> obj residual-accumulator-1) (* 0.95 (-> obj residual-accumulator-1))) + (+! (-> obj residual-accumulator-2) (-> obj residual-accumulator-1)) + ) + (let* ((f28-0 ((method-of-type trajectory compute-time-until-apex) + (the-as trajectory (&-> (the-as squid-grenade (-> obj self)) ignore-handle)) + ) ) + (s3-0 (compute-trans-at-time (-> obj traj) f28-0 (new 'stack-no-clear 'vector))) + (s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (f30-0 (/ (the float (- (current-time) (-> obj traj-timer))) (-> obj traj-duration))) + ) + (let ((f26-0 (float-sin-clamp obj f30-0))) + (when (and (-> obj can-play-squid-boost) (< 0.125 f30-0)) + (set! (-> obj can-play-squid-boost) #f) + (sound-play "squid-boost") + ) + (cond + ((< f26-0 1.0) + (compute-trans-at-time (-> obj traj) f26-0 s5-0) + (set! (-> s4-0 quad) (-> obj traj-src quad)) + (+! (-> s4-0 y) (* 204.8 (the float (- (current-time) (-> obj traj-timer))) (/ f26-0 f30-0))) + (vector+float*! s4-0 s4-0 (-> obj residual-velocity) (-> obj residual-accumulator-2)) + (vector-lerp! s5-0 s4-0 s5-0 f26-0) + (cond + ((< f28-0 f26-0) + (let ((f28-1 (/ (- f26-0 f28-0) (- 1.0 f28-0)))) + (vector-lerp! s4-0 s3-0 (-> obj traj-dest) f28-1) + (vector-lerp! s5-0 s5-0 s4-0 f28-1) ) - (else - (squid-method-43 obj (-> obj traj-dest) 546.13336 0.005) - ) - ) - (set! (-> obj trans quad) (-> s5-0 quad)) - ) - (else - (dotimes (s5-1 6) - (send-event (handle->process (-> obj tentacles s5-1)) 'set-gravity-slow (new 'static 'vector :y -1.0)) + (squid-method-43 obj (squid-method-42 obj (new 'stack-no-clear 'vector)) 1092.2667 0.05) + (vector-! s4-0 (-> obj traj-dest) (-> obj trans)) + (vector-normalize! s4-0 1.75) + (dotimes (s3-2 6) + (send-event (handle->process (-> obj tentacles s3-2)) 'set-gravity s4-0) ) - (set! (-> obj trans quad) (-> obj traj-dest quad)) ) + (else + (squid-method-43 obj (-> obj traj-dest) 546.13336 0.005) + ) + ) + (set! (-> obj trans quad) (-> s5-0 quad)) + ) + (else + (dotimes (s5-1 6) + (send-event (handle->process (-> obj tentacles s5-1)) 'set-gravity-slow (new 'static 'vector :y -1.0)) + ) + (set! (-> obj trans quad) (-> obj traj-dest quad)) ) ) - f30-0 ) + f30-0 ) ) (defmethod setup-part-engine squid ((obj squid) (arg0 symbol)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj blink-time)) 0) - (set! (-> obj blink-mask) 0) - (dotimes (s5-0 10) - (let* ((f30-0 0.5) - (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-7 (the-as number (logior #x3f800000 v1-6))) - ) - (if (< f30-0 (+ -1.0 (the-as float v1-7))) - (logior! (-> obj blink-mask) (ash 1 s5-0)) - ) - ) - ) - (set! (-> obj blink-time) (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) - (set! arg0 #t) - ) - (when arg0 - (remove-from-process *part-engine* obj) - (add-connection - *part-engine* - obj - 5 - obj - 4790 - (new 'static 'vector :x -5906.432 :y 3317.76 :z -409.6 :w 819200.0) - ) - (add-connection - *part-engine* - obj - 5 - obj - 4790 - (new 'static 'vector :x 5906.432 :y 3317.76 :z -409.6 :w 819200.0) - ) - (add-connection *part-engine* obj 6 obj 4791 (new 'static 'vector :y 3366.912 :w 819200.0)) - (add-connection *part-engine* obj 13 obj 4791 (new 'static 'vector :y 11993.088 :z 5255.168 :w 819200.0)) - (add-connection - *part-engine* - obj - 5 - obj - 4792 - (new 'static 'vector :x 5439.488 :y -1794.048 :z 11444.224 :w 819200.0) - ) - (add-connection - *part-engine* - obj - 5 - obj - 4792 - (new 'static 'vector :x -5439.488 :y -1794.048 :z 11444.224 :w 819200.0) - ) - (let ((s5-2 (-> obj blink-mask))) - (if (logtest? s5-2 1) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4128.768 :y 2355.2 :z 3653.632 :w 819200.0) - ) - ) - (if (logtest? s5-2 2) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4554.752 :y 2449.408 :z 2359.296 :w 819200.0) - ) - ) - (if (logtest? s5-2 4) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4386.816 :y 2191.36 :z 528.384 :w 819200.0) - ) - ) - (if (logtest? s5-2 8) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -5832.704 :y 2945.024 :z 1691.648 :w 819200.0) - ) - ) - (if (logtest? s5-2 16) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -5861.376 :y 2920.448 :z 1118.208 :w 819200.0) - ) - ) - (if (logtest? s5-2 32) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4128.768 :y 2355.2 :z 3653.632 :w 819200.0) - ) - ) - (if (logtest? s5-2 64) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4554.752 :y 2449.408 :z 2359.296 :w 819200.0) - ) - ) - (if (logtest? s5-2 128) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4386.816 :y 2191.36 :z -528.384 :w 819200.0) - ) - ) - (if (logtest? s5-2 256) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 5832.704 :y 2945.024 :z 1691.648 :w 819200.0) - ) - ) - (if (logtest? s5-2 512) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 5861.376 :y 2920.448 :z 1118.208 :w 819200.0) - ) + (when (>= (- (current-time) (-> obj blink-time)) 0) + (set! (-> obj blink-mask) 0) + (dotimes (s5-0 10) + (let* ((f30-0 0.5) + (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (if (< f30-0 (+ -1.0 (the-as float v1-7))) + (logior! (-> obj blink-mask) (ash 1 s5-0)) ) ) ) - 0 - (none) + (set! (-> obj blink-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) + (set! arg0 #t) ) + (when arg0 + (remove-from-process *part-engine* obj) + (add-connection + *part-engine* + obj + 5 + obj + 4790 + (new 'static 'vector :x -5906.432 :y 3317.76 :z -409.6 :w 819200.0) + ) + (add-connection + *part-engine* + obj + 5 + obj + 4790 + (new 'static 'vector :x 5906.432 :y 3317.76 :z -409.6 :w 819200.0) + ) + (add-connection *part-engine* obj 6 obj 4791 (new 'static 'vector :y 3366.912 :w 819200.0)) + (add-connection *part-engine* obj 13 obj 4791 (new 'static 'vector :y 11993.088 :z 5255.168 :w 819200.0)) + (add-connection + *part-engine* + obj + 5 + obj + 4792 + (new 'static 'vector :x 5439.488 :y -1794.048 :z 11444.224 :w 819200.0) + ) + (add-connection + *part-engine* + obj + 5 + obj + 4792 + (new 'static 'vector :x -5439.488 :y -1794.048 :z 11444.224 :w 819200.0) + ) + (let ((s5-2 (-> obj blink-mask))) + (if (logtest? s5-2 1) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4128.768 :y 2355.2 :z 3653.632 :w 819200.0) + ) + ) + (if (logtest? s5-2 2) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4554.752 :y 2449.408 :z 2359.296 :w 819200.0) + ) + ) + (if (logtest? s5-2 4) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4386.816 :y 2191.36 :z 528.384 :w 819200.0) + ) + ) + (if (logtest? s5-2 8) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -5832.704 :y 2945.024 :z 1691.648 :w 819200.0) + ) + ) + (if (logtest? s5-2 16) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -5861.376 :y 2920.448 :z 1118.208 :w 819200.0) + ) + ) + (if (logtest? s5-2 32) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4128.768 :y 2355.2 :z 3653.632 :w 819200.0) + ) + ) + (if (logtest? s5-2 64) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4554.752 :y 2449.408 :z 2359.296 :w 819200.0) + ) + ) + (if (logtest? s5-2 128) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4386.816 :y 2191.36 :z -528.384 :w 819200.0) + ) + ) + (if (logtest? s5-2 256) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 5832.704 :y 2945.024 :z 1691.648 :w 819200.0) + ) + ) + (if (logtest? s5-2 512) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 5861.376 :y 2920.448 :z 1118.208 :w 819200.0) + ) + ) + ) + ) + 0 + (none) ) ;; WARN: Return type mismatch float vs none. @@ -2526,7 +2520,7 @@ This commonly includes things such as: ) (when (-> obj rush-sound-playing) (cond - ((or (zero? (-> obj rush-end-time)) (< (- (-> pp clock frame-counter) (-> obj rush-end-time)) (seconds 0.1))) + ((or (zero? (-> obj rush-end-time)) (< (- (current-time) (-> obj rush-end-time)) (seconds 0.1))) (the-as int (sound-play "squid-rush" :id (-> obj rush-sound) :position (-> obj root-override trans))) ) (else @@ -2560,12 +2554,8 @@ This commonly includes things such as: ) ) (else - (let* ((f0-23 - (fmin 1.0 (* 0.0011111111 (the float (- (-> pp clock frame-counter) (the-as time-frame (-> obj jet-pitch)))))) - ) - (f28-2 - (fmin 1.0 (* 0.006666667 (the float (- (-> pp clock frame-counter) (the-as time-frame (-> obj jet-volume)))))) - ) + (let* ((f0-23 (fmin 1.0 (* 0.0011111111 (the float (- (current-time) (the-as time-frame (-> obj jet-pitch))))))) + (f28-2 (fmin 1.0 (* 0.006666667 (the float (- (current-time) (the-as time-frame (-> obj jet-volume))))))) (f30-6 (* 0.2 (- 1.0 f0-23) (sin (* 32768.0 f0-23)))) (f0-31 (+ 1.0 (* 5.0 (- 1.0 f28-2) (sin (* 32768.0 f30-6))))) ) @@ -2618,10 +2608,7 @@ This commonly includes things such as: ) ) (when (not (and (-> obj next-state) (= (-> obj next-state name) 'recharge))) - (let ((v1-249 - (the int (lerp-scale 0.0 128.0 (the float (- (-> pp clock frame-counter) (-> obj shield-timer))) 0.0 600.0)) - ) - ) + (let ((v1-249 (the int (lerp-scale 0.0 128.0 (the float (- (current-time) (-> obj shield-timer))) 0.0 600.0)))) (cond ((< 0.0 (-> obj shield-hit-points)) (set! s5-9 (min 100 v1-249)) @@ -2693,7 +2680,7 @@ This commonly includes things such as: (dotimes (s4-11 6) (send-event (handle->process (-> obj tentacles s4-11)) 'set-fade s5-9) ) - (let* ((f0-56 (lerp-scale 0.5 0.0 (the float (- (-> pp clock frame-counter) (-> obj shield-timer))) 0.0 75.0)) + (let* ((f0-56 (lerp-scale 0.5 0.0 (the float (- (current-time) (-> obj shield-timer))) 0.0 75.0)) (a0-147 (vector-float*! (new 'stack-no-clear 'vector) (-> obj shield-color) (if (< 0.0 (-> obj shield-hit-points)) f0-56 diff --git a/goal_src/jak2/levels/palace/boss/squid-states.gc b/goal_src/jak2/levels/palace/boss/squid-states.gc index 84990c4798..4cd24f4077 100644 --- a/goal_src/jak2/levels/palace/boss/squid-states.gc +++ b/goal_src/jak2/levels/palace/boss/squid-states.gc @@ -226,14 +226,14 @@ (defstate test (squid) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (ja :num! (loop!)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self driver-blend target) (- 1.0 (-> self driver-blend target))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (debug-draw (-> self first-path)) (debug-draw (-> self second-path)) @@ -507,10 +507,8 @@ :virtual #t :event squid-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self traj-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.5)))) - ) + (set! (-> self state-time) (current-time)) + (set! (-> self traj-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.5))))) (set! (-> self traj initial-position quad) (-> self trans quad)) (let ((v1-7 (-> self stage))) (cond @@ -562,17 +560,15 @@ (-> self trans) (the-as vector (-> self traj)) (-> self traj-dest) - (parameter-ease-sqr-clamp (* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (parameter-ease-sqr-clamp (* 0.0011111111 (the float (- (current-time) (-> self state-time))))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual flee) ) (spawn (-> self part) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 55))) - (when (>= (- (-> self clock frame-counter) (-> self traj-timer)) 0) + (when (>= (- (current-time) (-> self traj-timer)) 0) (sound-play "squid-explosion") - (set! (-> self traj-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.5)))) - ) + (set! (-> self traj-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.5))))) (cond ((zero? (-> self stage)) (setup-masks (-> self draw) 320 160) @@ -699,7 +695,7 @@ :event squid-handler :enter (behavior () (squid-talker 'start-recharging) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self invincible-timer) 0) (setup-masks (-> self draw) 8192 0) (logior! (-> self draw status) (draw-control-status warp-cross-fade)) @@ -733,7 +729,7 @@ (go-virtual fly-to-shoot-spot) ) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + ((>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self driver-blend target) 1.0) (ja-channel-push! 1 (seconds 0.1)) (ja :group! (-> self draw art-group data 34) :num! min) @@ -759,27 +755,21 @@ (let ((v1-70 (handle->process (-> self hud)))) (if v1-70 (set! (-> (the-as hud-squid v1-70) values 2 target) - (min 100 (/ (* 100 (- (-> self clock frame-counter) (-> self state-time))) 600)) + (min 100 (/ (* 100 (- (current-time) (-> self state-time))) 600)) ) ) ) (let ((gp-3 (new 'stack-no-clear 'vector))) - (let ((f30-0 - (* 16384.0 (fmin 1.0 (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self state-time)))))) - ) - ) - (let* ((f0-16 (* 164.25063 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (let ((f30-0 (* 16384.0 (fmin 1.0 (* 0.0016666667 (the float (- (current-time) (-> self state-time)))))))) + (let* ((f0-16 (* 164.25063 (the float (- (current-time) (-> self state-time))))) (f0-19 (lerp-scale 70.0 120.0 (fabs (cos f0-16)) 1.0 0.0)) ) (set! (-> self draw force-fade) - (the-as - uint - (the int (lerp-scale 128.0 f0-19 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 37.5)) - ) + (the-as uint (the int (lerp-scale 128.0 f0-19 (the float (- (current-time) (-> self state-time))) 0.0 37.5))) ) ) (set! (-> self shield-timer) - (- (-> self clock frame-counter) + (- (current-time) (the-as time-frame (the int (lerp-scale 0.0 600.0 (the float (-> self draw force-fade)) 0.0 128.0))) ) ) @@ -796,7 +786,7 @@ ) (dotimes (gp-4 6) (send-event (handle->process (-> self tentacles gp-4)) 'set-fade (-> self draw force-fade)) - (when (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (< (- (current-time) (-> self state-time)) (seconds 2)) (case (-> self stage) ((1) (send-event (handle->process (-> self tentacles gp-4)) 'wrap *squid-second-pole*) @@ -867,16 +857,16 @@ (set! (-> self allowed-rotate-to-vector-angle) 0.0) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 21) :num! min) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) ) ((< 910.2222 (-> self desired-rotate-to-vector-angle)) (set! (-> self allowed-rotate-to-vector-angle) 0.0) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 24) :num! min) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) ) ((let ((v1-106 (ja-group))) @@ -944,22 +934,22 @@ :event squid-handler :enter (behavior () (squid-talker 'headbutting) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self traj-timer) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self traj-timer) (current-time)) (vector-reset! (-> self residual-velocity)) (set! (-> self can-play-squid-boost) #t) (none) ) :exit (behavior () (sound-play "squid-rush-end") - (set! (-> self rush-end-time) (-> self clock frame-counter)) + (set! (-> self rush-end-time) (current-time)) (let ((v1-5 (ja-group))) (when (and v1-5 (= v1-5 (-> self draw art-group data 5))) (ja-channel-push! 1 (seconds 0.05)) (ja :group! (-> self draw art-group data 6) :num! min) (sound-play "sqd-shield-down") - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #t) ) ) @@ -971,7 +961,7 @@ ) (go-virtual pre-flee) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual fly-to-shoot-spot) ) (let ((v1-17 (ja-group))) @@ -981,8 +971,8 @@ (when (and (-> self can-play-squid-boost) (< 30.0 (ja-aframe-num 0))) (sound-play "squid-boost") (set! (-> self can-play-squid-boost) #f) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) (set! (-> self rush-sound-playing) #t) (set! (-> self rush-end-time) 0) @@ -994,7 +984,7 @@ (if (< (ja-aframe-num 0) 20.0) (squid-method-42 self (-> self traj-dest)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (let ((v1-53 (ja-group))) @@ -1018,7 +1008,7 @@ (s5-1 (new 'stack-no-clear 'vector)) (s2-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (let ((f0-8 (vector-vector-xz-distance-squared (-> self traj-dest) (-> self trans))) (f1-1 8192.0) ) @@ -1027,7 +1017,7 @@ ) (go-virtual fly-to-shoot-spot) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) (-> self mesh-forced)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (-> self mesh-forced)) (vector-reset! (-> self residual-velocity)) (go-virtual fly-to-shoot-spot) ) @@ -1037,10 +1027,7 @@ (set! (-> s3-0 quad) (-> self traj-dest quad)) (clamp-vector-to-mesh-cross-gaps (-> self nav) gp-3 (-> self current-nav-poly) s3-0 409600.0 #f s2-0) (set! (-> self residual-velocity quad) (-> self trans quad)) - (let ((f30-1 - (lerp-scale 0.01 1.0 (+ -375.0 (the float (- (-> self clock frame-counter) (-> self traj-timer)))) 0.0 150.0) - ) - ) + (let ((f30-1 (lerp-scale 0.01 1.0 (+ -375.0 (the float (- (current-time) (-> self traj-timer)))) 0.0 150.0))) (set! (-> gp-3 y) (-> self trans y)) (vector-seek-3d-smooth! (-> self trans) gp-3 (* 4096.0 f30-1) 0.5) (set! (-> gp-3 quad) (-> self trans quad)) @@ -1101,7 +1088,7 @@ :event squid-handler :enter (behavior () (squid-talker 'shooting) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self stop-shooting) #f) (set! (-> self traj-timer) 0) (set! (-> self tentacle-base-rotation-speed target) 1.0) @@ -1135,15 +1122,13 @@ ) ) (squid-method-43 self (squid-method-42 self (new 'stack-no-clear 'vector)) 9.102222 0.75) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (squid-whirlwind-time)) - (-> self stop-shooting) - ) + (when (or (>= (- (current-time) (-> self state-time)) (squid-whirlwind-time)) (-> self stop-shooting)) (vector-reset! (-> self residual-velocity)) (go-virtual fly-to-shoot-spot) ) - (when (>= (- (-> self clock frame-counter) (-> self traj-timer)) (seconds 0.7)) + (when (>= (- (current-time) (-> self traj-timer)) (seconds 0.7)) (spawn-whirlwind self) - (set! (-> self traj-timer) (-> self clock frame-counter)) + (set! (-> self traj-timer) (current-time)) ) (none) ) @@ -1407,7 +1392,7 @@ (else (ja-channel-push! 1 (seconds 0.15)) (ja :group! (-> self draw art-group data 7) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -1484,14 +1469,10 @@ (+ -3640.889 f30-1) ) ((-> self gun-high-to-low) - (+ f30-1 - (lerp-scale -1820.4445 910.2222 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (+ f30-1 (lerp-scale -1820.4445 910.2222 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) (else - (+ f30-1 - (lerp-scale 3640.889 -910.2222 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (+ f30-1 (lerp-scale 3640.889 -910.2222 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) ) ) @@ -1522,7 +1503,7 @@ ((let ((v1-77 (ja-group))) (and v1-77 (= v1-77 (-> self draw art-group data 17))) ) - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 3)) (or (= (-> self shield-hit-points) 0.0) (zero? (-> self hit-points)) (-> self stop-shooting)) ) (ja :num! (seek!)) @@ -1541,7 +1522,7 @@ 0 ) ) - (if (and (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (and (or (>= (- (current-time) (-> self state-time)) (seconds 3)) (or (= (-> self shield-hit-points) 0.0) (zero? (-> self hit-points)) (-> self stop-shooting)) ) (ja-done? 0) @@ -1584,7 +1565,7 @@ (else (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 16) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self next-gun) 1) ) ) @@ -1632,7 +1613,7 @@ (squid-adjust-fly-anim) (when (and (zero? (-> self stage)) (not (-> self reload-played)) - (< (- (-> self traj-duration) (the float (- (-> self clock frame-counter) (-> self traj-timer)))) -210.0) + (< (- (-> self traj-duration) (the float (- (current-time) (-> self traj-timer)))) -210.0) ) (sound-play "squid-reload") (set! (-> self reload-played) #t) @@ -1680,7 +1661,7 @@ :enter (behavior () (set-setting! 'music 'danger4 0.0 0) (set! (-> self driver-blend target) 1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hud) (ppointer->handle (process-spawn hud-squid :init hud-init-by-other :to self))) (vector+! (-> self trans) (-> self trans) (new 'static 'vector :x 101171.2 :y 45056.0 :z 31047.68)) (let ((v1-14 (squid-method-42 self (new 'stack-no-clear 'vector)))) @@ -1698,7 +1679,7 @@ ) :trans (behavior () (ja :num! (loop!)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (when (>= (- (current-time) (-> self state-time)) (seconds 3)) ) (none) ) diff --git a/goal_src/jak2/levels/palace/cable/palcab-obs.gc b/goal_src/jak2/levels/palace/cable/palcab-obs.gc index 4837bf81b9..79fbf140fc 100644 --- a/goal_src/jak2/levels/palace/cable/palcab-obs.gc +++ b/goal_src/jak2/levels/palace/cable/palcab-obs.gc @@ -101,7 +101,7 @@ (set! (-> a1-7 param 1) (the-as uint v1-14)) ) (when (send-event-function gp-0 a1-7) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-19 (-> self root-override root-prim))) (set! (-> v1-19 prim-core collide-as) (collide-spec)) (set! (-> v1-19 prim-core collide-with) (collide-spec)) @@ -117,12 +117,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -196,14 +196,14 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self sound-timer)) + (when (>= (- (current-time) (-> self state-time)) (-> self sound-timer)) (sound-play "cab-fan-blade") (sound-stop (-> self sound-id)) (sound-play "pal-fan-buzz" :id (-> self sound-id)) (set! (-> self sound-timer) (the-as time-frame (the int (* 300.0 (/ 21845.334 (fabs (-> self rotate-speed)))))) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (update! (-> self sound)) (rider-post) @@ -830,7 +830,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self fire-timer) (-> self clock frame-counter)) + (set! (-> self fire-timer) (current-time)) (set! (-> self gun-index) 0) 0 (none) @@ -844,7 +844,7 @@ This commonly includes things such as: (* (-> self spin-rate) (-> self clock seconds-per-frame)) ) (let ((f30-0 1.0)) - (when (>= (- (-> self clock frame-counter) (-> self fire-timer)) (seconds 0.05)) + (when (>= (- (current-time) (-> self fire-timer)) (seconds 0.05)) (let ((gp-0 (new 'stack-no-clear 'matrix))) (let ((s5-0 (-> self node-list data (+ (* (-> self gun-index) 2) 4)))) (vector<-cspace! (the-as vector (-> gp-0 vector)) s5-0) @@ -855,7 +855,7 @@ This commonly includes things such as: (pal-rot-gun-method-23 self gp-0) ) (set! (-> self gun-index) (- 1 (-> self gun-index))) - (set! (-> self fire-timer) (-> self clock frame-counter)) + (set! (-> self fire-timer) (current-time)) (set! f30-0 1.2) ) (let* ((f0-10 (the float (sar (shl (the int (quaternion-z-angle (-> self root quat))) 48) 48))) diff --git a/goal_src/jak2/levels/palace/cable/palcab-part.gc b/goal_src/jak2/levels/palace/cable/palcab-part.gc index 4cd2f9937b..dceb6ab469 100644 --- a/goal_src/jak2/levels/palace/cable/palcab-part.gc +++ b/goal_src/jak2/levels/palace/cable/palcab-part.gc @@ -292,9 +292,7 @@ (defbehavior palcab-bird-bob-func palcab-part ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 0 y) - (+ (-> arg1 key proc root trans y) - (* -2048.0 (sin (* 218.45334 (the float (mod (-> self clock frame-counter) 300))))) - ) + (+ (-> arg1 key proc root trans y) (* -2048.0 (sin (* 218.45334 (the float (mod (current-time) 300)))))) ) 0 (none) diff --git a/goal_src/jak2/levels/palace/pal-obs.gc b/goal_src/jak2/levels/palace/pal-obs.gc index 4eecb3a5ca..2345bfa4d8 100644 --- a/goal_src/jak2/levels/palace/pal-obs.gc +++ b/goal_src/jak2/levels/palace/pal-obs.gc @@ -192,7 +192,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) @@ -796,7 +796,7 @@ This commonly includes things such as: (defstate idle (palent-turret) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -806,13 +806,13 @@ This commonly includes things such as: :trans (behavior () (cond ((not (task-node-closed? (game-task-node palace-sneak-in-meeting))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (let* ((f0-0 65536.0) (f1-0 -0.5) (f2-0 0.16666667) - (f3-1 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (f3-1 (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (f30-0 (* f0-0 (+ f1-0 (* f2-0 (- f3-1 (* (the float (the int (/ f3-1 6.0))) 6.0)))))) (s4-0 (-> self node-list data 5 bone transform)) (s5-0 (matrix->trans s4-0 (new 'stack-no-clear 'vector))) @@ -822,7 +822,7 @@ This commonly includes things such as: (let ((f0-2 (* 5097.2446 (sin f30-0)))) (quaternion-rotate-local-y! (-> self root-override quat) (-> self entity quat) f0-2) ) - (when (< (the-as time-frame (-> self next-shoot)) (-> self clock frame-counter)) + (when (< (the-as time-frame (-> self next-shoot)) (current-time)) (set-palent-turret-flash! 1.0) (let ((a1-2 (new 'stack-no-clear 'projectile-init-by-other-params))) (set! (-> a1-2 ent) (-> self entity)) @@ -842,7 +842,7 @@ This commonly includes things such as: (set! (-> a1-2 vel quad) (-> gp-0 quad)) (spawn-projectile palent-turret-shot a1-2 self *default-dead-pool*) ) - (set! (-> self next-shoot) (the-as uint (+ (-> self clock frame-counter) (seconds 0.1)))) + (set! (-> self next-shoot) (the-as uint (+ (current-time) (seconds 0.1)))) ) ) ) diff --git a/goal_src/jak2/levels/palace/roof/palboss-scenes.gc b/goal_src/jak2/levels/palace/roof/palboss-scenes.gc index 9e1d5cec12..5bcf24acd2 100644 --- a/goal_src/jak2/levels/palace/roof/palboss-scenes.gc +++ b/goal_src/jak2/levels/palace/roof/palboss-scenes.gc @@ -53,7 +53,7 @@ (let ((v1-0 #f) (gp-0 (-> self elevator-status)) ) - (when (>= (- (-> self clock frame-counter) (-> self sticky-player-last-ride-time)) 0) + (when (>= (- (current-time) (-> self sticky-player-last-ride-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -66,7 +66,7 @@ ) ) (set! (-> self sticky-player-last-ride-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) + (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) ) (set! v1-0 #t) ) @@ -705,7 +705,7 @@ (let ((v1-8 #f) (gp-0 (-> self elevator-status)) ) - (when (>= (- (-> self clock frame-counter) (-> self sticky-player-last-ride-time)) 0) + (when (>= (- (current-time) (-> self sticky-player-last-ride-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -718,7 +718,7 @@ ) ) (set! (-> self sticky-player-last-ride-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) + (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) ) (set! v1-8 #t) ) diff --git a/goal_src/jak2/levels/power_station/power_switches/ctypower.gc b/goal_src/jak2/levels/power_station/power_switches/ctypower.gc index ed99b132dc..c1cc2c6268 100644 --- a/goal_src/jak2/levels/power_station/power_switches/ctypower.gc +++ b/goal_src/jak2/levels/power_station/power_switches/ctypower.gc @@ -113,7 +113,7 @@ ) ) (if (= (-> self count) (-> self max-count)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> *game-info* counter) (the float (-> self count))) ) @@ -153,8 +153,8 @@ () (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-turret :init hud-init-by-other :to self))) (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 1) @@ -186,8 +186,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (task-node-close! (game-task-node city-power-post-win)) diff --git a/goal_src/jak2/levels/power_station/vinroom-obs.gc b/goal_src/jak2/levels/power_station/vinroom-obs.gc index 10f58a1e65..8c08d14d87 100644 --- a/goal_src/jak2/levels/power_station/vinroom-obs.gc +++ b/goal_src/jak2/levels/power_station/vinroom-obs.gc @@ -128,7 +128,7 @@ (when (and (or (not (-> self dont-draw-outside?)) (>= (vector4-dot (the-as vector (-> self lightning-plane)) (math-camera-pos)) 0.0) ) - (< (the-as time-frame (-> self lightning-timer)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self lightning-timer)) (current-time)) ) (let ((s4-0 (new 'stack-no-clear 'matrix)) (s3-1 @@ -166,7 +166,7 @@ ) (when (>= (fill-and-probe-using-line-sphere *collide-cache* s5-1) 0.0) (set! (-> self lightning-timer) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.1 0.4))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.1 0.4))))) ) (let ((s4-3 (new 'stack-no-clear 'vector))) (set! (-> s4-3 quad) (-> s5-1 best-other-tri intersect quad)) @@ -260,7 +260,7 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) + (stack-size-set! (-> obj main-thread) 1024) ;; added (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) diff --git a/goal_src/jak2/levels/ruins/mechtest-obs.gc b/goal_src/jak2/levels/ruins/mechtest-obs.gc index b8c5346a0f..d5ddd2e709 100644 --- a/goal_src/jak2/levels/ruins/mechtest-obs.gc +++ b/goal_src/jak2/levels/ruins/mechtest-obs.gc @@ -303,7 +303,7 @@ ) :enter (behavior () (logclear! (-> self mask) (process-mask actor-pause)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (handle->process (-> self carry other)) (drop-impl! (the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info)) @@ -318,14 +318,14 @@ (when (or (and (logtest? (-> self root-override status) (collide-status on-surface)) (< 0.8 (-> self root-override surface-angle)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (vector-reset! (-> self root-override transv)) (set! (-> self root-override root-prim local-sphere w) (-> self carry backup-radius)) (cond ((and (-> self reset-on-land?) (and (or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (and (-> self next-entity) (not (logtest? (-> self next-entity extra perm status) (entity-perm-status subtask-complete))) @@ -366,7 +366,7 @@ (go-virtual wait) ) ((or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (sound-play "block-break") (let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000))) diff --git a/goal_src/jak2/levels/ruins/rapid-gunner.gc b/goal_src/jak2/levels/ruins/rapid-gunner.gc index 69f37f0ef2..4a2e4b1bf8 100644 --- a/goal_src/jak2/levels/ruins/rapid-gunner.gc +++ b/goal_src/jak2/levels/ruins/rapid-gunner.gc @@ -549,7 +549,7 @@ (vector+! (-> self target-next-pos) (-> self focus-dir) gp-0) (set! (-> self target-prev-pos quad) (-> gp-0 quad)) ) - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) ) (else (set! (-> self target-next-pos quad) (-> self target-prev-pos quad)) @@ -693,9 +693,9 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self predict-timer) (the-as uint (+ (-> self clock frame-counter) 1))) - (set! (-> self shot-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self predict-timer) (the-as uint (+ (current-time) 1))) + (set! (-> self shot-timer) (the-as uint (current-time))) (let ((v1-7 self)) (set! (-> v1-7 enemy-flags) (the-as enemy-flag (logclear (-> v1-7 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-7 nav callback-info) *nav-enemy-null-callback-info*) @@ -714,7 +714,7 @@ (set! (-> self attack-id) a0-6) ) (when (logtest? (-> self status-flags) 2) - (set! (-> self spin-up-timer) (+ (-> self clock frame-counter) (seconds 2))) + (set! (-> self spin-up-timer) (+ (current-time) (seconds 2))) (set! (-> self status-flags) (logand -3 (-> self status-flags))) ) (if (zero? (rand-vu-int-range 0 3)) @@ -765,10 +765,10 @@ ) (go-virtual reload) ) - ((>= (- (-> self clock frame-counter) (the-as int (-> self shot-timer))) (seconds 0.25)) + ((>= (- (current-time) (the-as int (-> self shot-timer))) (seconds 0.25)) (when (rapid-gunner-method-184 self 2184.5334) (let* ((a1-11 (-> self node-list data 18)) - (f30-0 (fmax 0.0 (the float (- (-> self spin-up-timer) (-> self clock frame-counter))))) + (f30-0 (fmax 0.0 (the float (- (-> self spin-up-timer) (current-time))))) (s5-1 (vector<-cspace! (new 'stack-no-clear 'vector) a1-11)) (s4-2 (vector+! (new 'stack-no-clear 'vector) (get-trans (the-as process-focusable gp-0) 0) (-> self focus-dir)) @@ -787,7 +787,7 @@ ) (+! (-> self shots-fired) 1) ) - (set! (-> self shot-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self shot-timer) (the-as uint (current-time))) ) ) ) @@ -878,7 +878,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1009,7 +1009,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1087,13 +1087,13 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self shots-fired) (the-as uint 0)) 0 (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (go-hostile self) ) (none) @@ -1124,7 +1124,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (set! (-> self shots-fired) (the-as uint 0)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) @@ -1169,7 +1169,7 @@ (t9-0) ) ) - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (cond ((handle->process (-> self focus handle)) (if (check-los? (-> self los) 0) @@ -1222,7 +1222,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (>= 1 (the-as int (-> self focus aware))) (go-virtual active) ) @@ -1285,7 +1285,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/ruins/ruins-obs.gc b/goal_src/jak2/levels/ruins/ruins-obs.gc index 2ceb4efab4..8689474bc8 100644 --- a/goal_src/jak2/levels/ruins/ruins-obs.gc +++ b/goal_src/jak2/levels/ruins/ruins-obs.gc @@ -439,7 +439,7 @@ This commonly includes things such as: and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 60 150 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (logclear! (-> obj mask) (process-mask sleep)) (logclear! (-> obj mask) (process-mask sleep-code)) @@ -510,7 +510,7 @@ and translate the platform via the `smush` ) :post (behavior () (when (and (nonzero? (-> self root-override root-prim prim-core collide-as)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (>= (- (current-time) (-> self state-time)) (seconds 0.25)) ) (let ((v1-9 (-> self root-override root-prim))) (set! (-> v1-9 prim-core collide-as) (collide-spec)) @@ -729,9 +729,9 @@ This commonly includes things such as: (lambda :behavior task-manager () (set! (-> self data-int32 0) 0) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (seconds -30))) + (set! (-> self beep-time) (+ (current-time) (seconds -30))) (until #f - (when (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40)) + (when (>= (- (current-time) (-> self beep-time)) (seconds 40)) (let ((v1-8 (mod (-> self data-int32 0) (if (= (-> self node-info task) (game-task ruins-tower)) 4 2 @@ -754,7 +754,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (+! (-> self data-int32 0) 1) ) (b! @@ -807,12 +807,12 @@ This commonly includes things such as: ) (b! #t cfg-17 :delay (nop!)) (label cfg-8) - (when (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 40960.0) ) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-17) @@ -831,22 +831,22 @@ This commonly includes things such as: (until (not (or (not *target*) (not (logtest? (focus-status mech) (-> *target* focus-status))))) (b! #t cfg-47 :delay (nop!)) (label cfg-38) - (when (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 40960.0) ) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-47) (b! (or (not *target*) (not (logtest? (focus-status mech) (-> *target* focus-status)))) cfg-38 :delay (nop!)) (talker-spawn-func (-> *talker-speech* 457) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) (b! #t cfg-66 :delay (nop!)) (label cfg-52) ) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not (and gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 61440.0))) cfg-63 @@ -857,7 +857,7 @@ This commonly includes things such as: (label cfg-63) (talker-spawn-func (-> *talker-speech* 454) *entity-pool* (target-pos 0) (the-as region #f)) (label cfg-64) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-66) @@ -885,7 +885,7 @@ This commonly includes things such as: (label cfg-1) (b! #t cfg-14 :delay (nop!)) (label cfg-2) - (let ((a0-2 (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)))) + (let ((a0-2 (>= (- (current-time) (-> self time-limit)) (seconds 10)))) (b! (not a0-2) cfg-11 :likely-delay (set! v1-3 a0-2)) ) (b! (not gp-0) cfg-11 :likely-delay (set! v1-3 gp-0)) @@ -902,7 +902,7 @@ This commonly includes things such as: (label cfg-11) (when v1-3 (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-14) @@ -915,7 +915,7 @@ This commonly includes things such as: (set! v1-18 (not (logtest? (focus-status mech) (-> *target* focus-status)))) (label cfg-22) (b! v1-18 cfg-1 :delay (nop!)) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not gp-0) cfg-38 :likely-delay (set! v1-25 gp-0)) (let ((v1-27 (-> gp-0 extra process))) (b! (not v1-27) cfg-28 :delay (nop!)) @@ -940,7 +940,7 @@ This commonly includes things such as: (label cfg-38) (when v1-25 (talker-spawn-func (-> *talker-speech* 458) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) ) (suspend) @@ -974,7 +974,7 @@ This commonly includes things such as: (b! #t cfg-20 :delay (nop!)) (label cfg-8) (set! v1-6 - (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) (and gp-0 (begin (let ((v1-8 (-> gp-0 extra process))) (b! (not v1-8) cfg-14 :delay (nop!)) @@ -994,7 +994,7 @@ This commonly includes things such as: (label cfg-17) (b! (not v1-6) cfg-19 :delay (empty-form)) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) (label cfg-19) (suspend) (label cfg-20) @@ -1002,7 +1002,7 @@ This commonly includes things such as: (b! #t cfg-53 :delay (nop!)) (label cfg-25) ) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not (and *target* (focus-test? *target* carry))) cfg-43 :delay (empty-form)) (when (< (vector-vector-xz-distance (target-pos 0) @@ -1030,7 +1030,7 @@ This commonly includes things such as: ) ) (talker-spawn-func (-> *talker-speech* 459) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (b! #t cfg-52 :delay (nop!)) (label cfg-43) @@ -1046,7 +1046,7 @@ This commonly includes things such as: ) ) (talker-spawn-func (-> *talker-speech* 458) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) ) (label cfg-52) diff --git a/goal_src/jak2/levels/ruins/ruins-part.gc b/goal_src/jak2/levels/ruins/ruins-part.gc index d75e153f18..6fe523db31 100644 --- a/goal_src/jak2/levels/ruins/ruins-part.gc +++ b/goal_src/jak2/levels/ruins/ruins-part.gc @@ -706,15 +706,11 @@ (defun ruins-bird-bob-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) "Move the bird particles up and down, on a sinusoidal period with a wavelength of 300 frames TODO - check argument types / what birds?" - (with-pp - (set! (-> arg2 vector 0 y) - (+ (-> arg1 key proc root trans y) - (* -2048.0 (sin (* 218.45334 (the float (mod (-> pp clock frame-counter) 300))))) - ) - ) - 0 - (none) - ) + (set! (-> arg2 vector 0 y) + (+ (-> arg1 key proc root trans y) (* -2048.0 (sin (* 218.45334 (the float (mod (current-time) 300)))))) + ) + 0 + (none) ) (defpart 1272 diff --git a/goal_src/jak2/levels/sewer/escort/jinx-bomb.gc b/goal_src/jak2/levels/sewer/escort/jinx-bomb.gc index 5e7b3c8061..2ab56e6b82 100644 --- a/goal_src/jak2/levels/sewer/escort/jinx-bomb.gc +++ b/goal_src/jak2/levels/sewer/escort/jinx-bomb.gc @@ -44,12 +44,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (and (nonzero? (-> self fuse-delay)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self fuse-delay))) + (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self fuse-delay))) ) (go-virtual explode) ) @@ -69,7 +69,7 @@ (defstate explode (jinx-bomb) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw)) (let ((v1-6 (-> self root-override root-prim))) (set! (-> v1-6 prim-core collide-as) (collide-spec)) diff --git a/goal_src/jak2/levels/sewer/escort/jinx-states.gc b/goal_src/jak2/levels/sewer/escort/jinx-states.gc index ab3b072809..c6b8f22b17 100644 --- a/goal_src/jak2/levels/sewer/escort/jinx-states.gc +++ b/goal_src/jak2/levels/sewer/escort/jinx-states.gc @@ -522,7 +522,7 @@ (seconds 0.05) ) (bot-method-223 self #t) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (or (not (bot-method-214 self)) (not (ruffian-method-237 self))) ) (react-to-focus self) @@ -616,7 +616,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 3) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) frames num-frames) -1))) @@ -624,7 +624,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) diff --git a/goal_src/jak2/levels/sewer/gator.gc b/goal_src/jak2/levels/sewer/gator.gc index 2cc116a3f5..a94ae77cbe 100644 --- a/goal_src/jak2/levels/sewer/gator.gc +++ b/goal_src/jak2/levels/sewer/gator.gc @@ -183,95 +183,93 @@ "Core movement for the [[gator]], circles the target, charges at the target, etc @params TODO - not sure, they all dont seem to do very much and this method is a mess" (local-vars (v1-17 object) (a0-5 object)) - (with-pp - (let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (s5-0 75) - (s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - ) - (b! (not arg2) cfg-26 :delay (nop!)) - (set! s5-0 18) - (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f) - (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40))) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39))) - ) - (b! #t cfg-25 :delay (nop!)) - (label cfg-8) - (let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0))) - (b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16)) - ) - (let ((v1-20 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20)) - (let ((a1-3 (= v1-20 (-> obj draw art-group data 14)))) - (b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3)) - ) - (let ((a1-4 (= v1-20 (-> obj draw art-group data 40)))) - (b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4)) - ) - (set! a0-5 (= v1-20 (-> obj draw art-group data 39))) - ) - (label cfg-21) - (b! (not a0-5) cfg-23 :delay (set! v1-17 #t)) - (set! v1-17 #f) - (label cfg-23) - (if v1-17 - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14))) - ) - (label cfg-25) - (b! #t cfg-48 :delay (nop!)) - (label cfg-26) - (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f) - (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38))) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37))) - ) - (b! #t cfg-48 :delay (nop!)) - (label cfg-31) - (if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13)) - (= v1-41 (-> obj draw art-group data 38)) - (= v1-41 (-> obj draw art-group data 37)) - ) - ) - ) - ) + (let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (s5-0 75) + (s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) ) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (b! (not arg2) cfg-26 :delay (nop!)) + (set! s5-0 18) + (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f) + (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40))) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39))) + ) + (b! #t cfg-25 :delay (nop!)) + (label cfg-8) + (let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0))) + (b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16)) + ) + (let ((v1-20 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) ) - (label cfg-48) - (let ((v1-50 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) + (b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20)) + (let ((a1-3 (= v1-20 (-> obj draw art-group data 14)))) + (b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3)) + ) + (let ((a1-4 (= v1-20 (-> obj draw art-group data 40)))) + (b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4)) + ) + (set! a0-5 (= v1-20 (-> obj draw art-group data 39))) + ) + (label cfg-21) + (b! (not a0-5) cfg-23 :delay (set! v1-17 #t)) + (set! v1-17 #f) + (label cfg-23) + (if v1-17 + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14))) + ) + (label cfg-25) + (b! #t cfg-48 :delay (nop!)) + (label cfg-26) + (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f) + (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38))) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37))) + ) + (b! #t cfg-48 :delay (nop!)) + (label cfg-31) + (if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13)) + (= v1-41 (-> obj draw art-group data 38)) + (= v1-41 (-> obj draw art-group data 37)) + ) + ) + ) + ) ) - (when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0)))) - (>= (- (-> pp clock frame-counter) (the-as time-frame s5-0)) (-> obj turn-time)) - ) - (let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))) - (ja-channel-push! 1 (the-as time-frame s5-0)) - (set! (-> obj skel root-channel 0 frame-group) s4-0) - (let ((s5-1 (-> obj skel root-channel 0))) - (set! (-> s5-1 num-func) num-func-identity) - (set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0)))) - ) - ) - (let ((v0-4 (-> pp clock frame-counter))) - (set! (-> obj turn-time) v0-4) - v0-4 + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (label cfg-48) + (let ((v1-50 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0)))) + (>= (- (current-time) (the-as time-frame s5-0)) (-> obj turn-time)) + ) + (let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))) + (ja-channel-push! 1 (the-as time-frame s5-0)) + (set! (-> obj skel root-channel 0 frame-group) s4-0) + (let ((s5-1 (-> obj skel root-channel 0))) + (set! (-> s5-1 num-func) num-func-identity) + (set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0)))) ) ) + (let ((v0-4 (current-time))) + (set! (-> obj turn-time) v0-4) + v0-4 + ) ) ) ) @@ -506,7 +504,7 @@ (defstate stare (gator) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -515,7 +513,7 @@ (func) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (go-virtual pacing) ) (none) diff --git a/goal_src/jak2/levels/sewer/grim2-course.gc b/goal_src/jak2/levels/sewer/grim2-course.gc index 6047229d39..75fd976265 100644 --- a/goal_src/jak2/levels/sewer/grim2-course.gc +++ b/goal_src/jak2/levels/sewer/grim2-course.gc @@ -420,36 +420,31 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) - (clear-poi-and-focus! arg0) - (logclear! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 204800.0) - (set! (-> arg0 min-speed) 40960.0) - (set! (-> arg0 max-speed) 40960.0) - (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) - (set! (-> v1-12 bytes 5) 1) - (set! (-> v1-12 bytes 6) 11) - (set! (-> v1-12 bytes 4) -1) - (set! (-> (the-as ruft-wait-spot v1-12) check-done) - (the-as - (function ruft-wait-spot ruffian symbol) - (lambda ((arg0 object) (arg1 grim-sewer)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (set! (-> arg0 waypoint-time0) (current-time)) + (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) + (clear-poi-and-focus! arg0) + (logclear! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 204800.0) + (set! (-> arg0 min-speed) 40960.0) + (set! (-> arg0 max-speed) 40960.0) + (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) + (set! (-> v1-12 bytes 5) 1) + (set! (-> v1-12 bytes 6) 11) + (set! (-> v1-12 bytes 4) -1) + (set! (-> (the-as ruft-wait-spot v1-12) check-done) + (the-as + (function ruft-wait-spot ruffian symbol) + (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) - ) - ) - ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f diff --git a/goal_src/jak2/levels/sewer/hal2-course.gc b/goal_src/jak2/levels/sewer/hal2-course.gc index 17a92ca965..82d3e9d599 100644 --- a/goal_src/jak2/levels/sewer/hal2-course.gc +++ b/goal_src/jak2/levels/sewer/hal2-course.gc @@ -494,35 +494,33 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 5 actor)) - (a0-1 (if v1-3 - (-> v1-3 extra process) - ) - ) - ) - (if (or (not a0-1) - (or (not (logtest? (-> a0-1 entity extra perm status) (entity-perm-status subtask-complete))) - (< -176128.0 (-> (target-pos 0) y)) - ) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - ) - (cond - ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 3 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 5 actor)) + (a0-1 (if v1-3 + (-> v1-3 extra process) + ) + ) + ) + (if (or (not a0-1) + (or (not (logtest? (-> a0-1 entity extra perm status) (entity-perm-status subtask-complete))) + (< -176128.0 (-> (target-pos 0) y)) + ) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + ) + (cond + ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 3 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -549,60 +547,58 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-8 process) (a0-13 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - (let ((a0-3 s3-0)) - (and a0-3 (< (the-as int (send-event a0-3 'query 'waypoint)) 3)) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) ) - (send-event s3-0 'request 'waypoint 3) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) - (begin (set! a0-8 s4-0) a0-8) - (< (the-as int (send-event a0-8 'query 'waypoint)) 3) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) ) - (send-event s4-0 'request 'waypoint 3) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) - (begin (set! a0-13 s5-0) a0-13) - (< (the-as int (send-event a0-13 'query 'waypoint)) 3) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - (send-event s5-0 'request 'waypoint 3) - ) - (cond - ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((and (>= (- (-> (target-pos 0) x) (-> arg1 root-override2 trans x)) -65536.0) - (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 3)) - (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 3)) - (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 3)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + (let ((a0-3 s3-0)) + (and a0-3 (< (the-as int (send-event a0-3 'query 'waypoint)) 3)) + ) + ) + (send-event s3-0 'request 'waypoint 3) ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) + (begin (set! a0-8 s4-0) a0-8) + (< (the-as int (send-event a0-8 'query 'waypoint)) 3) + ) + (send-event s4-0 'request 'waypoint 3) + ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) + (begin (set! a0-13 s5-0) a0-13) + (< (the-as int (send-event a0-13 'query 'waypoint)) 3) + ) + (send-event s5-0 'request 'waypoint 3) + ) + (cond + ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((and (>= (- (-> (target-pos 0) x) (-> arg1 root-override2 trans x)) -65536.0) + (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 3)) + (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 3)) + (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 3)) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -666,73 +662,71 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-8 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (let ((a0-1 s3-0)) - (if (and (and a0-1 (= (send-event a0-1 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - ) - (send-event s3-0 'request 'waypoint 9) - ) - ) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (not (speech-playing? arg1 6)) - (begin (set! a0-8 s3-0) a0-8) - (>= (the-as int (send-event a0-8 'query 'waypoint)) 9) - ) - (play-speech arg1 6) - (play-speech arg1 7) - ) - (let ((a0-11 s5-0)) - (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.6)) - ) - (send-event s5-0 'request 'waypoint 9) - ) - ) - (let ((a0-16 s4-0)) - (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.8)) - ) - (send-event s4-0 'request 'waypoint 9) - ) - ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (not (speech-playing? arg1 2)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 2) - (play-speech arg1 3) - (play-speech arg1 4) - (play-speech arg1 5) - ) - (when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 9)) - (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 9)) - (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 9)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 9 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (let ((a0-1 s3-0)) + (if (and (and a0-1 (= (send-event a0-1 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + ) + (send-event s3-0 'request 'waypoint 9) + ) + ) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (not (speech-playing? arg1 6)) + (begin (set! a0-8 s3-0) a0-8) + (>= (the-as int (send-event a0-8 'query 'waypoint)) 9) + ) + (play-speech arg1 6) + (play-speech arg1 7) + ) + (let ((a0-11 s5-0)) + (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.6)) + ) + (send-event s5-0 'request 'waypoint 9) + ) + ) + (let ((a0-16 s4-0)) + (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.8)) + ) + (send-event s4-0 'request 'waypoint 9) + ) + ) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (not (speech-playing? arg1 2)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 2) + (play-speech arg1 3) + (play-speech arg1 4) + (play-speech arg1 5) + ) + (when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 9)) + (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 9)) + (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 9)) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 9 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) - #f ) + #f ) ) ) @@ -807,27 +801,27 @@ ) 1.0 ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) ) ) (let ((a0-3 s3-0)) (if (and (and a0-3 (= (send-event a0-3 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) ) (send-event s3-0 'request 'waypoint 11) ) ) (let ((a0-8 s4-0)) (if (and (and a0-8 (= (send-event a0-8 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) ) (send-event s4-0 'request 'waypoint 11) ) ) (let ((a0-13 s5-0)) (if (and (and a0-13 (= (send-event a0-13 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) ) (send-event s5-0 'request 'waypoint 11) ) @@ -1615,18 +1609,16 @@ (set! (-> (the-as halt-wait-spot v1-34) check-done) (the-as (function halt-wait-spot hal symbol) - (lambda ((arg0 object) (arg1 hal-sewer)) (with-pp - (cond - ((logtest? (-> arg1 bot-task-bits) 1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 24 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - (else - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - #f - ) + (lambda ((arg0 object) (arg1 hal-sewer)) (cond + ((logtest? (-> arg1 bot-task-bits) 1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 24 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + (else + (set! (-> arg1 waypoint-time0) (current-time)) + #f ) ) ) @@ -1697,7 +1689,7 @@ (-> v1-13 extra process) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) (set! (-> a1-1 num-params) 2) @@ -1716,7 +1708,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) (process->ppointer pp)) (set! (-> a1-2 num-params) 2) @@ -1736,7 +1728,7 @@ ) ) (if (and (not (speech-playing? arg1 28)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) (not (channel-active? arg1 (the-as uint 0))) ) (play-speech arg1 28) @@ -1832,7 +1824,7 @@ (lambda ((arg0 object) (arg1 hal-sewer)) (with-pp (cond - ((>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) + ((>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) (cond ((logtest? (-> arg1 waypoint-bits) 1) (when (and (not (speech-playing? arg1 29)) (not (speech-playing? arg1 30))) @@ -1874,7 +1866,7 @@ (-> v1-44 extra process) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) (set! (-> a1-10 num-params) 2) @@ -1893,7 +1885,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5)) (let ((a1-11 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-11 from) (process->ppointer pp)) (set! (-> a1-11 num-params) 2) @@ -1912,7 +1904,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) (let ((a1-12 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-12 from) (process->ppointer pp)) (set! (-> a1-12 num-params) 2) @@ -2136,7 +2128,7 @@ #t ) ) - ((and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) + ((and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) (>= (vector4-dot (math-camera-pos) (the-as vector (-> arg1 test-plane))) 0.0) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) @@ -2231,7 +2223,7 @@ ) ) (hal-sewer-method-228 arg1) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.75)) (let ((a1-8 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-8 from) (process->ppointer pp)) (set! (-> a1-8 num-params) 2) @@ -2250,7 +2242,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.75)) (let ((a1-9 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-9 from) (process->ppointer pp)) (set! (-> a1-9 num-params) 2) @@ -2269,7 +2261,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) (set! (-> a1-10 num-params) 2) @@ -2344,69 +2336,67 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-10 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s5-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s3-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.75)) - (send-event s4-0 'request 'waypoint 34) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.25)) - (send-event s3-0 'request 'waypoint 34) - ) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (and (not (speech-playing? arg1 42)) - (not (speech-playing? arg1 43)) - (begin - (let ((v1-45 (-> arg1 actor-group 0 data 1 actor))) - (set! a0-10 (if v1-45 - (-> v1-45 extra process) - ) - ) - ) - a0-10 - ) - (>= (the-as int (send-event a0-10 'query 'waypoint)) 33) - ) - ) - (if (zero? (get-rand-int arg1 2)) - (play-speech arg1 42) - (play-speech arg1 43) - ) - (play-speech arg1 44) - (play-speech arg1 45) - ) - (let ((a0-16 s5-0)) - (when (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 34)) - (let ((a0-18 s4-0)) - (and a0-18 (= (send-event a0-18 'query 'waypoint) 34)) - ) - (let ((a0-20 s3-0)) - (and (and a0-20 (= (send-event a0-20 'query 'waypoint) 34)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s5-0 (if v1-3 + (-> v1-3 extra process) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 35 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s3-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.75)) + (send-event s4-0 'request 'waypoint 34) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.25)) + (send-event s3-0 'request 'waypoint 34) + ) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (and (not (speech-playing? arg1 42)) + (not (speech-playing? arg1 43)) + (begin + (let ((v1-45 (-> arg1 actor-group 0 data 1 actor))) + (set! a0-10 (if v1-45 + (-> v1-45 extra process) + ) + ) + ) + a0-10 + ) + (>= (the-as int (send-event a0-10 'query 'waypoint)) 33) + ) + ) + (if (zero? (get-rand-int arg1 2)) + (play-speech arg1 42) + (play-speech arg1 43) ) + (play-speech arg1 44) + (play-speech arg1 45) + ) + (let ((a0-16 s5-0)) + (when (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 34)) + (let ((a0-18 s4-0)) + (and a0-18 (= (send-event a0-18 'query 'waypoint) 34)) + ) + (let ((a0-20 s3-0)) + (and (and a0-20 (= (send-event a0-20 'query 'waypoint) 34)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 35 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -2561,7 +2551,7 @@ ) 1.0 ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) (else (if (and (not (speech-playing? arg1 46)) (not (channel-active? arg1 (the-as uint 0)))) @@ -2573,21 +2563,21 @@ ) (let ((a0-6 s3-0)) (if (and (and a0-6 (= (send-event a0-6 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) ) (send-event s3-0 'request 'waypoint 37) ) ) (let ((a0-11 s4-0)) (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) ) (send-event s4-0 'request 'waypoint 37) ) ) (let ((a0-16 s5-0)) (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) ) (send-event s5-0 'request 'waypoint 37) ) @@ -2738,7 +2728,7 @@ ) (cond ((not (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) (logior! (-> arg1 waypoint-bits) 1) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-5 from) (process->ppointer pp)) @@ -2763,7 +2753,7 @@ #f ) ((not (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) (logior! (-> arg1 waypoint-bits) 2) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) @@ -2784,7 +2774,7 @@ #f ) ((not (logtest? (-> arg1 waypoint-bits) 4)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 5)) (logior! (-> arg1 waypoint-bits) 4) (let ((a1-11 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-11 from) (process->ppointer pp)) @@ -2875,58 +2865,56 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) - (send-event s4-0 'request 'waypoint 42) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) - (send-event s5-0 'request 'waypoint 42) - ) - (cond - ((hal-sewer-method-231 arg1 24) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 44 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((let ((a0-11 s3-0)) - (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - (let ((a0-14 s4-0)) - (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) - (let ((a0-17 s5-0)) - (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 43 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) + (send-event s4-0 'request 'waypoint 42) ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) + (send-event s5-0 'request 'waypoint 42) + ) + (cond + ((hal-sewer-method-231 arg1 24) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 44 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((let ((a0-11 s3-0)) + (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + (let ((a0-14 s4-0)) + (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + (let ((a0-17 s5-0)) + (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 43 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -2974,62 +2962,60 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (when (hal-sewer-method-231 arg1 24) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 44 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (cond - ((logtest? (-> arg1 bot-task-bits) 20) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (when (not (channel-active? arg1 (the-as uint 0))) - (let ((v1-22 *target*)) - (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) - (cond - ((not (speech-playing? arg1 58)) - (play-speech arg1 58) - ) - ((not (speech-playing? arg1 59)) - (play-speech arg1 59) - ) - ((not (speech-playing? arg1 60)) - (play-speech arg1 60) - (play-speech arg1 61) - ) - ) + (when (hal-sewer-method-231 arg1 24) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 44 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (cond + ((logtest? (-> arg1 bot-task-bits) 20) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + (when (not (channel-active? arg1 (the-as uint 0))) + (let ((v1-22 *target*)) + (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) + (cond + ((not (speech-playing? arg1 58)) + (play-speech arg1 58) + ) + ((not (speech-playing? arg1 59)) + (play-speech arg1 59) + ) + ((not (speech-playing? arg1 60)) + (play-speech arg1 60) + (play-speech arg1 61) + ) ) ) ) ) - ((channel-active? arg1 (the-as uint 0)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 11)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (let ((v1-55 (-> arg1 sentries1-reminder-index)) - (a1-14 (-> arg1 hal2-course sentries1-reminders)) - ) - (cond - ((< v1-55 (-> a1-14 length)) - (set! (-> arg1 sentries1-reminder-index) (+ v1-55 1)) - (play-speech arg1 (-> a1-14 v1-55)) - ) - (else - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) + ) + ((channel-active? arg1 (the-as uint 0)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 11)) + (set! (-> arg1 waypoint-time0) (current-time)) + (let ((v1-55 (-> arg1 sentries1-reminder-index)) + (a1-14 (-> arg1 hal2-course sentries1-reminders)) + ) + (cond + ((< v1-55 (-> a1-14 length)) + (set! (-> arg1 sentries1-reminder-index) (+ v1-55 1)) + (play-speech arg1 (-> a1-14 v1-55)) + ) + (else + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) ) ) ) ) ) - #f ) + #f ) ) ) @@ -3103,58 +3089,56 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.2)) - (send-event s4-0 'request 'waypoint 44) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) - (send-event s5-0 'request 'waypoint 44) - ) - (cond - ((hal-sewer-method-231 arg1 27) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 48 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((let ((a0-11 s3-0)) - (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - (let ((a0-14 s4-0)) - (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) - (let ((a0-17 s5-0)) - (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 47 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.2)) + (send-event s4-0 'request 'waypoint 44) ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) + (send-event s5-0 'request 'waypoint 44) + ) + (cond + ((hal-sewer-method-231 arg1 27) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 48 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((let ((a0-11 s3-0)) + (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + (let ((a0-14 s4-0)) + (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + (let ((a0-17 s5-0)) + (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 47 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -3202,60 +3186,58 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (when (hal-sewer-method-231 arg1 27) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 48 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (cond - ((logtest? (-> arg1 bot-task-bits) 40) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (when (not (channel-active? arg1 (the-as uint 0))) - (let ((v1-22 *target*)) - (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) - (cond - ((not (speech-playing? arg1 64)) - (play-speech arg1 64) - ) - ((not (speech-playing? arg1 65)) - (play-speech arg1 65) - ) - ) + (when (hal-sewer-method-231 arg1 27) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 48 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (cond + ((logtest? (-> arg1 bot-task-bits) 40) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + (when (not (channel-active? arg1 (the-as uint 0))) + (let ((v1-22 *target*)) + (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) + (cond + ((not (speech-playing? arg1 64)) + (play-speech arg1 64) + ) + ((not (speech-playing? arg1 65)) + (play-speech arg1 65) + ) ) ) ) ) - ((channel-active? arg1 (the-as uint 0)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 9)) - (let ((v1-46 (-> arg1 sentries2-reminder-index)) - (a1-11 (-> arg1 hal2-course sentries2-reminders)) - ) - (cond - ((< v1-46 (-> a1-11 length)) - (set! (-> arg1 sentries2-reminder-index) (+ v1-46 1)) - (play-speech arg1 (-> a1-11 v1-46)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 20)) - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) - ) + ) + ((channel-active? arg1 (the-as uint 0)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 9)) + (let ((v1-46 (-> arg1 sentries2-reminder-index)) + (a1-11 (-> arg1 hal2-course sentries2-reminders)) + ) + (cond + ((< v1-46 (-> a1-11 length)) + (set! (-> arg1 sentries2-reminder-index) (+ v1-46 1)) + (play-speech arg1 (-> a1-11 v1-46)) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 20)) + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) + ) ) ) ) ) ) - #f ) + #f ) ) ) @@ -3318,9 +3300,7 @@ ) ) ) - (when (and (logtest? (-> arg1 waypoint-bits) 1) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) - ) + (when (and (logtest? (-> arg1 waypoint-bits) 1) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25))) (set! (-> arg1 waypoint-bits) (logand -2 (-> arg1 waypoint-bits))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) @@ -3488,10 +3468,10 @@ ) ) ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.2)) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.2)) (send-event s3-0 'request 'waypoint 48) ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) (send-event s4-0 'request 'waypoint 48) ) ) @@ -3682,44 +3662,42 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (cond - ((hal-sewer-method-229 arg1) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (when (and (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "sewer-hosehead" #f)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 57 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (cond + ((hal-sewer-method-229 arg1) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (when (and (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "sewer-hosehead" #f)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 57 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) - (else - (cond - ((channel-active? arg1 (the-as uint 0)) - (set! (-> arg1 waypoint-time0) (+ (-> pp clock frame-counter) (seconds 9))) - ) - ((>= (-> pp clock frame-counter) (-> arg1 waypoint-time0)) - (let ((a1-8 - (bot-speech-list-method-9 - (-> arg1 hal2-course bomb2-reminders) - arg1 - (-> arg1 hal2-course speeches) - (speech-flags) - ) + ) + (else + (cond + ((channel-active? arg1 (the-as uint 0)) + (set! (-> arg1 waypoint-time0) (+ (current-time) (seconds 9))) + ) + ((>= (current-time) (-> arg1 waypoint-time0)) + (let ((a1-8 + (bot-speech-list-method-9 + (-> arg1 hal2-course bomb2-reminders) + arg1 + (-> arg1 hal2-course speeches) + (speech-flags) ) ) - (if (>= a1-8 0) - (play-speech arg1 a1-8) - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) - ) + ) + (if (>= a1-8 0) + (play-speech arg1 a1-8) + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) + ) ) - ) + ) ) ) - #f ) + #f ) ) ) @@ -3927,70 +3905,66 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (send-event s5-0 'request 'waypoint 59) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (send-event s3-0 'request 'waypoint 59) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (send-event s4-0 'request 'waypoint 59) + ) + (when (not (channel-active? arg1 (the-as uint 0))) + (cond + ((and (not (speech-playing? arg1 75)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 6))) + (play-speech arg1 75) + (play-speech arg1 76) + ) + (else + (when (and (>= (vector4-dot (-> (the-as process-focusable s3-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) + (>= (vector4-dot (-> (the-as process-focusable s4-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) + (>= (vector4-dot (-> (the-as process-focusable s5-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (send-event s5-0 'request 'waypoint 59) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (send-event s3-0 'request 'waypoint 59) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (send-event s4-0 'request 'waypoint 59) - ) - (when (not (channel-active? arg1 (the-as uint 0))) - (cond - ((and (not (speech-playing? arg1 75)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 6)) - ) - (play-speech arg1 75) - (play-speech arg1 76) - ) - (else - (when (and (>= (vector4-dot (-> (the-as process-focusable s3-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - (>= (vector4-dot (-> (the-as process-focusable s4-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - (>= (vector4-dot (-> (the-as process-focusable s5-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - ) - (let ((a0-18 *target*)) - (when (and a0-18 - (and (>= (vector4-dot (get-trans a0-18 0) (the-as vector (-> arg1 test-plane))) 0.0) - (scene-play arg1 "sewer-blow-up-statue-res" #f) - ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 67 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (let ((a0-18 *target*)) + (when (and a0-18 + (and (>= (vector4-dot (get-trans a0-18 0) (the-as vector (-> arg1 test-plane))) 0.0) + (scene-play arg1 "sewer-blow-up-statue-res" #f) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 67 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) ) ) - (none) ) + (none) ) ) ) diff --git a/goal_src/jak2/levels/sewer/hosehead.gc b/goal_src/jak2/levels/sewer/hosehead.gc index 8b2a87dd18..016831c213 100644 --- a/goal_src/jak2/levels/sewer/hosehead.gc +++ b/goal_src/jak2/levels/sewer/hosehead.gc @@ -971,7 +971,7 @@ :enter (-> (method-of-type nav-enemy idle) enter) :exit (-> (method-of-type nav-enemy idle) exit) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (let ((a0-3 (handle->process (-> self focus handle)))) (when a0-3 (let ((f0-0 @@ -1017,7 +1017,7 @@ (set! (-> self fire-beam?) #f) (set! (-> self allow-head) #t) (set! (-> self lazer-length) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1063,7 +1063,7 @@ ) (set! (-> self head-angle) f0-5) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (let ((a0-8 (handle->process (-> self focus handle)))) (when a0-8 (let ((f0-6 @@ -1429,7 +1429,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior hosehead) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1831,9 +1831,9 @@ (ja :num! (seek! max f30-0)) ) (set! (-> self fire-beam?) #t) - (let ((gp-0 (+ (-> self clock frame-counter) (seconds 2)))) + (let ((gp-0 (+ (current-time) (seconds 2)))) (until #f - (when (or (< gp-0 (-> self clock frame-counter)) (not (-> self fire-beam?)) (not (enemy-method-96 self 8192.0 #t))) + (when (or (< gp-0 (current-time)) (not (-> self fire-beam?)) (not (enemy-method-96 self 8192.0 #t))) (set! (-> self fire-beam?) #f) (set! (-> self allow-head) #f) (goto cfg-13) @@ -1954,9 +1954,9 @@ ) ) (nav-enemy-method-166 self) - (set! (-> self last-time-dist-changed) (-> self clock frame-counter)) + (set! (-> self last-time-dist-changed) (current-time)) (set! (-> self next-lazer-time) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1985,11 +1985,9 @@ 0 ) ((zero? (-> self next-lazer-time)) - (set! (-> self next-lazer-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 1.0 2.0)))) - ) + (set! (-> self next-lazer-time) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 1.0 2.0))))) ) - ((>= (-> self clock frame-counter) (-> self next-lazer-time)) + ((>= (current-time) (-> self next-lazer-time)) (if (and (enemy-method-96 self 3640.889 #t) (and (< 40960.0 f30-0) (hosehead-method-190 self))) (go-virtual fire) ) diff --git a/goal_src/jak2/levels/sewer/mog2-course.gc b/goal_src/jak2/levels/sewer/mog2-course.gc index 6d51ae1a2b..be6f8d4638 100644 --- a/goal_src/jak2/levels/sewer/mog2-course.gc +++ b/goal_src/jak2/levels/sewer/mog2-course.gc @@ -428,36 +428,31 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 mog-sewer)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) - (clear-poi-and-focus! arg0) - (logclear! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 204800.0) - (set! (-> arg0 min-speed) 32768.0) - (set! (-> arg0 max-speed) 32768.0) - (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) - (set! (-> v1-12 bytes 5) 1) - (set! (-> v1-12 bytes 6) 9) - (set! (-> v1-12 bytes 4) -1) - (set! (-> (the-as ruft-wait-spot v1-12) check-done) - (the-as - (function ruft-wait-spot ruffian symbol) - (lambda ((arg0 object) (arg1 mog-sewer)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (set! (-> arg0 waypoint-time0) (current-time)) + (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) + (clear-poi-and-focus! arg0) + (logclear! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 204800.0) + (set! (-> arg0 min-speed) 32768.0) + (set! (-> arg0 max-speed) 32768.0) + (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) + (set! (-> v1-12 bytes 5) 1) + (set! (-> v1-12 bytes 6) 9) + (set! (-> v1-12 bytes 4) -1) + (set! (-> (the-as ruft-wait-spot v1-12) check-done) + (the-as + (function ruft-wait-spot ruffian symbol) + (lambda ((arg0 object) (arg1 mog-sewer)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) - ) - ) - ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f diff --git a/goal_src/jak2/levels/sewer/sewer-obs.gc b/goal_src/jak2/levels/sewer/sewer-obs.gc index d274f4f17a..982bdf459f 100644 --- a/goal_src/jak2/levels/sewer/sewer-obs.gc +++ b/goal_src/jak2/levels/sewer/sewer-obs.gc @@ -215,29 +215,27 @@ This commonly includes things such as: (defun sew-tri-blade-joint-callback ((arg0 draw-control) (arg1 cspace-array) (arg2 joint-control)) "Handles the rotation and transformation of the [[sew-tri-blade]]" - (with-pp - (let ((blade (the-as sew-tri-blade (-> arg0 process))) - (matrix (new-stack-matrix0)) - (f30-0 (* 182.04445 (* 0.0033333334 (the float (-> pp clock frame-counter))))) - ) - (let ((s3-0 (-> arg1 data 4 bone transform))) - (matrix-rotate-y! matrix (* 240.0 f30-0)) - (matrix*! s3-0 matrix s3-0) - ) - (let ((s3-1 (-> arg1 data 5 bone transform))) - (matrix-rotate-y! matrix (* -240.0 f30-0)) - (matrix*! s3-1 matrix s3-1) - (set! (-> blade y-max) (+ (- 25395.2 (-> blade root trans y)) (-> s3-1 trans y))) - ) - (let ((s4-1 (-> arg1 data 6 bone transform))) - (matrix-rotate-y! matrix (* 240.0 f30-0)) - (matrix*! s4-1 matrix s4-1) - (set! (-> blade y-max) (fmax (-> blade y-max) (+ (- 19251.2 (-> blade root trans y)) (-> s4-1 trans y)))) + (let ((blade (the-as sew-tri-blade (-> arg0 process))) + (matrix (new-stack-matrix0)) + (f30-0 (* 182.04445 (* 0.0033333334 (the float (current-time))))) ) + (let ((s3-0 (-> arg1 data 4 bone transform))) + (matrix-rotate-y! matrix (* 240.0 f30-0)) + (matrix*! s3-0 matrix s3-0) + ) + (let ((s3-1 (-> arg1 data 5 bone transform))) + (matrix-rotate-y! matrix (* -240.0 f30-0)) + (matrix*! s3-1 matrix s3-1) + (set! (-> blade y-max) (+ (- 25395.2 (-> blade root trans y)) (-> s3-1 trans y))) + ) + (let ((s4-1 (-> arg1 data 6 bone transform))) + (matrix-rotate-y! matrix (* 240.0 f30-0)) + (matrix*! s4-1 matrix s4-1) + (set! (-> blade y-max) (fmax (-> blade y-max) (+ (- 19251.2 (-> blade root trans y)) (-> s4-1 trans y)))) ) - 0 - (none) ) + 0 + (none) ) (defstate idle (sew-tri-blade) @@ -342,81 +340,79 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj mask) (logior (process-mask ambient) (-> obj mask))) - (let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) - (set! (-> cshape dynam) (copy *standard-dynamics* 'process)) - (set! (-> cshape reaction) cshape-reaction-default) - (set! (-> cshape no-reaction) - (the-as (function collide-shape-moving collide-query vector vector object) nothing) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-group cshape (the-as uint 3) 0))) - (set! (-> cshape total-prims) (the-as uint 4)) - (set! (-> s3-0 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> s3-0 prim-core action) (collide-action solid deadly)) - (set-vector! (-> s3-0 local-sphere) 0.0 10240.0 0.0 36864.0) - (set! (-> cshape root-prim) s3-0) - ) - (pusher-init cshape) - (let ((v1-16 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 2) (the-as uint 0)))) - (set! (-> v1-16 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-16 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-16 prim-core action) (collide-action solid deadly)) - (set! (-> v1-16 transform-index) 4) - (set-vector! (-> v1-16 local-sphere) 0.0 8192.0 0.0 18841.6) - ) - (let ((v1-18 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 1) (the-as uint 0)))) - (set! (-> v1-18 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-18 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-18 prim-core action) (collide-action solid deadly)) - (set! (-> v1-18 transform-index) 5) - (set-vector! (-> v1-18 local-sphere) 0.0 8192.0 0.0 12288.0) - ) - (let ((v1-20 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0)))) - (set! (-> v1-20 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-20 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-20 prim-core action) (collide-action solid deadly)) - (set! (-> v1-20 transform-index) 6) - (set-vector! (-> v1-20 local-sphere) 0.0 4915.2 0.0 7372.8) - ) - (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w))) - (let ((v1-23 (-> cshape root-prim))) - (set! (-> cshape backup-collide-as) (-> v1-23 prim-core collide-as)) - (set! (-> cshape backup-collide-with) (-> v1-23 prim-core collide-with)) - ) - (set! (-> obj root) cshape) + (set! (-> obj mask) (logior (process-mask ambient) (-> obj mask))) + (let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> cshape dynam) (copy *standard-dynamics* 'process)) + (set! (-> cshape reaction) cshape-reaction-default) + (set! (-> cshape no-reaction) + (the-as (function collide-shape-moving collide-query vector vector object) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-group cshape (the-as uint 3) 0))) + (set! (-> cshape total-prims) (the-as uint 4)) + (set! (-> s3-0 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> s3-0 prim-core action) (collide-action solid deadly)) + (set-vector! (-> s3-0 local-sphere) 0.0 10240.0 0.0 36864.0) + (set! (-> cshape root-prim) s3-0) ) - (process-drawable-from-entity! obj entity) - (logclear! (-> obj mask) (process-mask actor-pause)) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-sew-tri-blade" (the-as (pointer uint32) #f))) - (the-as pair 0) + (pusher-init cshape) + (let ((v1-16 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 2) (the-as uint 0)))) + (set! (-> v1-16 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-16 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-16 prim-core action) (collide-action solid deadly)) + (set! (-> v1-16 transform-index) 4) + (set-vector! (-> v1-16 local-sphere) 0.0 8192.0 0.0 18841.6) ) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (set! (-> obj anim-time) 0.0) - (set! (-> obj anim-offset) 0.0) - (set! (-> obj skel postbind-function) sew-tri-blade-joint-callback) - (let* ((v1-33 *game-info*) - (a0-33 (+ (-> v1-33 attack-id) 1)) - ) - (set! (-> v1-33 attack-id) a0-33) - (set! (-> obj attack-id) a0-33) + (let ((v1-18 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 1) (the-as uint 0)))) + (set! (-> v1-18 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-18 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-18 prim-core action) (collide-action solid deadly)) + (set! (-> v1-18 transform-index) 5) + (set-vector! (-> v1-18 local-sphere) 0.0 8192.0 0.0 12288.0) ) - (if (>= (res-lump-value entity 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0) - (set! (-> obj anim-offset) 3.0) - ) - (set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj root trans))) - (set-falloff-far! (-> obj sound) 286720.0) - (set! (-> obj y-min) 0.0) - (set! (-> obj y-max) 48332.8) - (set! (-> obj snd-water) (static-sound-name "tri-blade-w")) - (set! (-> obj snd-no-water) (static-sound-name "tri-blade")) - (transform-post) - (go (method-of-object obj idle)) - (none) + (let ((v1-20 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0)))) + (set! (-> v1-20 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-20 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-20 prim-core action) (collide-action solid deadly)) + (set! (-> v1-20 transform-index) 6) + (set-vector! (-> v1-20 local-sphere) 0.0 4915.2 0.0 7372.8) + ) + (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w))) + (let ((v1-23 (-> cshape root-prim))) + (set! (-> cshape backup-collide-as) (-> v1-23 prim-core collide-as)) + (set! (-> cshape backup-collide-with) (-> v1-23 prim-core collide-with)) + ) + (set! (-> obj root) cshape) ) + (process-drawable-from-entity! obj entity) + (logclear! (-> obj mask) (process-mask actor-pause)) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-sew-tri-blade" (the-as (pointer uint32) #f))) + (the-as pair 0) + ) + (set! (-> obj state-time) (current-time)) + (set! (-> obj anim-time) 0.0) + (set! (-> obj anim-offset) 0.0) + (set! (-> obj skel postbind-function) sew-tri-blade-joint-callback) + (let* ((v1-33 *game-info*) + (a0-33 (+ (-> v1-33 attack-id) 1)) + ) + (set! (-> v1-33 attack-id) a0-33) + (set! (-> obj attack-id) a0-33) + ) + (if (>= (res-lump-value entity 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0) + (set! (-> obj anim-offset) 3.0) + ) + (set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj root trans))) + (set-falloff-far! (-> obj sound) 286720.0) + (set! (-> obj y-min) 0.0) + (set! (-> obj y-max) 48332.8) + (set! (-> obj snd-water) (static-sound-name "tri-blade-w")) + (set! (-> obj snd-no-water) (static-sound-name "tri-blade")) + (transform-post) + (go (method-of-object obj idle)) + (none) ) (deftype sew-arm-blade (sew-blade) @@ -733,7 +729,7 @@ This commonly includes things such as: (send-event-function hit-proc evt) ) ) - (set! (-> self no-collision-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self no-collision-timer) (the-as uint (current-time))) (let ((root-prim (-> self root-overide root-prim))) (set! (-> root-prim prim-core collide-as) (collide-spec)) (set! (-> root-prim prim-core collide-with) (collide-spec)) @@ -747,7 +743,7 @@ This commonly includes things such as: ) :trans (behavior () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-collision-timer))) + (>= (- (current-time) (the-as int (-> self no-collision-timer))) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -1067,17 +1063,17 @@ This commonly includes things such as: (defstate idle (sew-light-control) :virtual #t :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) - (local-vars (v0-0 entity)) + (local-vars (actor entity)) (the-as object (case event-type (('use-switch) - (set! v0-0 (entity-by-name (the-as string (-> event param 0)))) - (set! (-> self switch-ent) (the-as entity-actor v0-0)) - v0-0 + (set! actor (entity-by-name (the-as string (-> event param 0)))) + (set! (-> self switch-ent) (the-as entity-actor actor)) + actor ) (('use-turret) - (set! v0-0 (entity-by-name (the-as string (-> event param 0)))) - (set! (-> self turret-ent) (the-as entity-actor v0-0)) - v0-0 + (set! actor (entity-by-name (the-as string (-> event param 0)))) + (set! (-> self turret-ent) (the-as entity-actor actor)) + actor ) ) ) diff --git a/goal_src/jak2/levels/sewer/sewer-obs2.gc b/goal_src/jak2/levels/sewer/sewer-obs2.gc index 4fc424a537..9a12ee907e 100644 --- a/goal_src/jak2/levels/sewer/sewer-obs2.gc +++ b/goal_src/jak2/levels/sewer/sewer-obs2.gc @@ -907,8 +907,8 @@ This commonly includes things such as: ) ) (cleanup-for-death self) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 2)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 2)) (suspend) ) ) @@ -1000,7 +1000,7 @@ This commonly includes things such as: (t9-2 sin-rad) (f1-0 -3.1415925) (f2-0 6.283185) - (f3-1 (the float (+ (-> self clock frame-counter) (the-as time-frame (-> self time-skew))))) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> self time-skew))))) (f28-0 (t9-2 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 period))) period)) period))))) ) (when (< ocean-base-height (-> self center y)) @@ -1566,7 +1566,7 @@ This commonly includes things such as: enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw)) (none) ) diff --git a/goal_src/jak2/levels/sewer/sewer-scenes.gc b/goal_src/jak2/levels/sewer/sewer-scenes.gc index a2bad21a31..9b207aaaa0 100644 --- a/goal_src/jak2/levels/sewer/sewer-scenes.gc +++ b/goal_src/jak2/levels/sewer/sewer-scenes.gc @@ -1282,7 +1282,7 @@ (lambda :behavior task-manager () (local-vars (sv-96 int) (sv-100 float) (sv-104 vector)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-gunturret :init hud-init-by-other :to self))) (while (> (-> self data-int32 0) 0) (when (!= (level-status *level* 'sewer) 'active) @@ -1327,10 +1327,10 @@ (set! (-> *game-info* counter) (the float v1-51)) ) (when (and (= (-> self data-int32 1) sv-96) - (and (< sv-100 122880.0) (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40))) + (and (< sv-100 122880.0) (>= (- (current-time) (-> self beep-time)) (seconds 40))) ) (talker-spawn-func (-> *talker-speech* 53) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) ) (suspend) ) diff --git a/goal_src/jak2/levels/stadium/jetboard/skatea-obs.gc b/goal_src/jak2/levels/stadium/jetboard/skatea-obs.gc index a956fcb233..2397c84744 100644 --- a/goal_src/jak2/levels/stadium/jetboard/skatea-obs.gc +++ b/goal_src/jak2/levels/stadium/jetboard/skatea-obs.gc @@ -350,8 +350,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -392,8 +392,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -414,7 +414,7 @@ (send-event *target* 'get-notify self) (set! (-> self trick-type) (board-tricks none)) (let ((gp-2 #f) - (s5-0 (+ (-> self clock frame-counter) (seconds 15))) + (s5-0 (+ (current-time) (seconds 15))) ) (until #f (let ((a1-7 (new 'stack-no-clear 'event-message-block))) @@ -433,11 +433,11 @@ ) ) (render-text self (text-id board-tutorial-boost-jump)) - (when (< s5-0 (-> self clock frame-counter)) + (when (< s5-0 (current-time)) (set! (-> self last-sound-id) (add-process *gui-control* self (gui-channel sig) (gui-action play) "kei009" -99.0 0) ) - (set! s5-0 (+ (-> self clock frame-counter) (seconds 15))) + (set! s5-0 (+ (current-time) (seconds 15))) ) (suspend) (if (= (-> self trick-type) (board-tricks board-quick-jump)) @@ -467,8 +467,8 @@ (while (nonzero? (get-status *gui-control* (-> self last-sound-id))) (suspend) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -533,8 +533,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -574,8 +574,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -612,8 +612,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -962,11 +962,11 @@ (hoverboard-training-manager-method-29 self) (when (not (-> self challenge-done)) (when (and (not (-> self combo-done?)) - (>= (- (-> self clock frame-counter) (-> self hint-time)) (seconds 30)) + (>= (- (current-time) (-> self hint-time)) (seconds 30)) (not (task-node-closed? (game-task-node stadium-board1-resolution))) ) (add-process *gui-control* self (gui-channel sig) (gui-action play) "kei018" -99.0 0) - (set! (-> self hint-time) (-> self clock frame-counter)) + (set! (-> self hint-time) (current-time)) ) ) (none) @@ -1047,7 +1047,7 @@ (set! (-> self score) 0.0) (set! (-> self challenge-done) #f) (set! (-> self combo-done?) #f) - (set! (-> self hint-time) (-> self clock frame-counter)) + (set! (-> self hint-time) (current-time)) (while (and (not (-> self challenge-done)) (logtest? (-> *game-info* features) (game-feature board))) (suspend) ) @@ -1098,8 +1098,8 @@ t1-3 ) ) - (let ((s5-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 1)) + (let ((s5-2 (current-time))) + (until (>= (- (current-time) s5-2) (seconds 1)) (suspend) ) ) @@ -1307,8 +1307,8 @@ t1-3 ) ) - (let ((s5-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 1)) + (let ((s5-2 (current-time))) + (until (>= (- (current-time) s5-2) (seconds 1)) (suspend) ) ) @@ -1451,7 +1451,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1583,7 +1583,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1854,7 +1854,7 @@ This commonly includes things such as: ) (set! (-> self root-override trans y) (+ (-> self pos-y) - (* 2048.0 (cos (* 18204.445 (+ (-> self offset) (* 0.0033333334 (the float (-> self clock frame-counter))))))) + (* 2048.0 (cos (* 18204.445 (+ (-> self offset) (* 0.0033333334 (the float (current-time))))))) ) ) (transform-post) diff --git a/goal_src/jak2/levels/stadium/stadium-obs.gc b/goal_src/jak2/levels/stadium/stadium-obs.gc index 8d4d3db68d..0bbb14c7ef 100644 --- a/goal_src/jak2/levels/stadium/stadium-obs.gc +++ b/goal_src/jak2/levels/stadium/stadium-obs.gc @@ -907,7 +907,7 @@ This commonly includes things such as: :virtual #t :event defend-stadium-rift-rider-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -917,8 +917,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1.2)) (suspend) ) ) @@ -1382,11 +1382,11 @@ This commonly includes things such as: (defbehavior stad-samos-post stad-samos () - (when (>= (- (-> self clock frame-counter) (-> self cquery-timer)) (seconds 0.32)) + (when (>= (- (current-time) (-> self cquery-timer)) (seconds 0.32)) (move-to-ground (-> self root-override2) 40960.0 40960.0 #t (collide-spec backgnd)) - (set! (-> self cquery-timer) (-> self clock frame-counter)) + (set! (-> self cquery-timer) (current-time)) ) - (when (and (nonzero? (-> self focus-disable-timer)) (< (-> self focus-disable-timer) (-> self clock frame-counter))) + (when (and (nonzero? (-> self focus-disable-timer)) (< (-> self focus-disable-timer) (current-time))) (logclear! (-> self focus-status) (focus-status ignore)) (set! (-> self focus-disable-timer) 0) 0 @@ -1529,8 +1529,8 @@ This commonly includes things such as: ) ) (set! (-> self rift-rider-actor) (entity-actor-lookup (-> self entity) 'alt-actor 0)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.31)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.31)) (suspend) ) ) @@ -1594,11 +1594,11 @@ This commonly includes things such as: (set! (-> self enable-move?) #t) (set! (-> self speed) 12288.0) (set! (-> self observed-speed) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (and (nonzero? (-> self state-time)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + (when (and (nonzero? (-> self state-time)) (>= (- (current-time) (-> self state-time)) (seconds 1))) (set! (-> self state-time) 0) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) @@ -1617,7 +1617,7 @@ This commonly includes things such as: ) (spawn-lightning self) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual move-rift-rider) ) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) @@ -1802,7 +1802,7 @@ This commonly includes things such as: :virtual #t :enter (behavior () (logior! (-> self focus-status) (focus-status ignore)) - (set! (-> self focus-disable-timer) (+ (-> self clock frame-counter) (seconds 5))) + (set! (-> self focus-disable-timer) (+ (current-time) (seconds 5))) (kill-lightning self) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) @@ -2024,8 +2024,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -2102,86 +2102,84 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (stack-size-set! (-> obj main-thread) #x180) ;; added - (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) cshape-reaction-default) - (set! (-> s4-0 no-reaction) - (the-as (function collide-shape-moving collide-query vector vector object) nothing) + (stack-size-set! (-> obj main-thread) #x180) ;; added + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) cshape-reaction-default) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-query vector vector object) nothing) + ) + (set! (-> s4-0 penetrated-by) (penetrate jak-yellow-shot jak-red-shot jak-blue-shot)) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0))) + (set! (-> s4-0 total-prims) (the-as uint 4)) + (set! (-> s3-0 prim-core collide-as) (collide-spec bot)) + (set! (-> s3-0 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) ) - (set! (-> s4-0 penetrated-by) (penetrate jak-yellow-shot jak-red-shot jak-blue-shot)) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0))) - (set! (-> s4-0 total-prims) (the-as uint 4)) - (set! (-> s3-0 prim-core collide-as) (collide-spec bot)) - (set! (-> s3-0 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> s3-0 prim-core action) (collide-action solid no-standon)) - (set-vector! (-> s3-0 local-sphere) 0.0 4505.6 0.0 5734.4) - (set! (-> s4-0 root-prim) s3-0) - ) - (let ((v1-13 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-13 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-13 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-13 prim-core action) (collide-action solid)) - (set-vector! (-> v1-13 local-sphere) 0.0 2457.6 0.0 2457.6) - ) - (let ((v1-15 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-15 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-15 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-15 prim-core action) (collide-action solid)) - (set-vector! (-> v1-15 local-sphere) 0.0 4505.6 0.0 2457.6) - ) - (let ((v1-17 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-17 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-17 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-17 prim-core action) (collide-action solid no-standon)) - (set-vector! (-> v1-17 local-sphere) 0.0 6553.6 0.0 2457.6) - ) - (set! (-> s4-0 nav-radius) 6144.0) - (let ((v1-19 (-> s4-0 root-prim))) - (set! (-> s4-0 backup-collide-as) (-> v1-19 prim-core collide-as)) - (set! (-> s4-0 backup-collide-with) (-> v1-19 prim-core collide-with)) - ) - (set! (-> s4-0 event-self) 'touched) - (set! (-> obj root-override2) s4-0) + (set! (-> s3-0 prim-core action) (collide-action solid no-standon)) + (set-vector! (-> s3-0 local-sphere) 0.0 4505.6 0.0 5734.4) + (set! (-> s4-0 root-prim) s3-0) ) - (set! (-> obj hud) (the-as handle #f)) - (set! (-> obj hud-bot-index) 0) - (set! (-> obj rift-rider-joint-offset) 0) - (process-drawable-from-entity! obj arg0) - (init! obj) - (get-nav-control obj (the-as nav-mesh #f)) - (let ((v1-24 (-> obj nav))) - (set! (-> v1-24 sphere-mask) (the-as uint 1102)) + (let ((v1-13 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-13 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-13 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-13 prim-core action) (collide-action solid)) + (set-vector! (-> v1-13 local-sphere) 0.0 2457.6 0.0 2457.6) ) - 0 - (logclear! (-> obj mask) (process-mask actor-pause)) - (process-entity-status! obj (entity-perm-status no-kill) #t) - (set! (-> obj rift-rider-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) - (set! (-> obj entity) arg0) - (dotimes (v1-28 4) - (set! (-> obj lightning v1-28) (the-as handle #f)) + (let ((v1-15 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-15 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-15 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-15 prim-core action) (collide-action solid)) + (set-vector! (-> v1-15 local-sphere) 0.0 4505.6 0.0 2457.6) ) - (set! (-> obj lightning-on?) #f) - (set! (-> obj rift-rider-actor) #f) - (set! (-> obj cquery-timer) (-> pp clock frame-counter)) - (vector-reset! (-> obj hit-dir)) - (set! (-> obj max-hit-points) (+ 5.0 (* 5.0 (you-suck-scale *game-info* #f)))) - (set! (-> obj hit-points) (-> obj max-hit-points)) - (set! (-> obj incoming-attack-id) (the-as uint -1)) - (set! (-> obj focus-disable-timer) 0) - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 903) obj)) - (go (method-of-object obj idle)) - (none) + (let ((v1-17 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-17 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-17 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-17 prim-core action) (collide-action solid no-standon)) + (set-vector! (-> v1-17 local-sphere) 0.0 6553.6 0.0 2457.6) + ) + (set! (-> s4-0 nav-radius) 6144.0) + (let ((v1-19 (-> s4-0 root-prim))) + (set! (-> s4-0 backup-collide-as) (-> v1-19 prim-core collide-as)) + (set! (-> s4-0 backup-collide-with) (-> v1-19 prim-core collide-with)) + ) + (set! (-> s4-0 event-self) 'touched) + (set! (-> obj root-override2) s4-0) ) + (set! (-> obj hud) (the-as handle #f)) + (set! (-> obj hud-bot-index) 0) + (set! (-> obj rift-rider-joint-offset) 0) + (process-drawable-from-entity! obj arg0) + (init! obj) + (get-nav-control obj (the-as nav-mesh #f)) + (let ((v1-24 (-> obj nav))) + (set! (-> v1-24 sphere-mask) (the-as uint 1102)) + ) + 0 + (logclear! (-> obj mask) (process-mask actor-pause)) + (process-entity-status! obj (entity-perm-status no-kill) #t) + (set! (-> obj rift-rider-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) + (set! (-> obj entity) arg0) + (dotimes (v1-28 4) + (set! (-> obj lightning v1-28) (the-as handle #f)) + ) + (set! (-> obj lightning-on?) #f) + (set! (-> obj rift-rider-actor) #f) + (set! (-> obj cquery-timer) (current-time)) + (vector-reset! (-> obj hit-dir)) + (set! (-> obj max-hit-points) (+ 5.0 (* 5.0 (you-suck-scale *game-info* #f)))) + (set! (-> obj hit-points) (-> obj max-hit-points)) + (set! (-> obj incoming-attack-id) (the-as uint -1)) + (set! (-> obj focus-disable-timer) 0) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 903) obj)) + (go (method-of-object obj idle)) + (none) ) (defskelgroup skel-stad-samos samos samos-lod0-jg samos-idle-ja @@ -2669,10 +2667,8 @@ This commonly includes things such as: ) (send-event-function proc a1-2) ) - (when (< (-> self next-message-time) (-> self clock frame-counter)) - (set! (-> self next-message-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0)))) - ) + (when (< (-> self next-message-time) (current-time)) + (set! (-> self next-message-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv014" -99.0 0) ) ) @@ -2701,10 +2697,8 @@ This commonly includes things such as: ) (send-event-function proc a1-6) ) - (when (< (-> self next-message-time) (-> self clock frame-counter)) - (set! (-> self next-message-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0)))) - ) + (when (< (-> self next-message-time) (current-time)) + (set! (-> self next-message-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv014" -99.0 0) ) ) diff --git a/goal_src/jak2/levels/strip/chaincrate.gc b/goal_src/jak2/levels/strip/chaincrate.gc index 534d380012..544ba5db7a 100644 --- a/goal_src/jak2/levels/strip/chaincrate.gc +++ b/goal_src/jak2/levels/strip/chaincrate.gc @@ -283,36 +283,32 @@ ;; WARN: Return type mismatch symbol vs none. (defmethod strip-chain-crate-method-21 strip-chain-crate ((obj strip-chain-crate)) - (with-pp - (let ((f30-0 (total-distance (-> obj path))) - (f28-0 - (* (/ (the float (mod - (the-as uint (+ (-> pp clock frame-counter) (the-as time-frame (-> obj spawn-offset)))) - (-> obj spawn-delay) - ) - ) - (the float (-> obj spawn-delay)) - ) - (-> obj dist-apart) - ) - ) + (let ((f30-0 (total-distance (-> obj path))) + (f28-0 + (* (/ (the float + (mod (the-as uint (+ (current-time) (the-as time-frame (-> obj spawn-offset)))) (-> obj spawn-delay)) + ) + (the float (-> obj spawn-delay)) + ) + (-> obj dist-apart) + ) ) - (while (>= f30-0 f28-0) - (let ((f26-0 (/ f28-0 f30-0))) - (process-spawn strip-chain-crate-slave f26-0 (-> obj crate-speed) :to obj) - ) - (+! f28-0 (-> obj dist-apart)) ) + (while (>= f30-0 f28-0) + (let ((f26-0 (/ f28-0 f30-0))) + (process-spawn strip-chain-crate-slave f26-0 (-> obj crate-speed) :to obj) + ) + (+! f28-0 (-> obj dist-apart)) ) - (none) ) + (none) ) (defstate idle (strip-chain-crate) :virtual #t :code (behavior () (until #f - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn strip-chain-crate-slave 0 (-> self crate-speed) :to self) (+! (-> self next-spawn-time) (the-as time-frame (-> self spawn-delay))) ) @@ -332,43 +328,38 @@ This commonly includes things such as: - loading the skeleton group / bones - sounds" (local-vars (sv-16 int)) - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (let ((f28-0 53248.0) - (f26-0 131072.0) - (f30-0 0.0) - ) - (set! sv-16 0) - (let ((v1-8 (res-lump-data arg0 'speed (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-16))))) - (when v1-8 - (set! f28-0 (-> v1-8 0)) - (set! f26-0 (-> v1-8 1)) - (set! f30-0 (-> v1-8 2)) - ) + (set! (-> obj root) (new 'process 'trsqv)) + (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (let ((f28-0 53248.0) + (f26-0 131072.0) + (f30-0 0.0) + ) + (set! sv-16 0) + (let ((v1-8 (res-lump-data arg0 'speed (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-16))))) + (when v1-8 + (set! f28-0 (-> v1-8 0)) + (set! f26-0 (-> v1-8 1)) + (set! f30-0 (-> v1-8 2)) ) - (set! (-> obj crate-speed) f28-0) - (set! (-> obj dist-apart) f26-0) - (set! (-> obj spawn-delay) (the-as uint (the int (* 300.0 (/ f26-0 f28-0))))) - (set! (-> obj spawn-offset) (the-as uint (the int (* f30-0 (the float (-> obj spawn-delay)))))) ) - (set! (-> obj next-spawn-time) - (+ (-> pp clock frame-counter) - (the-as - time-frame - (- (-> obj spawn-delay) - (mod - (the-as uint (+ (-> pp clock frame-counter) (the-as time-frame (-> obj spawn-offset)))) - (-> obj spawn-delay) - ) - ) - ) - ) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (strip-chain-crate-method-21 obj) - (go (method-of-object obj idle)) - (none) + (set! (-> obj crate-speed) f28-0) + (set! (-> obj dist-apart) f26-0) + (set! (-> obj spawn-delay) (the-as uint (the int (* 300.0 (/ f26-0 f28-0))))) + (set! (-> obj spawn-offset) (the-as uint (the int (* f30-0 (the float (-> obj spawn-delay)))))) ) + (set! (-> obj next-spawn-time) + (+ (current-time) + (the-as + time-frame + (- (-> obj spawn-delay) + (mod (the-as uint (+ (current-time) (the-as time-frame (-> obj spawn-offset)))) (-> obj spawn-delay)) + ) + ) + ) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (strip-chain-crate-method-21 obj) + (go (method-of-object obj idle)) + (none) ) diff --git a/goal_src/jak2/levels/strip/strip-drop.gc b/goal_src/jak2/levels/strip/strip-drop.gc index 63344d9498..08771d045c 100644 --- a/goal_src/jak2/levels/strip/strip-drop.gc +++ b/goal_src/jak2/levels/strip/strip-drop.gc @@ -248,10 +248,10 @@ :trans (the-as (function none :behavior strip-game-crate) rider-trans) :code (the-as (function none :behavior strip-game-crate) sleep-code) :post (behavior () - (let* ((f30-1 (* 333.14133 (cos (* 66.8053 (the float (mod (-> self clock frame-counter) 981)))))) - (f28-1 (* 358.62756 (cos (* 48.65331 (the float (mod (-> self clock frame-counter) 1346)))))) + (let* ((f30-1 (* 333.14133 (cos (* 66.8053 (the float (mod (current-time) 981)))))) + (f28-1 (* 358.62756 (cos (* 48.65331 (the float (mod (current-time) 1346)))))) (f0-6 30.0) - (gp-0 (+ (-> self clock frame-counter) (seconds -15.24))) + (gp-0 (+ (current-time) (seconds -15.24))) (f26-1 (+ 637.1556 (* 637.1556 (cos (* 65536.0 (/ (the float (mod gp-0 (the int (* 300.0 f0-6)))) (* 300.0 f0-6)))))) ) @@ -415,7 +415,7 @@ (none) ) :post (behavior () - (let* ((f0-1 (* 3.640889 (the float (mod (-> self clock frame-counter) #x4650)))) + (let* ((f0-1 (* 3.640889 (the float (mod (current-time) #x4650)))) (f0-5 (+ -16384.0 (* 8192.0 (+ 1.0 (cos f0-1))))) ) (quaternion-rotate-y! (-> self root quat) (-> self init-quat) f0-5) diff --git a/goal_src/jak2/levels/strip/strip-obs.gc b/goal_src/jak2/levels/strip/strip-obs.gc index 04dff10aed..b9099a5e4b 100644 --- a/goal_src/jak2/levels/strip/strip-obs.gc +++ b/goal_src/jak2/levels/strip/strip-obs.gc @@ -100,7 +100,7 @@ (set! (-> a1-7 param 1) (the-as uint v1-13)) ) (when (send-event-function gp-0 a1-7) - (set! (-> self no-collision-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self no-collision-timer) (the-as uint (current-time))) (let ((v1-18 (-> self root-override root-prim))) (set! (-> v1-18 prim-core collide-as) (collide-spec)) (set! (-> v1-18 prim-core collide-with) (collide-spec)) @@ -119,7 +119,7 @@ ;; WARN: Return type mismatch symbol vs none. (defbehavior strip-trans strip-hazard () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-collision-timer))) (seconds 0.3)) + (>= (- (current-time) (the-as int (-> self no-collision-timer))) (seconds 0.3)) ) (let ((v1-7 (-> self root-override root-prim))) (set! (-> v1-7 prim-core collide-as) (-> self root-override backup-collide-as)) @@ -770,11 +770,11 @@ This commonly includes things such as: (set-setting! 'entity-name (-> self camera-name) 0.0 -1) ) ) - ((>= (- (-> self clock frame-counter) (-> self enter-time)) (seconds 3)) + ((>= (- (current-time) (-> self enter-time)) (seconds 3)) (talker-speech-class-method-12 (-> *talker-speech* 194) 1) ) ) - (set! (-> self enter-time) (-> self clock frame-counter)) + (set! (-> self enter-time) (current-time)) ) #f ) @@ -795,7 +795,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self lightning-time) (+ (-> self clock frame-counter) -1)) + (set! (-> self lightning-time) (+ (current-time) -1)) (none) ) :exit (behavior () @@ -805,10 +805,8 @@ This commonly includes things such as: :code (the-as (function none :behavior grenade-point) sleep-code) :post (behavior () (spawn (-> self part) (-> self root-override trans)) - (when (< (-> self lightning-time) (-> self clock frame-counter)) - (set! (-> self lightning-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.6 1.4)))) - ) + (when (< (-> self lightning-time) (current-time)) + (set! (-> self lightning-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.6 1.4))))) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> self root-override trans quad)) (let* ((gp-1 (-> self strike-table (-> self last-strike-index))) @@ -1304,7 +1302,7 @@ This commonly includes things such as: (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (send-event (handle->process (-> self end-target)) 'die) (remove-setting! 'point-of-interest) (none) @@ -1507,14 +1505,14 @@ This commonly includes things such as: (lambda :behavior task-manager () (local-vars (sv-16 object)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self total-time) (seconds 120)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-plasmite :init hud-init-by-other :to self))) - (while (or (< (- (-> self clock frame-counter) (-> self start-time)) (-> self total-time)) + (while (or (< (- (current-time) (-> self start-time)) (-> self total-time)) (and *target* (focus-test? *target* in-air)) ) - (let ((v1-18 (the-as int (- (-> self total-time) (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((v1-18 (the-as int (- (-> self total-time) (- (current-time) (-> self start-time)))))) (if (< (the-as time-frame v1-18) 0) (set! v1-18 0) ) @@ -1551,23 +1549,23 @@ This commonly includes things such as: (set! (-> self count) (the-as int sv-16)) ) (cond - ((and (>= (-> self clock frame-counter) (+ #x80e8 (-> self start-time))) + ((and (>= (current-time) (+ #x80e8 (-> self start-time))) (< (-> self state-time) (+ #x80e8 (-> self start-time))) ) (talker-spawn-func (-> *talker-speech* 197) *entity-pool* (target-pos 0) (the-as region #f)) ) - ((and (>= (-> self clock frame-counter) (+ (-> self start-time) (seconds 90))) + ((and (>= (current-time) (+ (-> self start-time) (seconds 90))) (< (-> self state-time) (+ (-> self start-time) (seconds 90))) ) (talker-spawn-func (-> *talker-speech* 196) *entity-pool* (target-pos 0) (the-as region #f)) ) - ((and (>= (-> self clock frame-counter) (+ (-> self start-time) (seconds 60))) + ((and (>= (current-time) (+ (-> self start-time) (seconds 60))) (< (-> self state-time) (+ (-> self start-time) (seconds 60))) ) (talker-spawn-func (-> *talker-speech* 195) *entity-pool* (target-pos 0) (the-as region #f)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> *game-info* counter) (the float (the-as int sv-16))) (if (>= 1 (the-as int sv-16)) (gui-control-method-12 diff --git a/goal_src/jak2/levels/temple/mountain-obs.gc b/goal_src/jak2/levels/temple/mountain-obs.gc index 63c228462e..7b17eed161 100644 --- a/goal_src/jak2/levels/temple/mountain-obs.gc +++ b/goal_src/jak2/levels/temple/mountain-obs.gc @@ -350,13 +350,13 @@ ) ) (sound-play "dice-sink") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (set! (-> self draw color-mult quad) (-> self color quad)) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + ((>= (- (current-time) (-> self state-time)) (seconds 0.5)) (+! (-> self speed-anim) (* -0.5 (-> self clock seconds-per-frame) (-> self time-anim))) (+! (-> self speed-anim) (* -6.0 (-> self clock seconds-per-frame) (-> self speed-anim))) (+! (-> self time-anim) (-> self speed-anim)) @@ -368,7 +368,7 @@ (set! (-> self active) (the-as uint 3)) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (!= (-> self active) 2)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (!= (-> self active) 2)) (set! (-> self active) (the-as uint 2)) (dotimes (gp-0 6) (matrix-rotate-xyz! (-> self face-matrix gp-0) (-> *dice-angle-array* gp-0)) @@ -400,7 +400,7 @@ (+ (-> self face-matrix-back v1-51 trans y) (* 4096.0 (-> self time-anim))) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self active) (-> self first)) (go-virtual idle) ) @@ -872,9 +872,9 @@ ) :trans (behavior () (if (nonzero? (-> self curtime)) - (set! (-> self first-touch-time) (-> self clock frame-counter)) + (set! (-> self first-touch-time) (current-time)) ) - (set! (-> self curtime) (-> self clock frame-counter)) + (set! (-> self curtime) (current-time)) (when (and (zero? (-> self active)) (dice-wrong-way?)) ) (none) @@ -959,7 +959,7 @@ (set! (-> a0-2 trans quad) t0-1) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self time-anim) 1.0) (set! (-> self speed-anim) -0.5) (none) @@ -981,7 +981,7 @@ (set! (-> self time-anim) 0.0) (set! (-> self speed-anim) (- (-> self speed-anim))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.7)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.7)) (set! (-> self time-anim) 0.0) ) (let ((s4-0 (new 'stack-no-clear 'matrix)) @@ -1003,7 +1003,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.7)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.7)) (dotimes (v1-34 6) (when (= (-> self face-status v1-34) 1) (set! (-> self face-status v1-34) 0) @@ -1026,7 +1026,7 @@ :enter (behavior () (set! (-> self time-anim) 0.0) (set! (-> self speed-anim) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "dice-sink") (none) ) @@ -1038,7 +1038,7 @@ (dotimes (v1-5 6) (+! (-> self face-matrix v1-5 trans y) (* 4096.0 (-> self time-anim))) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (dotimes (v1-11 6) (when (= (-> self face-status v1-11) 1) (set! (-> self face-status v1-11) 0) @@ -1921,8 +1921,8 @@ This commonly includes things such as: (suspend) ) (set-setting! 'entity-name "camera-259" 0.0 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1934,8 +1934,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2591,7 +2591,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (none) ) @@ -2599,9 +2599,9 @@ This commonly includes things such as: (set! (-> self flags) (logand -2 (-> self flags))) (plat-trans) (if (not (logtest? (-> self flags) 1)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) - (let ((v1-10 (and (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (let ((v1-10 (and (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) (logtest? (-> self flags) 1) (if (logtest? (-> self flags) 2) (and *target* (process-grab? *target* #f)) @@ -2665,7 +2665,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -2677,7 +2677,7 @@ This commonly includes things such as: ) :trans (behavior () (plat-trans) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (cond ((= (-> self path-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -3331,7 +3331,7 @@ This commonly includes things such as: :virtual #t :trans (behavior () (plat-trans) - (if (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (if (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (go-virtual waiting) ) (none) diff --git a/goal_src/jak2/levels/temple/mountain-obs2.gc b/goal_src/jak2/levels/temple/mountain-obs2.gc index 317ca453d5..855dc6f453 100644 --- a/goal_src/jak2/levels/temple/mountain-obs2.gc +++ b/goal_src/jak2/levels/temple/mountain-obs2.gc @@ -224,7 +224,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-normalize! (-> self axe-flip) 1.0) (vector-rotate90-around-y! (-> self axe-flip) (-> self axe-flip)) (set! (-> self angle-flip-vel) -10.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -274,11 +274,11 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self dest-angle) 180.0) (set! (-> self on-shake) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self time-flip))) + (when (>= (- (current-time) (-> self state-time)) (the int (-> self time-flip))) (set! (-> self state-flip) (the-as uint 0)) 0 ) @@ -302,7 +302,7 @@ For example for an elevator pre-compute the distance between the first and last (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (quaternion-vector-angle! (-> self root-override quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) + (when (and (>= (- (current-time) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) (= 1 (-> self state-flip)) ) (when (not (-> self on-shake)) diff --git a/goal_src/jak2/levels/temple/rhino.gc b/goal_src/jak2/levels/temple/rhino.gc index 79c173c2c9..e4acab70a2 100644 --- a/goal_src/jak2/levels/temple/rhino.gc +++ b/goal_src/jak2/levels/temple/rhino.gc @@ -624,7 +624,7 @@ ) ) (else - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (go-virtual active) @@ -1053,7 +1053,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rhino) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) @@ -1098,7 +1098,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1.5)) (go-virtual active) ) (none) @@ -1137,7 +1137,7 @@ ) (set! (-> self charge-straight) #f) (nav-enemy-method-166 self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self enemy-flags) (enemy-flag look-at-focus)) (none) ) @@ -1165,7 +1165,7 @@ (vector-! gp-0 s2-0 (-> self root-override2 trans)) (vector-normalize! gp-0 (+ 16384.0 (vector-length gp-0))) (vector+! s4-0 (-> self root-override2 trans) gp-0) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (and (< (vector-vector-xz-distance (get-trans (the-as process-focusable s3-0) 0) (-> self root-override2 trans)) 40960.0 ) @@ -1177,7 +1177,7 @@ (cond ((-> self charge-straight) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + ((>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (< (vector-vector-xz-distance (get-trans (the-as process-focusable s3-0) 0) (-> self root-override2 trans)) 20480.0 ) @@ -1194,7 +1194,7 @@ ) ) ((and (< f28-0 8192.0) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) (>= 9.0 (ja-frame-num 0))) + (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (>= 9.0 (ja-frame-num 0))) ) (go-virtual stop-run) ) @@ -1474,7 +1474,7 @@ :enter (behavior () (set-setting! 'sound-mode #f 0.0 1) (set-setting! 'sound-excitement 'abs 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-8 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-8 enemy-flags))) diff --git a/goal_src/jak2/levels/title/title-obs.gc b/goal_src/jak2/levels/title/title-obs.gc index e1ff0336a7..3fe3b96a2b 100644 --- a/goal_src/jak2/levels/title/title-obs.gc +++ b/goal_src/jak2/levels/title/title-obs.gc @@ -477,24 +477,21 @@ ) (defun wait-for-press ((arg0 time-frame) (arg1 time-frame) (arg2 symbol)) - (with-pp - (let ((s3-0 (-> pp clock frame-counter)) - (s4-0 #f) - ) - (while (not (or (>= (- (-> pp clock frame-counter) s3-0) arg1) (and (>= (- (-> pp clock frame-counter) s3-0) arg0) s4-0)) - ) - (if (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) - (set! s4-0 #t) - ) - (when (cpad-pressed? 0 triangle) - (set! s4-0 'abort) - (goto cfg-14) - ) - (suspend) + (let ((s3-0 (current-time)) + (s4-0 #f) ) - (label cfg-14) - s4-0 + (while (not (or (>= (- (current-time) s3-0) arg1) (and (>= (- (current-time) s3-0) arg0) s4-0))) + (if (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (set! s4-0 #t) + ) + (when (cpad-pressed? 0 triangle) + (set! s4-0 'abort) + (goto cfg-14) + ) + (suspend) ) + (label cfg-14) + s4-0 ) ) @@ -528,7 +525,7 @@ (return (the-as object (-> self selected))) ) ) - (when (< (mod (-> self clock frame-counter) 300) 210) + (when (< (mod (current-time) 300) 210) (set! sv-112 (new 'stack 'font-context *font-default-matrix* 64 312 0.0 (font-color default) (font-flags shadow kerning)) ) @@ -564,28 +561,26 @@ ) (defun title-fade-out ((arg0 float)) - (with-pp - (setup *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) arg0 (bucket-id screen-filter)) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.4)) - (suspend) - ) - ) - (send-event (ppointer->process (-> *setting-control* user-current movie)) 'abort) - (set! (-> *setting-control* user-current bg-a) 0.0) - (while (or (-> *setting-control* user-current movie) - (not *target*) - (not (and (-> *target* next-state) (= (-> *target* next-state name) 'target-title))) - (!= (-> *setting-control* user-current bg-a) 0.0) - ) + (setup *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) arg0 (bucket-id screen-filter)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.4)) (suspend) ) - (set! (-> *game-info* blackout-time) 0) - (set! (-> *setting-control* user-current bg-a-force) 0.0) - (disable *screen-filter*) - 0 - (none) ) + (send-event (ppointer->process (-> *setting-control* user-current movie)) 'abort) + (set! (-> *setting-control* user-current bg-a) 0.0) + (while (or (-> *setting-control* user-current movie) + (not *target*) + (not (and (-> *target* next-state) (= (-> *target* next-state name) 'target-title))) + (!= (-> *setting-control* user-current bg-a) 0.0) + ) + (suspend) + ) + (set! (-> *game-info* blackout-time) 0) + (set! (-> *setting-control* user-current bg-a-force) 0.0) + (disable *screen-filter*) + 0 + (none) ) (defun title-progress ((arg0 symbol)) diff --git a/goal_src/jak2/levels/undefined/ruf-states.gc b/goal_src/jak2/levels/undefined/ruf-states.gc index bab177f1fb..3b55a311a8 100644 --- a/goal_src/jak2/levels/undefined/ruf-states.gc +++ b/goal_src/jak2/levels/undefined/ruf-states.gc @@ -11,7 +11,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -57,7 +57,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -103,7 +103,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -146,7 +146,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -194,7 +194,7 @@ :enter (-> (method-of-type ruffian scared-idle) enter) :trans (behavior () (bot-method-223 self #t) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (cond ((not (bot-method-214 self)) (react-to-focus self) @@ -220,7 +220,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -256,7 +256,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -283,12 +283,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (ruffian-method-240 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -321,7 +319,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -342,7 +340,7 @@ ((bot-method-214 self) (go-hostile self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -369,7 +367,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (bot-method-214 self) (go-hostile self) ) @@ -512,7 +510,7 @@ (t9-0) ) ) - (when (and (logtest? (bot-flags bf24) (-> self bot-flags)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (bot-flags bf24) (-> self bot-flags)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf24)) (ruffian-method-242 self) ) @@ -551,7 +549,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/goal_src/jak2/levels/underport/centipede.gc b/goal_src/jak2/levels/underport/centipede.gc index 6cc3d2f570..cb439e0cfb 100644 --- a/goal_src/jak2/levels/underport/centipede.gc +++ b/goal_src/jak2/levels/underport/centipede.gc @@ -222,15 +222,14 @@ (set! (-> centipede-cam dir y) 0.0) (vector-normalize! (-> centipede-cam dir) 1.0) (set! (-> centipede-cam trans quad) (-> obj root-override2 trans quad)) - (set! (-> centipede-cam trans y) - (+ 32768.0 - (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (-> pp clock frame-counter) 300))))) - (* 614.4 (cos (* 68.91272 (the float (mod (-> pp clock frame-counter) 951))))) - ) - (-> obj bobbing-intensity) - ) - (-> centipede-cam trans y) - ) + (set! (-> centipede-cam trans y) (+ 32768.0 + (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) + (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) + ) + (-> obj bobbing-intensity) + ) + (-> centipede-cam trans y) + ) ) (if (= (-> obj id) 1) (set! (-> centipede-cam dir y) -0.574) @@ -594,7 +593,7 @@ (quaternion-copy! (-> obj bobbing quat) (-> obj root-override2 quat)) (set! (-> obj bobbing trans quad) (-> obj root-override2 trans quad)) (let ((s5-0 (new 'stack-no-clear 'vector)) - (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (-> pp clock frame-counter) 231)))))) + (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) (bob-trans (-> obj bobbing trans)) ) (vector-z-quaternion! s5-0 (-> obj root-override2 quat)) @@ -850,10 +849,10 @@ (until #f (cond (*target* - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (cleanup-for-death self) (go-virtual die-fast) ) @@ -945,7 +944,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (let ((v1-6 (handle->process (-> self focus handle)))) (if (or (not v1-6) (focus-test? (the-as process-focusable v1-6) dead)) (go-virtual stop-chase) @@ -1006,7 +1005,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (react-to-focus self) ) (none) @@ -1176,10 +1175,10 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self desired-talking-volume) 1.0) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.35)) - (let* ((v1-5 (- (-> self clock frame-counter) (-> self state-time))) + (while (< (- (current-time) (-> self state-time)) (seconds 0.35)) + (let* ((v1-5 (- (current-time) (-> self state-time))) (f1-2 (* 0.00952381 (the float v1-5))) ) (quaternion-slerp! (-> self root-override2 quat) (-> self src-quat) (-> self dest-quat) (- 1.0 (* f1-2 f1-2))) @@ -1187,7 +1186,7 @@ (centipede-method-188 self) (suspend) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (centipede-method-188 self) (suspend) ) diff --git a/goal_src/jak2/levels/underport/jellyfish.gc b/goal_src/jak2/levels/underport/jellyfish.gc index 7a123e80c3..4ef6e20991 100644 --- a/goal_src/jak2/levels/underport/jellyfish.gc +++ b/goal_src/jak2/levels/underport/jellyfish.gc @@ -360,7 +360,7 @@ (v1-6 (jellyfish-method-161 self (new 'stack-no-clear 'vector) - (get-norm! (-> self sync) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (get-norm! (-> self sync) (the-as int (+ (current-time) (seconds 1)))) ) ) (s5-2 (new 'stack-no-clear 'vector)) @@ -434,7 +434,7 @@ :trans (behavior () (local-vars (gp-0 vector)) (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-4 (-> self focus aware))) (cond ((>= 1 (the-as int v1-4)) @@ -445,13 +445,13 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (not (jellyfish-method-164 self (the-as process-focusable #f))) ) (go-virtual active) ) (if (and (not *jellyfish-mech-reserved*) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (>= (- (current-time) (-> self state-time)) (seconds 1)) (jellyfish-method-163 self (the-as process-focusable #f)) (begin (set! gp-0 (jellyfish-method-161 self (new 'stack-no-clear 'vector) (-> self path-stare-u))) @@ -541,7 +541,7 @@ (the-as vector #t) ) (logior! (-> self focus-status) (focus-status dangerous)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -655,7 +655,7 @@ (let ((gp-0 *target*)) (cond ((not (jellyfish-method-163 self gp-0)) - (set! (-> self last-attack-time) (-> self clock frame-counter)) + (set! (-> self last-attack-time) (current-time)) (go-virtual active) ) (else @@ -775,7 +775,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-attack-time) (-> self clock frame-counter)) + (set! (-> self last-attack-time) (current-time)) (go-virtual active) (none) ) @@ -804,7 +804,7 @@ (dispose! self) (logclear! (-> self focus-status) (focus-status dangerous)) (enemy-method-52 self (-> self root-override2 transv)) - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (ja-no-eval :group! jellyfish-die-ja :num! (seek! (the float (+ (-> (the-as art-joint-anim jellyfish-die-ja) frames num-frames) -1))) :frame-num 0.0 @@ -814,7 +814,7 @@ (f0-4 (ja-aframe-num 0)) ) (when (and (= s5-0 jellyfish-die-ja) (>= f0-4 0.0) (>= 0.5 f0-4)) - (when (>= (- (-> self clock frame-counter) gp-0) (seconds 0.05)) + (when (>= (- (current-time) gp-0) (seconds 0.05)) (process-drawable-shock-skel-effect self (-> *lightning-spec-id-table* 5) @@ -824,7 +824,7 @@ -1 -1 ) - (set! gp-0 (-> self clock frame-counter)) + (set! gp-0 (current-time)) ) ) ) @@ -1262,168 +1262,166 @@ (defmethod init-enemy! jellyfish ((obj jellyfish)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (hover-enemy-method-149 obj) - (init-enemy-behaviour-and-stats! obj (hover-enemy-method-150 obj)) - (hover-enemy-method-155 obj) - (set-vector! (-> obj offset) 0.0 6144.0 61440.0 1.0) - (set! (-> obj knocked-fall-dist) 0.0) - (let ((v1-8 (-> obj neck))) - (set! (-> v1-8 up) (the-as uint 1)) - (set! (-> v1-8 nose) (the-as uint 2)) - (set! (-> v1-8 ear) (the-as uint 0)) - (set! (-> v1-8 twist-speed-x) 0.05) - (set! (-> v1-8 twist-speed-y) 0.06) - (set! (-> v1-8 max-dist) 122880.0) - ) - (set! (-> obj root-override2 dynam gravity y) 40960.0) - (set! (-> obj root-override2 dynam gravity-length) 40960.0) - (set! (-> obj root-override2 dynam gravity-max) 40960.0) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (new-source! (-> obj los) obj (seconds 1) (collide-spec backgnd enemy obstacle hit-by-others-list)) - (set! (-> obj last-fire-time) (-> pp clock frame-counter)) - (set! (-> obj last-attack-time) 0) - (set! (-> obj sound-id) (the-as uint (new-sound-id))) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (set! (-> obj path-player-u) 0.0) - (set! (-> obj path-my-u) 0.0) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! (-> obj path-y-offset) (res-lump-float (-> obj entity) 'y-offset)) - (let ((a1-4 (new 'stack-no-clear 'sync-info-params))) - (let ((v1-32 0)) - (if #t - (set! v1-32 (logior v1-32 1)) - ) - (set! (-> a1-4 sync-type) 'sync-eased) - (set! (-> a1-4 sync-flags) (the-as sync-flags v1-32)) - ) - (set! (-> a1-4 period) (the-as uint 6000)) - (set! (-> a1-4 entity) (-> obj entity)) - (set! (-> a1-4 percent) 0.0) - (set! (-> a1-4 ease-in) 0.15) - (set! (-> a1-4 ease-out) 0.15) - (set! (-> a1-4 pause-in) 0.0) - (set! (-> a1-4 pause-out) 0.0) - (initialize! (-> obj sync) a1-4) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x 1187.84 :y -3112.96 :z 1392.64 :w 163840.0) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x -1187.84 :y -3112.96 :z 1392.64 :w 163840.0) - ) - (add-connection *part-engine* obj 36 obj 743 (new 'static 'vector :y 1433.6 :z 1228.8 :w 163840.0)) - (dotimes (s5-1 5) - (set! (-> obj tentacles s5-1) (new 'process 'jellyfish-chain-physics)) - ) - (chain-physics-initialize obj (-> obj tentacles 0) 10 4096.0 *jellyfish-mainvein-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 1) 16 4096.0 *jellyfish-lfront-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 2) 21 4096.0 *jellyfish-rfront-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 3) 26 4096.0 *jellyfish-lrear-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 4) 31 4096.0 *jellyfish-rrear-chain-setup*) - (set! (-> obj tentacles 2 negate-y) #t) - (set! (-> obj tentacles 4 negate-y) #t) - (let ((a0-35 (-> obj skel root-channel 0))) - (set! (-> a0-35 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) - (set! (-> a0-35 frame-num) 0.0) - (joint-control-channel-group! a0-35 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity) - ) - (ja-post) - (dotimes (s5-2 5) - (initialize-chain-joints (-> obj tentacles s5-2)) - ) - (let ((a1-15 (-> obj node-list data 16)) - (v1-68 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 3094.7556 - :offset 30.0 - ) - ) - ) - (set! (-> a1-15 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-15 param1) obj) - (set! (-> a1-15 param2) (the-as basic v1-68)) - ) - (let ((a1-16 (-> obj node-list data 21)) - (v1-70 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 3094.7556 - :offset 30.0 - ) - ) - ) - (set! (-> a1-16 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-16 param1) obj) - (set! (-> a1-16 param2) (the-as basic v1-70)) - ) - (let ((a1-17 (-> obj node-list data 26)) - (v1-72 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 4369.067 - :offset 45.0 - ) - ) - ) - (set! (-> a1-17 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-17 param1) obj) - (set! (-> a1-17 param2) (the-as basic v1-72)) - ) - (let ((a1-18 (-> obj node-list data 31)) - (v1-74 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 4369.067 - :offset 45.0 - ) - ) - ) - (set! (-> a1-18 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-18 param1) obj) - (set! (-> a1-18 param2) (the-as basic v1-74)) - ) - (let ((a1-19 (-> obj node-list data 10)) - (v1-76 - (new 'static 'jellyfish-joint-mod-tentacle-info :axis (new 'static 'vector :x 1.0 :w 1.0) :angle 2730.6667) - ) - ) - (set! (-> a1-19 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-19 param1) obj) - (set! (-> a1-19 param2) (the-as basic v1-76)) - ) - (set! (-> obj tentacles-initialized) #f) - (set! (-> obj tentacle-clock) 0.0) - (set! (-> obj tentacle-blend) 1.0) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x 1966.08 :y -1843.2 :z 2129.92 :w 163840.0) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x -1966.08 :y -1843.2 :z 2129.92 :w 163840.0) - ) - 0 - (none) + (hover-enemy-method-149 obj) + (init-enemy-behaviour-and-stats! obj (hover-enemy-method-150 obj)) + (hover-enemy-method-155 obj) + (set-vector! (-> obj offset) 0.0 6144.0 61440.0 1.0) + (set! (-> obj knocked-fall-dist) 0.0) + (let ((v1-8 (-> obj neck))) + (set! (-> v1-8 up) (the-as uint 1)) + (set! (-> v1-8 nose) (the-as uint 2)) + (set! (-> v1-8 ear) (the-as uint 0)) + (set! (-> v1-8 twist-speed-x) 0.05) + (set! (-> v1-8 twist-speed-y) 0.06) + (set! (-> v1-8 max-dist) 122880.0) ) + (set! (-> obj root-override2 dynam gravity y) 40960.0) + (set! (-> obj root-override2 dynam gravity-length) 40960.0) + (set! (-> obj root-override2 dynam gravity-max) 40960.0) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (new-source! (-> obj los) obj (seconds 1) (collide-spec backgnd enemy obstacle hit-by-others-list)) + (set! (-> obj last-fire-time) (current-time)) + (set! (-> obj last-attack-time) 0) + (set! (-> obj sound-id) (the-as uint (new-sound-id))) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (set! (-> obj path-player-u) 0.0) + (set! (-> obj path-my-u) 0.0) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! (-> obj path-y-offset) (res-lump-float (-> obj entity) 'y-offset)) + (let ((a1-4 (new 'stack-no-clear 'sync-info-params))) + (let ((v1-32 0)) + (if #t + (set! v1-32 (logior v1-32 1)) + ) + (set! (-> a1-4 sync-type) 'sync-eased) + (set! (-> a1-4 sync-flags) (the-as sync-flags v1-32)) + ) + (set! (-> a1-4 period) (the-as uint 6000)) + (set! (-> a1-4 entity) (-> obj entity)) + (set! (-> a1-4 percent) 0.0) + (set! (-> a1-4 ease-in) 0.15) + (set! (-> a1-4 ease-out) 0.15) + (set! (-> a1-4 pause-in) 0.0) + (set! (-> a1-4 pause-out) 0.0) + (initialize! (-> obj sync) a1-4) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x 1187.84 :y -3112.96 :z 1392.64 :w 163840.0) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x -1187.84 :y -3112.96 :z 1392.64 :w 163840.0) + ) + (add-connection *part-engine* obj 36 obj 743 (new 'static 'vector :y 1433.6 :z 1228.8 :w 163840.0)) + (dotimes (s5-1 5) + (set! (-> obj tentacles s5-1) (new 'process 'jellyfish-chain-physics)) + ) + (chain-physics-initialize obj (-> obj tentacles 0) 10 4096.0 *jellyfish-mainvein-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 1) 16 4096.0 *jellyfish-lfront-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 2) 21 4096.0 *jellyfish-rfront-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 3) 26 4096.0 *jellyfish-lrear-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 4) 31 4096.0 *jellyfish-rrear-chain-setup*) + (set! (-> obj tentacles 2 negate-y) #t) + (set! (-> obj tentacles 4 negate-y) #t) + (let ((a0-35 (-> obj skel root-channel 0))) + (set! (-> a0-35 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) + (set! (-> a0-35 frame-num) 0.0) + (joint-control-channel-group! a0-35 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity) + ) + (ja-post) + (dotimes (s5-2 5) + (initialize-chain-joints (-> obj tentacles s5-2)) + ) + (let ((a1-15 (-> obj node-list data 16)) + (v1-68 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 3094.7556 + :offset 30.0 + ) + ) + ) + (set! (-> a1-15 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-15 param1) obj) + (set! (-> a1-15 param2) (the-as basic v1-68)) + ) + (let ((a1-16 (-> obj node-list data 21)) + (v1-70 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 3094.7556 + :offset 30.0 + ) + ) + ) + (set! (-> a1-16 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-16 param1) obj) + (set! (-> a1-16 param2) (the-as basic v1-70)) + ) + (let ((a1-17 (-> obj node-list data 26)) + (v1-72 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 4369.067 + :offset 45.0 + ) + ) + ) + (set! (-> a1-17 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-17 param1) obj) + (set! (-> a1-17 param2) (the-as basic v1-72)) + ) + (let ((a1-18 (-> obj node-list data 31)) + (v1-74 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 4369.067 + :offset 45.0 + ) + ) + ) + (set! (-> a1-18 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-18 param1) obj) + (set! (-> a1-18 param2) (the-as basic v1-74)) + ) + (let ((a1-19 (-> obj node-list data 10)) + (v1-76 + (new 'static 'jellyfish-joint-mod-tentacle-info :axis (new 'static 'vector :x 1.0 :w 1.0) :angle 2730.6667) + ) + ) + (set! (-> a1-19 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-19 param1) obj) + (set! (-> a1-19 param2) (the-as basic v1-76)) + ) + (set! (-> obj tentacles-initialized) #f) + (set! (-> obj tentacle-clock) 0.0) + (set! (-> obj tentacle-blend) 1.0) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x 1966.08 :y -1843.2 :z 2129.92 :w 163840.0) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x -1966.08 :y -1843.2 :z 2129.92 :w 163840.0) + ) + 0 + (none) ) diff --git a/goal_src/jak2/levels/underport/pipe-grunt.gc b/goal_src/jak2/levels/underport/pipe-grunt.gc index ccf0520815..2ef4fde583 100644 --- a/goal_src/jak2/levels/underport/pipe-grunt.gc +++ b/goal_src/jak2/levels/underport/pipe-grunt.gc @@ -50,7 +50,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior pipe-grunt) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self enemy-flags) (enemy-flag chase-startup)) (logclear! (-> self enemy-flags) (enemy-flag enable-on-notice alert victory)) (let ((v1-7 (-> self root-override2 root-prim))) diff --git a/goal_src/jak2/levels/underport/sig5-course.gc b/goal_src/jak2/levels/underport/sig5-course.gc index 2869f4611c..8b9da7cc54 100644 --- a/goal_src/jak2/levels/underport/sig5-course.gc +++ b/goal_src/jak2/levels/underport/sig5-course.gc @@ -41,29 +41,27 @@ ;; WARN: Return type mismatch time-frame vs none. (defmethod sig-under-method-263 sig-under ((obj sig-under)) - (with-pp - (let ((s5-0 (-> pp clock frame-counter))) - (when (and (>= s5-0 (-> obj next-chase-play-time)) - (not (channel-active? obj (the-as uint 0))) - (>= (the-as int (sig-method-256 obj)) 750) - ) - (let ((a1-2 (bot-speech-list-method-9 - (-> obj sig5-course chase-speeches) - obj - (-> obj sig5-course speeches) - (speech-flags) - ) + (let ((s5-0 (current-time))) + (when (and (>= s5-0 (-> obj next-chase-play-time)) + (not (channel-active? obj (the-as uint 0))) + (>= (the-as int (sig-method-256 obj)) 750) + ) + (let ((a1-2 (bot-speech-list-method-9 + (-> obj sig5-course chase-speeches) + obj + (-> obj sig5-course speeches) + (speech-flags) ) - ) - (when (>= a1-2 0) - (play-speech obj a1-2) - (set! (-> obj next-chase-play-time) (+ s5-0 (get-rand-int-range obj 1500 2700))) + ) ) + (when (>= a1-2 0) + (play-speech obj a1-2) + (set! (-> obj next-chase-play-time) (+ s5-0 (get-rand-int-range obj 1500 2700))) ) ) ) - (none) ) + (none) ) ;; WARN: Return type mismatch object vs symbol. @@ -433,16 +431,16 @@ (ja-eval) ) (when #t - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self bot-flags) (bot-flags bf18)) - (let ((gp-3 (+ (-> self clock frame-counter) (get-rand-int-range self 30 600)))) + (let ((gp-3 (+ (current-time) (get-rand-int-range self 30 600)))) (ja-channel-push! 1 (seconds 0.5)) (ja-no-eval :group! (-> self draw art-group data 7) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) frames num-frames) -1))) :frame-num 0.0 ) (until (ja-done? 0) - (if (>= (-> self clock frame-counter) gp-3) + (if (>= (current-time) gp-3) (goto cfg-27) ) (suspend) @@ -550,27 +548,25 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (not (and (logtest? (-> arg1 bot-task-bits) 1) - *target* - (not (logtest? (-> *target* focus-status) (focus-status dead in-air edge-grab))) - ) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - (task-node-open? (game-task-node under-sig-introduction)) - (scene-play arg1 "under-find-sig-res" #f) - ) - (process-entity-status! arg1 (entity-perm-status no-kill) #t) - (countdown (s5-0 2) - (send-event (handle->process (-> arg1 growls s5-0)) 'die-fast) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 2 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (not (and (logtest? (-> arg1 bot-task-bits) 1) + *target* + (not (logtest? (-> *target* focus-status) (focus-status dead in-air edge-grab))) + ) + ) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + (task-node-open? (game-task-node under-sig-introduction)) + (scene-play arg1 "under-find-sig-res" #f) + ) + (process-entity-status! arg1 (entity-perm-status no-kill) #t) + (countdown (s5-0 2) + (send-event (handle->process (-> arg1 growls s5-0)) 'die-fast) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 2 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -863,48 +859,46 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 sig-under)) - (with-pp - (set! (-> arg0 next-chase-play-time) (+ (-> pp clock frame-counter) (get-rand-int-range arg0 900 1500))) - (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-centipede-two" -99.0 0) - (let* ((v1-7 (-> arg0 sig5-course spots)) - (s5-1 (-> v1-7 8)) - ) - (let ((v1-8 (-> v1-7 9))) - (vector-! (the-as vector (-> arg0 test-plane)) (the-as vector v1-8) (the-as vector s5-1)) - ) - (set! (-> arg0 test-plane y) 0.0) - (vector-normalize! (-> arg0 test-plane) 1.0) - (set! (-> arg0 test-plane w) - (- (+ (* (-> s5-1 center x) (-> arg0 test-plane x)) (* (-> s5-1 center z) (-> arg0 test-plane z)))) - ) + (set! (-> arg0 next-chase-play-time) (+ (current-time) (get-rand-int-range arg0 900 1500))) + (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-centipede-two" -99.0 0) + (let* ((v1-7 (-> arg0 sig5-course spots)) + (s5-1 (-> v1-7 8)) + ) + (let ((v1-8 (-> v1-7 9))) + (vector-! (the-as vector (-> arg0 test-plane)) (the-as vector v1-8) (the-as vector s5-1)) ) - (let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) - (set! (-> v1-11 bytes 5) 1) - (set! (-> v1-11 bytes 6) 10) - (set! (-> v1-11 bytes 4) -1) - (set! (-> (the-as sigt-wait-spot v1-11) check-done) - (the-as - (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (sig-under-method-263 arg1) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (target-pos 0) quad)) - (set! (-> s5-0 y) 0.0) - (when (and (>= (vector4-dot (the-as vector (-> arg1 test-plane)) s5-0) 0.0) - (scene-play arg1 "under-centipede-two" #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 11 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (set! (-> arg0 test-plane y) 0.0) + (vector-normalize! (-> arg0 test-plane) 1.0) + (set! (-> arg0 test-plane w) + (- (+ (* (-> s5-1 center x) (-> arg0 test-plane x)) (* (-> s5-1 center z) (-> arg0 test-plane z)))) + ) + ) + (let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) + (set! (-> v1-11 bytes 5) 1) + (set! (-> v1-11 bytes 6) 10) + (set! (-> v1-11 bytes 4) -1) + (set! (-> (the-as sigt-wait-spot v1-11) check-done) + (the-as + (function sigt-wait-spot sig symbol) + (lambda ((arg0 object) (arg1 sig-under)) + (sig-under-method-263 arg1) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (target-pos 0) quad)) + (set! (-> s5-0 y) 0.0) + (when (and (>= (vector4-dot (the-as vector (-> arg1 test-plane)) s5-0) 0.0) + (scene-play arg1 "under-centipede-two" #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 11 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -957,16 +951,13 @@ (set! (-> (the-as sigt-wait-spot v1-15) check-done) (the-as (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.8)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 13 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ) - ) + (lambda ((arg0 object) (arg1 sig-under)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.8)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 13 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ) ) ) ) @@ -1095,16 +1086,14 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (sig-under-method-261 arg1 (-> arg1 test-plane) (target-pos 0) #t) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (sig-under-method-261 arg1 (-> arg1 test-plane) (target-pos 0) #t) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1219,7 +1208,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.7)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.7)) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 20 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) @@ -1252,13 +1241,11 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (+ (-> pp clock frame-counter) (seconds -6))) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'music 'danger3 0.0 0) - ) - #f + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (+ (current-time) (seconds -6))) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'music 'danger3 0.0 0) ) + #f ) ) ) @@ -1350,38 +1337,36 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (and (not (speech-playing? arg1 12)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 12) - ) - (cond - ((not (logtest? (-> arg1 waypoint-bits) 1)) - (logior! (-> arg1 waypoint-bits) 1) - (process-release? arg1) - (sig-under-method-260 arg1) - (move-to-point! (-> arg1 root-override2) (the-as vector (-> arg1 sig5-course spots 20))) - #f + (if (and (not (speech-playing? arg1 12)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 12) + ) + (cond + ((not (logtest? (-> arg1 waypoint-bits) 1)) + (logior! (-> arg1 waypoint-bits) 1) + (process-release? arg1) + (sig-under-method-260 arg1) + (move-to-point! (-> arg1 root-override2) (the-as vector (-> arg1 sig5-course spots 20))) + #f + ) + ((not (logtest? (-> arg1 waypoint-bits) 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 2) + (add-process *gui-control* arg1 (gui-channel art-load) (gui-action queue) "under-centipede-three" -99.0 0) ) - ((not (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 2) - (add-process *gui-control* arg1 (gui-channel art-load) (gui-action queue) "under-centipede-three" -99.0 0) - ) - #f - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) - (process-release? *target*) - (reset-warn-time! arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 22 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + #f + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5)) + (process-release? *target*) + (reset-warn-time! arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 22 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1444,7 +1429,7 @@ ) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! v1-14 - (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) + (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25)) (begin (set! (-> s5-0 quad) (-> (target-pos 0) quad)) (set! (-> s5-0 y) 0.0) @@ -1555,63 +1540,59 @@ :nav-mesh-index #x7 :skip-to -1 :on-set (lambda ((arg0 sig-under)) - (with-pp - (set! (-> arg0 next-chase-play-time) (+ (-> pp clock frame-counter) (get-rand-int-range arg0 600 1200))) - (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-get-sig-out-res" -99.0 0) - (let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) - (set! (-> v1-7 bytes 5) 1) - (set! (-> v1-7 bytes 6) 26) - (set! (-> v1-7 bytes 4) -1) - (set! (-> (the-as sigt-wait-spot v1-7) check-done) - (the-as - (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (sig-under-method-263 arg1) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (sig-method-257 arg1) - (let ((f0-0 61440.0)) - (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) + (set! (-> arg0 next-chase-play-time) (+ (current-time) (get-rand-int-range arg0 600 1200))) + (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-get-sig-out-res" -99.0 0) + (let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) + (set! (-> v1-7 bytes 5) 1) + (set! (-> v1-7 bytes 6) 26) + (set! (-> v1-7 bytes 4) -1) + (set! (-> (the-as sigt-wait-spot v1-7) check-done) + (the-as + (function sigt-wait-spot sig symbol) + (lambda ((arg0 object) (arg1 sig-under)) + (when (sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (sig-under-method-263 arg1) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (sig-method-257 arg1) + (let ((f0-0 61440.0)) + (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) + ) + ) + (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) + (when (send-event arg1 'jump 5 (-> arg1 sig5-course spots 28)) + (let ((s5-1 (-> arg1 actor-group 0 data 6 actor))) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (or (not s5-1) (not (logtest? (-> s5-1 extra perm status) (entity-perm-status subtask-complete)))) ) - ) - (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) - (when (send-event arg1 'jump 5 (-> arg1 sig5-course spots 28)) - (let ((s5-1 (-> arg1 actor-group 0 data 6 actor))) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (or (not s5-1) (not (logtest? (-> s5-1 extra perm status) (entity-perm-status subtask-complete)))) - ) - (let ((s5-2 18)) - (case (get-rand-int arg1 3) - ((1) - (set! s5-2 19) - ) - ((2) - (set! s5-2 20) - ) - ) - (play-speech arg1 s5-2) - ) + (let ((s5-2 18)) + (case (get-rand-int arg1 3) + ((1) + (set! s5-2 19) + ) + ((2) + (set! s5-2 20) + ) ) + (play-speech arg1 s5-2) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 25 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 25 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -1634,85 +1615,81 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) + (when (sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (if (not (logtest? (-> arg1 bot-task-bits) 16)) + (set! (-> arg1 waypoint-time0) (current-time)) ) - (if (not (logtest? (-> arg1 bot-task-bits) 16)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (not (logtest? (-> arg1 focus-status) (focus-status in-air))) - ) - (logior! (-> arg1 waypoint-bits) 2) - (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (not (speech-playing? arg1 21)) - (not (channel-active? arg1 (the-as uint 0))) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (not (logtest? (-> arg1 focus-status) (focus-status in-air))) ) - (play-speech arg1 21) - ) - (when (zero? (-> arg1 next-chase-play-time)) - (let ((a0-14 (-> arg1 actor-group 0 data 7 actor))) - (if (and a0-14 (logtest? (-> a0-14 extra perm status) (entity-perm-status subtask-complete))) - (set! (-> arg1 next-chase-play-time) (-> pp clock frame-counter)) - ) - ) + (logior! (-> arg1 waypoint-bits) 2) + (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (not (speech-playing? arg1 21)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 21) ) - (when (and (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (and (-> arg1 next-state) (let ((v1-54 (-> arg1 next-state name))) - (or (= v1-54 'waiting-far) (= v1-54 'waiting-close) (= v1-54 'waiting-turn)) - ) - ) - (or (nonzero? (-> arg1 next-chase-play-time)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 6)) - ) - ) - (when (not (logtest? (-> arg1 waypoint-bits) 1)) - (logior! (-> arg1 waypoint-bits) 1) - (send-event (ppointer->process (-> arg1 my-simple-focus)) 'move-trans (-> arg1 sig5-course spots 32)) - (set! (-> arg1 poi-handle) (ppointer->handle (-> arg1 my-simple-focus))) - ) - (let ((v1-78 (-> arg1 sig5-course spots 32))) - (when (>= 10012.445 - (fabs - (deg- - (atan - (- (-> v1-78 center x) (-> arg1 root-override2 trans x)) - (- (-> v1-78 center z) (-> arg1 root-override2 trans z)) - ) - (quaternion-y-angle (-> arg1 root-override2 quat)) + (when (zero? (-> arg1 next-chase-play-time)) + (let ((a0-14 (-> arg1 actor-group 0 data 7 actor))) + (if (and a0-14 (logtest? (-> a0-14 extra perm status) (entity-perm-status subtask-complete))) + (set! (-> arg1 next-chase-play-time) (current-time)) + ) + ) + ) + (when (and (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (and (-> arg1 next-state) (let ((v1-54 (-> arg1 next-state name))) + (or (= v1-54 'waiting-far) (= v1-54 'waiting-close) (= v1-54 'waiting-turn)) + ) + ) + (or (nonzero? (-> arg1 next-chase-play-time)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 6))) + ) + (when (not (logtest? (-> arg1 waypoint-bits) 1)) + (logior! (-> arg1 waypoint-bits) 1) + (send-event (ppointer->process (-> arg1 my-simple-focus)) 'move-trans (-> arg1 sig5-course spots 32)) + (set! (-> arg1 poi-handle) (ppointer->handle (-> arg1 my-simple-focus))) + ) + (let ((v1-78 (-> arg1 sig5-course spots 32))) + (when (>= 10012.445 + (fabs + (deg- + (atan + (- (-> v1-78 center x) (-> arg1 root-override2 trans x)) + (- (-> v1-78 center z) (-> arg1 root-override2 trans z)) ) + (quaternion-y-angle (-> arg1 root-override2 quat)) ) ) - (let ((s4-1 (target-pos 0)) - (s5-1 (-> arg1 sig5-course spots 32)) ) - (when (or (zero? (-> arg1 next-chase-play-time)) - (and (nonzero? (-> arg1 next-chase-play-time)) - (>= (- (-> pp clock frame-counter) (-> arg1 next-chase-play-time)) (seconds 2)) - (or (>= (- (-> pp clock frame-counter) (-> arg1 next-chase-play-time)) (seconds 9)) - (>= (vector-vector-xz-distance s4-1 (-> s5-1 center)) (+ 8192.0 (-> s5-1 center w))) - (< 20480.0 (- (-> s4-1 y) (-> s5-1 center y))) - ) - ) - ) - (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) - (when (send-event arg1 'jump 5 (-> s5-1 center)) - (logclear! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - (if (not (channel-active? arg1 (the-as uint 0))) - (play-speech arg1 22) + (let ((s4-1 (target-pos 0)) + (s5-1 (-> arg1 sig5-course spots 32)) + ) + (when (or (zero? (-> arg1 next-chase-play-time)) + (and (nonzero? (-> arg1 next-chase-play-time)) + (>= (- (current-time) (-> arg1 next-chase-play-time)) (seconds 2)) + (or (>= (- (current-time) (-> arg1 next-chase-play-time)) (seconds 9)) + (>= (vector-vector-xz-distance s4-1 (-> s5-1 center)) (+ 8192.0 (-> s5-1 center w))) + (< 20480.0 (- (-> s4-1 y) (-> s5-1 center y))) + ) + ) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 26 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) + (when (send-event arg1 'jump 5 (-> s5-1 center)) + (logclear! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + (if (not (channel-active? arg1 (the-as uint 0))) + (play-speech arg1 22) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 26 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1745,30 +1722,28 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (not (logtest? (-> arg1 focus-status) (focus-status in-air))) + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (not (logtest? (-> arg1 focus-status) (focus-status in-air))) + ) + (logior! (-> arg1 waypoint-bits) 1) + (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + ) + (cond + ((sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + (else + (if (and (not (speech-playing? arg1 23)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) + (not (channel-active? arg1 (the-as uint 0))) ) - (logior! (-> arg1 waypoint-bits) 1) - (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - ) - (cond - ((sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - (else - (if (and (not (speech-playing? arg1 23)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 23) - ) - #f - ) + (play-speech arg1 23) + ) + #f ) ) ) diff --git a/goal_src/jak2/levels/underport/under-laser.gc b/goal_src/jak2/levels/underport/under-laser.gc index d18080f316..a5f9292cc0 100644 --- a/goal_src/jak2/levels/underport/under-laser.gc +++ b/goal_src/jak2/levels/underport/under-laser.gc @@ -359,7 +359,7 @@ s5-0 (-> self zero-pos) (-> self one-pos) - (get-norm! (-> self sync) (the-as int (+ (-> self clock frame-counter) (seconds 0.15)))) + (get-norm! (-> self sync) (the-as int (+ (current-time) (seconds 0.15)))) ) (vector-normalize-copy! s4-0 (-> self laser-dir) 1228.8) (vector+! s4-0 s4-0 s5-0) diff --git a/goal_src/jak2/levels/underport/under-obs.gc b/goal_src/jak2/levels/underport/under-obs.gc index 2526d13050..f89bba4728 100644 --- a/goal_src/jak2/levels/underport/under-obs.gc +++ b/goal_src/jak2/levels/underport/under-obs.gc @@ -346,10 +346,10 @@ (>= (* f0-18 f0-18) (vector-vector-xz-distance-squared a0-5 (-> self root trans))) ) ) - (if (>= (- (-> self clock frame-counter) (-> self last-recharge-time)) (seconds 1)) + (if (>= (- (current-time) (-> self last-recharge-time)) (seconds 1)) (sound-play "oxygen-recharge") ) - (set! (-> self last-recharge-time) (-> self clock frame-counter)) + (set! (-> self last-recharge-time) (current-time)) (send-event (ppointer->process *underb-master*) 'bubbler) ) ) @@ -418,7 +418,7 @@ This commonly includes things such as: (case arg2 (('ridden) (set! (-> self ridden) #t) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self last-ridden) (the-as time-frame v0-0)) v0-0 ) @@ -580,7 +580,7 @@ This commonly includes things such as: :trans (behavior () (rider-trans) (when (-> self rider-started) - (when (and (not (-> self ridden)) (>= (- (-> self clock frame-counter) (-> self last-ridden)) (seconds 2))) + (when (and (not (-> self ridden)) (>= (- (current-time) (-> self last-ridden)) (seconds 2))) (if (= (-> self extra-id) 1) (send-event (ppointer->process *underb-master*) 'request 'big-room 'under-plat 'player #f) ) @@ -1249,7 +1249,7 @@ This commonly includes things such as: (defstate explode (under-mine) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (-> self root-override root-prim))) (set! (-> v1-3 prim-core collide-as) (collide-spec)) (set! (-> v1-3 prim-core collide-with) (collide-spec)) diff --git a/goal_src/jak2/levels/underport/under-shoot-block.gc b/goal_src/jak2/levels/underport/under-shoot-block.gc index 08af9392d1..00dd646cb1 100644 --- a/goal_src/jak2/levels/underport/under-shoot-block.gc +++ b/goal_src/jak2/levels/underport/under-shoot-block.gc @@ -858,78 +858,74 @@ ) (defmethod under-block-method-42 under-block ((obj under-block)) - (with-pp - (set! (-> obj activated-time) (-> pp clock frame-counter)) - (logior! (-> obj flags) 2) - (set! (-> obj pulse-pc) 0) - (set! (-> obj pulse-op) 0) - 0 - (none) - ) + (set! (-> obj activated-time) (current-time)) + (logior! (-> obj flags) 2) + (set! (-> obj pulse-pc) 0) + (set! (-> obj pulse-op) 0) + 0 + (none) ) ;; WARN: Return type mismatch object vs none. ;; WARN: Function (method 45 under-block) has a return type of none, but the expression builder found a return statement. (defmethod under-block-method-45 under-block ((obj under-block)) - (with-pp - (let ((v1-0 (-> obj puzzle))) - (when (logtest? (-> obj flags) 2) - (cond - ((!= (-> v1-0 slot-mask) (-> v1-0 slot-mask-full)) - (when (zero? (-> obj pulse-op)) - (if (< (- (-> pp clock frame-counter) (-> obj activated-time)) - (the-as time-frame (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (-> obj pulse-pc) 4))))) - ) - (return #f) - ) - (set! (-> obj pulse-op) - (the-as int (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (+ (-> obj pulse-pc) 1) 4))))) - ) - (+! (-> obj pulse-pc) 2) - (case (-> obj pulse-op) - ((1) - (set! (-> obj pulse-ctr) 3) - (sound-play "und-block-flash") - ) - ((2) - (go (method-of-object obj explode)) - ) + (let ((v1-0 (-> obj puzzle))) + (when (logtest? (-> obj flags) 2) + (cond + ((!= (-> v1-0 slot-mask) (-> v1-0 slot-mask-full)) + (when (zero? (-> obj pulse-op)) + (if (< (- (current-time) (-> obj activated-time)) + (the-as time-frame (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (-> obj pulse-pc) 4))))) + ) + (return #f) ) - ) + (set! (-> obj pulse-op) + (the-as int (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (+ (-> obj pulse-pc) 1) 4))))) + ) + (+! (-> obj pulse-pc) 2) (case (-> obj pulse-op) ((1) - (let ((v1-24 (-> obj pulse-ctr))) - (cond - ((= v1-24 3) - (set-vector! (-> obj draw color-mult) 1.1 0.25 0.25 1.0) - (+! (-> obj pulse-ctr) -1) - ) - ((or (= v1-24 2) (= v1-24 1)) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 1.0 1.0 1.0 1.0) - (+! (-> obj pulse-ctr) -1) - ) - ((zero? v1-24) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) - (set! (-> obj pulse-op) 0) - 0 - ) - ) - ) + (set! (-> obj pulse-ctr) 3) + (sound-play "und-block-flash") + ) + ((2) + (go (method-of-object obj explode)) ) ) ) - (else - (set! (-> obj flags) (logand -3 (-> obj flags))) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) + (case (-> obj pulse-op) + ((1) + (let ((v1-24 (-> obj pulse-ctr))) + (cond + ((= v1-24 3) + (set-vector! (-> obj draw color-mult) 1.1 0.25 0.25 1.0) + (+! (-> obj pulse-ctr) -1) + ) + ((or (= v1-24 2) (= v1-24 1)) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 1.0 1.0 1.0 1.0) + (+! (-> obj pulse-ctr) -1) + ) + ((zero? v1-24) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) + (set! (-> obj pulse-op) 0) + 0 + ) + ) + ) ) + ) + ) + (else + (set! (-> obj flags) (logand -3 (-> obj flags))) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) ) ) ) - (none) ) + (none) ) (defmethod under-block-method-41 under-block ((obj under-block) (arg0 symbol)) @@ -1248,7 +1244,7 @@ (suspend) ) (under-block-method-41 self 'active) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-rise") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1278,7 +1274,7 @@ :trans (the-as (function none :behavior under-block) rider-trans) :code (behavior () (set! (-> self flags) (logand -2 (-> self flags))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'matrix))) (set! (-> gp-0 vector 0 quad) (-> self root-override trans quad)) (set! (-> gp-0 vector 1 quad) (-> gp-0 vector 0 quad)) @@ -1384,9 +1380,9 @@ (the-as quaternion (-> gp-1 vector 2)) (the-as quaternion (-> gp-1 trans)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let ((f30-0 (fmin 1.0 (* 0.022222223 (the float (- (-> self clock frame-counter) (-> self state-time))))))) + (let ((f30-0 (fmin 1.0 (* 0.022222223 (the float (- (current-time) (-> self state-time))))))) (let ((s5-1 (-> self root-override))) (set! (-> s5-1 transv quad) (-> s5-1 trans quad)) (vector-lerp! (-> s5-1 trans) (-> gp-1 vector 1) (the-as vector (-> gp-1 vector)) f30-0) @@ -1471,9 +1467,9 @@ (the-as quaternion (-> gp-1 vector 2)) (the-as quaternion (-> gp-1 trans)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let ((f30-0 (fmin 1.0 (* 0.0074074073 (the float (- (-> self clock frame-counter) (-> self state-time))))))) + (let ((f30-0 (fmin 1.0 (* 0.0074074073 (the float (- (current-time) (-> self state-time))))))) (let ((s5-1 (-> self root-override))) (set! (-> s5-1 transv quad) (-> s5-1 trans quad)) (vector-lerp! (-> s5-1 trans) (-> gp-1 vector 1) (the-as vector (-> gp-1 vector)) f30-0) @@ -1494,9 +1490,9 @@ ) #f (label cfg-5) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let* ((f1-9 (fmin 1.0 (* 0.0074074073 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (let* ((f1-9 (fmin 1.0 (* 0.0074074073 (the float (- (current-time) (-> self state-time)))))) (s5-2 (-> self root-override)) (f30-1 (fmax 0.0 (- 0.15 f1-9))) ) @@ -1534,7 +1530,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-lock") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1574,7 +1570,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-sink") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1622,13 +1618,13 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'quaternion)) (s5-0 (new 'stack-no-clear 'quaternion)) (f30-0 0.0) ) (quaternion-copy! gp-0 (-> self root-override quat)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.25)) + (while (< (- (current-time) (-> self state-time)) (seconds 1.25)) (+! f30-0 (* 65536.0 (-> self clock seconds-per-frame))) (quaternion-vector-angle! s5-0 (-> self rot-axis) (- f30-0)) (quaternion*! (-> self root-override quat) s5-0 gp-0) @@ -1650,7 +1646,7 @@ (fill-cache-integrate-and-collide gp-0 (-> gp-0 transv) a2-0 (meters 0)) ) (when (and (logtest? (-> (the-as collide-shape-moving gp-0) status) (collide-status touch-surface)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.01)) + (>= (- (current-time) (-> self state-time)) (seconds 0.01)) ) (logior! (-> self flags) 4) (go-virtual explode) @@ -2088,7 +2084,7 @@ (('explode) (let ((v1-4 (-> self puzzle spawners (-> arg3 param 0)))) (set! (-> v1-4 active-handle) (the-as handle #f)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> v1-4 exploded-time) (the-as time-frame v0-0)) ) v0-0 @@ -2124,7 +2120,7 @@ (countdown (s5-0 (-> gp-1 length)) (let ((s4-0 (-> gp-1 s5-0))) (when (and (not (handle->process (-> s4-0 active-handle))) - (>= (- (-> self clock frame-counter) (-> s4-0 exploded-time)) (seconds 1)) + (>= (- (current-time) (-> s4-0 exploded-time)) (seconds 1)) ) (set! (-> s4-0 active-handle) (-> s4-0 waiting-handle)) (let ((s3-0 (get-process *default-dead-pool* under-block #x4000))) @@ -2196,8 +2192,8 @@ :code (behavior () (process-entity-status! self (entity-perm-status subtask-complete) #t) (sound-play "und-block-chime") - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((gp-1 (-> self puzzle spawners))) diff --git a/goal_src/jak2/levels/underport/under-sig-obs.gc b/goal_src/jak2/levels/underport/under-sig-obs.gc index 29213336f4..23fa3ff562 100644 --- a/goal_src/jak2/levels/underport/under-sig-obs.gc +++ b/goal_src/jak2/levels/underport/under-sig-obs.gc @@ -47,9 +47,9 @@ (let ((gp-0 (cshape-reaction-default arg0 arg1 arg2 arg3))) (when (logtest? gp-0 (collide-status touch-surface)) (let ((s5-0 self)) - (when (>= (- (-> self clock frame-counter) (-> s5-0 hit-time)) (seconds 0.25)) + (when (>= (- (current-time) (-> s5-0 hit-time)) (seconds 0.25)) (sound-play "shoot-plat-fall") - (set! (-> s5-0 hit-time) (-> self clock frame-counter)) + (set! (-> s5-0 hit-time) (current-time)) ) ) ) @@ -203,7 +203,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-normalize! (-> self axe-flip) 1.0) (vector-rotate90-around-y! (-> self axe-flip) (-> self axe-flip)) (set! (-> self angle-flip-vel) -10.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -279,11 +279,11 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self dest-angle) 180.0) (set! (-> self on-shake) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self time-flip))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self time-flip))) (set! (-> self state-flip) (the-as uint 0)) 0 ) @@ -310,7 +310,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> self angle-flip) 0.0) ) (quaternion-vector-angle! (-> self root-override quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (+ (-> self time-flip) -300))) + (when (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (+ (-> self time-flip) -300))) (= 1 (-> self state-flip)) ) (when (not (-> self on-shake)) @@ -358,7 +358,7 @@ For example for an elevator pre-compute the distance between the first and last (defstate die-falling (under-plat-shoot) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause enemy platform)) (let ((v1-7 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0))) (set! (-> v1-7 prim-core collide-as) (collide-spec)) @@ -368,8 +368,8 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (let ((f30-0 (* 0.0016666667 (the float (+ (- (seconds -1) (-> self state-time)) (-> self clock frame-counter)))))) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) + (let ((f30-0 (* 0.0016666667 (the float (+ (- (seconds -1) (-> self state-time)) (current-time)))))) (when (>= f30-0 1.0) (cleanup-for-death self) (go empty-state) @@ -393,7 +393,7 @@ For example for an elevator pre-compute the distance between the first and last #t ) ) - (set! (-> self hit-time) (-> self clock frame-counter)) + (set! (-> self hit-time) (current-time)) (let ((gp-1 (new 'stack-no-clear 'quaternion)) (s5-1 (new 'stack-no-clear 'quaternion)) (s4-0 (new 'stack-no-clear 'vector)) @@ -541,8 +541,8 @@ otherwise, [[plat::34]] ) (suspend) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1318,7 +1318,7 @@ This commonly includes things such as: (defbehavior under-pipe-growls-post under-pipe-growls () - (when (and (zero? (-> self approach-sound-id)) (>= (-> self clock frame-counter) (-> self approach-play-time))) + (when (and (zero? (-> self approach-sound-id)) (>= (current-time) (-> self approach-play-time))) (let ((gp-0 (-> self root trans))) (set! (-> self approach-sound-id) (if (zero? (rand-vu-int-count 3)) (sound-play "grunt-warn" :position gp-0) @@ -1427,28 +1427,28 @@ This commonly includes things such as: ) :code (behavior () (sound-play "grunt-notice" :vol 40 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (sound-play "grunt-warn" :vol 50 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (sound-play "grunt-hit" :vol 60 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (sound-play "grunt-notice" :vol 70 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (sound-play "grunt-notice" :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (sound-play "grunt-notice" :vol 200 :position (target-pos 0)) @@ -1479,9 +1479,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch object vs none. (defbehavior under-pipe-growls-init-by-other under-pipe-growls ((arg0 vector) (arg1 symbol)) (set! (-> self approach-sound-id) (new 'static 'sound-id)) - (set! (-> self approach-play-time) - (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 0.1) (seconds 1))) - ) + (set! (-> self approach-play-time) (+ (current-time) (rand-vu-int-range (seconds 0.1) (seconds 1)))) (set! (-> self root) (new 'process 'trsqv)) (logclear! (-> self mask) (process-mask actor-pause)) (let ((s4-1 (-> self root))) diff --git a/goal_src/jak2/levels/underport/underb-master.gc b/goal_src/jak2/levels/underport/underb-master.gc index b3ce6ec08a..ada0b29db0 100644 --- a/goal_src/jak2/levels/underport/underb-master.gc +++ b/goal_src/jak2/levels/underport/underb-master.gc @@ -379,7 +379,7 @@ ) (if (or (not gp-0) (not (logtest? (-> gp-0 water flags) (water-flags under-water)))) (set! (-> self air-charge-up?) #t) - (set! (-> self underwater-time) (-> self clock frame-counter)) + (set! (-> self underwater-time) (current-time)) ) ) (cond @@ -419,8 +419,8 @@ (else (when (>= 0.4 (-> self air-supply)) (let ((v1-39 (the int (lerp-scale 90.0 300.0 (-> self air-supply) 0.0 0.4)))) - (when (>= (- (-> self clock frame-counter) (-> self last-air-beep-time)) v1-39) - (set! (-> self last-air-beep-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self last-air-beep-time)) v1-39) + (set! (-> self last-air-beep-time) (current-time)) (sound-play "oxygen-warning") ) ) @@ -431,9 +431,7 @@ ) (set! (-> *game-info* air-supply) (fmin 1.0 (-> self air-supply))) (if (or (and *target* (not (logtest? (focus-status mech) (-> *target* focus-status)))) - (and (>= (-> self air-supply) 1.0) - (>= (- (-> self clock frame-counter) (-> self underwater-time)) (seconds 3)) - ) + (and (>= (-> self air-supply) 1.0) (>= (- (current-time) (-> self underwater-time)) (seconds 3))) ) (spawn-air-tank-hud self #f) (spawn-air-tank-hud self #t) @@ -564,7 +562,7 @@ :enter (behavior () (persist-with-delay *setting-control* 'interp-time (seconds 0.05) 'interp-time 'abs 0.0 0) (set-setting! 'entity-name "camera-244" 0.0 0) - (set! (-> self big-room-timer) (-> self clock frame-counter)) + (set! (-> self big-room-timer) (current-time)) (send-event (ppointer->process *underb-master*) 'request 'under-warp #t) (none) ) @@ -574,7 +572,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self big-room-timer)) (seconds 1)) + (if (>= (- (current-time) (-> self big-room-timer)) (seconds 1)) (go-virtual idle) ) (none) @@ -686,7 +684,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -709,7 +707,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((a0-13 (-> v1-0 0 data 0 actor))) (if a0-13 (-> a0-13 extra process) @@ -766,7 +764,7 @@ ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -854,8 +852,8 @@ 0 ) ) - (when (>= (- (-> self clock frame-counter) (-> self last-reminder-time)) (seconds 9)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self last-reminder-time)) (seconds 9)) + (set! (-> self last-reminder-time) (current-time)) (add-process *gui-control* self @@ -897,12 +895,12 @@ (when (and (zero? (-> self state-time)) (= (get-status *gui-control* (the-as sound-id (-> self spooled-sound-id))) (gui-status ready)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-reminder-time) (current-time)) ) (when (nonzero? (-> self state-time)) (when (and (>= (-> self spooled-sound-delay) 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self spooled-sound-delay)) + (>= (- (current-time) (-> self state-time)) (-> self spooled-sound-delay)) ) (set-action! *gui-control* @@ -930,7 +928,7 @@ ) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (spawn (-> self part) (-> self root trans)) ) ) @@ -1003,8 +1001,8 @@ (when (and (zero? (-> self state-time)) (= (get-status *gui-control* (the-as sound-id (-> self spooled-sound-id))) (gui-status ready)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-reminder-time) (current-time)) (set-action! *gui-control* (gui-action play) @@ -1031,7 +1029,7 @@ ) ) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (spawn (-> self draining-part) (-> self root trans)) ) ) diff --git a/test/decompiler/reference/jak2/characters/ashelin/ash-states_REF.gc b/test/decompiler/reference/jak2/characters/ashelin/ash-states_REF.gc index 9d00f0dd94..4c68a6fbb5 100644 --- a/test/decompiler/reference/jak2/characters/ashelin/ash-states_REF.gc +++ b/test/decompiler/reference/jak2/characters/ashelin/ash-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -105,7 +105,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -165,9 +165,7 @@ (ashelin-method-240 self a1-6) ) (else - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (ashelin-method-247 self) - ) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (ashelin-method-247 self)) (go-virtual chase) ) ) @@ -185,7 +183,7 @@ ) ) (else - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (ashelin-method-239 self) ) ) @@ -256,7 +254,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -347,7 +345,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -377,12 +375,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (ashelin-method-239 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -416,7 +412,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -437,7 +433,7 @@ ((bot-method-214 self) (go-hostile self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -465,7 +461,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (bot-method-214 self) (if (ashelin-method-238 self #t #f) (go-virtual standing-idle) @@ -555,16 +551,14 @@ :trans (behavior () (bot-method-223 self #t) (cond - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ((not (bot-method-214 self)) (go-virtual traveling) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (or (ashelin-method-238 self #t #f) (ashelin-method-248 self)) (go-virtual standing-idle) ) @@ -609,7 +603,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -752,7 +746,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -888,7 +882,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ashelin) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1090,7 +1084,7 @@ (t9-0) ) ) - (when (and (logtest? (bot-flags bf23) (-> self bot-flags)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (bot-flags bf23) (-> self bot-flags)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf23)) (ashelin-method-244 self) ) diff --git a/test/decompiler/reference/jak2/characters/ashelin/ash_REF.gc b/test/decompiler/reference/jak2/characters/ashelin/ash_REF.gc index 7b56f1a545..a71ae05fff 100644 --- a/test/decompiler/reference/jak2/characters/ashelin/ash_REF.gc +++ b/test/decompiler/reference/jak2/characters/ashelin/ash_REF.gc @@ -299,101 +299,99 @@ ;; definition for method 97 of type ashelin (defmethod enemy-method-97 ashelin ((obj ashelin)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when v1-3 + (cond + ((= (-> v1-3 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when v1-3 - (cond - ((= (-> v1-3 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 2.5)) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 2.5)) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (let ((a0-21 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? a0-21) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (let ((s4-0 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ((= a0-21 1) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) + ) + (let ((a0-21 (-> obj focus-mode)) + (s5-1 (the-as process #f)) ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s5-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + (cond + ((zero? a0-21) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (let ((s4-0 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) + ((= a0-21 1) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s5-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s5-1 ) ) ) @@ -527,11 +525,9 @@ ;; definition for method 235 of type ashelin (defmethod ashelin-method-235 ashelin ((obj ashelin) (arg0 symbol)) - (with-pp - (and (>= (- (-> pp clock frame-counter) (-> obj last-fire-time)) (seconds 1)) - (and (>= 8556.089 (fabs (-> obj focus-info ry-diff))) (ashelin-method-238 obj arg0 #t)) - ) - ) + (and (>= (- (current-time) (-> obj last-fire-time)) (seconds 1)) + (and (>= 8556.089 (fabs (-> obj focus-info ry-diff))) (ashelin-method-238 obj arg0 #t)) + ) ) ;; definition for method 243 of type ashelin @@ -786,31 +782,29 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch (pointer process) vs none. (defmethod fire-projectile ashelin ((obj ashelin) (arg0 vector)) - (with-pp - (set! (-> obj last-fire-time) (-> pp clock frame-counter)) - (+! (-> obj fired-gun-count) 1) - (let ((s4-0 (new 'stack-no-clear 'projectile-init-by-other-params))) - (set! (-> s4-0 ent) (-> obj entity)) - (set! (-> s4-0 charge) 1.0) - (set! (-> s4-0 options) (projectile-options account-for-target-velocity proj-options-8000)) - (set! (-> s4-0 notify-handle) (process->handle obj)) - (set! (-> s4-0 owner-handle) (the-as handle #f)) - (set! (-> s4-0 ignore-handle) (process->handle obj)) - (let* ((v1-13 *game-info*) - (a0-10 (+ (-> v1-13 attack-id) 1)) - ) - (set! (-> v1-13 attack-id) a0-10) - (set! (-> s4-0 attack-id) a0-10) - ) - (set! (-> s4-0 timeout) (seconds 4)) - (vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22)) - (set! (-> s4-0 vel quad) (-> arg0 quad)) - (vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos)) - (vector-normalize! (-> s4-0 vel) 307200.0) - (spawn-projectile ashelin-shot s4-0 obj *default-dead-pool*) + (set! (-> obj last-fire-time) (current-time)) + (+! (-> obj fired-gun-count) 1) + (let ((s4-0 (new 'stack-no-clear 'projectile-init-by-other-params))) + (set! (-> s4-0 ent) (-> obj entity)) + (set! (-> s4-0 charge) 1.0) + (set! (-> s4-0 options) (projectile-options account-for-target-velocity proj-options-8000)) + (set! (-> s4-0 notify-handle) (process->handle obj)) + (set! (-> s4-0 owner-handle) (the-as handle #f)) + (set! (-> s4-0 ignore-handle) (process->handle obj)) + (let* ((v1-13 *game-info*) + (a0-10 (+ (-> v1-13 attack-id) 1)) + ) + (set! (-> v1-13 attack-id) a0-10) + (set! (-> s4-0 attack-id) a0-10) ) - (none) + (set! (-> s4-0 timeout) (seconds 4)) + (vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22)) + (set! (-> s4-0 vel quad) (-> arg0 quad)) + (vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos)) + (vector-normalize! (-> s4-0 vel) 307200.0) + (spawn-projectile ashelin-shot s4-0 obj *default-dead-pool*) ) + (none) ) ;; definition for method 249 of type ashelin @@ -1409,38 +1403,30 @@ ;; definition for method 245 of type ashelin (defmethod ashelin-method-245 ashelin ((obj ashelin)) - (with-pp - (when (and (not (channel-active? obj (the-as uint 0))) - (>= (-> pp clock frame-counter) (-> obj victory-speech-time)) - ) - (let ((s5-0 (bot-speech-list-method-9 - (-> obj ash-course victory-speeches) - obj - (-> obj ash-course speeches) - (speech-flags) - ) + (when (and (not (channel-active? obj (the-as uint 0))) (>= (current-time) (-> obj victory-speech-time))) + (let ((s5-0 (bot-speech-list-method-9 + (-> obj ash-course victory-speeches) + obj + (-> obj ash-course speeches) + (speech-flags) ) - ) - (when (>= s5-0 0) - (set! (-> obj victory-speech-time) - (the-as time-frame (+ (get-rand-int-range obj 1200 2100) (-> pp clock frame-counter))) ) - (play-speech obj s5-0) ) + (when (>= s5-0 0) + (set! (-> obj victory-speech-time) (the-as time-frame (+ (get-rand-int-range obj 1200 2100) (current-time)))) + (play-speech obj s5-0) ) ) - (none) ) + (none) ) ;; definition for method 136 of type ashelin (defmethod enemy-method-136 ashelin ((obj ashelin)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj hit-focus-time)) (seconds 2)) - (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-0) - v0-0 - ) + (when (>= (- (current-time) (-> obj hit-focus-time)) (seconds 2)) + (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-0) + v0-0 ) ) ) @@ -1505,7 +1491,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/characters/sig/sig-states_REF.gc b/test/decompiler/reference/jak2/characters/sig/sig-states_REF.gc index 7b3e069d39..1a72bb74c9 100644 --- a/test/decompiler/reference/jak2/characters/sig/sig-states_REF.gc +++ b/test/decompiler/reference/jak2/characters/sig/sig-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -67,7 +67,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -171,7 +171,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -214,7 +214,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (not (-> self focus-info fproc)) (>= (-> self focus-info bullseye-xz-dist) 102400.0)) ) (go-virtual waiting-far) @@ -303,7 +303,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -495,7 +495,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -649,7 +649,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -681,7 +681,7 @@ ) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) (zero? (-> self played-unjam-time))) - (set! (-> self played-unjam-time) (-> self clock frame-counter)) + (set! (-> self played-unjam-time) (current-time)) (sound-play "sig-gun-unjam") ) (none) @@ -708,7 +708,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -724,7 +724,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -739,7 +739,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -754,7 +754,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -769,7 +769,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -784,7 +784,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -800,7 +800,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -816,7 +816,7 @@ (ja :num! (seek!)) ) (when (and (logtest? (bot-flags bf21) (-> self bot-flags)) - (>= (- (-> self clock frame-counter) (-> self played-unjam-time)) (seconds 0.35)) + (>= (- (current-time) (-> self played-unjam-time)) (seconds 0.35)) ) (logclear! (-> self bot-flags) (bot-flags bf19 bf21)) (go-virtual waiting-close) @@ -833,7 +833,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -942,7 +942,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -976,12 +976,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (go-virtual waiting-close) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -1015,7 +1013,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1043,7 +1041,7 @@ ((sig-method-255 self) (go-virtual repair-gun) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -1086,7 +1084,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (bot-method-214 self) (cond ((sig-method-246 self) @@ -1329,7 +1327,7 @@ (seconds 0.05) ) (bot-method-223 self #t) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (or (not (bot-method-214 self)) (not (sig-method-245 self))) ) (react-to-focus self) @@ -1373,9 +1371,7 @@ :trans (behavior () (bot-method-223 self #t) (cond - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ((not (bot-method-214 self)) @@ -1448,7 +1444,7 @@ 0.0 #f ) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.167)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.167)) (sig-method-258 self) (suspend) ) @@ -1478,7 +1474,7 @@ ) ) ) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (sig-method-258 self) (suspend) ) @@ -1629,7 +1625,7 @@ (ja :num! (seek!)) ) (ja-channel-push! 1 (seconds 0.2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))) @@ -1637,7 +1633,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1656,7 +1652,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1719,7 +1715,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1749,7 +1745,7 @@ (if (logtest? s5-0 2) (go-virtual sig-path-shoot-jump) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) (go-virtual sig-path-jump-land) ) ) @@ -1792,7 +1788,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1862,7 +1858,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1893,7 +1889,7 @@ (if (and (logtest? s5-0 1) (logtest? (bot-flags bf25) (-> self bot-flags))) (go-virtual sig-path-jump) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (logtest? s5-0 4))) (go-virtual sig-path-shoot-jump-land) ) ) @@ -1941,7 +1937,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -2011,7 +2007,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior sig) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/characters/sig/sig-task_REF.gc b/test/decompiler/reference/jak2/characters/sig/sig-task_REF.gc index 2f6599a7dc..4906e9e002 100644 --- a/test/decompiler/reference/jak2/characters/sig/sig-task_REF.gc +++ b/test/decompiler/reference/jak2/characters/sig/sig-task_REF.gc @@ -178,7 +178,7 @@ (set! (-> a1-3 message) 'sync) (let ((v1-19 (- ((method-of-type sync-info get-timeframe-offset!) (the-as sync-info (send-event-function s5-1 a1-3)) 0) - (-> pp clock frame-counter) + (current-time) ) ) ) @@ -278,7 +278,7 @@ (set! (-> a1-6 message) 'sync) (let ((v1-16 (- ((method-of-type sync-info get-timeframe-offset!) (the-as sync-info (send-event-function a0-4 a1-6)) 0) - (-> pp clock frame-counter) + (current-time) ) ) ) diff --git a/test/decompiler/reference/jak2/characters/sig/sig_REF.gc b/test/decompiler/reference/jak2/characters/sig/sig_REF.gc index 9864fbc27a..b554641ea1 100644 --- a/test/decompiler/reference/jak2/characters/sig/sig_REF.gc +++ b/test/decompiler/reference/jak2/characters/sig/sig_REF.gc @@ -260,122 +260,120 @@ ;; definition for method 97 of type sig (defmethod enemy-method-97 sig ((obj sig)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (s4-0 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (s4-0 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when s4-0 + (cond + ((= (-> s4-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s4-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s4-0 - (cond - ((= (-> s4-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s4-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) + ) + ) + ) + ) + (let ((v1-23 (-> obj focus-mode)) + (s5-1 (the-as process #f)) + ) + (cond + ((zero? v1-23) + (cond + (s4-0 + (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (>= 16384.0 + (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) + ) ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) + (set! s5-1 s4-0) ) - (set! s4-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) + ) + (else + (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (set! s5-1 (select-focus! obj)) + (cond + (s5-1 + (empty) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) ) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s4-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) + ) + ((= v1-23 1) + (cond + (s4-0 + (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (>= 16384.0 + (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) + ) + ) + (set! s5-1 s4-0) + ) + ) + (else + (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) + (let ((s4-2 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-2 process-focusable) + s4-2 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) + ) + ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) ) - ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) ) ) - (let ((v1-23 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? v1-23) - (cond - (s4-0 - (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (>= 16384.0 - (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) - ) - ) - (set! s5-1 s4-0) - ) - ) - (else - (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (set! s5-1 (select-focus! obj)) - (cond - (s5-1 - (empty) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ) - ) - ) - ((= v1-23 1) - (cond - (s4-0 - (if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (>= 16384.0 - (vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3)) - ) - ) - (set! s5-1 s4-0) - ) - ) - (else - (when (not (logtest? (bot-flags bf19) (-> obj bot-flags))) - (let ((s4-2 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-2 process-focusable) - s4-2 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) - ) - ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 - ) + s5-1 ) ) ) @@ -416,68 +414,64 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((v1-2 (-> obj skel top-anim frame-group))) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj danger-time)) (seconds 2)) - (cond - ((not v1-2) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + (let ((v1-2 (-> obj skel top-anim frame-group))) + (cond + ((>= (- (current-time) (-> obj danger-time)) (seconds 2)) + (cond + ((not v1-2) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + ) + ((= v1-2 (-> obj draw art-group data 44)) + (push-anim-to-targ + (-> obj skel top-anim) + (the-as art-joint-anim (-> obj draw art-group data 46)) + 0.0 + 0 + 0 + 1.0 + 0.0 + #f ) - ((= v1-2 (-> obj draw art-group data 44)) - (push-anim-to-targ - (-> obj skel top-anim) - (the-as art-joint-anim (-> obj draw art-group data 46)) - 0.0 - 0 - 0 - 1.0 - 0.0 - #f - ) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) - ) - ) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 42)) + ) ) - (else - (cond - ((not v1-2) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) + (else + (cond + ((not v1-2) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) + ((= v1-2 (-> obj draw art-group data 42)) + (push-anim-to-targ + (-> obj skel top-anim) + (the-as art-joint-anim (-> obj draw art-group data 43)) + 0.0 + 0 + 0 + 1.0 + 0.0 + #f ) - ((= v1-2 (-> obj draw art-group data 42)) - (push-anim-to-targ - (-> obj skel top-anim) - (the-as art-joint-anim (-> obj draw art-group data 43)) - 0.0 - 0 - 0 - 1.0 - 0.0 - #f - ) - (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) - ) - ) + (set! (-> obj skel top-anim base-anim) (-> obj draw art-group data 44)) + ) ) ) ) - (let ((t9-2 (method-of-type bot track-target!))) - (t9-2 obj) - ) - (when (logtest? (-> obj bot-flags) (bot-flags too-far-fail)) - (let ((f0-0 (vector-vector-distance (-> obj root-override2 trans) (target-pos 0)))) - (when (or (>= f0-0 491520.0) - (and (>= f0-0 102400.0) (>= (- (-> pp clock frame-counter) (-> obj last-draw-time)) (seconds 10))) - ) - (process-entity-status! obj (entity-perm-status no-kill) #f) - (cleanup-for-death obj) - (go (method-of-object obj die-fast)) - ) - ) - ) - (sig-plasma-method-14 (-> obj plasma) obj) - (none) ) + (let ((t9-2 (method-of-type bot track-target!))) + (t9-2 obj) + ) + (when (logtest? (-> obj bot-flags) (bot-flags too-far-fail)) + (let ((f0-0 (vector-vector-distance (-> obj root-override2 trans) (target-pos 0)))) + (when (or (>= f0-0 491520.0) (and (>= f0-0 102400.0) (>= (- (current-time) (-> obj last-draw-time)) (seconds 10)))) + (process-entity-status! obj (entity-perm-status no-kill) #f) + (cleanup-for-death obj) + (go (method-of-object obj die-fast)) + ) + ) + ) + (sig-plasma-method-14 (-> obj plasma) obj) + (none) ) ;; definition for method 213 of type sig diff --git a/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc b/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc index 48abb48c3d..c8b07683d1 100644 --- a/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc +++ b/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc @@ -434,7 +434,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-31 (-> self root-override2 root-prim))) (set! (-> v1-31 prim-core collide-as) (collide-spec)) (set! (-> v1-31 prim-core collide-with) (collide-spec)) @@ -466,7 +466,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'quaternion)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (civilian-method-217 self gp-0)) (let ((s4-0 (handle->process (-> self vehicle))) (s3-0 (new 'stack-no-clear 'quaternion)) @@ -475,7 +475,7 @@ (compute-seat-position (the-as vehicle s4-0) (-> self root-override2 trans) (-> self seat)) (quaternion-copy! (-> self root-override2 quat) s3-0) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (put-rider-in-seat (the-as vehicle (handle->process (-> self vehicle))) (-> self seat) self) (go-virtual ride) ) @@ -1136,246 +1136,244 @@ ;; WARN: Return type mismatch object vs none. (defun shuttle-update ((arg0 task-manager) (arg1 (array city-shuttle-info)) (arg2 uint)) (local-vars (v1-263 float) (v1-377 float) (sv-336 quaternion)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (cond - ((nonzero? (-> arg0 data-int32 9)) - (check-time arg0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (else - (set! (-> arg0 start-time) (-> pp clock frame-counter)) - (when (< (vector-vector-xz-distance (target-pos 0) (-> arg0 begin-pos)) 102400.0) - (set-setting! 'airlock #f 0.0 0) - (set! (-> arg0 data-int32 9) 1) - ) + (init-vf0-vector) + (cond + ((nonzero? (-> arg0 data-int32 9)) + (check-time arg0) + ) + (else + (set! (-> arg0 start-time) (current-time)) + (when (< (vector-vector-xz-distance (target-pos 0) (-> arg0 begin-pos)) 102400.0) + (set-setting! 'airlock #f 0.0 0) + (set! (-> arg0 data-int32 9) 1) ) ) - (when (= (-> arg0 data-int32 10) (+ (-> arg0 sub-state) -1)) - (let ((s3-1 (handle->process (-> arg0 slave (logand -2 (-> arg0 data-int32 10)))))) - (when s3-1 - (let ((v1-20 (-> arg0 data-int32 10))) - (cond - ((zero? v1-20) - (let ((v0-4 (rand-vu-int-count 3))) - (cond - ((zero? v0-4) - (send-event s3-1 'play-speech "agnt038") - ) - ((= v0-4 1) - (send-event s3-1 'play-speech "agnt039") - ) - ((= v0-4 2) - (send-event s3-1 'play-speech "agnt040") - ) - ) + ) + (when (= (-> arg0 data-int32 10) (+ (-> arg0 sub-state) -1)) + (let ((s3-1 (handle->process (-> arg0 slave (logand -2 (-> arg0 data-int32 10)))))) + (when s3-1 + (let ((v1-20 (-> arg0 data-int32 10))) + (cond + ((zero? v1-20) + (let ((v0-4 (rand-vu-int-count 3))) + (cond + ((zero? v0-4) + (send-event s3-1 'play-speech "agnt038") + ) + ((= v0-4 1) + (send-event s3-1 'play-speech "agnt039") + ) + ((= v0-4 2) + (send-event s3-1 'play-speech "agnt040") + ) ) ) - ((= v1-20 1) - (let ((v0-8 (rand-vu-int-count 4))) - (cond - ((zero? v0-8) - (send-event s3-1 'play-speech "agnt045") - ) - ((= v0-8 1) - (send-event s3-1 'play-speech "agnt046") - ) - ((= v0-8 2) - (send-event s3-1 'play-speech "agnt047") - ) - ((= v0-8 3) - (send-event s3-1 'play-speech "agnt048") - ) - ) + ) + ((= v1-20 1) + (let ((v0-8 (rand-vu-int-count 4))) + (cond + ((zero? v0-8) + (send-event s3-1 'play-speech "agnt045") + ) + ((= v0-8 1) + (send-event s3-1 'play-speech "agnt046") + ) + ((= v0-8 2) + (send-event s3-1 'play-speech "agnt047") + ) + ((= v0-8 3) + (send-event s3-1 'play-speech "agnt048") + ) ) ) - ((= v1-20 2) - (let ((v0-13 (rand-vu-int-count 4))) - (cond - ((zero? v0-13) - (send-event s3-1 'play-speech "agnt092") - ) - ((= v0-13 1) - (send-event s3-1 'play-speech "agnt093") - ) - ((= v0-13 2) - (send-event s3-1 'play-speech "agnt094") - ) - ((= v0-13 3) - (send-event s3-1 'play-speech "agnt095") - ) - ) + ) + ((= v1-20 2) + (let ((v0-13 (rand-vu-int-count 4))) + (cond + ((zero? v0-13) + (send-event s3-1 'play-speech "agnt092") + ) + ((= v0-13 1) + (send-event s3-1 'play-speech "agnt093") + ) + ((= v0-13 2) + (send-event s3-1 'play-speech "agnt094") + ) + ((= v0-13 3) + (send-event s3-1 'play-speech "agnt095") + ) ) ) - ((= v1-20 3) - (let ((v0-18 (rand-vu-int-count 3))) - (cond - ((zero? v0-18) - (send-event s3-1 'play-speech "agnt100") - ) - ((= v0-18 1) - (send-event s3-1 'play-speech "agnt101") - ) - ((= v0-18 2) - (send-event s3-1 'play-speech "agnt102") - ) - ) + ) + ((= v1-20 3) + (let ((v0-18 (rand-vu-int-count 3))) + (cond + ((zero? v0-18) + (send-event s3-1 'play-speech "agnt100") + ) + ((= v0-18 1) + (send-event s3-1 'play-speech "agnt101") + ) + ((= v0-18 2) + (send-event s3-1 'play-speech "agnt102") + ) ) ) - ((= v1-20 4) - (let ((v0-22 (rand-vu-int-count 3))) - (cond - ((zero? v0-22) - (send-event s3-1 'play-speech "agnt115") - ) - ((= v0-22 1) - (send-event s3-1 'play-speech "agnt121") - ) - ((= v0-22 2) - (send-event s3-1 'play-speech "agnt122") - ) - ) + ) + ((= v1-20 4) + (let ((v0-22 (rand-vu-int-count 3))) + (cond + ((zero? v0-22) + (send-event s3-1 'play-speech "agnt115") + ) + ((= v0-22 1) + (send-event s3-1 'play-speech "agnt121") + ) + ((= v0-22 2) + (send-event s3-1 'play-speech "agnt122") + ) ) ) - ((= v1-20 5) - (let ((v0-26 (rand-vu-int-count 3))) - (cond - ((zero? v0-26) - (send-event s3-1 'play-speech "agnt119") - ) - ((= v0-26 1) - (send-event s3-1 'play-speech "agnt120") - ) - ((= v0-26 2) - (send-event s3-1 'play-speech "agnt125") - ) - ) + ) + ((= v1-20 5) + (let ((v0-26 (rand-vu-int-count 3))) + (cond + ((zero? v0-26) + (send-event s3-1 'play-speech "agnt119") + ) + ((= v0-26 1) + (send-event s3-1 'play-speech "agnt120") + ) + ((= v0-26 2) + (send-event s3-1 'play-speech "agnt125") + ) ) ) - ((= v1-20 6) - (let ((v0-30 (rand-vu-int-count 5))) - (cond - ((zero? v0-30) - (send-event s3-1 'play-speech "agnt131") - ) - ((= v0-30 1) - (send-event s3-1 'play-speech "agnt132") - ) - ((= v0-30 2) - (send-event s3-1 'play-speech "agnt133") - ) - ((= v0-30 3) - (send-event s3-1 'play-speech "agnt126") - ) - ((= v0-30 4) - (send-event s3-1 'play-speech "agnt127") - ) - ) + ) + ((= v1-20 6) + (let ((v0-30 (rand-vu-int-count 5))) + (cond + ((zero? v0-30) + (send-event s3-1 'play-speech "agnt131") + ) + ((= v0-30 1) + (send-event s3-1 'play-speech "agnt132") + ) + ((= v0-30 2) + (send-event s3-1 'play-speech "agnt133") + ) + ((= v0-30 3) + (send-event s3-1 'play-speech "agnt126") + ) + ((= v0-30 4) + (send-event s3-1 'play-speech "agnt127") + ) ) ) - ((= v1-20 7) - (let ((v0-36 (rand-vu-int-count 2))) - (cond - ((zero? v0-36) - (send-event s3-1 'play-speech "agnt135") - ) - ((= v0-36 1) - (send-event s3-1 'play-speech "agnt130") - ) - ) + ) + ((= v1-20 7) + (let ((v0-36 (rand-vu-int-count 2))) + (cond + ((zero? v0-36) + (send-event s3-1 'play-speech "agnt135") + ) + ((= v0-36 1) + (send-event s3-1 'play-speech "agnt130") + ) ) ) - ) + ) ) - (+! (-> arg0 data-int32 10) 1) ) + (+! (-> arg0 data-int32 10) 1) ) ) - (let ((s3-2 (-> arg0 sub-state))) - (cond - ((>= s3-2 (the-as uint (-> arg0 count))) - (go (method-of-object arg0 complete)) - ) - ((not (logtest? s3-2 1)) - (let ((s2-0 (handle->process (-> arg0 slave s3-2)))) - (cond - (s2-0 - (let* ((s1-0 (entity-nav-mesh-by-aid (-> (the-as citizen-rebel s2-0) nav-mesh-aid))) - (s4-1 (if (type? s1-0 entity-nav-mesh) - s1-0 - ) - ) - ) - (cond - (s4-1 - (when (focus-test? (the-as citizen-rebel s2-0) inactive) - (let ((s1-1 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s1-1 object-type) (traffic-type tt5)) - (set! (-> s1-1 behavior) (the-as uint 7)) - (set! (-> s1-1 id) (the-as uint 0)) - (set! (-> s1-1 nav-mesh) #f) - (set! (-> s1-1 nav-branch) #f) - (set! (-> s1-1 proc) #f) - (set! (-> s1-1 handle) (-> arg0 slave s3-2)) - (set! (-> s1-1 user-data) (the-as uint 0)) - (set! (-> s1-1 flags) (traffic-spawn-flags)) - (set! (-> s1-1 guard-type) (the-as uint 7)) - (vector-reset! (-> s1-1 velocity)) - (set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root-override2 trans quad)) - (quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root-override2 quat)) - (set! (-> s1-1 nav-mesh) (-> s4-1 nav-mesh)) - (activate-by-handle *traffic-engine* s1-1) - ) + ) + (let ((s3-2 (-> arg0 sub-state))) + (cond + ((>= s3-2 (the-as uint (-> arg0 count))) + (go (method-of-object arg0 complete)) + ) + ((not (logtest? s3-2 1)) + (let ((s2-0 (handle->process (-> arg0 slave s3-2)))) + (cond + (s2-0 + (let* ((s1-0 (entity-nav-mesh-by-aid (-> (the-as citizen-rebel s2-0) nav-mesh-aid))) + (s4-1 (if (type? s1-0 entity-nav-mesh) + s1-0 + ) + ) + ) + (cond + (s4-1 + (when (focus-test? (the-as citizen-rebel s2-0) inactive) + (let ((s1-1 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s1-1 object-type) (traffic-type tt5)) + (set! (-> s1-1 behavior) (the-as uint 7)) + (set! (-> s1-1 id) (the-as uint 0)) + (set! (-> s1-1 nav-mesh) #f) + (set! (-> s1-1 nav-branch) #f) + (set! (-> s1-1 proc) #f) + (set! (-> s1-1 handle) (-> arg0 slave s3-2)) + (set! (-> s1-1 user-data) (the-as uint 0)) + (set! (-> s1-1 flags) (traffic-spawn-flags)) + (set! (-> s1-1 guard-type) (the-as uint 7)) + (vector-reset! (-> s1-1 velocity)) + (set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root-override2 trans quad)) + (quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root-override2 quat)) + (set! (-> s1-1 nav-mesh) (-> s4-1 nav-mesh)) + (activate-by-handle *traffic-engine* s1-1) ) - (let ((v1-230 *target*)) - (when (and v1-230 (focus-test? v1-230 pilot)) - (let ((s4-2 (handle->process (-> v1-230 pilot vehicle)))) - (when s4-2 - (cond - ((and (focus-test? (the-as citizen-rebel s2-0) pilot) - (handle->process (-> (the-as citizen-rebel s2-0) vehicle)) - ) - (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 (+ s3-2 1) pos)) - (+! (-> arg0 sub-state) 1) - (set! (-> arg0 time-limit) (+ (-> arg1 s3-2 time) (-> arg1 (+ s3-2 1) time))) - ) - (else - (let ((v1-260 (get-best-seat-for-vehicle - (the-as vehicle s4-2) - (-> (the-as vehicle s4-2) root-override-2 trans) - (the-as int (-> (the-as citizen-rebel s2-0) info seat-flag)) - 1 - ) + ) + (let ((v1-230 *target*)) + (when (and v1-230 (focus-test? v1-230 pilot)) + (let ((s4-2 (handle->process (-> v1-230 pilot vehicle)))) + (when s4-2 + (cond + ((and (focus-test? (the-as citizen-rebel s2-0) pilot) + (handle->process (-> (the-as citizen-rebel s2-0) vehicle)) + ) + (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 (+ s3-2 1) pos)) + (+! (-> arg0 sub-state) 1) + (set! (-> arg0 time-limit) (+ (-> arg1 s3-2 time) (-> arg1 (+ s3-2 1) time))) + ) + (else + (let ((v1-260 (get-best-seat-for-vehicle + (the-as vehicle s4-2) + (-> (the-as vehicle s4-2) root-override-2 trans) + (the-as int (-> (the-as citizen-rebel s2-0) info seat-flag)) + 1 ) - ) - (when (!= v1-260 -1) - (.lvf vf1 (&-> (-> (the-as vehicle s4-2) root-override-2 transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-263 vf1) - (let ((f0-1 v1-263) - (f1-1 32768.0) - ) - (if (and (< f0-1 (* f1-1 f1-1)) (let ((f0-2 (vector-vector-distance-squared - (-> (the-as vehicle s4-2) root-override-2 trans) - (-> (the-as citizen-rebel s2-0) root-override2 trans) - ) + ) + ) + (when (!= v1-260 -1) + (.lvf vf1 (&-> (-> (the-as vehicle s4-2) root-override-2 transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-263 vf1) + (let ((f0-1 v1-263) + (f1-1 32768.0) + ) + (if (and (< f0-1 (* f1-1 f1-1)) (let ((f0-2 (vector-vector-distance-squared + (-> (the-as vehicle s4-2) root-override-2 trans) + (-> (the-as citizen-rebel s2-0) root-override2 trans) ) - (f1-4 65536.0) - ) - (< f0-2 (* f1-4 f1-4)) - ) - ) - (send-event s2-0 'board-vehicle s4-2) - ) - ) + ) + (f1-4 65536.0) + ) + (< f0-2 (* f1-4 f1-4)) + ) + ) + (send-event s2-0 'board-vehicle s4-2) + ) ) ) ) @@ -1385,66 +1383,66 @@ ) ) ) - (else - (if (not (focus-test? (the-as citizen-rebel s2-0) inactive)) - (send-event s2-0 'traffic-off-force) - ) - ) ) - ) - (if (and (-> s2-0 next-state) (= (-> s2-0 next-state name) 'wait-for-ride)) - (send-event - (handle->process (-> arg0 arrow)) - 'set-position - (-> (the-as citizen-rebel s2-0) root-override2 trans) - ) - ) - ) - (else - (when (zero? (-> arg0 data-int32 s3-2)) - (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 s3-2 pos)) - (set! (-> arg0 time-limit) (-> arg1 s3-2 time)) - (set! (-> arg0 start-time) (-> pp clock frame-counter)) - (set! (-> arg0 data-int32 s3-2) 1) - ) - (let ((s1-2 (find-nearest-nav-mesh (-> arg1 s3-2 pos) (the-as float #x7f800000)))) - (when (and s1-2 (nonzero? s1-2)) - (let ((s2-1 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s2-1 object-type) (traffic-type tt5)) - (set! (-> s2-1 behavior) (the-as uint 7)) - (set! (-> s2-1 id) (the-as uint 0)) - (set! (-> s2-1 nav-mesh) #f) - (set! (-> s2-1 nav-branch) #f) - (set! (-> s2-1 proc) #f) - (set! (-> s2-1 handle) (the-as handle #f)) - (set! (-> s2-1 user-data) (the-as uint 0)) - (set! (-> s2-1 flags) (traffic-spawn-flags)) - (set! (-> s2-1 guard-type) (the-as uint 7)) - (vector-reset! (-> s2-1 velocity)) - (set! (-> s2-1 position quad) (-> arg1 s3-2 pos quad)) - (let ((s0-0 quaternion-copy!)) - (set! sv-336 (-> s2-1 rotation)) - (let ((a1-50 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *up-vector* 0.0))) - (s0-0 sv-336 a1-50) - ) + (else + (if (not (focus-test? (the-as citizen-rebel s2-0) inactive)) + (send-event s2-0 'traffic-off-force) ) - (logior! (-> s2-1 flags) (traffic-spawn-flags trsflags-00)) - (set! (-> s2-1 id) (the-as uint 122)) - (set! (-> s2-1 proc) #f) - (let ((v0-58 (citizen-spawn arg0 citizen-rebel s2-1))) - (cond - (v0-58 - (set! (-> (the-as citizen-rebel v0-58) end-pos quad) (-> arg1 (+ s3-2 1) pos quad)) - (set! (-> arg0 slave s3-2) (process->handle (the-as citizen-rebel v0-58))) - (logior! (-> (the-as citizen-rebel v0-58) flags) (citizen-flag persistent)) - (set! (-> (the-as citizen-rebel v0-58) task-node) arg2) - (set! (-> (the-as citizen-rebel v0-58) nav-mesh-aid) (the-as actor-id (-> s1-2 entity aid))) - (set! (-> (the-as citizen-rebel v0-58) done?) #f) - (set! (-> (the-as citizen-rebel v0-58) index) s3-2) - (send-event *traffic-manager* 'add-object (-> s2-1 object-type) (the-as citizen-rebel v0-58)) - ) - (else - ) + ) + ) + ) + (if (and (-> s2-0 next-state) (= (-> s2-0 next-state name) 'wait-for-ride)) + (send-event + (handle->process (-> arg0 arrow)) + 'set-position + (-> (the-as citizen-rebel s2-0) root-override2 trans) + ) + ) + ) + (else + (when (zero? (-> arg0 data-int32 s3-2)) + (send-event (handle->process (-> arg0 arrow)) 'set-position (-> arg1 s3-2 pos)) + (set! (-> arg0 time-limit) (-> arg1 s3-2 time)) + (set! (-> arg0 start-time) (current-time)) + (set! (-> arg0 data-int32 s3-2) 1) + ) + (let ((s1-2 (find-nearest-nav-mesh (-> arg1 s3-2 pos) (the-as float #x7f800000)))) + (when (and s1-2 (nonzero? s1-2)) + (let ((s2-1 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s2-1 object-type) (traffic-type tt5)) + (set! (-> s2-1 behavior) (the-as uint 7)) + (set! (-> s2-1 id) (the-as uint 0)) + (set! (-> s2-1 nav-mesh) #f) + (set! (-> s2-1 nav-branch) #f) + (set! (-> s2-1 proc) #f) + (set! (-> s2-1 handle) (the-as handle #f)) + (set! (-> s2-1 user-data) (the-as uint 0)) + (set! (-> s2-1 flags) (traffic-spawn-flags)) + (set! (-> s2-1 guard-type) (the-as uint 7)) + (vector-reset! (-> s2-1 velocity)) + (set! (-> s2-1 position quad) (-> arg1 s3-2 pos quad)) + (let ((s0-0 quaternion-copy!)) + (set! sv-336 (-> s2-1 rotation)) + (let ((a1-50 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *up-vector* 0.0))) + (s0-0 sv-336 a1-50) + ) + ) + (logior! (-> s2-1 flags) (traffic-spawn-flags trsflags-00)) + (set! (-> s2-1 id) (the-as uint 122)) + (set! (-> s2-1 proc) #f) + (let ((v0-58 (citizen-spawn arg0 citizen-rebel s2-1))) + (cond + (v0-58 + (set! (-> (the-as citizen-rebel v0-58) end-pos quad) (-> arg1 (+ s3-2 1) pos quad)) + (set! (-> arg0 slave s3-2) (process->handle (the-as citizen-rebel v0-58))) + (logior! (-> (the-as citizen-rebel v0-58) flags) (citizen-flag persistent)) + (set! (-> (the-as citizen-rebel v0-58) task-node) arg2) + (set! (-> (the-as citizen-rebel v0-58) nav-mesh-aid) (the-as actor-id (-> s1-2 entity aid))) + (set! (-> (the-as citizen-rebel v0-58) done?) #f) + (set! (-> (the-as citizen-rebel v0-58) index) s3-2) + (send-event *traffic-manager* 'add-object (-> s2-1 object-type) (the-as citizen-rebel v0-58)) + ) + (else ) ) ) @@ -1454,57 +1452,57 @@ ) ) ) - (else - (let ((s4-3 (handle->process (-> arg0 slave (+ s3-2 -1))))) - (if (not s4-3) - (go (method-of-object arg0 fail)) - ) - (if (or (not *target*) (not (logtest? (focus-status pilot) (-> *target* focus-status)))) - (send-event s4-3 'exit-vehicle (-> (the-as process-drawable s4-3) root trans)) - ) - (when (-> *target* pilot) - (let ((s5-1 (-> arg1 s3-2 pos)) - (s2-2 (handle->process (-> *target* pilot vehicle))) - ) - (cond - ((focus-test? (the-as process-focusable s4-3) pilot) - (if (and s2-2 - (let ((f0-3 (vector-vector-distance-squared s5-1 (-> (the-as process-drawable s2-2) root trans))) - (f1-7 65536.0) - ) - (< f0-3 (* f1-7 f1-7)) - ) - (begin - (.lvf vf1 (&-> (-> (the-as process-drawable s2-2) root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-377 vf1) - (let ((f0-4 v1-377) - (f1-10 12288.0) - ) - (< f0-4 (* f1-10 f1-10)) + ) + (else + (let ((s4-3 (handle->process (-> arg0 slave (+ s3-2 -1))))) + (if (not s4-3) + (go (method-of-object arg0 fail)) + ) + (if (or (not *target*) (not (logtest? (focus-status pilot) (-> *target* focus-status)))) + (send-event s4-3 'exit-vehicle (-> (the-as process-drawable s4-3) root trans)) + ) + (when (-> *target* pilot) + (let ((s5-1 (-> arg1 s3-2 pos)) + (s2-2 (handle->process (-> *target* pilot vehicle))) + ) + (cond + ((focus-test? (the-as process-focusable s4-3) pilot) + (if (and s2-2 + (let ((f0-3 (vector-vector-distance-squared s5-1 (-> (the-as process-drawable s2-2) root trans))) + (f1-7 65536.0) ) + (< f0-3 (* f1-7 f1-7)) + ) + (begin + (.lvf vf1 (&-> (-> (the-as process-drawable s2-2) root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-377 vf1) + (let ((f0-4 v1-377) + (f1-10 12288.0) + ) + (< f0-4 (* f1-10 f1-10)) ) ) - (send-event s4-3 'exit-vehicle s5-1) - ) - ) - ((not (-> (the-as citizen-rebel s4-3) done?)) - (set! (-> arg0 data-int32 s3-2) 0) - (+! (-> arg0 sub-state) -1) - ) - ) + ) + (send-event s4-3 'exit-vehicle s5-1) + ) + ) + ((not (-> (the-as citizen-rebel s4-3) done?)) + (set! (-> arg0 data-int32 s3-2) 0) + (+! (-> arg0 sub-state) -1) + ) ) ) ) ) ) ) - (none) ) + (none) ) ) @@ -1640,8 +1638,8 @@ (while (zero? (-> self sub-state)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -1665,9 +1663,9 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (talker-spawn-func (-> *talker-speech* 97) *entity-pool* (target-pos 0) (the-as region #f)) - (let ((gp-1 (-> self clock frame-counter))) + (let ((gp-1 (current-time))) (until #f (let ((v1-4 0)) (dotimes (a0-2 4) @@ -1677,7 +1675,7 @@ ) ) ) - (if (or (>= v1-4 4) (>= (- (-> self clock frame-counter) gp-1) (seconds 10))) + (if (or (>= v1-4 4) (>= (- (current-time) gp-1) (seconds 10))) (goto cfg-23) ) ) @@ -1824,8 +1822,8 @@ (while (zero? (-> self sub-state)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -1849,7 +1847,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (let ((v1-2 0)) (dotimes (a0-0 4) diff --git a/test/decompiler/reference/jak2/decompiler-macros.gc b/test/decompiler/reference/jak2/decompiler-macros.gc index 04416687eb..15fcbff348 100644 --- a/test/decompiler/reference/jak2/decompiler-macros.gc +++ b/test/decompiler/reference/jak2/decompiler-macros.gc @@ -1556,7 +1556,9 @@ (defmacro focus-test? (pfoc &rest status) `(logtest? (-> (the process-focusable ,pfoc) focus-status) (focus-status ,@status))) - +(defmacro current-time () + `(-> PP clock frame-counter) + ) (defconstant TASK_MANAGER_INIT_HOOK 0) (defconstant TASK_MANAGER_CLEANUP_HOOK 1) diff --git a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc index e354e13989..b6261a7425 100644 --- a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc @@ -310,77 +310,73 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> pp clock frame-counter)) - ) - (enemy-method-129 self) - (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) - (enemy-method-100 self) - ) - (when *target* - (if *target* - (look-at! - (-> *target* neck) - (the-as vector (-> self root-override2 root-prim prim-core)) - (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - ) - self - ) - ) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (current-time)) ) - (when (nonzero? (-> self neck)) - (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) - (let ((a0-9 (handle->process (-> self focus handle)))) - (if a0-9 - (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) + (enemy-method-129 self) + (if (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (enemy-method-100 self) + ) + (when *target* + (if *target* + (look-at! + (-> *target* neck) + (the-as vector (-> self root-override2 root-prim prim-core)) + (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking ) + self ) ) - ) - (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) - ) - (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) - (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) - (let ((v1-48 0)) - (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) - (set! v1-48 (logior (shl 1 32) v1-48)) - ) - (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) - ) - ) - (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 self) - ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) - (enemy-method-54 self) - ) - (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) - (joint-mod-debug-draw (-> self neck)) - ) - (ja-post) - 0 - (none) ) + (when (nonzero? (-> self neck)) + (when (logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-9 (handle->process (-> self focus handle)))) + (if a0-9 + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-9) 2)) + ) + ) + ) + ) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (current-time) (-> self auto-reset-penetrate-time)) (seconds 0.1)) + ) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) + (let ((v1-48 0)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) + (set! v1-48 (logior (shl 1 32) v1-48)) + ) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48)) + ) + ) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) + ) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) + ) + (if (and *debug-segment* (-> self enemy-info debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) + ) + (ja-post) + 0 + (none) ) ;; definition for method 136 of type enemy (defmethod enemy-method-136 enemy ((obj enemy)) - (with-pp - (when (or (>= (- (-> pp clock frame-counter) (-> obj hit-focus-time)) (seconds 2)) - (and (handle->process (-> obj focus handle)) - (not (logtest? (-> (the-as process-focusable (handle->process (-> obj focus handle))) focus-status) - (focus-status disable dead ignore grabbed) - ) - ) - ) - ) - (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-0) - v0-0 - ) + (when (or (>= (- (current-time) (-> obj hit-focus-time)) (seconds 2)) + (and (handle->process (-> obj focus handle)) + (not (logtest? (-> (the-as process-focusable (handle->process (-> obj focus handle))) focus-status) + (focus-status disable dead ignore grabbed) + ) + ) + ) + ) + (let ((v0-0 (logclear (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-0) + v0-0 ) ) ) @@ -703,28 +699,26 @@ ;; definition for method 105 of type enemy (defmethod enemy-method-105 enemy ((obj enemy) (arg0 process)) - (with-pp - (when (logtest? (process-mask target bot) (-> arg0 mask)) - (set! (-> obj root-override2 penetrated-by) (the-as penetrate -1)) - (enemy-method-49 obj) - ) - (let ((s5-0 (if (type? arg0 process-focusable) - arg0 - ) - ) - ) - (when (enemy-method-53 obj (the-as process-focusable s5-0)) - (let ((v1-10 (handle->process (-> obj focus handle)))) - (when (or (= s5-0 v1-10) (and (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (or (not v1-10) (not (logtest? (-> obj focus flags) (enemy-flag lock-focus)))) - ) - ) - (enemy-method-63 obj (the-as process-focusable s5-0) (the-as enemy-aware #f)) - (set! (-> obj hit-focus-time) (-> pp clock frame-counter)) - (let ((v0-3 (logior (-> obj enemy-flags) (enemy-flag look-at-focus)))) - (set! (-> obj enemy-flags) v0-3) - v0-3 + (when (logtest? (process-mask target bot) (-> arg0 mask)) + (set! (-> obj root-override2 penetrated-by) (the-as penetrate -1)) + (enemy-method-49 obj) + ) + (let ((s5-0 (if (type? arg0 process-focusable) + arg0 + ) ) + ) + (when (enemy-method-53 obj (the-as process-focusable s5-0)) + (let ((v1-10 (handle->process (-> obj focus handle)))) + (when (or (= s5-0 v1-10) (and (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (or (not v1-10) (not (logtest? (-> obj focus flags) (enemy-flag lock-focus)))) + ) + ) + (enemy-method-63 obj (the-as process-focusable s5-0) (the-as enemy-aware #f)) + (set! (-> obj hit-focus-time) (current-time)) + (let ((v0-3 (logior (-> obj enemy-flags) (enemy-flag look-at-focus)))) + (set! (-> obj enemy-flags) v0-3) + v0-3 ) ) ) @@ -735,7 +729,7 @@ ;; definition for method 49 of type enemy (defmethod enemy-method-49 enemy ((obj enemy)) (logior! (-> obj enemy-flags) (enemy-flag attackable-backup)) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> obj auto-reset-penetrate-time) v0-0) v0-0 ) @@ -800,13 +794,13 @@ ) ) (set! (-> obj incoming knocked-type) (the-as knocked-type v1-3)) - (let ((a0-4 (-> self clock frame-counter))) + (let ((a0-4 (current-time))) (cond ((!= v1-3 6) (set! (-> obj incoming blue-juggle-count) (the-as uint 0)) 0 ) - ((>= (- (-> self clock frame-counter) (-> obj incoming attack-time)) (seconds 1)) + ((>= (- (current-time) (-> obj incoming attack-time)) (seconds 1)) (set! (-> obj incoming blue-juggle-count) (the-as uint 1)) ) (else @@ -1676,10 +1670,10 @@ This commonly includes things such as: (v1-1 (when (not (logtest? (-> obj enemy-flags) (enemy-flag spawn-gem))) (logior! (-> obj enemy-flags) (enemy-flag spawn-gem)) - (set! (-> obj notice-time) (-> self clock frame-counter)) + (set! (-> obj notice-time) (current-time)) ) (if (and (not (logtest? (-> obj enemy-flags) (enemy-flag chase-startup))) - (< (- (-> self clock frame-counter) (-> obj notice-time)) (-> obj reaction-time)) + (< (- (current-time) (-> obj notice-time)) (-> obj reaction-time)) ) (set! v1-1 #f) ) @@ -1692,7 +1686,7 @@ This commonly includes things such as: (v1-1 arg0 ) - ((or (zero? arg0) (>= (- (-> self clock frame-counter) (-> obj last-draw-time)) (seconds 2))) + ((or (zero? arg0) (>= (- (current-time) (-> obj last-draw-time)) (seconds 2))) 0 ) (else @@ -1732,350 +1726,348 @@ This commonly includes things such as: "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" (local-vars (s5-5 rgbaf) (sv-432 process) (sv-448 event-message-block)) - (with-pp - (the-as - object - (cond - ((= arg2 'track) - (and (nonzero? (-> obj hit-points)) - (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - (logtest? (enemy-flag check-water-backup) (-> obj enemy-flags)) - ) - ) - ((= arg2 'combo) - (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) - ) - ((= arg2 'touch) - (enemy-method-75 obj arg0 arg3) - ) - ((= arg2 'touched) - (when (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) - (let* ((s3-1 arg0) - (v1-20 (if (type? s3-1 process-drawable) - (the-as process-drawable s3-1) - ) - ) - ) - (when v1-20 - (let* ((s3-2 (-> v1-20 root)) - (a1-4 (if (type? s3-2 collide-shape) - s3-2 - ) - ) - (s3-3 (-> arg3 param 0)) - ) - (if (and a1-4 - s3-3 - ((method-of-type touching-shapes-entry prims-touching-action?) - (the-as touching-shapes-entry s3-3) - (the-as collide-shape a1-4) - (collide-action solid) - (collide-action) - ) - ((method-of-type touching-shapes-entry prims-touching-action?) - (the-as touching-shapes-entry s3-3) - (-> obj root-override2) - (collide-action solid) - (collide-action) + (the-as + object + (cond + ((= arg2 'track) + (and (nonzero? (-> obj hit-points)) + (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + (logtest? (enemy-flag check-water-backup) (-> obj enemy-flags)) + ) + ) + ((= arg2 'combo) + (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) + ) + ((= arg2 'touch) + (enemy-method-75 obj arg0 arg3) + ) + ((= arg2 'touched) + (when (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)) + (let* ((s3-1 arg0) + (v1-20 (if (type? s3-1 process-drawable) + (the-as process-drawable s3-1) ) + ) + ) + (when v1-20 + (let* ((s3-2 (-> v1-20 root)) + (a1-4 (if (type? s3-2 collide-shape) + s3-2 + ) ) - (set! (-> obj auto-reset-penetrate-time) (-> pp clock frame-counter)) - ) - ) + (s3-3 (-> arg3 param 0)) + ) + (if (and a1-4 + s3-3 + ((method-of-type touching-shapes-entry prims-touching-action?) + (the-as touching-shapes-entry s3-3) + (the-as collide-shape a1-4) + (collide-action solid) + (collide-action) + ) + ((method-of-type touching-shapes-entry prims-touching-action?) + (the-as touching-shapes-entry s3-3) + (-> obj root-override2) + (collide-action solid) + (collide-action) + ) + ) + (set! (-> obj auto-reset-penetrate-time) (current-time)) + ) ) ) ) - (enemy-method-76 obj arg0 arg3) ) - ((= arg2 'attack-invinc) - (case (-> (the-as attack-info (-> arg3 param 1)) mode) - (('endlessfall) - (let ((v1-31 (-> obj root-override2 root-prim))) - (set! (-> v1-31 prim-core collide-as) (collide-spec)) - (set! (-> v1-31 prim-core collide-with) (collide-spec)) + (enemy-method-76 obj arg0 arg3) + ) + ((= arg2 'attack-invinc) + (case (-> (the-as attack-info (-> arg3 param 1)) mode) + (('endlessfall) + (let ((v1-31 (-> obj root-override2 root-prim))) + (set! (-> v1-31 prim-core collide-as) (collide-spec)) + (set! (-> v1-31 prim-core collide-with) (collide-spec)) + ) + 0 + (kill-prefer-falling obj) + ) + ) + ) + ((= arg2 'attack) + (let ((s2-0 (the-as object (-> arg3 param 1)))) + (when (!= (-> (the-as attack-info s2-0) id) (-> obj incoming attack-id)) + (cond + ((and (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (let* ((s1-0 obj) + (s0-0 (method-of-object s1-0 enemy-method-106)) + ) + (set! sv-432 arg0) + (set! sv-448 arg3) + (let ((a3-3 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg3))) + (s0-0 s1-0 sv-432 sv-448 (the-as int a3-3) (the-as attack-info s2-0)) + ) + ) + (send-event (ppointer->process (-> obj parent)) 'child-hit) + 0 + (if (not *debug-unkillable*) + (enemy-method-48 obj arg0 arg3) + ) + (let ((s2-1 (the-as attack-info (enemy-method-58 obj arg0 arg3)))) + (when s2-1 + (logclear! (-> obj enemy-flags) (enemy-flag called-dying)) + (enemy-method-108 obj (the-as enemy arg0) arg3) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) (process->ppointer arg0)) + (set! (-> a1-13 num-params) arg1) + (set! (-> a1-13 message) (the-as symbol s2-1)) + (set! (-> a1-13 param 0) (-> arg3 param 0)) + (set! (-> a1-13 param 1) (-> arg3 param 1)) + (set! (-> a1-13 param 2) (-> arg3 param 2)) + (set! (-> a1-13 param 3) (-> arg3 param 3)) + (set! (-> a1-13 param 4) (-> arg3 param 4)) + (set! (-> a1-13 param 5) (-> arg3 param 5)) + (send-event-function obj a1-13) + ) + ) + ) ) + (else + (set! (-> obj incoming attack-id) (-> (the-as attack-info s2-0) id)) + (enemy-method-75 obj arg0 arg3) + ) + ) + ) + ) + ) + ((= arg2 'hit-flinch) + (when (zero? (-> obj hit-points)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (kill-prefer-falling obj) + ) + #t + ) + ((= arg2 'hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (when (zero? (-> obj hit-points)) + (case (-> obj incoming knocked-type) + (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) 0 - (kill-prefer-falling obj) ) ) ) - ((= arg2 'attack) - (let ((s2-0 (the-as object (-> arg3 param 1)))) - (when (!= (-> (the-as attack-info s2-0) id) (-> obj incoming attack-id)) - (cond - ((and (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (let* ((s1-0 obj) - (s0-0 (method-of-object s1-0 enemy-method-106)) - ) - (set! sv-432 arg0) - (set! sv-448 arg3) - (let ((a3-3 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg3))) - (s0-0 s1-0 sv-432 sv-448 (the-as int a3-3) (the-as attack-info s2-0)) - ) - ) - (send-event (ppointer->process (-> obj parent)) 'child-hit) - 0 - (if (not *debug-unkillable*) - (enemy-method-48 obj arg0 arg3) - ) - (let ((s2-1 (the-as attack-info (enemy-method-58 obj arg0 arg3)))) - (when s2-1 - (logclear! (-> obj enemy-flags) (enemy-flag called-dying)) - (enemy-method-108 obj (the-as enemy arg0) arg3) - (let ((a1-13 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-13 from) (process->ppointer arg0)) - (set! (-> a1-13 num-params) arg1) - (set! (-> a1-13 message) (the-as symbol s2-1)) - (set! (-> a1-13 param 0) (-> arg3 param 0)) - (set! (-> a1-13 param 1) (-> arg3 param 1)) - (set! (-> a1-13 param 2) (-> arg3 param 2)) - (set! (-> a1-13 param 3) (-> arg3 param 3)) - (set! (-> a1-13 param 4) (-> arg3 param 4)) - (set! (-> a1-13 param 5) (-> arg3 param 5)) - (send-event-function obj a1-13) - ) - ) - ) - ) - (else - (set! (-> obj incoming attack-id) (-> (the-as attack-info s2-0) id)) - (enemy-method-75 obj arg0 arg3) - ) - ) - ) + (go (method-of-object obj knocked)) + ) + ((= arg2 'hit) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) ) - ) - ((= arg2 'hit-flinch) - (when (zero? (-> obj hit-points)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (if (zero? (-> obj hit-points)) (kill-prefer-falling obj) + (go (method-of-object obj hit)) ) - #t - ) - ((= arg2 'hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (when (zero? (-> obj hit-points)) - (case (-> obj incoming knocked-type) - (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - 0 - ) - ) - ) - (go (method-of-object obj knocked)) - ) - ((= arg2 'hit) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (if (zero? (-> obj hit-points)) - (kill-prefer-falling obj) - (go (method-of-object obj hit)) - ) - ) - ((= arg2 'cue-chase) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (let ((v1-162 (logtest? (enemy-flag alert) (-> obj enemy-flags)))) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice alert victory called-dying)) - (set! (-> obj enemy-flags) (logior (enemy-flag dangerous-backup) (-> obj enemy-flags))) - (logclear! (-> obj mask) (process-mask actor-pause)) - (cond - (v1-162 - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (go-hostile obj) - ) - ) - ((and (-> obj next-state) (let ((v1-173 (-> obj next-state name))) - (or (= v1-173 'dormant) (= v1-173 'dormant-aware)) - ) - ) - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (go (method-of-object obj notice)) - ) - ) - ) - ) - #t - ) - ) - ((= arg2 'cue-wake) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (logclear! (-> obj enemy-flags) (enemy-flag alert victory called-dying)) - (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) - (go-ambush obj) - (react-to-focus obj) - ) - #t - ) - ) - ((= arg2 'jump) - (when (and (> (-> obj hit-points) 0) - (zero? (-> obj fated-time)) - (not (logtest? (-> obj focus-status) (focus-status grabbed))) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj jump-why) (-> arg3 param 0)) - (set! (-> obj event-param-point quad) (-> (the-as vector (-> arg3 param 1)) quad)) - (go (method-of-object obj jump)) - ) - ) - ((= arg2 'death-start) - (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag recover) (-> obj enemy-flags)))) - (send-event (ppointer->process (-> obj parent)) 'child-die) - (drop-pickup (-> obj fact-info-override) #t *entity-pool* (-> obj fact-info-override) 0) - (let ((s5-1 (-> obj on-death))) - (if s5-1 - (script-eval (the-as pair s5-1) :vector (-> obj root-override2 trans)) - ) - ) - ) - ((= arg2 'death-end) - (if (-> obj skel effect) - (logior! (-> obj skel effect flags) (effect-control-flag ecf2)) - ) - (logior! (-> obj draw status) (draw-control-status no-draw)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (set! (-> obj enemy-flags) (logclear (-> obj enemy-flags) (enemy-flag check-water))) - ) - ((= arg2 'instant-death) - (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time))) - (set! (-> obj hit-points) 0) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - (let ((s5-2 (enemy-method-50 obj (new 'stack-no-clear 'vector)))) - (vector-z-quaternion! s5-2 (-> obj root-override2 quat)) - (vector-float*! s5-2 s5-2 -1.0) - (vector-normalize! s5-2 1.0) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (kill-prefer-falling obj) - ) - ) - ((= arg2 'die-fast) - (logior! (-> obj draw status) (draw-control-status no-draw)) - (dispose! obj) - (send-event (ppointer->process (-> obj parent)) 'child-die) - (let ((s5-3 (-> obj on-death))) - (if s5-3 - (script-eval (the-as pair s5-3) :vector (-> obj root-override2 trans)) - ) - ) - (cleanup-for-death obj) - (go (method-of-object obj die-fast)) - ) - ((= arg2 'victory) - (if (and (-> obj enemy-info use-victory) - (not (and (-> obj next-state) (= (-> obj next-state name) 'victory))) - (> (-> obj hit-points) 0) + ) + ((= arg2 'cue-chase) + (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time)) (not (logtest? (-> obj focus-status) (focus-status grabbed))) ) - (go (method-of-object obj victory)) - ) - ) - ((= arg2 'nav-control) - (if (nonzero? (-> obj nav)) - (-> obj nav) - ) - ) - ((= arg2 'push-trans) - (move-by-vector! (-> obj root-override2) (the-as vector (-> arg3 param 0))) - ) - ((= arg2 'move-trans) - (move-to-point! (-> obj root-override2) (the-as vector (-> arg3 param 0))) - ) - ((= arg2 'shadow) - (cond - ((-> arg3 param 0) - (let ((v1-320 (-> obj draw shadow-ctrl))) - (logclear! (-> v1-320 settings flags) (shadow-flags disable-draw)) - ) - 0 - ) - (else - (let ((v1-323 (-> obj draw shadow-ctrl))) - (logior! (-> v1-323 settings flags) (shadow-flags disable-draw)) + (let ((v1-162 (logtest? (enemy-flag alert) (-> obj enemy-flags)))) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice alert victory called-dying)) + (set! (-> obj enemy-flags) (logior (enemy-flag dangerous-backup) (-> obj enemy-flags))) + (logclear! (-> obj mask) (process-mask actor-pause)) + (cond + (v1-162 + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (go-hostile obj) + ) ) - 0 + ((and (-> obj next-state) (let ((v1-173 (-> obj next-state name))) + (or (= v1-173 'dormant) (= v1-173 'dormant-aware)) + ) + ) + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (go (method-of-object obj notice)) + ) + ) ) ) + #t ) - ((= arg2 'color-effect) - (case (-> arg3 param 0) - (('dark) - (let ((f30-0 (rand-vu-float-range 0.2 1.0))) - (set-vector! (-> obj draw color-mult) (lerp 1.0 1.0 f30-0) (lerp 1.0 0.0 f30-0) (lerp 1.0 1.0 f30-0) 1.0) - (set! s5-5 (-> obj draw color-emissive)) - (set! (-> s5-5 x) (lerp 0.0 0.3 f30-0)) - (set! (-> s5-5 y) (lerp 0.0 0.0 f30-0)) - (set! (-> s5-5 z) (lerp 0.0 0.3 f30-0)) - ) - (set! (-> s5-5 w) 1.0) - s5-5 - ) - ((#f) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set! s5-5 (-> obj draw color-emissive)) - (set! (-> s5-5 quad) (the-as uint128 0)) - s5-5 + ) + ((= arg2 'cue-wake) + (when (and (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (logclear! (-> obj enemy-flags) (enemy-flag alert victory called-dying)) + (if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)) + (go-ambush obj) + (react-to-focus obj) + ) + #t + ) + ) + ((= arg2 'jump) + (when (and (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj jump-why) (-> arg3 param 0)) + (set! (-> obj event-param-point quad) (-> (the-as vector (-> arg3 param 1)) quad)) + (go (method-of-object obj jump)) + ) + ) + ((= arg2 'death-start) + (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag recover) (-> obj enemy-flags)))) + (send-event (ppointer->process (-> obj parent)) 'child-die) + (drop-pickup (-> obj fact-info-override) #t *entity-pool* (-> obj fact-info-override) 0) + (let ((s5-1 (-> obj on-death))) + (if s5-1 + (script-eval (the-as pair s5-1) :vector (-> obj root-override2 trans)) + ) + ) + ) + ((= arg2 'death-end) + (if (-> obj skel effect) + (logior! (-> obj skel effect flags) (effect-control-flag ecf2)) + ) + (logior! (-> obj draw status) (draw-control-status no-draw)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (set! (-> obj enemy-flags) (logclear (-> obj enemy-flags) (enemy-flag check-water))) + ) + ((= arg2 'instant-death) + (when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time))) + (set! (-> obj hit-points) 0) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (let ((s5-2 (enemy-method-50 obj (new 'stack-no-clear 'vector)))) + (vector-z-quaternion! s5-2 (-> obj root-override2 quat)) + (vector-float*! s5-2 s5-2 -1.0) + (vector-normalize! s5-2 1.0) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (kill-prefer-falling obj) + ) + ) + ((= arg2 'die-fast) + (logior! (-> obj draw status) (draw-control-status no-draw)) + (dispose! obj) + (send-event (ppointer->process (-> obj parent)) 'child-die) + (let ((s5-3 (-> obj on-death))) + (if s5-3 + (script-eval (the-as pair s5-3) :vector (-> obj root-override2 trans)) + ) + ) + (cleanup-for-death obj) + (go (method-of-object obj die-fast)) + ) + ((= arg2 'victory) + (if (and (-> obj enemy-info use-victory) + (not (and (-> obj next-state) (= (-> obj next-state name) 'victory))) + (> (-> obj hit-points) 0) + (zero? (-> obj fated-time)) + (not (logtest? (-> obj focus-status) (focus-status grabbed))) + ) + (go (method-of-object obj victory)) + ) + ) + ((= arg2 'nav-control) + (if (nonzero? (-> obj nav)) + (-> obj nav) + ) + ) + ((= arg2 'push-trans) + (move-by-vector! (-> obj root-override2) (the-as vector (-> arg3 param 0))) + ) + ((= arg2 'move-trans) + (move-to-point! (-> obj root-override2) (the-as vector (-> arg3 param 0))) + ) + ((= arg2 'shadow) + (cond + ((-> arg3 param 0) + (let ((v1-320 (-> obj draw shadow-ctrl))) + (logclear! (-> v1-320 settings flags) (shadow-flags disable-draw)) ) + 0 + ) + (else + (let ((v1-323 (-> obj draw shadow-ctrl))) + (logior! (-> v1-323 settings flags) (shadow-flags disable-draw)) + ) + 0 ) ) - ) + ) + ((= arg2 'color-effect) + (case (-> arg3 param 0) + (('dark) + (let ((f30-0 (rand-vu-float-range 0.2 1.0))) + (set-vector! (-> obj draw color-mult) (lerp 1.0 1.0 f30-0) (lerp 1.0 0.0 f30-0) (lerp 1.0 1.0 f30-0) 1.0) + (set! s5-5 (-> obj draw color-emissive)) + (set! (-> s5-5 x) (lerp 0.0 0.3 f30-0)) + (set! (-> s5-5 y) (lerp 0.0 0.0 f30-0)) + (set! (-> s5-5 z) (lerp 0.0 0.3 f30-0)) + ) + (set! (-> s5-5 w) 1.0) + s5-5 + ) + ((#f) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set! s5-5 (-> obj draw color-emissive)) + (set! (-> s5-5 quad) (the-as uint128 0)) + s5-5 + ) + ) + ) ) ) ) @@ -2110,30 +2102,28 @@ This commonly includes things such as: ;; definition for method 48 of type enemy (defmethod enemy-method-48 enemy ((obj enemy) (arg0 process) (arg1 event-message-block)) - (with-pp - (let* ((v1-1 (damage-amount-from-attack obj arg0 arg1)) - (s5-0 (-> obj hit-points)) - (s4-1 (max 0 (- s5-0 v1-1))) - ) - (when (and (zero? s4-1) (nonzero? s5-0) (= (-> obj incoming knocked-type) (knocked-type knocked-type-6))) - (cond - ((zero? (-> obj fated-time)) - (set! (-> obj fated-time) (-> pp clock frame-counter)) - (set! s4-1 1) - ) - (else - (if (< (- (-> pp clock frame-counter) (-> obj fated-time)) (seconds 1)) - (set! s4-1 1) - ) - ) + (let* ((v1-1 (damage-amount-from-attack obj arg0 arg1)) + (s5-0 (-> obj hit-points)) + (s4-1 (max 0 (- s5-0 v1-1))) + ) + (when (and (zero? s4-1) (nonzero? s5-0) (= (-> obj incoming knocked-type) (knocked-type knocked-type-6))) + (cond + ((zero? (-> obj fated-time)) + (set! (-> obj fated-time) (current-time)) + (set! s4-1 1) + ) + (else + (if (< (- (current-time) (-> obj fated-time)) (seconds 1)) + (set! s4-1 1) + ) ) ) - (set! (-> obj hit-points) s4-1) - (if (not (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup))) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - ) - (- s5-0 s4-1) ) + (set! (-> obj hit-points) s4-1) + (if (not (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup))) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + ) + (- s5-0 s4-1) ) ) @@ -2318,7 +2308,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (stop-looking-at-target! self) (logclear! (-> self enemy-flags) (enemy-flag spawn-gem chase-startup use-notice-distance)) (logior! (-> self enemy-flags) (enemy-flag enable-on-notice)) @@ -2341,7 +2331,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (go-virtual active) @@ -2356,7 +2346,7 @@ This commonly includes things such as: :post (behavior () (idle-control-method-10 (-> self idle-anim-player) self) (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -2405,7 +2395,7 @@ This commonly includes things such as: :enter (-> (method-of-type enemy dormant) enter) :exit (-> (method-of-type enemy dormant) exit) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (if (logtest? (enemy-option ambush) (-> self fact-info-override enemy-options)) @@ -2418,7 +2408,7 @@ This commonly includes things such as: :code (the-as (function none :behavior enemy) sleep-code) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (none) @@ -2444,7 +2434,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self enemy-flags) (enemy-flag use-notice-distance)) (when (logtest? (-> self enemy-flags) (enemy-flag jump-check-blocked)) (logclear! (-> self enemy-flags) (enemy-flag jump-check-blocked)) @@ -2463,7 +2453,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-3 (-> self focus aware))) (cond ((< (the-as int v1-3) 1) @@ -2494,7 +2484,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (logior (-> self enemy-flags) (enemy-flag use-notice-distance)))) (set! (-> self enemy-flags) (logclear v1-3 (enemy-flag called-dying))) ) @@ -2560,7 +2550,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) @@ -2580,7 +2570,7 @@ This commonly includes things such as: (go-virtual victory) ) (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (>= 2 (the-as int gp-0)) (not (get-enemy-target self))) (go-stare self) @@ -2614,13 +2604,13 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) @@ -2698,14 +2688,14 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logclear! (-> self enemy-flags) (enemy-flag dangerous-backup)) (logclear! (-> self mask) (process-mask actor-pause)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (!= (-> self focus aware) (enemy-aware unaware)) (go-stare self) ) @@ -2950,7 +2940,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (logior! (-> self focus-status) (focus-status dangerous)) (let* ((v1-6 *game-info*) @@ -2997,7 +2987,7 @@ This commonly includes things such as: (let ((s5-1 2)) (logior! (-> self focus-status) (focus-status in-air)) (until (enemy-method-86 self) - (+! (-> gp-0 hang-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> gp-0 hang-time) (- (current-time) (-> self clock old-frame-counter))) (enemy-method-90 self s5-1 gp-0) (enemy-method-91 self s5-1 gp-0) (enemy-method-92 self s5-1 (the-as nav-poly gp-0)) @@ -3050,12 +3040,12 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (if (logtest? (enemy-flag alert) (-> self enemy-flags)) (go-virtual jump) (enemy-method-93 self) @@ -3486,7 +3476,7 @@ This commonly includes things such as: :virtual #t :event enemy-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (stop-looking-at-target! self) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) (logclear! (-> self mask) (process-mask actor-pause)) @@ -3599,7 +3589,7 @@ This commonly includes things such as: (set! (-> gp-0 on-surface-count) 0) (set! (-> gp-0 move-count) 0) (until (enemy-method-80 self gp-0) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (kill-prefer-falling self) ) (if (logtest? (-> self root-override2 status) (collide-status on-surface)) @@ -3612,7 +3602,7 @@ This commonly includes things such as: ) ) (let ((s5-1 2)) - (set! (-> gp-0 land-can-land-time) (-> self clock frame-counter)) + (set! (-> gp-0 land-can-land-time) (current-time)) (until #f (if (logtest? (-> self root-override2 status) (collide-status on-surface)) (+! (-> gp-0 on-surface-count) 1) @@ -3624,14 +3614,14 @@ This commonly includes things such as: (+! (-> gp-0 move-count) 1) (set! s5-1 3) (if (enemy-method-80 self gp-0) - (set! (-> gp-0 land-can-land-time) (-> self clock frame-counter)) + (set! (-> gp-0 land-can-land-time) (current-time)) ) ) ) #f (label cfg-15) (if (and (not (logtest? (enemy-flag recover) (-> self enemy-flags))) - (or (>= (- (-> self clock frame-counter) (-> gp-0 land-can-land-time)) (seconds 0.1)) + (or (>= (- (current-time) (-> gp-0 land-can-land-time)) (seconds 0.1)) (enemy-method-81 self) (enemy-method-102 self) ) @@ -3730,7 +3720,7 @@ This commonly includes things such as: (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hit-points) 0) (enemy-method-103 self) (none) diff --git a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc index f207ecb468..bd4c44b342 100644 --- a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc +++ b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc @@ -254,7 +254,7 @@ (set! (-> self region) arg2) (set! (-> self total-time) 0) (set! (-> self total-off-time) 0) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self voicebox) (the-as handle #f)) (set! (-> self save?) #f) (if (logtest? (-> self message flags) 96) @@ -359,8 +359,8 @@ (defstate idle (talker) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the-as time-frame (-> self message delay))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the-as time-frame (-> self message delay))) (suspend) ) ) @@ -371,7 +371,7 @@ ) ) ) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (+ (-> self message delay) 300))) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (+ (-> self message delay) 300))) (if (and (or (zero? (-> self voice-id)) (= (get-status *gui-control* (-> self voice-id)) (gui-status ready))) (or (zero? (-> self message-id)) (= (get-status *gui-control* (-> self message-id)) (gui-status active))) ) @@ -388,7 +388,7 @@ (defstate active (talker) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (logtest? (-> self message flags) 1) (play-communicator-speech! (-> self message)) ) @@ -488,16 +488,16 @@ ) (set! v1-43 #t) (label cfg-39) - (and v1-43 (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 120))) + (and v1-43 (< (- (current-time) (-> self state-time)) (seconds 120))) ) ) (and (nonzero? (-> self message-id)) (= (get-status *gui-control* (-> self message-id)) (gui-status active)) - (or (< (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self message text-duration))) + (or (< (- (current-time) (-> self state-time)) (the-as time-frame (-> self message text-duration))) (and (logtest? (-> self message flags) 16) (-> self region) (region-method-9 (-> self region) (target-pos 0))) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (< (- (current-time) (-> self state-time)) (seconds 0.05)) ) (when (and (nonzero? (-> self voice-id)) (not gp-1) (zero? (get-status *gui-control* (-> self voice-id)))) (remove-setting! 'music-volume) @@ -529,8 +529,8 @@ ) ) (when (and (logtest? (-> self message flags) 8) (not (-> self save?))) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/engine/anim/fma-sphere_REF.gc b/test/decompiler/reference/jak2/engine/anim/fma-sphere_REF.gc index 3257efa6d1..977f58ae20 100644 --- a/test/decompiler/reference/jak2/engine/anim/fma-sphere_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/fma-sphere_REF.gc @@ -83,7 +83,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self first-time?) #f) (if (logtest? (-> self mode) (fma-sphere-mode kill-once)) (send-event *traffic-manager* 'kill-traffic-sphere (-> self sphere)) @@ -98,7 +98,7 @@ ) (init-vf0-vector) (let ((v1-0 (-> self duration))) - (if (and (nonzero? v1-0) (>= (- (-> self clock frame-counter) (-> self state-time)) v1-0)) + (if (and (nonzero? v1-0) (>= (- (current-time) (-> self state-time)) v1-0)) (go empty-state) ) ) diff --git a/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc index 8dcb3a50eb..5e48cd428d 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc @@ -679,11 +679,11 @@ ;; failed to figure out what this is: (defstate joint-exploder-shatter (joint-exploder) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (let* ((f0-1 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let* ((f0-1 (the float (- (current-time) (-> self state-time)))) (f1-1 (- 1.0 (/ f0-1 (the float (-> self tuning duration))))) (f0-3 (- 1.0 (/ f0-1 (* 0.75 (the float (-> self tuning duration)))))) ) @@ -731,8 +731,8 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self tuning duration)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (-> self tuning duration)) (suspend) (ja :num! (loop!)) ) diff --git a/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc index 5dbbdeb6d6..aa13874e11 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc @@ -776,7 +776,7 @@ ) (when s2-1 (when (< (vector-vector-distance (-> obj process root trans) (-> s1-0 root trans)) (-> s2-1 cam-notice-dist)) - (set! (-> obj notice-time) (-> self clock frame-counter)) + (set! (-> obj notice-time) (current-time)) (set! (-> last-try-to-look-at-data who) (process->handle arg2)) (if (< (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) (set! (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) diff --git a/test/decompiler/reference/jak2/engine/anim/joint_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint_REF.gc index 8ad36b3d3b..d055b4bf1b 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint_REF.gc @@ -650,7 +650,7 @@ ;; definition for function joint-control-channel-eval (defbehavior joint-control-channel-eval process ((arg0 joint-control-channel)) (let ((f0-3 ((-> arg0 num-func) arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)))) - (set! (-> arg0 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> arg0 eval-time) (the-as uint (current-time))) f0-3 ) ) @@ -659,7 +659,7 @@ (defbehavior joint-control-channel-eval! process ((arg0 joint-control-channel) (arg1 (function joint-control-channel float float float float))) (set! (-> arg0 num-func) arg1) (let ((f0-3 (arg1 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)))) - (set! (-> arg0 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> arg0 eval-time) (the-as uint (current-time))) f0-3 ) ) @@ -669,21 +669,19 @@ (arg1 art-joint-anim) (arg2 (function joint-control-channel float float float float)) ) - (with-pp - (set! (-> arg0 num-func) arg2) - (cond - ((= (-> arg0 command) (joint-control-command stack)) - ) - (else - (if arg1 - (set! (-> arg0 frame-group) arg1) - ) - (arg2 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)) - (set! (-> arg0 eval-time) (the-as uint (-> pp clock frame-counter))) - ) + (set! (-> arg0 num-func) arg2) + (cond + ((= (-> arg0 command) (joint-control-command stack)) + ) + (else + (if arg1 + (set! (-> arg0 frame-group) arg1) + ) + (arg2 arg0 (-> arg0 param 0) (-> arg0 param 1) (-> arg0 param 2)) + (set! (-> arg0 eval-time) (the-as uint (current-time))) ) - 0 ) + 0 ) ;; definition for function joint-control-channel-group! @@ -810,24 +808,7 @@ ;; definition for function flatten-joint-control-to-spr ;; INFO: Used lq/sq -;; WARN: Failed load: (set! vf2 (l.vf (the-as int a2-1))) at op 46 -;; WARN: Failed load: (set! vf3 (l.vf (+ (the-as int a2-1) 16))) at op 48 -;; WARN: Failed load: (set! vf4 (l.vf (+ (the-as int a2-1) 32))) at op 49 -;; WARN: Failed load: (set! vf5 (l.vf (+ (the-as int a2-1) 48))) at op 50 -;; WARN: Failed load: (set! vf6 (l.vf (+ (the-as int a2-1) 64))) at op 51 -;; WARN: Failed load: (set! vf7 (l.vf (+ (the-as int a2-1) 80))) at op 52 -;; WARN: Failed load: (set! vf3 (l.vf (the-as int a2-2))) at op 82 -;; WARN: Failed load: (set! vf4 (l.vf (+ (the-as int a2-2) 16))) at op 83 -;; WARN: Failed load: (set! vf5 (l.vf (+ (the-as int a2-2) 32))) at op 84 -;; WARN: Failed load: (set! vf6 (l.vf (+ (the-as int a2-2) 48))) at op 85 -;; WARN: Failed load: (set! vf7 (l.vf (+ (the-as int a2-2) 64))) at op 86 -;; WARN: Failed load: (set! vf8 (l.vf (+ (the-as int a2-2) 80))) at op 87 -;; WARN: Failed load: (set! vf9 (l.vf (+ (the-as int a2-2) 96))) at op 94 -;; WARN: Failed load: (set! vf10 (l.vf (+ (the-as int a2-2) 112))) at op 95 -;; WARN: Failed load: (set! vf11 (l.vf (+ (the-as int a2-2) 128))) at op 96 -;; WARN: Failed load: (set! vf12 (l.vf (+ (the-as int a2-2) 144))) at op 97 -;; WARN: Failed load: (set! vf13 (l.vf (+ (the-as int a2-2) 160))) at op 98 -;; WARN: Failed load: (set! vf14 (l.vf (+ (the-as int a2-2) 176))) at op 99 +;; ERROR: Failed load: (set! vf2 (l.vf (the-as int a2-1))) at op 46 (defun flatten-joint-control-to-spr ((arg0 joint-control)) (rlet ((vf1 :class vf) (vf10 :class vf) @@ -1691,54 +1672,54 @@ ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function make-joint-jump-tables -;; WARN: Failed store: (s.w! (+ a0-2 1616) v1-1) at op 5 -;; WARN: Failed store: (s.w! (+ a0-5 1620) v1-3) at op 11 -;; WARN: Failed store: (s.w! (+ a0-8 1624) v1-5) at op 17 -;; WARN: Failed store: (s.w! (+ a0-11 1628) v1-7) at op 23 -;; WARN: Failed store: (s.w! (+ a0-14 1632) v1-9) at op 29 -;; WARN: Failed store: (s.w! (+ a0-17 1636) v1-11) at op 35 -;; WARN: Failed store: (s.w! (+ a0-20 1640) v1-13) at op 41 -;; WARN: Failed store: (s.w! (+ a0-23 1644) v1-15) at op 47 -;; WARN: Failed store: (s.w! (+ a0-26 1648) v1-17) at op 53 -;; WARN: Failed store: (s.w! (+ a0-29 1652) v1-19) at op 59 -;; WARN: Failed store: (s.w! (+ a0-32 1656) v1-21) at op 65 -;; WARN: Failed store: (s.w! (+ a0-35 1660) v1-23) at op 71 -;; WARN: Failed store: (s.w! (+ a0-38 1664) v1-25) at op 77 -;; WARN: Failed store: (s.w! (+ a0-41 1668) v1-27) at op 83 -;; WARN: Failed store: (s.w! (+ a0-44 1672) v1-29) at op 89 -;; WARN: Failed store: (s.w! (+ a0-47 1676) v1-31) at op 95 -;; WARN: Failed store: (s.w! (+ a0-50 1680) v1-33) at op 101 -;; WARN: Failed store: (s.w! (+ a0-53 1684) v1-35) at op 107 -;; WARN: Failed store: (s.w! (+ a0-56 1688) v1-37) at op 113 -;; WARN: Failed store: (s.w! (+ a0-59 1692) v1-39) at op 119 -;; WARN: Failed store: (s.w! (+ a0-62 1696) v1-41) at op 125 -;; WARN: Failed store: (s.w! (+ a0-65 1700) v1-43) at op 131 -;; WARN: Failed store: (s.w! (+ a0-68 1704) v1-45) at op 137 -;; WARN: Failed store: (s.w! (+ a0-71 1708) v1-47) at op 143 -;; WARN: Failed store: (s.w! (+ a0-74 1712) v1-49) at op 149 -;; WARN: Failed store: (s.w! (+ a0-77 1716) v1-51) at op 155 -;; WARN: Failed store: (s.w! (+ a0-80 1720) v1-53) at op 161 -;; WARN: Failed store: (s.w! (+ a0-83 1724) v1-55) at op 167 -;; WARN: Failed store: (s.w! (+ a0-86 1728) v1-57) at op 173 -;; WARN: Failed store: (s.w! (+ a0-89 1732) v1-59) at op 179 -;; WARN: Failed store: (s.w! (+ a0-92 1736) v1-61) at op 185 -;; WARN: Failed store: (s.w! (+ a0-95 1740) v1-63) at op 191 -;; WARN: Failed store: (s.w! (+ a0-98 1744) v1-65) at op 197 -;; WARN: Failed store: (s.w! (+ a0-101 1748) v1-67) at op 203 -;; WARN: Failed store: (s.w! (+ a0-104 1752) v1-69) at op 209 -;; WARN: Failed store: (s.w! (+ a0-107 1756) v1-71) at op 215 -;; WARN: Failed store: (s.w! (+ a0-110 1760) v1-73) at op 221 -;; WARN: Failed store: (s.w! (+ a0-113 1764) v1-75) at op 227 -;; WARN: Failed store: (s.w! (+ a0-116 1768) v1-77) at op 233 -;; WARN: Failed store: (s.w! (+ a0-119 1772) v1-79) at op 239 -;; WARN: Failed store: (s.w! (+ a0-122 1776) v1-81) at op 245 -;; WARN: Failed store: (s.w! (+ a0-125 1780) v1-83) at op 251 -;; WARN: Failed store: (s.w! (+ a0-128 1784) v1-85) at op 257 -;; WARN: Failed store: (s.w! (+ a0-131 1788) v1-87) at op 263 -;; WARN: Failed store: (s.w! (+ a0-134 1792) v1-89) at op 269 -;; WARN: Failed store: (s.w! (+ a0-137 1796) v1-91) at op 275 -;; WARN: Failed store: (s.w! (+ a0-140 1800) v1-93) at op 281 -;; WARN: Failed store: (s.w! (+ a0-143 1804) v1-95) at op 287 +;; ERROR: Failed store: (s.w! (+ a0-2 1616) v1-1) at op 5 +;; ERROR: Failed store: (s.w! (+ a0-5 1620) v1-3) at op 11 +;; ERROR: Failed store: (s.w! (+ a0-8 1624) v1-5) at op 17 +;; ERROR: Failed store: (s.w! (+ a0-11 1628) v1-7) at op 23 +;; ERROR: Failed store: (s.w! (+ a0-14 1632) v1-9) at op 29 +;; ERROR: Failed store: (s.w! (+ a0-17 1636) v1-11) at op 35 +;; ERROR: Failed store: (s.w! (+ a0-20 1640) v1-13) at op 41 +;; ERROR: Failed store: (s.w! (+ a0-23 1644) v1-15) at op 47 +;; ERROR: Failed store: (s.w! (+ a0-26 1648) v1-17) at op 53 +;; ERROR: Failed store: (s.w! (+ a0-29 1652) v1-19) at op 59 +;; ERROR: Failed store: (s.w! (+ a0-32 1656) v1-21) at op 65 +;; ERROR: Failed store: (s.w! (+ a0-35 1660) v1-23) at op 71 +;; ERROR: Failed store: (s.w! (+ a0-38 1664) v1-25) at op 77 +;; ERROR: Failed store: (s.w! (+ a0-41 1668) v1-27) at op 83 +;; ERROR: Failed store: (s.w! (+ a0-44 1672) v1-29) at op 89 +;; ERROR: Failed store: (s.w! (+ a0-47 1676) v1-31) at op 95 +;; ERROR: Failed store: (s.w! (+ a0-50 1680) v1-33) at op 101 +;; ERROR: Failed store: (s.w! (+ a0-53 1684) v1-35) at op 107 +;; ERROR: Failed store: (s.w! (+ a0-56 1688) v1-37) at op 113 +;; ERROR: Failed store: (s.w! (+ a0-59 1692) v1-39) at op 119 +;; ERROR: Failed store: (s.w! (+ a0-62 1696) v1-41) at op 125 +;; ERROR: Failed store: (s.w! (+ a0-65 1700) v1-43) at op 131 +;; ERROR: Failed store: (s.w! (+ a0-68 1704) v1-45) at op 137 +;; ERROR: Failed store: (s.w! (+ a0-71 1708) v1-47) at op 143 +;; ERROR: Failed store: (s.w! (+ a0-74 1712) v1-49) at op 149 +;; ERROR: Failed store: (s.w! (+ a0-77 1716) v1-51) at op 155 +;; ERROR: Failed store: (s.w! (+ a0-80 1720) v1-53) at op 161 +;; ERROR: Failed store: (s.w! (+ a0-83 1724) v1-55) at op 167 +;; ERROR: Failed store: (s.w! (+ a0-86 1728) v1-57) at op 173 +;; ERROR: Failed store: (s.w! (+ a0-89 1732) v1-59) at op 179 +;; ERROR: Failed store: (s.w! (+ a0-92 1736) v1-61) at op 185 +;; ERROR: Failed store: (s.w! (+ a0-95 1740) v1-63) at op 191 +;; ERROR: Failed store: (s.w! (+ a0-98 1744) v1-65) at op 197 +;; ERROR: Failed store: (s.w! (+ a0-101 1748) v1-67) at op 203 +;; ERROR: Failed store: (s.w! (+ a0-104 1752) v1-69) at op 209 +;; ERROR: Failed store: (s.w! (+ a0-107 1756) v1-71) at op 215 +;; ERROR: Failed store: (s.w! (+ a0-110 1760) v1-73) at op 221 +;; ERROR: Failed store: (s.w! (+ a0-113 1764) v1-75) at op 227 +;; ERROR: Failed store: (s.w! (+ a0-116 1768) v1-77) at op 233 +;; ERROR: Failed store: (s.w! (+ a0-119 1772) v1-79) at op 239 +;; ERROR: Failed store: (s.w! (+ a0-122 1776) v1-81) at op 245 +;; ERROR: Failed store: (s.w! (+ a0-125 1780) v1-83) at op 251 +;; ERROR: Failed store: (s.w! (+ a0-128 1784) v1-85) at op 257 +;; ERROR: Failed store: (s.w! (+ a0-131 1788) v1-87) at op 263 +;; ERROR: Failed store: (s.w! (+ a0-134 1792) v1-89) at op 269 +;; ERROR: Failed store: (s.w! (+ a0-137 1796) v1-91) at op 275 +;; ERROR: Failed store: (s.w! (+ a0-140 1800) v1-93) at op 281 +;; ERROR: Failed store: (s.w! (+ a0-143 1804) v1-95) at op 287 (defun make-joint-jump-tables () (let ((v1-1 (+ (the-as uint decompress-fixed-data-to-accumulator) (* 108 4))) (a0-2 #x70000000) diff --git a/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc index bf4c5c60d6..db97ccd260 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-debug_REF.gc @@ -200,7 +200,6 @@ ;; definition for function cam-line-dma ;; INFO: Used lq/sq -;; ERROR: Failed store: (s.w! (+ a0-2 8) 0) at op 78 (defun cam-line-dma () (with-dma-buffer-add-bucket ((v1-5 (-> *display* frames (-> *display* on-screen) debug-buf)) (bucket-id debug-no-zbuf1) @@ -1475,41 +1474,39 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defun cam-collision-record-save ((arg0 vector) (arg1 vector) (arg2 int) (arg3 symbol) (arg4 camera-slave)) - (with-pp - (when *record-cam-collide-history* - (let ((v1-5 (the-as - cam-collision-record - (+ (+ (* 176 *cam-collision-record-last*) 12) (the-as int *cam-collision-record*)) - ) + (when *record-cam-collide-history* + (let ((v1-5 (the-as + cam-collision-record + (+ (+ (* 176 *cam-collision-record-last*) 12) (the-as int *cam-collision-record*)) ) - ) - (set! (-> v1-5 pos quad) (-> arg0 quad)) - (set! (-> v1-5 vel quad) (-> arg1 quad)) - (set! (-> v1-5 view-flat quad) (-> arg4 view-flat quad)) - (set! (-> v1-5 desired-pos quad) (-> arg4 desired-pos quad)) - (set! (-> v1-5 cam-tpos-cur quad) (-> *camera* tpos-curr-adj quad)) - (set! (-> v1-5 cam-tpos-old quad) (-> *camera* tpos-old-adj quad)) - (set! (-> v1-5 string-min-val quad) (-> arg4 string-min-val quad)) - (set! (-> v1-5 string-max-val quad) (-> arg4 string-max-val quad)) - (set! (-> v1-5 view-off quad) (-> arg4 view-off quad)) - (set! (-> v1-5 frame) (the-as int (-> pp clock frame-counter))) - (set! (-> v1-5 iteration) arg2) - (set! (-> v1-5 move-type) arg3) - (set! (-> v1-5 min-z-override) (-> arg4 min-z-override)) - (set! (-> v1-5 string-push-z) (-> *camera* string-push-z)) - (set! (-> v1-5 view-off-param) (-> arg4 view-off-param)) - ) - (set! *cam-collision-record-show* *cam-collision-record-last*) - (set! *cam-collision-record-last* (+ *cam-collision-record-last* 1)) - (set! *cam-collision-record-last* (mod *cam-collision-record-last* 600)) - (when (= *cam-collision-record-last* *cam-collision-record-first*) - (set! *cam-collision-record-first* (+ *cam-collision-record-first* 1)) - (set! *cam-collision-record-first* (mod *cam-collision-record-first* 600)) - ) + ) + ) + (set! (-> v1-5 pos quad) (-> arg0 quad)) + (set! (-> v1-5 vel quad) (-> arg1 quad)) + (set! (-> v1-5 view-flat quad) (-> arg4 view-flat quad)) + (set! (-> v1-5 desired-pos quad) (-> arg4 desired-pos quad)) + (set! (-> v1-5 cam-tpos-cur quad) (-> *camera* tpos-curr-adj quad)) + (set! (-> v1-5 cam-tpos-old quad) (-> *camera* tpos-old-adj quad)) + (set! (-> v1-5 string-min-val quad) (-> arg4 string-min-val quad)) + (set! (-> v1-5 string-max-val quad) (-> arg4 string-max-val quad)) + (set! (-> v1-5 view-off quad) (-> arg4 view-off quad)) + (set! (-> v1-5 frame) (the-as int (current-time))) + (set! (-> v1-5 iteration) arg2) + (set! (-> v1-5 move-type) arg3) + (set! (-> v1-5 min-z-override) (-> arg4 min-z-override)) + (set! (-> v1-5 string-push-z) (-> *camera* string-push-z)) + (set! (-> v1-5 view-off-param) (-> arg4 view-off-param)) + ) + (set! *cam-collision-record-show* *cam-collision-record-last*) + (set! *cam-collision-record-last* (+ *cam-collision-record-last* 1)) + (set! *cam-collision-record-last* (mod *cam-collision-record-last* 600)) + (when (= *cam-collision-record-last* *cam-collision-record-first*) + (set! *cam-collision-record-first* (+ *cam-collision-record-first* 1)) + (set! *cam-collision-record-first* (mod *cam-collision-record-first* 600)) ) - 0 - (none) ) + 0 + (none) ) ;; definition for function cam-collision-record-step diff --git a/test/decompiler/reference/jak2/engine/camera/cam-master_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-master_REF.gc index 63cdb26415..e6acd246fa 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-master_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-master_REF.gc @@ -59,13 +59,11 @@ (set! (-> self string-max target z) (-> self settings string-max-length)) (set! (-> self string-push-z) (fmax (-> self string-min value z) (-> *CAMERA-bank* default-string-push-z))) (cond - ((>= (- (-> self clock frame-counter) (get-notice-time (the-as process-focusable gp-0))) - (-> *CAMERA-bank* attack-timeout) - ) + ((>= (- (current-time) (get-notice-time (the-as process-focusable gp-0))) (-> *CAMERA-bank* attack-timeout)) (set! (-> self being-attacked) #f) ) (else - (set! (-> self attack-start) (-> self clock frame-counter)) + (set! (-> self attack-start) (current-time)) (set! (-> self being-attacked) #t) (when (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) (set! (-> self string-max target y) (fmax (-> self string-max target y) (-> last-try-to-look-at-data vert))) @@ -117,14 +115,12 @@ (gp-0 (logior! (-> self master-options) (cam-master-options-u32 HAVE_TARGET)) (cond - ((>= (- (-> self clock frame-counter) (get-notice-time (the-as target gp-0))) - (-> *CAMERA-bank* attack-timeout) - ) + ((>= (- (current-time) (get-notice-time (the-as target gp-0))) (-> *CAMERA-bank* attack-timeout)) (set! (-> self being-attacked) #f) ) (else (if (not (-> self being-attacked)) - (set! (-> self attack-start) (-> self clock frame-counter)) + (set! (-> self attack-start) (current-time)) ) (set! (-> self being-attacked) #t) (when (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) @@ -936,7 +932,7 @@ ) ) ((= v1-0 'part-water-drip) - (set! (-> self water-drip-time) (-> self clock frame-counter)) + (set! (-> self water-drip-time) (current-time)) (set! (-> self water-drip-mult) (the-as float (-> event param 0))) (set! (-> self water-drip-speed) (the-as float (-> event param 1))) ) diff --git a/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc index a0e04056f6..ea6185b30e 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc @@ -540,7 +540,7 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (let ((s4-0 (vector-reset! (new-stack-vector0))) @@ -586,10 +586,10 @@ ) (cond ((and (= (-> s4-0 x) 0.0) (= (-> s4-0 y) 0.0)) - (set! gp-0 (-> self clock frame-counter)) + (set! gp-0 (current-time)) ) (else - (let ((v1-39 (min 10 (max 1 (- (-> self clock frame-counter) gp-0))))) + (let ((v1-39 (min 10 (max 1 (- (current-time) gp-0))))) (vector-float*! s4-0 s4-0 (* 0.1 (the float v1-39))) ) ) @@ -2222,8 +2222,8 @@ ) (set! (-> self los-last-pos quad) (-> self good-point quad)) (when *display-cam-los-debug* - (format 0 "going because u(~f) > 0 frame ~D~%" f30-2 (-> self clock frame-counter)) - (format *stdcon* " going because u(~f) > 0 frame ~D~%" f30-2 (-> self clock frame-counter)) + (format 0 "going because u(~f) > 0 frame ~D~%" f30-2 (current-time)) + (format *stdcon* " going because u(~f) > 0 frame ~D~%" f30-2 (current-time)) ) (logior! (-> self options) (cam-slave-options-u32 GOTO_GOOD_POINT)) ) @@ -2476,9 +2476,7 @@ (if (-> self have-phony-joystick) (set! f28-0 (* 0.05 (-> self phony-joystick-y))) ) - (if (and (-> *camera* being-attacked) - (< (- (-> self clock frame-counter) (-> *camera* attack-start)) (seconds 0.25)) - ) + (if (and (-> *camera* being-attacked) (< (- (current-time) (-> *camera* attack-start)) (seconds 0.25))) (set! f28-0 0.05) ) (when (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) @@ -2722,7 +2720,7 @@ ) (vector-flatten! s5-3 s5-3 (-> *camera* local-down)) ) - ((< (- (-> self clock frame-counter) (the-as int (-> self butt-timer))) 0) + ((< (- (current-time) (the-as int (-> self butt-timer))) 0) (vector-flatten! s5-3 (-> self butt-vector) (-> *camera* local-down)) ) (else @@ -3102,7 +3100,7 @@ object (cond ((= v1-0 'get-behind) - (set! (-> self butt-timer) (the-as uint (+ (-> self clock frame-counter) (seconds 0.25)))) + (set! (-> self butt-timer) (the-as uint (+ (current-time) (seconds 0.25)))) (set! (-> self butt-seek) (the-as basic #t)) (set! v0-0 (-> self butt-vector)) (set! (-> (the-as vector v0-0) quad) (-> (the-as vector (-> event param 0)) quad)) diff --git a/test/decompiler/reference/jak2/engine/collide/collide-debug_REF.gc b/test/decompiler/reference/jak2/engine/collide/collide-debug_REF.gc index 1762d65033..2fc8c8b297 100644 --- a/test/decompiler/reference/jak2/engine/collide/collide-debug_REF.gc +++ b/test/decompiler/reference/jak2/engine/collide/collide-debug_REF.gc @@ -186,124 +186,122 @@ ;; definition for method 9 of type col-rend ;; INFO: Used lq/sq (defmethod col-rend-method-9 col-rend ((obj col-rend)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((f30-0 (-> obj bbox-radius))) - (let ((v1-0 (-> obj track))) - (cond - ((zero? v1-0) - (set! (-> obj bbox-center quad) (-> (target-pos 0) quad)) - (+! (-> obj bbox-center y) (* 0.7 f30-0)) - ) - ((= v1-0 1) - (position-in-front-of-camera! (-> obj bbox-center) (+ (-> obj camera-to-bbox-dist) (-> obj bbox-radius)) 0.0) - ) - ) - ) - (set! (-> s5-0 bbox min quad) (-> obj bbox-center quad)) - (set! (-> s5-0 bbox min x) (- (-> s5-0 bbox min x) f30-0)) - (set! (-> s5-0 bbox min y) (- (-> s5-0 bbox min y) f30-0)) - (set! (-> s5-0 bbox min z) (- (-> s5-0 bbox min z) f30-0)) - (set! (-> s5-0 bbox max quad) (-> obj bbox-center quad)) - (+! (-> s5-0 bbox max x) f30-0) - (+! (-> s5-0 bbox max y) f30-0) - (+! (-> s5-0 bbox max z) f30-0) - ) - (let ((v1-9 -1)) - (let ((a0-9 (-> obj cspec))) - (if (not (logtest? a0-9 (collide-spec crate))) - (set! v1-9 (logxor v1-9 1)) - ) - (if (not (logtest? a0-9 (collide-spec civilian))) - (set! v1-9 (logxor v1-9 64)) - ) - (if (not (logtest? a0-9 (collide-spec enemy))) - (set! v1-9 (logxor #x80000 v1-9)) - ) - (if (not (logtest? a0-9 (collide-spec obstacle))) - (set! v1-9 (logxor v1-9 2)) - ) - (if (not (logtest? a0-9 (collide-spec vehicle-sphere))) - (set! v1-9 (logand #x80743 v1-9)) - ) - ) - (set! (-> s5-0 collide-with) (the-as collide-spec v1-9)) - ) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface)) - (set! (-> s5-0 ignore-process0) #f) - (set! (-> s5-0 ignore-process1) #f) - (add-debug-box - #t - (bucket-id debug2) - (the-as vector (-> s5-0 bbox)) - (-> s5-0 bbox max) - (if (logtest? (-> pp clock frame-counter) 128) - (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x20) - (new 'static 'rgba :a #x20) - ) - ) - (fill-using-bounding-box *collide-cache* s5-0) - ) - (let ((s5-1 (-> obj show-only)) - (a1-17 (new 'stack 'col-rend-filter)) - ) - (when (nonzero? s5-1) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((f30-0 (-> obj bbox-radius))) + (let ((v1-0 (-> obj track))) (cond - ((logtest? s5-1 8) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :noboard #x1)) + ((zero? v1-0) + (set! (-> obj bbox-center quad) (-> (target-pos 0) quad)) + (+! (-> obj bbox-center y) (* 0.7 f30-0)) ) - ((logtest? s5-1 16) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + ((= v1-0 1) + (position-in-front-of-camera! (-> obj bbox-center) (+ (-> obj camera-to-bbox-dist) (-> obj bbox-radius)) 0.0) ) - ((logtest? s5-1 32) - (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) - (set! (-> a1-17 show-pat-set) (new 'static 'pat-surface :nojak #x1)) - ) - (else - (if (logtest? s5-1 8192) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nolineofsight #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? s5-1 1024) - (set! (-> a1-17 show-pat-set noentity) 1) - ) - (if (logtest? s5-1 64) - (set! (-> a1-17 show-pat-set noboard) 1) - ) - (if (logtest? s5-1 2048) - (set! (-> a1-17 show-pat-set nogrind) 1) - ) - (if (logtest? s5-1 128) - (set! (-> a1-17 show-pat-set nocamera) 1) - ) - (if (logtest? s5-1 4096) - (set! (-> a1-17 show-pat-set nojak) 1) - ) - (if (logtest? s5-1 256) - (set! (-> a1-17 show-pat-set noedge) 1) - ) - (if (logtest? s5-1 #x8000) - (set! (-> a1-17 show-pat-set nopilot) 1) - ) - (if (logtest? s5-1 512) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? s5-1 #x4000) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nomech #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x10000 s5-1) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noproj #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x40000 s5-1) - (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :probe #x1) (-> a1-17 show-pat-set))) - ) - (if (logtest? #x20000 s5-1) - (logior! (-> a1-17 event-mask) 64) - ) - ) ) ) - (col-rend-draw obj a1-17) + (set! (-> s5-0 bbox min quad) (-> obj bbox-center quad)) + (set! (-> s5-0 bbox min x) (- (-> s5-0 bbox min x) f30-0)) + (set! (-> s5-0 bbox min y) (- (-> s5-0 bbox min y) f30-0)) + (set! (-> s5-0 bbox min z) (- (-> s5-0 bbox min z) f30-0)) + (set! (-> s5-0 bbox max quad) (-> obj bbox-center quad)) + (+! (-> s5-0 bbox max x) f30-0) + (+! (-> s5-0 bbox max y) f30-0) + (+! (-> s5-0 bbox max z) f30-0) ) - (none) + (let ((v1-9 -1)) + (let ((a0-9 (-> obj cspec))) + (if (not (logtest? a0-9 (collide-spec crate))) + (set! v1-9 (logxor v1-9 1)) + ) + (if (not (logtest? a0-9 (collide-spec civilian))) + (set! v1-9 (logxor v1-9 64)) + ) + (if (not (logtest? a0-9 (collide-spec enemy))) + (set! v1-9 (logxor #x80000 v1-9)) + ) + (if (not (logtest? a0-9 (collide-spec obstacle))) + (set! v1-9 (logxor v1-9 2)) + ) + (if (not (logtest? a0-9 (collide-spec vehicle-sphere))) + (set! v1-9 (logand #x80743 v1-9)) + ) + ) + (set! (-> s5-0 collide-with) (the-as collide-spec v1-9)) + ) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface)) + (set! (-> s5-0 ignore-process0) #f) + (set! (-> s5-0 ignore-process1) #f) + (add-debug-box + #t + (bucket-id debug2) + (the-as vector (-> s5-0 bbox)) + (-> s5-0 bbox max) + (if (logtest? (current-time) 128) + (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x20) + (new 'static 'rgba :a #x20) + ) + ) + (fill-using-bounding-box *collide-cache* s5-0) ) + (let ((s5-1 (-> obj show-only)) + (a1-17 (new 'stack 'col-rend-filter)) + ) + (when (nonzero? s5-1) + (cond + ((logtest? s5-1 8) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :noboard #x1)) + ) + ((logtest? s5-1 16) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + ) + ((logtest? s5-1 32) + (set! (-> a1-17 show-pat-clear) (new 'static 'pat-surface :nogrind #x1)) + (set! (-> a1-17 show-pat-set) (new 'static 'pat-surface :nojak #x1)) + ) + (else + (if (logtest? s5-1 8192) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nolineofsight #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? s5-1 1024) + (set! (-> a1-17 show-pat-set noentity) 1) + ) + (if (logtest? s5-1 64) + (set! (-> a1-17 show-pat-set noboard) 1) + ) + (if (logtest? s5-1 2048) + (set! (-> a1-17 show-pat-set nogrind) 1) + ) + (if (logtest? s5-1 128) + (set! (-> a1-17 show-pat-set nocamera) 1) + ) + (if (logtest? s5-1 4096) + (set! (-> a1-17 show-pat-set nojak) 1) + ) + (if (logtest? s5-1 256) + (set! (-> a1-17 show-pat-set noedge) 1) + ) + (if (logtest? s5-1 #x8000) + (set! (-> a1-17 show-pat-set nopilot) 1) + ) + (if (logtest? s5-1 512) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? s5-1 #x4000) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :nomech #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x10000 s5-1) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :noproj #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x40000 s5-1) + (set! (-> a1-17 show-pat-set) (logior (new 'static 'pat-surface :probe #x1) (-> a1-17 show-pat-set))) + ) + (if (logtest? #x20000 s5-1) + (logior! (-> a1-17 event-mask) 64) + ) + ) + ) + ) + (col-rend-draw obj a1-17) + ) + (none) ) diff --git a/test/decompiler/reference/jak2/engine/collide/los-control_REF.gc b/test/decompiler/reference/jak2/engine/collide/los-control_REF.gc index bd297faf49..3e821b35a3 100644 --- a/test/decompiler/reference/jak2/engine/collide/los-control_REF.gc +++ b/test/decompiler/reference/jak2/engine/collide/los-control_REF.gc @@ -1,9 +1,14 @@ +;;-*-Lisp-*- (in-package goal) +;; definition for symbol *los-time-offset*, type time-frame (define *los-time-offset* (the-as time-frame 0)) +;; definition for method 9 of type los-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch time-frame vs none. (defmethod los-control-method-9 los-control ((obj los-control) (process process-focusable) (trans-vec vector) (radius float)) - (when (and (>= (- (-> self clock frame-counter) (-> obj last-check-time)) (-> obj check-interval)) + (when (and (>= (- (current-time) (-> obj last-check-time)) (-> obj check-interval)) (-> obj src-proc) (or process (-> obj dst-proc)) ) @@ -45,13 +50,13 @@ (let ((f30-0 (probe-using-line-sphere *collide-cache* cquery))) (quad-copy! (the-as pointer (-> obj last-collide-result)) (the-as pointer (-> cquery best-other-tri)) 6) (if (>= 0.0 f30-0) - (set! (-> obj have-no-los) (-> self clock frame-counter)) - (set! (-> obj have-los) (-> self clock frame-counter)) + (set! (-> obj have-no-los) (current-time)) + (set! (-> obj have-los) (current-time)) ) ) ) ) - (set! (-> obj last-check-time) (-> self clock frame-counter)) + (set! (-> obj last-check-time) (current-time)) ) ) ) @@ -59,24 +64,30 @@ (none) ) +;; definition for method 10 of type los-control (defmethod check-los? los-control ((obj los-control) (arg0 time-frame)) - (and (>= (- (-> self clock frame-counter) (-> obj have-los)) (+ (-> obj check-interval) arg0)) - (< (- (-> self clock frame-counter) (-> obj have-no-los)) (-> obj check-interval)) + (and (>= (- (current-time) (-> obj have-los)) (+ (-> obj check-interval) arg0)) + (< (- (current-time) (-> obj have-no-los)) (-> obj check-interval)) ) ) +;; definition for method 11 of type los-control (defmethod skip-check-los? los-control ((obj los-control) (arg0 int)) - (and (>= (- (-> self clock frame-counter) (-> obj have-no-los)) (+ (-> obj check-interval) arg0)) - (< (- (-> self clock frame-counter) (-> obj have-los)) (-> obj check-interval)) + (and (>= (- (current-time) (-> obj have-no-los)) (+ (-> obj check-interval) arg0)) + (< (- (current-time) (-> obj have-los)) (-> obj check-interval)) ) ) +;; definition for method 12 of type los-control +;; WARN: Return type mismatch int vs none. (defmethod set-dst-proc! los-control ((obj los-control) (dst handle)) (set! (-> obj dst-proc) dst) 0 (none) ) +;; definition for method 13 of type los-control +;; WARN: Return type mismatch int vs none. (defmethod new-source! los-control ((obj los-control) (proc process) (check-interval time-frame) (c-spec collide-spec)) (set! (-> obj src-proc) (process->handle proc)) (set! (-> obj dst-proc) (the-as handle #f)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/base-plat_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/base-plat_REF.gc index b54f8ff127..b5cab46333 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/base-plat_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/base-plat_REF.gc @@ -71,7 +71,7 @@ For example for an elevator pre-compute the distance between the first and last and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 60 150 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (sound-play "plat-bounce" :position (-> obj root-override trans)) (logclear! (-> obj mask) (process-mask sleep)) @@ -323,7 +323,7 @@ eco-door-event-handler :virtual #t :event eco-door-event-handler :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-entity-status! self (entity-perm-status subtask-complete) #t) (let ((prim (-> self root-override root-prim))) (set! (-> prim prim-core collide-as) (collide-spec)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc index 08728f5c98..2e1e08ead6 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc @@ -222,7 +222,7 @@ ) :enter (behavior () (press! self #t) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -237,7 +237,7 @@ (sleep-code) ) (else - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) + (until (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) (suspend) ) (send-event! self (-> self event-going-up)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc index 751660a164..e35b56e0bc 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc @@ -173,75 +173,73 @@ ;; definition for method 32 of type collectable ;; INFO: Used lq/sq (defmethod initialize-options collectable ((obj collectable) (arg0 int) (arg1 float) (arg2 fact-info)) - (with-pp - (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) - (set! (-> obj mask) (logior (process-mask bit18) (-> obj mask))) - (set! (-> obj flags) (collectable-flag pickup no-eco-blue)) - (set! (-> obj bob-amount) arg1) - (set! (-> obj bob-offset) (the-as seconds (+ (the-as int (-> obj root-override2 trans x)) - (the-as int (-> obj root-override2 trans y)) - (the-as int (-> obj root-override2 trans z)) - ) - ) - ) - (cond - ((or (= (vector-length (-> obj root-override2 transv)) 0.0) - (logtest? (-> obj fact options) (actor-option auto-pickup)) - ) - (vector-reset! (-> obj root-override2 transv)) - ) - (else - (logior! (-> obj flags) (collectable-flag bounce)) - (logclear! (-> obj flags) (collectable-flag pickup)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj bob-amount) 0.0) + (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) + (set! (-> obj mask) (logior (process-mask bit18) (-> obj mask))) + (set! (-> obj flags) (collectable-flag pickup no-eco-blue)) + (set! (-> obj bob-amount) arg1) + (set! (-> obj bob-offset) (the-as seconds (+ (the-as int (-> obj root-override2 trans x)) + (the-as int (-> obj root-override2 trans y)) + (the-as int (-> obj root-override2 trans z)) + ) + ) ) + (cond + ((or (= (vector-length (-> obj root-override2 transv)) 0.0) + (logtest? (-> obj fact options) (actor-option auto-pickup)) + ) + (vector-reset! (-> obj root-override2 transv)) + ) + (else + (logior! (-> obj flags) (collectable-flag bounce)) + (logclear! (-> obj flags) (collectable-flag pickup)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj bob-amount) 0.0) ) - (when (> arg0 0) - (logior! (-> obj flags) (collectable-flag fadeout)) - (set! (-> obj fadeout-timeout) (the-as seconds arg0)) - (if (logtest? (actor-option no-distance-check-fadeout) (-> arg2 options)) - (logior! (-> obj flags) (collectable-flag no-distance-check-fadeout)) - ) - ) - (set! (-> obj collect-timeout) (the-as seconds 99)) - (set! (-> obj birth-time) (-> pp clock frame-counter)) - (set! (-> obj base quad) (-> obj root-override2 trans quad)) - (set! (-> obj old-base quad) (-> obj root-override2 trans quad)) - (set! (-> obj pickup-handle) (the-as handle #f)) - (case (-> obj fact pickup-type) - (((pickup-type eco-pill-green) - (pickup-type eco-pill-dark) - (pickup-type eco-green) - (pickup-type money) - (pickup-type gem) - (pickup-type skill) - (pickup-type eco-blue) - (pickup-type health) - (pickup-type trick-point) - ) - (logclear! (-> obj flags) (collectable-flag no-eco-blue)) - ) - ) - (if (logtest? (-> obj fact options) (actor-option big-collision)) - (set! (-> obj root-override2 root-prim local-sphere w) - (* 2.5 (-> obj root-override2 root-prim local-sphere w)) - ) - ) - (when (and arg2 (nonzero? (-> obj draw))) - (let* ((s5-0 (-> arg2 process)) - (v1-56 (if (type? s5-0 process-drawable) - s5-0 - ) - ) - ) - (if v1-56 - (set! (-> obj draw light-index) (-> (the-as process-drawable v1-56) draw light-index)) - ) - ) - ) - obj ) + (when (> arg0 0) + (logior! (-> obj flags) (collectable-flag fadeout)) + (set! (-> obj fadeout-timeout) (the-as seconds arg0)) + (if (logtest? (actor-option no-distance-check-fadeout) (-> arg2 options)) + (logior! (-> obj flags) (collectable-flag no-distance-check-fadeout)) + ) + ) + (set! (-> obj collect-timeout) (the-as seconds 99)) + (set! (-> obj birth-time) (current-time)) + (set! (-> obj base quad) (-> obj root-override2 trans quad)) + (set! (-> obj old-base quad) (-> obj root-override2 trans quad)) + (set! (-> obj pickup-handle) (the-as handle #f)) + (case (-> obj fact pickup-type) + (((pickup-type eco-pill-green) + (pickup-type eco-pill-dark) + (pickup-type eco-green) + (pickup-type money) + (pickup-type gem) + (pickup-type skill) + (pickup-type eco-blue) + (pickup-type health) + (pickup-type trick-point) + ) + (logclear! (-> obj flags) (collectable-flag no-eco-blue)) + ) + ) + (if (logtest? (-> obj fact options) (actor-option big-collision)) + (set! (-> obj root-override2 root-prim local-sphere w) + (* 2.5 (-> obj root-override2 root-prim local-sphere w)) + ) + ) + (when (and arg2 (nonzero? (-> obj draw))) + (let* ((s5-0 (-> arg2 process)) + (v1-56 (if (type? s5-0 process-drawable) + s5-0 + ) + ) + ) + (if v1-56 + (set! (-> obj draw light-index) (-> (the-as process-drawable v1-56) draw light-index)) + ) + ) + ) + obj ) ;; definition for method 33 of type collectable @@ -547,26 +545,24 @@ (a3-12 0) (t0-9 (lambda ((arg0 part-tracker)) - (with-pp - (let ((v1-1 (handle->process (-> arg0 userdata)))) - (when (the-as process v1-1) - (let* ((s5-0 (handle->process (-> (the-as collectable v1-1) pickup-handle))) - (a0-9 (if (type? s5-0 process-focusable) - s5-0 - ) - ) - (a2-0 (if (not a0-9) - (-> arg0 root trans) - (get-trans (the-as process-focusable a0-9) 3) - ) - ) - ) - (vector-lerp! - (-> arg0 root trans) - (-> arg0 offset) - a2-0 - (/ (the float (- (-> pp clock frame-counter) (-> arg0 start-time))) (the float (-> arg0 part group duration))) - ) + (let ((v1-1 (handle->process (-> arg0 userdata)))) + (when (the-as process v1-1) + (let* ((s5-0 (handle->process (-> (the-as collectable v1-1) pickup-handle))) + (a0-9 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + (a2-0 (if (not a0-9) + (-> arg0 root trans) + (get-trans (the-as process-focusable a0-9) 3) + ) + ) + ) + (vector-lerp! + (-> arg0 root trans) + (-> arg0 offset) + a2-0 + (/ (the float (- (current-time) (-> arg0 start-time))) (the float (-> arg0 part group duration))) ) ) ) @@ -677,13 +673,13 @@ ) (logior! (-> self flags) (collectable-flag suck-in)) (when (= (-> self speed w) 0.0) - (set! (-> self suck-time) (-> self clock frame-counter)) + (set! (-> self suck-time) (current-time)) (set! (-> self speed x) (rand-vu-float-range 327680.0 819200.0)) ) (+! (-> self speed w) (* (lerp-scale 40960.0 (-> self speed x) - (the float (- (-> self clock frame-counter) (the-as int (-> self suck-time)))) + (the float (- (current-time) (the-as int (-> self suck-time)))) 45.0 60.0 ) @@ -701,9 +697,7 @@ (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (-> self clock seconds-per-frame))) ) (set! (-> self suck-y-offset) - (* 2048.0 - (sin (* 873.81335 (the float (mod (- (-> self clock frame-counter) (the-as int (-> self suck-time))) 75)))) - ) + (* 2048.0 (sin (* 873.81335 (the float (mod (- (current-time) (the-as int (-> self suck-time))) 75))))) ) (vector+! (-> self base) gp-1 s5-2) ) @@ -743,9 +737,7 @@ (local-vars (v0-4 none)) (when (and (or (= arg2 'touch) (= arg2 'attack)) (and (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) (not (and (-> self next-state) (= (-> self next-state name) 'pickup))) (send-event arg0 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount)) ) @@ -812,7 +804,7 @@ ((= arg2 'fade) (logior! (-> self flags) (collectable-flag fadeout)) (set! (-> self fadeout-timeout) (the-as seconds 30)) - (set! v0-4 (the-as none (-> self clock frame-counter))) + (set! v0-4 (the-as none (current-time))) (set! (-> self birth-time) (the-as time-frame v0-4)) v0-4 ) @@ -907,9 +899,9 @@ (let ((gp-0 (new 'stack 'trajectory))) (set! (-> self base y) (-> self jump-pos y)) (setup-from-to-duration! gp-0 (-> self root-override2 trans) (-> self jump-pos) 300.0 -2.2755556) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (let ((f0-2 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) + (let ((f0-2 (the float (- (current-time) (-> self state-time))))) (compute-trans-at-time gp-0 f0-2 (-> self root-override2 trans)) ) (transform-post) @@ -939,7 +931,7 @@ :virtual #t :event collectable-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (case (-> self pickup-type) (((pickup-type gem)) (sound-play "gem-spawn") @@ -1056,9 +1048,7 @@ (go-virtual suck (process->handle proc)) ) (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) ) ) (logclear! (-> self mask) (process-mask actor-pause)) @@ -1086,11 +1076,9 @@ (if (and (logtest? (-> self flags) (collectable-flag fadeout)) (begin (if (movie?) - (set! (-> self birth-time) (-> self clock frame-counter)) - ) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self fadeout-timeout)) + (set! (-> self birth-time) (current-time)) ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self fadeout-timeout))) ) (or (or (not *target*) (or (< 204800.0 (vector-vector-distance (-> self root-override2 trans) (-> *target* control trans))) @@ -1119,9 +1107,9 @@ (set! (-> self actor-pause) #f) (logior! (-> self flags) (collectable-flag do-fadeout)) (logior! (-> self state-flags) (state-flags sf0)) - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f - (let ((f0-1 (- 300.0 (the float (- (-> self clock frame-counter) gp-0))))) + (let ((f0-1 (- 300.0 (the float (- (current-time) gp-0))))) (cond ((< f0-1 0.0) (process-entity-status! self (entity-perm-status dead) #t) @@ -1154,9 +1142,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (when (and (or (= event-type 'touch) (= event-type 'attack)) (and (logtest? (-> self flags) (collectable-flag pickup)) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self collect-timeout)) - ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self collect-timeout))) (not (and (-> self next-state) (= (-> self next-state name) 'pickup))) (send-event proc 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount)) ) @@ -1344,8 +1330,8 @@ ) (cond ((nonzero? (-> self respan-delay)) - (let ((gp-0 (-> self clock frame-counter))) - (while (< (- (-> self clock frame-counter) gp-0) (the-as time-frame (-> self respan-delay))) + (let ((gp-0 (current-time))) + (while (< (- (current-time) gp-0) (the-as time-frame (-> self respan-delay))) (suspend) ) ) @@ -1734,10 +1720,7 @@ This commonly includes things such as: (sin (* 109.22667 (the float - (mod - (+ (- (-> pp clock frame-counter) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) - 600 - ) + (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) ) ) ) @@ -1770,15 +1753,13 @@ This commonly includes things such as: (+ (-> self base y) (-> self suck-y-offset) (* f30-0 - (sin (* 109.22667 (the float (mod - (+ (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self bob-offset)) - ) - 600 - ) - ) - ) + (sin + (* 109.22667 + (the float + (mod (+ (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self bob-offset))) 600) + ) ) + ) ) ) ) @@ -2108,12 +2089,12 @@ This commonly includes things such as: ) ) (if (or (and (logtest? s5-2 (collide-status on-surface)) (< (vector-length (-> gp-1 transv)) 1228.8)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (>= (- (current-time) (-> self state-time)) (seconds 10)) ) (go-virtual wait) ) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self bounce-time))) (seconds 0.1)) - (set! (-> self bounce-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (the-as int (-> self bounce-time))) (seconds 0.1)) + (set! (-> self bounce-time) (current-time)) (sound-play-by-name (static-sound-name "gem-bounce") (new-sound-id) @@ -2125,7 +2106,7 @@ This commonly includes things such as: ) ) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 15)) + ((>= (- (current-time) (-> self state-time)) (seconds 15)) (go-virtual wait) ) ) @@ -2238,11 +2219,9 @@ This commonly includes things such as: (if (and (logtest? (-> self flags) (collectable-flag fadeout)) (begin (if (movie?) - (set! (-> self birth-time) (-> self clock frame-counter)) - ) - (>= (- (-> self clock frame-counter) (the-as int (-> self birth-time))) - (the-as time-frame (-> self fadeout-timeout)) + (set! (-> self birth-time) (current-time)) ) + (>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self fadeout-timeout))) ) ) (go-virtual fade) diff --git a/test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc index 19fd398ae9..48a61961ed 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc @@ -979,8 +979,8 @@ ) ) (when (not arg0) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.04)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.04)) (suspend) ) ) @@ -1137,14 +1137,14 @@ (drop-pickup (-> self fact) #t *entity-pool* (the-as fact-info #f) arg1) (process-entity-status! self (entity-perm-status dead) #t) (process-entity-status! self (entity-perm-status subtask-complete) #t) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 5)) (suspend) ) ) (when (logtest? (actor-option cond-respawn) (-> self fact options)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 15)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 15)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/dark-eco-pool_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/dark-eco-pool_REF.gc index af1dfb70b5..de0ba6efc7 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/dark-eco-pool_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/dark-eco-pool_REF.gc @@ -322,7 +322,7 @@ ) ) (let* ((gp-0 (-> self draw ripple)) - (f0-1 (the float (logand (-> self clock frame-counter) #xffff))) + (f0-1 (the float (logand (current-time) #xffff))) (f0-6 (cos (the float (sar (shl (the int (* 5.0 f0-1)) 48) 48)))) (f0-7 (* f0-6 f0-6)) (f0-9 (fmax -1.0 (fmin 1.0 f0-7))) diff --git a/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc index addd1057a1..37cf5dc7e4 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc @@ -321,7 +321,7 @@ which is obviously useful for an elevator." ((= evt-type 'ridden) (let ((proc-focus (handle->process (-> (the-as focus (-> event param 0)) handle)))) (if (= (-> proc-focus type) target) - (set! (-> self sticky-player-last-ride-time) (-> self clock frame-counter)) + (set! (-> self sticky-player-last-ride-time) (current-time)) ) ) #t @@ -421,7 +421,7 @@ which is obviously useful for an elevator." (+ (-> self move-pos 0) (* (-> self path-pos) (- (-> self move-pos 1) (-> self move-pos 0)))) ) (('player-standing-on?) - (= (-> self sticky-player-last-ride-time) (-> self clock frame-counter)) + (= (-> self sticky-player-last-ride-time) (current-time)) ) (('point-inside-shaft?) (move-between-points self (the-as vector (-> event param 1)) (-> self bottom-top 1) (-> self bottom-top 0)) @@ -600,7 +600,7 @@ do so. ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (logclear! (-> self elevator-status) (elevator-status waiting-to-descend moving)) (logior! (-> self mask) (process-mask actor-pause)) (if (nonzero? (-> self sound)) @@ -611,7 +611,7 @@ do so. :trans (behavior () (plat-trans) (when (not (logtest? (-> self elevator-status) (elevator-status waiting-to-descend))) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (-> self params) (if (and (logtest? (-> self params flags) (elevator-flags elevator-flags-0)) (not (logtest? (-> self params flags) (elevator-flags elevator-flags-3))) @@ -620,7 +620,7 @@ do so. ) ) (when (and (not (logtest? (-> self params flags) (elevator-flags elevator-flags-3))) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (>= (- (current-time) (-> self ride-timer)) (seconds 1)) ) (set! (-> self move-pos 0) (-> self move-pos 1)) (set! (-> self move-pos 1) (-> self path-seq data (the int (-> self move-pos 1)) next-pos)) @@ -753,7 +753,7 @@ do so. :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (elevator-event proc arg1 event-type event) ) (else @@ -762,7 +762,7 @@ do so. ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (if (not (-> *setting-control* user-current jump)) (remove-setting! 'jump) ) @@ -778,10 +778,10 @@ do so. (begin *target* *target*) (focus-test? *target* in-air) ) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) (when (or (logtest? (-> self elevator-status) (elevator-status moving)) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) ) (cond ((and (logtest? (-> self params flags) (elevator-flags elevator-flags-1)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/generic-obs_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/generic-obs_REF.gc index 54485f5715..d6b131ae56 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/generic-obs_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/generic-obs_REF.gc @@ -231,8 +231,8 @@ (move-along-path self) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (move-along-path self) (suspend) ) @@ -1371,9 +1371,9 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (while (or (zero? (-> self duration)) - (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) ) (if (-> self callback) ((-> self callback) self) @@ -1402,8 +1402,8 @@ This commonly includes things such as: ) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the-as time-frame (-> self linger-duration))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the-as time-frame (-> self linger-duration))) (if (-> self linger-callback) ((-> self linger-callback) self) ) @@ -1529,20 +1529,18 @@ This commonly includes things such as: ;; definition for function part-tracker-move-to-target (defun part-tracker-move-to-target ((arg0 part-tracker)) - (with-pp - (let* ((a0-1 *target*) - (a2-0 (if (not a0-1) - (-> arg0 root trans) - (get-trans a0-1 3) - ) - ) - ) - (vector-lerp! - (-> arg0 root trans) - (-> arg0 offset) - a2-0 - (* 0.006666667 (the float (- (-> pp clock frame-counter) (-> arg0 start-time)))) - ) + (let* ((a0-1 *target*) + (a2-0 (if (not a0-1) + (-> arg0 root trans) + (get-trans a0-1 3) + ) + ) + ) + (vector-lerp! + (-> arg0 root trans) + (-> arg0 offset) + a2-0 + (* 0.006666667 (the float (- (current-time) (-> arg0 start-time)))) ) ) ) @@ -1721,7 +1719,7 @@ This commonly includes things such as: :code (behavior () (set! (-> self sound) (the-as uint 0)) (when (!= (+ (-> self lightning spec delay) (-> self lightning spec delay-rand)) 0.0) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (rand-vu-float-range (-> self lightning spec delay) (+ (-> self lightning spec delay) (-> self lightning spec delay-rand)) @@ -1729,7 +1727,7 @@ This commonly includes things such as: ) ) ) - (while (< (- (-> self clock frame-counter) gp-0) s5-0) + (while (< (- (current-time) gp-0) s5-0) (suspend) ) ) @@ -1778,9 +1776,9 @@ This commonly includes things such as: ) (set! (-> v1-33 state mode) (the-as lightning-mode a0-10)) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (while (or (zero? (-> self duration)) - (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) ) (update self) (suspend) @@ -1805,8 +1803,8 @@ This commonly includes things such as: ) (set! (-> v1-47 state mode) (the-as lightning-mode a0-14)) ) - (set! (-> self start-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the int f30-0)) + (set! (-> self start-time) (current-time)) + (while (< (- (current-time) (-> self start-time)) (the int f30-0)) (suspend) ) ) @@ -2580,12 +2578,12 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (vector--float*! (-> self trans) (-> *camera* tpos-curr) (-> *camera* local-down) 28672.0) (send-event *camera* 'teleport) - (if (and (-> *camera* on-ground) (>= (- (-> self clock frame-counter) gp-0) (seconds 1))) + (if (and (-> *camera* on-ground) (>= (- (current-time) gp-0) (seconds 1))) (send-event *camera* 'change-state cam-string (seconds 0.5)) ) ) @@ -2647,7 +2645,7 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (until #f (when (not (paused?)) (let ((s4-0 (new 'stack-no-clear 'vector)) @@ -2689,7 +2687,7 @@ This commonly includes things such as: (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) (>= (- (-> self clock frame-counter) gp-0) (seconds 1))) + (if (and (-> *camera* on-ground) (>= (- (current-time) gp-0) (seconds 1))) (send-event *camera* 'change-state cam-string (seconds 0.5)) ) ) @@ -2764,7 +2762,7 @@ This commonly includes things such as: :virtual #t :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (when (or (= event-type 'touch) (= event-type 'attack)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (send-event proc 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) (the-as object (cond @@ -2809,7 +2807,7 @@ This commonly includes things such as: (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (< (- (current-time) (-> self state-time)) (seconds 0.5)) ) (send-event *target* 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) @@ -3043,7 +3041,7 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while ((-> self run-function)) (let* ((gp-0 (handle->process (-> self target))) (a0-4 (if (type? gp-0 process-drawable) @@ -3101,17 +3099,18 @@ This commonly includes things such as: ) (let ((v1-6 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) (set! (-> v1-6 prim-core collide-as) (collide-spec jak enemy)) - (set! (-> v1-6 prim-core collide-with) (collide-spec - crate - civilian - enemy - obstacle - vehicle-sphere - hit-by-player-list - hit-by-others-list - collectable - pusher - ) + (set! (-> v1-6 prim-core collide-with) + (collide-spec + crate + civilian + enemy + obstacle + vehicle-sphere + hit-by-player-list + hit-by-others-list + collectable + pusher + ) ) (set-vector! (-> v1-6 local-sphere) 0.0 0.0 0.0 arg1) (set! (-> s4-0 total-prims) (the-as uint 1)) @@ -3130,10 +3129,8 @@ This commonly includes things such as: (set! (-> self target) (the-as handle #f)) (set! (-> self event) #f) (set! (-> self callback) #f) - (set! (-> self run-function) (lambda :behavior touch-tracker - () - (< (- (-> self clock frame-counter) (-> self state-time)) (-> self duration)) - ) + (set! (-> self run-function) + (lambda :behavior touch-tracker () (< (- (current-time) (-> self state-time)) (-> self duration))) ) (set! (-> self event-hook) (-> (method-of-object self active) event)) (go-virtual active) @@ -3278,7 +3275,7 @@ This commonly includes things such as: ) ) :code (behavior () - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (update-transforms (-> self root-override)) (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) (set! (-> a1-0 options) (overlaps-others-options)) @@ -3291,14 +3288,14 @@ This commonly includes things such as: (set! (-> v1-9 prim-core collide-with) (collide-spec)) ) 0 - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self duration))) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration))) (let ((a1-1 (-> self root-override trans))) (spawn (-> self part) a1-1) ) (suspend) ) - (set! (-> self start-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self start-time)) (the-as time-frame (-> self linger-duration))) + (set! (-> self start-time) (current-time)) + (while (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self linger-duration))) (suspend) ) (none) diff --git a/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc index 5927d49861..c7aac8a3ed 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc @@ -299,10 +299,10 @@ This commonly includes things such as: ) (cond ((and proc-focus (focus-test? proc-focus edge-grab)) - (set! (-> self safe-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self safe-time) (+ (current-time) (seconds 0.2))) (return (the-as object #f)) ) - ((< (- (-> self clock frame-counter) (-> self safe-time)) (seconds 0.05)) + ((< (- (current-time) (-> self safe-time)) (seconds 0.05)) (return (the-as object #f)) ) ) @@ -346,7 +346,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('edge-grabbed) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (send-event proc 'end-mode) ) ) @@ -356,7 +356,7 @@ This commonly includes things such as: ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc index df46985e36..9ac7d36b3b 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc @@ -16,19 +16,14 @@ (let ((s1-1 (process->handle arg0)) (s2-1 (process->handle arg1)) ) - (let ((s0-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s0-0) (+ arg3 arg4)) + (let ((s0-0 (current-time))) + (until (>= (- (current-time) s0-0) (+ arg3 arg4)) (let ((v1-8 (or (not (handle->process s1-1)) (not (handle->process s2-1))))) (if v1-8 (deactivate self) ) ) - (let* ((f0-1 - (fmax - 0.0 - (fmin 1.0 (/ (- (the float (- (-> self clock frame-counter) s0-0)) (the float arg3)) (the float arg4))) - ) - ) + (let* ((f0-1 (fmax 0.0 (fmin 1.0 (/ (- (the float (- (current-time) s0-0)) (the float arg3)) (the float arg4))))) (a0-18 (process-drawable-pair-random-point! (the-as process-drawable (-> s1-1 process 0)) (the-as process-drawable (-> s2-1 process 0)) @@ -50,8 +45,8 @@ #f ) (else - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) arg5) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) arg5) (let ((a0-21 (process-drawable-random-point! (the-as process-drawable (-> s2-1 process 0)) (new-stack-vector0)))) (arg2 a0-21) ) @@ -775,9 +770,8 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defbehavior target-color-effect-process target () - (when (and (-> self color-effect) (>= (- (-> self clock frame-counter) (-> self color-effect-start-time)) - (the-as time-frame (-> self color-effect-duration)) - ) + (when (and (-> self color-effect) + (>= (- (current-time) (-> self color-effect-start-time)) (the-as time-frame (-> self color-effect-duration))) ) (set! (-> self color-effect) #f) (set-vector! (-> self draw color-mult) 1.0 1.0 1.0 1.0) @@ -793,7 +787,7 @@ (let ((f30-0 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -807,7 +801,7 @@ (let ((f30-1 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -821,7 +815,7 @@ (let ((f30-2 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -835,7 +829,7 @@ (let ((f30-3 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -849,7 +843,7 @@ (let ((f30-4 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -863,7 +857,7 @@ (let ((f30-5 (lerp-scale 1.0 0.0 - (the float (- (-> self clock frame-counter) (-> self color-effect-start-time))) + (the float (- (current-time) (-> self color-effect-start-time))) (* 0.25 (the float (-> self color-effect-duration))) (the float (-> self color-effect-duration)) ) @@ -894,13 +888,13 @@ (if (and (logtest? (-> self water flags) (water-flags under-water)) (not (logtest? (-> self water flags) (water-flags swim-ground))) ) - (set! (-> self control unknown-time-frame26) (-> self clock frame-counter)) - (set! (-> self control unknown-time-frame27) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame26) (current-time)) + (set! (-> self control unknown-time-frame27) (current-time)) ) (cond ((and (= (-> self control ground-pat material) (pat-material ice)) (and (>= (-> self control ctrl-xz-vel) 204.8) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.05)) + (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.05)) ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 38)))) @@ -1002,7 +996,7 @@ (cond ((logtest? (-> self game features) (game-feature unk-game-feature-01)) (cond - ((< (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout)) + ((< (current-time) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout)) (set-setting! 'bg-a 'abs 0.3 0) (set-setting! 'bg-r 'abs 1.0 0) (update-rates! (-> *display* entity-clock) 0.0) @@ -1018,9 +1012,7 @@ 0 ) ((cpad-pressed? (-> self control cpad number) r1) - (set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) - (+ (-> self clock frame-counter) (seconds 5)) - ) + (set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) (+ (current-time) (seconds 5))) ) ) ) @@ -1135,9 +1127,7 @@ ((or (and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) ) - (and (focus-test? self board) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - ) + (and (focus-test? self board) (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1))) ) (logior! (-> self focus-status) (focus-status in-air)) (if (logtest? (surface-flag super) (-> self control current-surface flags)) @@ -1172,7 +1162,7 @@ (set! (-> self focus-status) (logior (focus-status ice) (-> self focus-status))) (logclear! (-> self focus-status) (focus-status ice)) ) - (if (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self gun fire-time)) (seconds 0.1)) (set! (-> self focus-status) (logior (focus-status shooting) (-> self focus-status))) (logclear! (-> self focus-status) (focus-status shooting)) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc index b353fbc197..e8369a5cc0 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc @@ -317,7 +317,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self spawn-time)) (-> self timeout)) + (if (>= (- (current-time) (-> self spawn-time)) (-> self timeout)) (go-virtual dissipate) ) (let ((t9-1 (-> self pick-target))) @@ -509,7 +509,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (set! (-> self last-target) (the-as handle #f)) (set! (-> self timeout) (-> arg0 timeout)) (set! (-> self max-hits) 1) - (set! (-> self spawn-time) (-> self clock frame-counter)) + (set! (-> self spawn-time) (current-time)) (set! (-> self update-velocity) #f) (set! (-> self move) projectile-move-fill-line-sphere) (set! (-> self pick-target) #f) @@ -597,7 +597,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ) :trans (behavior () (noop self) - (if (>= (- (-> self clock frame-counter) (-> self spawn-time)) (-> self timeout)) + (if (>= (- (current-time) (-> self spawn-time)) (-> self timeout)) (go-virtual impact) ) (none) @@ -669,9 +669,9 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (vector-float*! (-> a2-0 transv) (-> a2-0 transv) 0.6) ) (when (and (logtest? v1-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (set! (-> obj played-bounce-time) (-> self clock frame-counter)) + (set! (-> obj played-bounce-time) (current-time)) (sound-play "dark-shot-bounc") ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/rigid-body-plat_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/rigid-body-plat_REF.gc index 794f3f0865..9030ef2c3a 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/rigid-body-plat_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/rigid-body-plat_REF.gc @@ -391,10 +391,10 @@ ) ) (('bonk) - (when (>= (- (-> self clock frame-counter) (the-as int (-> obj player-bonk-timeout))) + (when (>= (- (current-time) (the-as int (-> obj player-bonk-timeout))) (the-as time-frame (-> obj info-override player-force-timeout)) ) - (set! (-> obj player-bonk-timeout) (the-as uint (-> self clock frame-counter))) + (set! (-> obj player-bonk-timeout) (the-as uint (current-time))) (let* ((s4-0 arg0) (v1-31 (if (type? s4-0 process-drawable) s4-0 @@ -455,31 +455,29 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod alloc-and-init-rigid-body-control rigid-body-platform ((obj rigid-body-platform) (arg0 rigid-body-object-constants)) - (with-pp - (set! (-> obj info-override) (the-as rigid-body-platform-constants arg0)) - (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) - (set! (-> obj control-point-array) - (new 'process 'rigid-body-control-point-inline-array (-> obj info-override control-point-count)) - ) - (update-transforms (-> obj root-override-2)) - (let ((v1-5 (-> obj rbody)) - (a1-3 (-> obj info-override info)) - (a2-2 (-> obj root-override-2 trans)) - (a3-0 (-> obj root-override-2 quat)) - (t0-0 (method-of-object obj rigid-body-object-method-29)) - ) - (rigid-body-method-25 (-> v1-5 state) a1-3 a2-2 a3-0 t0-0) - ) - (set! (-> obj player-bonk-timeout) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj player-force quad) (-> *null-vector* quad)) - (set! (-> obj player-velocity quad) (-> *null-vector* quad)) - (set! (-> obj player-velocity-prev quad) (-> *null-vector* quad)) - (set! (-> obj root-override-2 max-iteration-count) (the-as uint 4)) - (set! (-> obj max-time-step) (-> arg0 extra max-time-step)) - (set! (-> obj water-anim) (the-as water-anim (entity-actor-lookup (-> obj entity) 'water-actor 0))) - 0 - (none) + (set! (-> obj info-override) (the-as rigid-body-platform-constants arg0)) + (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) + (set! (-> obj control-point-array) + (new 'process 'rigid-body-control-point-inline-array (-> obj info-override control-point-count)) + ) + (update-transforms (-> obj root-override-2)) + (let ((v1-5 (-> obj rbody)) + (a1-3 (-> obj info-override info)) + (a2-2 (-> obj root-override-2 trans)) + (a3-0 (-> obj root-override-2 quat)) + (t0-0 (method-of-object obj rigid-body-object-method-29)) + ) + (rigid-body-method-25 (-> v1-5 state) a1-3 a2-2 a3-0 t0-0) ) + (set! (-> obj player-bonk-timeout) (the-as uint (current-time))) + (set! (-> obj player-force quad) (-> *null-vector* quad)) + (set! (-> obj player-velocity quad) (-> *null-vector* quad)) + (set! (-> obj player-velocity-prev quad) (-> *null-vector* quad)) + (set! (-> obj root-override-2 max-iteration-count) (the-as uint 4)) + (set! (-> obj max-time-step) (-> arg0 extra max-time-step)) + (set! (-> obj water-anim) (the-as water-anim (entity-actor-lookup (-> obj entity) 'water-actor 0))) + 0 + (none) ) ;; definition for method 32 of type rigid-body-platform diff --git a/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc index f6100bbdb5..32a68bdad8 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc @@ -203,9 +203,7 @@ (set! (-> a1-2 quad) (-> self parent-override 0 trans quad)) (vector-lerp! (-> self root trans) a1-2 s5-0 (-> self blend)) ) - (+! (-> self root trans y) - (* 1638.4 (sin (* 54.613335 (the float (mod (-> self clock frame-counter) 1200))))) - ) + (+! (-> self root trans y) (* 1638.4 (sin (* 54.613335 (the float (mod (current-time) 1200)))))) (let ((s5-1 (new 'stack-no-clear 'quaternion))) (forward-up->quaternion s5-1 @@ -422,14 +420,13 @@ :virtual #t :code (behavior () (remove-setting! 'sound-flava) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self seeker target) 1.0) - (while (and (< (-> self blend) 0.9999) - (not (and (not (handle->process (-> self hint))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - (-> *setting-control* user-current hint) - ) - ) + (while (and (< (-> self blend) 0.9999) (not (and (not (handle->process (-> self hint))) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) + (-> *setting-control* user-current hint) + ) + ) ) (update! (-> self seeker) 0.0) (set! (-> self blend) (-> self seeker value)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc index 6b2f0c4853..778c74fe68 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc @@ -799,7 +799,7 @@ (and (>= (-> obj height) (-> obj bottom 0 y)) (logtest? (water-flags touch-water) (-> s5-0 flags))) ) (if (logtest? (-> (the-as collide-shape-moving (-> obj process control)) status) (collide-status on-water)) - (set! (-> obj on-water-time) (-> pp clock frame-counter)) + (set! (-> obj on-water-time) (current-time)) ) (when (not (logtest? (-> obj flags) (water-flags dark-eco lava))) (set! (-> obj drip-wetness) 1.0) @@ -821,9 +821,7 @@ ) (set! (-> obj flags) (logior (water-flags break-surface) (-> obj flags))) (set! (-> s3-0 y) (+ 40.96 (-> obj surface-height))) - (when (and (not (handle->process (-> obj ripple))) - (>= (+ (-> pp clock frame-counter) (seconds -1.5)) (-> obj enter-water-time)) - ) + (when (and (not (handle->process (-> obj ripple))) (>= (+ (current-time) (seconds -1.5)) (-> obj enter-water-time))) (let* ((s1-0 (get-process *default-dead-pool* manipy #x4000)) (s2-0 (when s1-0 @@ -952,7 +950,7 @@ ) (when (< (-> s3-1 y) (-> obj surface-height)) (set! (-> *part-id-table* 502 init-specs 16 initial-valuef) (-> obj surface-height)) - (let ((f0-72 (lerp-scale 12.0 0.4 (the float (- (-> pp clock frame-counter) (-> obj enter-water-time))) 0.0 600.0)) + (let ((f0-72 (lerp-scale 12.0 0.4 (the float (- (current-time) (-> obj enter-water-time))) 0.0 600.0)) (f1-26 0.00012207031) (v1-222 (-> obj process control transv)) ) @@ -992,7 +990,7 @@ s3-2 ) ) - (v1-237 (and v1-236 (< (- (-> pp clock frame-counter) (-> v1-236 last-time-on-surface)) (seconds 0.5)))) + (v1-237 (and v1-236 (< (- (current-time) (-> v1-236 last-time-on-surface)) (seconds 0.5)))) ) (if (and (logtest? (-> obj flags) (water-flags swim-ground)) (and v1-237 @@ -1018,7 +1016,7 @@ ) (< f0-84 (sqrtf (+ (* (-> a0-112 x) (-> a0-112 x)) (* (-> a0-112 z) (-> a0-112 z))))) ) - (< (+ (-> pp clock frame-counter) (seconds -0.2)) (-> obj enter-water-time)) + (< (+ (current-time) (seconds -0.2)) (-> obj enter-water-time)) (or (>= (+ (- 204.8 (fmin 6144.0 (+ (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)))) f30-1) (-> obj bottom 0 y) ) @@ -1026,11 +1024,11 @@ ) ) ) - (set! (-> obj swim-time) (-> pp clock frame-counter)) + (set! (-> obj swim-time) (current-time)) (send-event (-> obj process) 'swim) (set! (-> obj flags) (logior (water-flags swimming) (-> obj flags))) (if (not (logtest? (water-flags swimming) s4-0)) - (set! (-> obj enter-swim-time) (-> pp clock frame-counter)) + (set! (-> obj enter-swim-time) (current-time)) ) (cond ((and (logtest? (-> obj flags) (water-flags swim-ground)) @@ -1064,13 +1062,13 @@ ((begin (set! v1-237 (and (logtest? (-> obj flags) (water-flags can-wade)) - (or (not (!= (-> obj bob amp) 0.0)) (>= (- (-> pp clock frame-counter) (-> obj swim-time)) (seconds 0.05))) + (or (not (!= (-> obj bob amp) 0.0)) (>= (- (current-time) (-> obj swim-time)) (seconds 0.05))) (and (>= (- (-> obj height) (-> obj wade-height)) (-> obj bottom 0 y)) v1-237) ) ) v1-237 ) - (set! (-> obj wade-time) (-> pp clock frame-counter)) + (set! (-> obj wade-time) (current-time)) (send-event (-> obj process) 'wade) (set! (-> obj flags) (logior (water-flags wading) (-> obj flags))) ) @@ -1203,7 +1201,7 @@ (t9-35 a0-208 a1-61 a2-22 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) - (set! (-> obj drip-time) (-> pp clock frame-counter)) + (set! (-> obj drip-time) (current-time)) (logclear! (-> obj flags) (water-flags spawn-drip)) (seek! (-> obj drip-wetness) 0.0 (* 0.001 (-> obj drip-speed))) (set! (-> obj drip-speed) (* 1.05 (-> obj drip-speed))) @@ -1211,9 +1209,7 @@ (set! (-> obj drip-height) 0.0) ) ) - ((>= (- (-> pp clock frame-counter) - (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) - ) + ((>= (- (current-time) (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult))))) (the int (-> obj drip-speed)) ) (let* ((s5-1 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1))) @@ -1337,7 +1333,7 @@ (with-pp (set! (-> obj flags) (logior (water-flags touch-water) (-> obj flags))) (logclear! (-> obj flags) (water-flags jump-out)) - (set! (-> obj enter-water-time) (-> pp clock frame-counter)) + (set! (-> obj enter-water-time) (current-time)) (set-vector! (-> obj enter-water-pos) (-> obj bottom 0 x) (-> obj surface-height) (-> obj bottom 0 z) 1.0) (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) @@ -1474,41 +1470,39 @@ ;; definition for method 13 of type water-control ;; WARN: Return type mismatch int vs none. (defmethod spawn-ripples water-control ((obj water-control) (arg0 float) (arg1 vector) (arg2 int) (arg3 vector) (arg4 symbol)) - (with-pp - (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) - (let ((s4-1 (vector+float*! (new 'stack-no-clear 'vector) arg1 arg3 0.05))) - (set! (-> s4-1 y) (+ 40.96 (-> obj surface-height))) - (if (>= (- (-> pp clock frame-counter) (-> obj distort-time)) (seconds 0.1)) - (splash-spawn arg0 s4-1 arg2) - ) - (when (and arg4 (>= (- (-> pp clock frame-counter) (-> obj distort-time)) (seconds 0.3))) - (set! (-> obj distort-time) (-> pp clock frame-counter)) - (let ((s3-1 (process-spawn - manipy - :init manipy-init - s4-1 - (-> obj process entity) - (art-group-get-by-name *level* "skel-generic-ripples" (the-as (pointer uint32) #f)) - #f - 0 - :to (-> obj process) - ) + (when (and (logtest? (water-flags part-splash) (-> obj flags)) (logtest? (water-flags part-water) (-> obj flags))) + (let ((s4-1 (vector+float*! (new 'stack-no-clear 'vector) arg1 arg3 0.05))) + (set! (-> s4-1 y) (+ 40.96 (-> obj surface-height))) + (if (>= (- (current-time) (-> obj distort-time)) (seconds 0.1)) + (splash-spawn arg0 s4-1 arg2) + ) + (when (and arg4 (>= (- (current-time) (-> obj distort-time)) (seconds 0.3))) + (set! (-> obj distort-time) (current-time)) + (let ((s3-1 (process-spawn + manipy + :init manipy-init + s4-1 + (-> obj process entity) + (art-group-get-by-name *level* "skel-generic-ripples" (the-as (pointer uint32) #f)) + #f + 0 + :to (-> obj process) ) - ) - (when s3-1 - (send-event (ppointer->process s3-1) 'anim-mode 'play1) - (send-event (ppointer->process s3-1) 'anim "idle") - (let ((f0-4 (fmax 0.6 (fmin 1.0 (* 2.0 arg0))))) - (set-vector! (-> (the-as process-drawable (-> s3-1 0)) root scale) f0-4 0.5 f0-4 1.0) - ) + ) + ) + (when s3-1 + (send-event (ppointer->process s3-1) 'anim-mode 'play1) + (send-event (ppointer->process s3-1) 'anim "idle") + (let ((f0-4 (fmax 0.6 (fmin 1.0 (* 2.0 arg0))))) + (set-vector! (-> (the-as process-drawable (-> s3-1 0)) root scale) f0-4 0.5 f0-4 1.0) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for function water-info<-region diff --git a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc index 97b4028dba..ce1a1f1bbb 100644 --- a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc @@ -4363,34 +4363,30 @@ "Clear map" #f ,(lambda () - (let ((v1-1 - (process-spawn-function - process - (lambda () (with-pp - (set-master-mode 'game) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) - (suspend) - ) - ) - (until #f - (format *stdcon* "press x clear map, press circle cancel~%") - (cond - ((cpad-pressed? 0 x) - (initialize *bigmap*) - (return #f) - ) - ((cpad-pressed? 0 circle) - (return #f) - ) - ) - (suspend) - ) - #f - ) - ) - ) - ) + (let ((v1-1 (process-spawn-function process (lambda () + (set-master-mode 'game) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.3)) + (suspend) + ) + ) + (until #f + (format *stdcon* "press x clear map, press circle cancel~%") + (cond + ((cpad-pressed? 0 x) + (initialize *bigmap*) + (return #f) + ) + ((cpad-pressed? 0 circle) + (return #f) + ) + ) + (suspend) + ) + #f + ) + ) + ) ) (when v1-1 (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) diff --git a/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc b/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc index 8e0238dfde..4ce9b97614 100644 --- a/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc @@ -1622,7 +1622,7 @@ (the-as object (deactivate self)) ) (('menu) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> event param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> event param 0)))) (set! (-> self close-menu-time) (the-as time-frame v0-0)) v0-0 ) @@ -1858,10 +1858,7 @@ (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons start)) ) ) - (when (or (and (= *master-mode* 'menu) - (> (-> self close-menu-time) 0) - (>= (-> self clock frame-counter) (-> self close-menu-time)) - ) + (when (or (and (= *master-mode* 'menu) (> (-> self close-menu-time) 0) (>= (current-time) (-> self close-menu-time))) (cpad-pressed? 1 start) ) (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) diff --git a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc index ddedb54f4d..9384553ff6 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc @@ -71,7 +71,6 @@ ) ;; definition for method 3 of type actor-group -;; INFO: this function exists in multiple non-identical object files (defmethod inspect actor-group ((obj actor-group)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) @@ -531,7 +530,6 @@ ) ;; definition for method 2 of type process -;; INFO: this function exists in multiple non-identical object files (defmethod print process ((obj process)) (cond ((and (-> obj top-thread) (!= (-> obj status) 'dead)) @@ -1410,117 +1408,115 @@ (sv-112 pointer) (sv-128 int) ) - (with-pp - (let ((s4-0 *debug-actor-info*)) - (set! (-> s4-0 process) #f) - (if (zero? (-> s4-0 handle pid)) - (set! (-> s4-0 handle) - (logior (logand (-> s4-0 handle) (shl (the-as uint #xffffffff) 32)) (shr (shl (the-as int #f) 32) 32)) - ) - ) - (let ((v0-0 (handle->process (-> s4-0 handle)))) - (when (not v0-0) - (if (-> s4-0 name) - (set! v0-0 (process-by-name (the-as string (-> s4-0 name)) *active-pool*)) + (let ((s4-0 *debug-actor-info*)) + (set! (-> s4-0 process) #f) + (if (zero? (-> s4-0 handle pid)) + (set! (-> s4-0 handle) + (logior (logand (-> s4-0 handle) (shl (the-as uint #xffffffff) 32)) (shr (shl (the-as int #f) 32) 32)) ) - ) - (set! (-> s4-0 process) v0-0) ) - (set! *debug-actor* (-> s4-0 process)) - ) - (set! sv-16 arg0) - (when (and sv-16 (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) - (cond - ((= sv-16 'process) - (let ((s5-1 draw-actor-marks)) - (iterate-process-tree *pusher-pool* (the-as (function object object) s5-1) *null-kernel-context*) - (iterate-process-tree *entity-pool* (the-as (function object object) s5-1) *null-kernel-context*) - ) - ) - (else - (dotimes (s5-2 (-> obj length)) - (let ((v1-25 (-> obj level s5-2))) - (when (= (-> v1-25 status) 'active) - (let ((s4-1 (-> v1-25 bsp level entity))) - (dotimes (s3-0 (-> s4-1 length)) - (let ((s2-0 (-> s4-1 data s3-0 entity))) - (set! sv-20 (-> s2-0 extra trans)) - (when (or (= sv-16 'full) (-> s2-0 extra process)) - (add-debug-x #t (bucket-id debug-no-zbuf1) sv-20 (if (-> s2-0 extra process) - (new 'static 'rgba :r #x80 :g #xff :b #x80 :a #x80) - (new 'static 'rgba :r #xff :a #x80) - ) - ) - (let ((s1-0 add-debug-text-3d) - (s0-0 #t) - ) - (set! sv-32 318) - (let ((a2-4 (res-lump-struct s2-0 'name structure)) - (a3-2 sv-20) - (t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1)) - 1 - 5 - ) - ) - (t1-1 (new 'static 'vector2h :data (new 'static 'array int16 2 0 8))) - ) - (s1-0 s0-0 (the-as bucket-id sv-32) (the-as string a2-4) a3-2 (the-as font-color t0-1) t1-1) - ) - ) - ) - ) - ) - ) - ) - ) + (let ((v0-0 (handle->process (-> s4-0 handle)))) + (when (not v0-0) + (if (-> s4-0 name) + (set! v0-0 (process-by-name (the-as string (-> s4-0 name)) *active-pool*)) ) - ) ) + (set! (-> s4-0 process) v0-0) ) - (when (and *display-actor-vis* (not *debug-actor*)) - (let ((s5-3 *display-actor-vis*)) - (dotimes (s4-2 (-> obj length)) - (let ((s3-1 (-> obj level s4-2))) - (when (= (-> s3-1 status) 'active) - (let ((s2-1 (-> s3-1 bsp level entity))) - (dotimes (s1-1 (-> s2-1 length)) - (let ((s0-1 (-> s2-1 data s1-1 entity))) - (let ((v0-6 (res-lump-data s0-1 'visvol pointer)) - (a1-10 (-> s0-1 extra vis-id)) - ) - (when (and v0-6 (or (= s5-3 #t) (= s5-3 'box))) - (set! sv-48 add-debug-box) - (set! sv-64 #t) - (set! sv-80 318) - (set! sv-96 (&+ v0-6 0)) - (set! sv-112 (&+ v0-6 16)) - (let ((t0-3 (if (is-object-visible? s3-1 a1-10) - (the-as uint #x80808000) - (the-as uint #x80800080) + (set! *debug-actor* (-> s4-0 process)) + ) + (set! sv-16 arg0) + (when (and sv-16 (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) + (cond + ((= sv-16 'process) + (let ((s5-1 draw-actor-marks)) + (iterate-process-tree *pusher-pool* (the-as (function object object) s5-1) *null-kernel-context*) + (iterate-process-tree *entity-pool* (the-as (function object object) s5-1) *null-kernel-context*) + ) + ) + (else + (dotimes (s5-2 (-> obj length)) + (let ((v1-25 (-> obj level s5-2))) + (when (= (-> v1-25 status) 'active) + (let ((s4-1 (-> v1-25 bsp level entity))) + (dotimes (s3-0 (-> s4-1 length)) + (let ((s2-0 (-> s4-1 data s3-0 entity))) + (set! sv-20 (-> s2-0 extra trans)) + (when (or (= sv-16 'full) (-> s2-0 extra process)) + (add-debug-x #t (bucket-id debug-no-zbuf1) sv-20 (if (-> s2-0 extra process) + (new 'static 'rgba :r #x80 :g #xff :b #x80 :a #x80) + (new 'static 'rgba :r #xff :a #x80) + ) + ) + (let ((s1-0 add-debug-text-3d) + (s0-0 #t) + ) + (set! sv-32 318) + (let ((a2-4 (res-lump-struct s2-0 'name structure)) + (a3-2 sv-20) + (t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1)) + 1 + 5 ) ) + (t1-1 (new 'static 'vector2h :data (new 'static 'array int16 2 0 8))) ) - (sv-48 sv-64 (the-as bucket-id sv-80) (the-as vector sv-96) (the-as vector sv-112) (the-as rgba t0-3)) + (s1-0 s0-0 (the-as bucket-id sv-32) (the-as string a2-4) a3-2 (the-as font-color t0-1) t1-1) ) ) ) - (when (or (= s5-3 #t) (= s5-3 'sphere)) - (let ((s0-2 (-> s0-1 extra process))) - (when s0-2 - (when (and (type? s0-2 process-drawable) (nonzero? (-> (the-as process-drawable s0-2) draw))) - (add-debug-x - #t - (bucket-id debug-no-zbuf1) - (-> (the-as process-drawable s0-2) root trans) - (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - ) - (add-debug-sphere - #t - (bucket-id debug2) - (-> (the-as process-drawable s0-2) draw origin) - (-> (the-as process-drawable s0-2) draw bounds w) - (new 'static 'rgba :r #x80 :a #x80) - ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (when (and *display-actor-vis* (not *debug-actor*)) + (let ((s5-3 *display-actor-vis*)) + (dotimes (s4-2 (-> obj length)) + (let ((s3-1 (-> obj level s4-2))) + (when (= (-> s3-1 status) 'active) + (let ((s2-1 (-> s3-1 bsp level entity))) + (dotimes (s1-1 (-> s2-1 length)) + (let ((s0-1 (-> s2-1 data s1-1 entity))) + (let ((v0-6 (res-lump-data s0-1 'visvol pointer)) + (a1-10 (-> s0-1 extra vis-id)) + ) + (when (and v0-6 (or (= s5-3 #t) (= s5-3 'box))) + (set! sv-48 add-debug-box) + (set! sv-64 #t) + (set! sv-80 318) + (set! sv-96 (&+ v0-6 0)) + (set! sv-112 (&+ v0-6 16)) + (let ((t0-3 (if (is-object-visible? s3-1 a1-10) + (the-as uint #x80808000) + (the-as uint #x80800080) + ) + ) + ) + (sv-48 sv-64 (the-as bucket-id sv-80) (the-as vector sv-96) (the-as vector sv-112) (the-as rgba t0-3)) + ) + ) + ) + (when (or (= s5-3 #t) (= s5-3 'sphere)) + (let ((s0-2 (-> s0-1 extra process))) + (when s0-2 + (when (and (type? s0-2 process-drawable) (nonzero? (-> (the-as process-drawable s0-2) draw))) + (add-debug-x + #t + (bucket-id debug-no-zbuf1) + (-> (the-as process-drawable s0-2) root trans) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (add-debug-sphere + #t + (bucket-id debug2) + (-> (the-as process-drawable s0-2) draw origin) + (-> (the-as process-drawable s0-2) draw bounds w) + (new 'static 'rgba :r #x80 :a #x80) ) ) ) @@ -1533,247 +1529,247 @@ ) ) ) - (if *generate-actor-vis* - (update-vis-volumes obj) - ) - (cond - (*debug-actor* - (let* ((s4-3 *debug-actor*) - (s5-4 (if (type? s4-3 process-drawable) - s4-3 - ) - ) - ) - (when s5-4 - (if (nonzero? (-> (the-as process-drawable s5-4) skel)) - (debug-print-channels (-> (the-as process-drawable s5-4) skel) (the-as symbol *stdcon*)) - ) - (when (and (nonzero? (-> (the-as process-drawable s5-4) nav)) - (-> (the-as process-drawable s5-4) nav) - *display-nav-marks* - ) - (let ((s4-4 (-> (the-as process-drawable s5-4) nav state flags))) - (if (= (logand s4-4 (nav-state-flag in-target-poly)) (nav-state-flag in-target-poly)) - (format *stdcon* "in-target-poly ") - ) - (if (= (logand s4-4 (nav-state-flag directional-mode)) (nav-state-flag directional-mode)) - (format *stdcon* "directional-mode ") - ) - (if (= (logand s4-4 (nav-state-flag initialized)) (nav-state-flag initialized)) - (format *stdcon* "initialized ") - ) - (if (= (logand s4-4 (nav-state-flag display-marks)) (nav-state-flag display-marks)) - (format *stdcon* "display-marks ") - ) - (if (= (logand s4-4 (nav-state-flag recovery-mode)) (nav-state-flag recovery-mode)) - (format *stdcon* "recovery-mode ") - ) - (if (= (logand s4-4 (nav-state-flag touching-sphere)) (nav-state-flag touching-sphere)) - (format *stdcon* "touching-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag trapped-by-sphere)) (nav-state-flag trapped-by-sphere)) - (format *stdcon* "trapped-by-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag blocked)) (nav-state-flag blocked)) - (format *stdcon* "blocked ") - ) - (if (= (logand s4-4 (nav-state-flag avoiding-sphere)) (nav-state-flag avoiding-sphere)) - (format *stdcon* "avoiding-sphere ") - ) - (if (= (logand s4-4 (nav-state-flag target-inside)) (nav-state-flag target-inside)) - (format *stdcon* "target-inside ") - ) - (if (= (logand s4-4 (nav-state-flag debug)) (nav-state-flag debug)) - (format *stdcon* "debug ") - ) - (if (= (logand s4-4 (nav-state-flag at-gap)) (nav-state-flag at-gap)) - (format *stdcon* "at-gap ") - ) - (if (= (logand s4-4 (nav-state-flag in-mesh)) (nav-state-flag in-mesh)) - (format *stdcon* "in-mesh ") - ) - (if (= (logand s4-4 (nav-state-flag at-target)) (nav-state-flag at-target)) - (format *stdcon* "at-target ") - ) - (if (= (logand s4-4 (nav-state-flag target-poly-dirty)) (nav-state-flag target-poly-dirty)) - (format *stdcon* "target-poly-dirty ") - ) - ) - (format *stdcon* "~%") - ) - (when *display-joint-axes* - (if (and (type? (the-as process-drawable s5-4) process-drawable) - (nonzero? (-> (the-as process-drawable s5-4) draw)) - ) - (draw-joint-axes (the-as process-drawable s5-4)) - ) - ) - (draw-actor-marks (the-as process-drawable s5-4)) - ) - ) - ) - (*display-nav-mesh* - (dotimes (s5-5 (-> obj length)) - (let ((v1-145 (-> obj level s5-5))) - (when (= (-> v1-145 status) 'active) - (let ((s4-5 (-> v1-145 bsp nav-meshes))) - (when (nonzero? s4-5) - (dotimes (s3-2 (-> s4-5 length)) - (let ((s2-2 (-> s4-5 s3-2))) - (if (name= *display-nav-mesh* (res-lump-struct s2-2 'name structure)) - (debug-draw s2-2) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (else - (when *display-nav-marks* - (dotimes (s5-6 (-> obj length)) - (let ((v1-163 (-> obj level s5-6))) - (when (= (-> v1-163 status) 'active) - (let ((s4-6 (-> v1-163 bsp nav-meshes))) - (when (nonzero? s4-6) - (dotimes (s3-3 (-> s4-6 length)) - (debug-draw (-> s4-6 s3-3)) - ) - ) - ) - ) - ) - ) - ) - (if (or *display-path-marks* *display-vol-marks*) - (iterate-process-tree - *active-pool* - (the-as (function object object) (lambda ((arg0 process-drawable)) - (when (type? arg0 process-drawable) - (if (nonzero? (-> arg0 path)) - (debug-draw (-> arg0 path)) - ) - (if (nonzero? (-> arg0 vol)) - (debug-draw (-> arg0 vol)) - ) - ) - (none) - ) - ) - *null-kernel-context* - ) - ) - ) - ) - (when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) - (if (not (paused?)) - (float-save-timeplot (if (< (the int (the float (mod (-> pp clock frame-counter) 600))) 300) - 1.0 - 0.0 - ) - ) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-redline - (new 'static 'vector4w :x #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-blueline - (new 'static 'vector4w :z #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - -81920.0 - 81920.0 - float-lookup-greenline - (new 'static 'vector4w :y #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - 0.0 - 409600.0 - float-lookup-yellowline - (new 'static 'vector4w :x #xff :y #xff :w #x80) - ) - (camera-plot-float-func - 0.0 - 399.0 - 0.0 - 1.0 - float-lookup-timeplot - (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) - ) - ) - (when *display-split-boxes* - (dotimes (s5-7 (-> obj length)) - (let ((v1-193 (-> obj level s5-7))) - (when (= (-> v1-193 status) 'active) - (let ((s4-7 (-> v1-193 bsp region-tree))) - (when (nonzero? s4-7) - (let* ((s3-4 (-> s4-7 data2 (+ (-> s4-7 length) -1) length)) - (s2-3 0) - (a0-102 (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3)) - ) - (while (< s2-3 s3-4) - (debug-draw-region a0-102 0) - (+! s2-3 1) - (set! a0-102 - (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (when *display-region-marks* - (dotimes (s5-8 (-> obj length)) - (let ((s4-8 (-> obj level s5-8))) - (when (= (-> s4-8 status) 'active) - (when (nonzero? (-> s4-8 bsp region-trees)) - (let* ((s3-5 (-> s4-8 bsp region-trees length)) - (s2-4 0) - (s1-3 (-> s4-8 bsp region-trees s2-4)) - ) - (while (< s2-4 s3-5) - (let ((s0-4 (-> s1-3 data2 (+ (-> s1-3 length) -1) length))) - (set! sv-128 0) - (let ((a0-117 (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128))) - (while (< sv-128 s0-4) - (debug-draw-region a0-117 0) - (set! sv-128 (+ sv-128 1)) - (set! a0-117 - (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128) - ) - ) - ) - ) - (+! s2-4 1) - (set! s1-3 (-> s4-8 bsp region-trees s2-4)) - ) - ) - ) - ) - ) - ) - ) - 0 - (none) ) + (if *generate-actor-vis* + (update-vis-volumes obj) + ) + (cond + (*debug-actor* + (let* ((s4-3 *debug-actor*) + (s5-4 (if (type? s4-3 process-drawable) + s4-3 + ) + ) + ) + (when s5-4 + (if (nonzero? (-> (the-as process-drawable s5-4) skel)) + (debug-print-channels (-> (the-as process-drawable s5-4) skel) (the-as symbol *stdcon*)) + ) + (when (and (nonzero? (-> (the-as process-drawable s5-4) nav)) + (-> (the-as process-drawable s5-4) nav) + *display-nav-marks* + ) + (let ((s4-4 (-> (the-as process-drawable s5-4) nav state flags))) + (if (= (logand s4-4 (nav-state-flag in-target-poly)) (nav-state-flag in-target-poly)) + (format *stdcon* "in-target-poly ") + ) + (if (= (logand s4-4 (nav-state-flag directional-mode)) (nav-state-flag directional-mode)) + (format *stdcon* "directional-mode ") + ) + (if (= (logand s4-4 (nav-state-flag initialized)) (nav-state-flag initialized)) + (format *stdcon* "initialized ") + ) + (if (= (logand s4-4 (nav-state-flag display-marks)) (nav-state-flag display-marks)) + (format *stdcon* "display-marks ") + ) + (if (= (logand s4-4 (nav-state-flag recovery-mode)) (nav-state-flag recovery-mode)) + (format *stdcon* "recovery-mode ") + ) + (if (= (logand s4-4 (nav-state-flag touching-sphere)) (nav-state-flag touching-sphere)) + (format *stdcon* "touching-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag trapped-by-sphere)) (nav-state-flag trapped-by-sphere)) + (format *stdcon* "trapped-by-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag blocked)) (nav-state-flag blocked)) + (format *stdcon* "blocked ") + ) + (if (= (logand s4-4 (nav-state-flag avoiding-sphere)) (nav-state-flag avoiding-sphere)) + (format *stdcon* "avoiding-sphere ") + ) + (if (= (logand s4-4 (nav-state-flag target-inside)) (nav-state-flag target-inside)) + (format *stdcon* "target-inside ") + ) + (if (= (logand s4-4 (nav-state-flag debug)) (nav-state-flag debug)) + (format *stdcon* "debug ") + ) + (if (= (logand s4-4 (nav-state-flag at-gap)) (nav-state-flag at-gap)) + (format *stdcon* "at-gap ") + ) + (if (= (logand s4-4 (nav-state-flag in-mesh)) (nav-state-flag in-mesh)) + (format *stdcon* "in-mesh ") + ) + (if (= (logand s4-4 (nav-state-flag at-target)) (nav-state-flag at-target)) + (format *stdcon* "at-target ") + ) + (if (= (logand s4-4 (nav-state-flag target-poly-dirty)) (nav-state-flag target-poly-dirty)) + (format *stdcon* "target-poly-dirty ") + ) + ) + (format *stdcon* "~%") + ) + (when *display-joint-axes* + (if (and (type? (the-as process-drawable s5-4) process-drawable) + (nonzero? (-> (the-as process-drawable s5-4) draw)) + ) + (draw-joint-axes (the-as process-drawable s5-4)) + ) + ) + (draw-actor-marks (the-as process-drawable s5-4)) + ) + ) + ) + (*display-nav-mesh* + (dotimes (s5-5 (-> obj length)) + (let ((v1-145 (-> obj level s5-5))) + (when (= (-> v1-145 status) 'active) + (let ((s4-5 (-> v1-145 bsp nav-meshes))) + (when (nonzero? s4-5) + (dotimes (s3-2 (-> s4-5 length)) + (let ((s2-2 (-> s4-5 s3-2))) + (if (name= *display-nav-mesh* (res-lump-struct s2-2 'name structure)) + (debug-draw s2-2) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (else + (when *display-nav-marks* + (dotimes (s5-6 (-> obj length)) + (let ((v1-163 (-> obj level s5-6))) + (when (= (-> v1-163 status) 'active) + (let ((s4-6 (-> v1-163 bsp nav-meshes))) + (when (nonzero? s4-6) + (dotimes (s3-3 (-> s4-6 length)) + (debug-draw (-> s4-6 s3-3)) + ) + ) + ) + ) + ) + ) + ) + (if (or *display-path-marks* *display-vol-marks*) + (iterate-process-tree + *active-pool* + (the-as (function object object) (lambda ((arg0 process-drawable)) + (when (type? arg0 process-drawable) + (if (nonzero? (-> arg0 path)) + (debug-draw (-> arg0 path)) + ) + (if (nonzero? (-> arg0 vol)) + (debug-draw (-> arg0 vol)) + ) + ) + (none) + ) + ) + *null-kernel-context* + ) + ) + ) + ) + (when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress)))) + (if (not (paused?)) + (float-save-timeplot (if (< (the int (the float (mod (current-time) 600))) 300) + 1.0 + 0.0 + ) + ) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-redline + (new 'static 'vector4w :x #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-blueline + (new 'static 'vector4w :z #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + -81920.0 + 81920.0 + float-lookup-greenline + (new 'static 'vector4w :y #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + 0.0 + 409600.0 + float-lookup-yellowline + (new 'static 'vector4w :x #xff :y #xff :w #x80) + ) + (camera-plot-float-func + 0.0 + 399.0 + 0.0 + 1.0 + float-lookup-timeplot + (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) + ) + ) + (when *display-split-boxes* + (dotimes (s5-7 (-> obj length)) + (let ((v1-193 (-> obj level s5-7))) + (when (= (-> v1-193 status) 'active) + (let ((s4-7 (-> v1-193 bsp region-tree))) + (when (nonzero? s4-7) + (let* ((s3-4 (-> s4-7 data2 (+ (-> s4-7 length) -1) length)) + (s2-3 0) + (a0-102 (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3)) + ) + (while (< s2-3 s3-4) + (debug-draw-region a0-102 0) + (+! s2-3 1) + (set! a0-102 + (-> (the-as drawable-inline-array-region-prim (-> s4-7 data2 (+ (-> s4-7 length) -1))) data s2-3) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (when *display-region-marks* + (dotimes (s5-8 (-> obj length)) + (let ((s4-8 (-> obj level s5-8))) + (when (= (-> s4-8 status) 'active) + (when (nonzero? (-> s4-8 bsp region-trees)) + (let* ((s3-5 (-> s4-8 bsp region-trees length)) + (s2-4 0) + (s1-3 (-> s4-8 bsp region-trees s2-4)) + ) + (while (< s2-4 s3-5) + (let ((s0-4 (-> s1-3 data2 (+ (-> s1-3 length) -1) length))) + (set! sv-128 0) + (let ((a0-117 (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128))) + (while (< sv-128 s0-4) + (debug-draw-region a0-117 0) + (set! sv-128 (+ sv-128 1)) + (set! a0-117 + (-> (the-as drawable-inline-array-region-prim (-> s1-3 data2 (+ (-> s1-3 length) -1))) data sv-128) + ) + ) + ) + ) + (+! s2-4 1) + (set! s1-3 (-> s4-8 bsp region-trees s2-4)) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) ) ;; definition for method 22 of type entity-camera diff --git a/test/decompiler/reference/jak2/engine/game/effect-control_REF.gc b/test/decompiler/reference/jak2/engine/game/effect-control_REF.gc index 325835b1ce..e1e0402905 100644 --- a/test/decompiler/reference/jak2/engine/game/effect-control_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/effect-control_REF.gc @@ -307,327 +307,301 @@ (sv-496 matrix) (sv-512 res-lump) ) - (with-pp - (cond - ((logtest? (-> obj flags) (effect-control-flag ecf2)) - (return #f) - ) - ((= arg0 'script) - (let ((gp-1 (get-property-struct - (-> obj res) - 'effect-script - 'exact - arg1 - (the-as structure #f) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (script-eval (the-as pair gp-1)) - ) - (return #f) - ) - ) - (let ((s3-0 (-> arg0 value)) - (s5-0 (cond - ((< arg2 0) - (let ((v0-5 (get-property-value - (-> obj res) - 'effect-joint - 'exact - arg1 - (the-as uint128 0) - (the-as (pointer res-tag) #f) - *res-static-buf* - ) - ) - ) - (if (zero? v0-5) - 0 - (the-as int (+ v0-5 1)) - ) - ) - ) - (else - (empty) - arg2 - ) - ) - ) - ) - (when (logtest? (-> obj flags) (effect-control-flag ecf0)) - (if (send-event (-> obj process) 'effect-control arg0 arg1 s5-0) - (return 0) - ) - ) - (let ((v1-23 (symbol->string arg0))) - (cond - ((and (= (-> v1-23 data 0) 101) - (= (-> v1-23 data 1) 102) - (= (-> v1-23 data 2) 102) - (= (-> v1-23 data 3) 101) - (= (-> v1-23 data 4) 99) - (= (-> v1-23 data 5) 116) - (= (-> v1-23 data 6) 45) - ) - (let* ((s3-1 (-> obj process root)) - (v1-27 (if (type? s3-1 collide-shape-moving) - s3-1 - ) - ) - (t1-2 (if v1-27 - (-> (the-as collide-shape-moving v1-27) ground-pat) - *footstep-surface* - ) - ) - ) - (do-effect-for-surface obj arg0 arg1 s5-0 (-> obj res) t1-2) - ) - ) - ((let ((v1-31 (symbol->string arg0))) - (and (= (-> v1-31 data 0) 103) - (= (-> v1-31 data 1) 114) - (= (-> v1-31 data 2) 111) - (= (-> v1-31 data 3) 117) - (= (-> v1-31 data 4) 112) - (= (-> v1-31 data 5) 45) - ) - ) - (set! s3-0 (cond - ((zero? s3-0) - (let ((v0-10 (lookup-part-group-pointer-by-name (symbol->string arg0)))) - (when v0-10 - (set! (-> arg0 value) v0-10) - (set! s3-0 (-> v0-10 0)) - ) - ) - s3-0 - ) - (else - (-> (the-as (pointer object) s3-0) 0) - ) - ) - ) - (when (and (nonzero? s3-0) (= (-> (the-as basic s3-0) type) sparticle-launch-group)) - (if *debug-effect-control* - (format - #t - "(~5D) effect group ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 + (cond + ((logtest? (-> obj flags) (effect-control-flag ecf2)) + (return #f) + ) + ((= arg0 'script) + (let ((gp-1 (get-property-struct + (-> obj res) + 'effect-script + 'exact arg1 - s5-0 + (the-as structure #f) + (the-as (pointer res-tag) #f) + *res-static-buf* ) ) - (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when s4-1 - (let ((t9-10 (method-of-type part-tracker activate))) - (t9-10 - (the-as part-tracker s4-1) - (-> obj process) - (symbol->string (-> part-tracker symbol)) - (the-as pointer #x70004000) - ) - ) - (let ((s2-1 run-function-in-process) - (s1-0 s4-1) - (s0-0 part-tracker-init) + ) + (script-eval (the-as pair gp-1)) + ) + (return #f) + ) + ) + (let ((s3-0 (-> arg0 value)) + (s5-0 (cond + ((< arg2 0) + (let ((v0-5 (get-property-value + (-> obj res) + 'effect-joint + 'exact + arg1 + (the-as uint128 0) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (if (zero? v0-5) + 0 + (the-as int (+ v0-5 1)) ) - (set! sv-320 0) - (set! sv-336 (the-as symbol #f)) - (set! sv-352 (the-as symbol #f)) - (set! sv-368 (the-as symbol #f)) - (set! sv-400 *launch-matrix*) - (set! sv-384 (-> sv-400 trans)) - (let ((v1-55 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) - (set! (-> sv-384 quad) v1-55) - ) - ((the-as (function object object object object object object object object none) s2-1) - s1-0 - s0-0 - s3-0 - sv-320 - sv-336 - sv-352 - sv-368 - sv-400 - ) ) - (-> s4-1 ppointer) ) - ) - ) - ) - ((let ((v1-58 (symbol->string arg0))) - (and (= (-> v1-58 data 0) 101) - (= (-> v1-58 data 1) 118) - (= (-> v1-58 data 2) 101) - (= (-> v1-58 data 3) 110) - (= (-> v1-58 data 4) 116) - (= (-> v1-58 data 5) 45) + (else + (empty) + arg2 ) - ) - (send-event (-> obj process) arg0 arg1 s5-0) + ) + ) + ) + (when (logtest? (-> obj flags) (effect-control-flag ecf0)) + (if (send-event (-> obj process) 'effect-control arg0 arg1 s5-0) + (return 0) + ) + ) + (let ((v1-23 (symbol->string arg0))) + (cond + ((and (= (-> v1-23 data 0) 101) + (= (-> v1-23 data 1) 102) + (= (-> v1-23 data 2) 102) + (= (-> v1-23 data 3) 101) + (= (-> v1-23 data 4) 99) + (= (-> v1-23 data 5) 116) + (= (-> v1-23 data 6) 45) + ) + (let* ((s3-1 (-> obj process root)) + (v1-27 (if (type? s3-1 collide-shape-moving) + s3-1 + ) + ) + (t1-2 (if v1-27 + (-> (the-as collide-shape-moving v1-27) ground-pat) + *footstep-surface* + ) + ) + ) + (do-effect-for-surface obj arg0 arg1 s5-0 (-> obj res) t1-2) ) - ((= arg0 'camera-shake) - (activate! *camera-smush-control* 819.2 15 75 1.0 0.9 (-> *display* camera-clock)) + ) + ((let ((v1-31 (symbol->string arg0))) + (and (= (-> v1-31 data 0) 103) + (= (-> v1-31 data 1) 114) + (= (-> v1-31 data 2) 111) + (= (-> v1-31 data 3) 117) + (= (-> v1-31 data 4) 112) + (= (-> v1-31 data 5) 45) + ) ) - ((zero? s3-0) - (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) - ) - ((= (-> (the-as basic s3-0) type) sparticle-launcher) + (set! s3-0 (cond + ((zero? s3-0) + (let ((v0-10 (lookup-part-group-pointer-by-name (symbol->string arg0)))) + (when v0-10 + (set! (-> arg0 value) v0-10) + (set! s3-0 (-> v0-10 0)) + ) + ) + s3-0 + ) + (else + (-> (the-as (pointer object) s3-0) 0) + ) + ) + ) + (when (and (nonzero? s3-0) (= (-> (the-as basic s3-0) type) sparticle-launch-group)) (if *debug-effect-control* - (format - #t - "(~5D) effect part ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) + (format #t "(~5D) effect group ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) ) - (format - #t - "-----> (~5D) effect part ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) - (let ((s4-2 sp-launch-particles-var) - (s2-2 *sp-particle-system-2d*) - (s0-2 *launch-matrix*) - ) - (set! (-> s0-2 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad) - ) - (s4-2 - s2-2 - (the-as sparticle-launcher s3-0) - s0-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - ) - ((= (-> (the-as basic s3-0) type) sparticle-launch-group) - (if *debug-effect-control* - (format - #t - "(~5D) effect group ~A ~A frame ~F joint ~D~%" - (-> pp clock frame-counter) - (-> obj process name) - arg0 - arg1 - s5-0 - ) - ) - (let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000))) - (when s4-3 - (let ((t9-23 (method-of-type part-tracker activate))) - (t9-23 - (the-as part-tracker s4-3) + (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when s4-1 + (let ((t9-10 (method-of-type part-tracker activate))) + (t9-10 + (the-as part-tracker s4-1) (-> obj process) (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000) ) ) - (let ((s2-3 run-function-in-process) - (s1-3 s4-3) - (s0-3 part-tracker-init) + (let ((s2-1 run-function-in-process) + (s1-0 s4-1) + (s0-0 part-tracker-init) ) - (set! sv-416 0) - (set! sv-432 (the-as symbol #f)) - (set! sv-448 (the-as symbol #f)) - (set! sv-464 (the-as symbol #f)) - (set! sv-496 *launch-matrix*) - (set! sv-480 (-> sv-496 trans)) - (let ((v1-95 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) - (set! (-> sv-480 quad) v1-95) + (set! sv-320 0) + (set! sv-336 (the-as symbol #f)) + (set! sv-352 (the-as symbol #f)) + (set! sv-368 (the-as symbol #f)) + (set! sv-400 *launch-matrix*) + (set! sv-384 (-> sv-400 trans)) + (let ((v1-55 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) + (set! (-> sv-384 quad) v1-55) ) - ((the-as (function object object object object object object object object none) s2-3) - s1-3 - s0-3 + ((the-as (function object object object object object object object object none) s2-1) + s1-0 + s0-0 s3-0 - sv-416 - sv-432 - sv-448 - sv-464 - sv-496 + sv-320 + sv-336 + sv-352 + sv-368 + sv-400 ) ) - (-> s4-3 ppointer) + (-> s4-1 ppointer) ) ) ) - ((= (-> (the-as basic s3-0) type) sound-spec) - (sound-play-by-spec - (the-as sound-spec s3-0) - (new-sound-id) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) - ) + ) + ((let ((v1-58 (symbol->string arg0))) + (and (= (-> v1-58 data 0) 101) + (= (-> v1-58 data 1) 118) + (= (-> v1-58 data 2) 101) + (= (-> v1-58 data 3) 110) + (= (-> v1-58 data 4) 116) + (= (-> v1-58 data 5) 45) + ) ) - ((= (-> (the-as basic s3-0) type) death-info) - (when (and (logtest? (-> obj flags) (effect-control-flag ecf1)) (zero? (-> obj process draw death-timer))) - (let ((v1-106 (-> obj process draw))) - (let ((a1-51 (-> (the-as death-info s3-0) vertex-skip)) - (a0-77 - (max - 2 - (the-as int (/ (-> (the-as death-info s3-0) timer) (the-as uint (the int (-> *display* time-factor))))) - ) - ) - ) - (when (= (-> *setting-control* user-current video-mode) 'pal) - (if (< (the-as uint 1) a1-51) - (set! a1-51 (/ (the-as uint (* (the-as uint 50) a1-51)) (the-as uint 60))) - ) - ) - (let ((a2-37 (-> *display* frames (-> *display* last-screen) run-time))) - (cond - ((< 9000 a2-37) - (set! a1-51 (* a1-51 4)) - ) - ((< 7000 a2-37) - (set! a1-51 (* a1-51 2)) - ) - ) - ) - (set! (-> v1-106 death-vertex-skip) a1-51) - (set! (-> v1-106 death-effect) (-> (the-as death-info s3-0) effect)) - (set! (-> v1-106 death-timer) (the-as uint (+ a0-77 1))) + (send-event (-> obj process) arg0 arg1 s5-0) + ) + ((= arg0 'camera-shake) + (activate! *camera-smush-control* 819.2 15 75 1.0 0.9 (-> *display* camera-clock)) + ) + ((zero? s3-0) + (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) + ) + ((= (-> (the-as basic s3-0) type) sparticle-launcher) + (if *debug-effect-control* + (format #t "(~5D) effect part ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) + ) + (format + #t + "-----> (~5D) effect part ~A ~A frame ~F joint ~D~%" + (current-time) + (-> obj process name) + arg0 + arg1 + s5-0 + ) + (let ((s4-2 sp-launch-particles-var) + (s2-2 *sp-particle-system-2d*) + (s0-2 *launch-matrix*) + ) + (set! (-> s0-2 trans quad) + (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad) ) - (set! (-> v1-106 death-timer-org) (-> v1-106 death-timer)) - (set! (-> v1-106 death-draw-overlap) (-> (the-as death-info s3-0) overlap)) - ) - (when (-> (the-as death-info s3-0) sound) - (let* ((s2-5 obj) - (s1-4 (method-of-object s2-5 play-effect-sound)) - (s0-4 (-> (the-as death-info s3-0) sound)) - ) - (set! sv-512 (-> obj res)) - (let ((t1-12 (string->sound-name (symbol->string (-> (the-as death-info s3-0) sound))))) - (s1-4 s2-5 s0-4 arg1 s5-0 sv-512 t1-12) - ) + (s4-2 + s2-2 + (the-as sparticle-launcher s3-0) + s0-2 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + ) + ) + ((= (-> (the-as basic s3-0) type) sparticle-launch-group) + (if *debug-effect-control* + (format #t "(~5D) effect group ~A ~A frame ~F joint ~D~%" (current-time) (-> obj process name) arg0 arg1 s5-0) + ) + (let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000))) + (when s4-3 + (let ((t9-23 (method-of-type part-tracker activate))) + (t9-23 + (the-as part-tracker s4-3) + (-> obj process) + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) ) ) - (send-event (-> obj process) 'death-start (the-as death-info s3-0)) + (let ((s2-3 run-function-in-process) + (s1-3 s4-3) + (s0-3 part-tracker-init) + ) + (set! sv-416 0) + (set! sv-432 (the-as symbol #f)) + (set! sv-448 (the-as symbol #f)) + (set! sv-464 (the-as symbol #f)) + (set! sv-496 *launch-matrix*) + (set! sv-480 (-> sv-496 trans)) + (let ((v1-95 (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) quad))) + (set! (-> sv-480 quad) v1-95) + ) + ((the-as (function object object object object object object object object none) s2-3) + s1-3 + s0-3 + s3-0 + sv-416 + sv-432 + sv-448 + sv-464 + sv-496 + ) + ) + (-> s4-3 ppointer) ) ) - (else - (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) - ) + ) + ((= (-> (the-as basic s3-0) type) sound-spec) + (sound-play-by-spec + (the-as sound-spec s3-0) + (new-sound-id) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) + ) + ) + ((= (-> (the-as basic s3-0) type) death-info) + (when (and (logtest? (-> obj flags) (effect-control-flag ecf1)) (zero? (-> obj process draw death-timer))) + (let ((v1-106 (-> obj process draw))) + (let ((a1-51 (-> (the-as death-info s3-0) vertex-skip)) + (a0-77 + (max + 2 + (the-as int (/ (-> (the-as death-info s3-0) timer) (the-as uint (the int (-> *display* time-factor))))) + ) + ) + ) + (when (= (-> *setting-control* user-current video-mode) 'pal) + (if (< (the-as uint 1) a1-51) + (set! a1-51 (/ (the-as uint (* (the-as uint 50) a1-51)) (the-as uint 60))) + ) + ) + (let ((a2-37 (-> *display* frames (-> *display* last-screen) run-time))) + (cond + ((< 9000 a2-37) + (set! a1-51 (* a1-51 4)) + ) + ((< 7000 a2-37) + (set! a1-51 (* a1-51 2)) + ) + ) + ) + (set! (-> v1-106 death-vertex-skip) a1-51) + (set! (-> v1-106 death-effect) (-> (the-as death-info s3-0) effect)) + (set! (-> v1-106 death-timer) (the-as uint (+ a0-77 1))) + ) + (set! (-> v1-106 death-timer-org) (-> v1-106 death-timer)) + (set! (-> v1-106 death-draw-overlap) (-> (the-as death-info s3-0) overlap)) + ) + (when (-> (the-as death-info s3-0) sound) + (let* ((s2-5 obj) + (s1-4 (method-of-object s2-5 play-effect-sound)) + (s0-4 (-> (the-as death-info s3-0) sound)) + ) + (set! sv-512 (-> obj res)) + (let ((t1-12 (string->sound-name (symbol->string (-> (the-as death-info s3-0) sound))))) + (s1-4 s2-5 s0-4 arg1 s5-0 sv-512 t1-12) + ) + ) + ) + (send-event (-> obj process) 'death-start (the-as death-info s3-0)) + ) + ) + (else + (play-effect-sound obj arg0 arg1 s5-0 (-> obj res) (string->sound-name (symbol->string arg0))) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 11 of type effect-control @@ -1068,90 +1042,88 @@ ;; INFO: Used lq/sq (defmethod play-effect-sound effect-control ((obj effect-control) (arg0 symbol) (arg1 float) (arg2 int) (arg3 basic) (arg4 sound-name)) (local-vars (sv-112 res-tag) (sv-128 sound-name) (sv-144 basic) (sv-160 (function vector vector float))) - (with-pp - (set! sv-144 arg3) - (let ((s0-0 arg4) - (gp-0 (the-as object (new 'stack 'sound-spec))) - (s5-0 (if (< arg2 0) - (the-as vector #f) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data arg2)) - ) + (set! sv-144 arg3) + (let ((s0-0 arg4) + (gp-0 (the-as object (new 'stack 'sound-spec))) + (s5-0 (if (< arg2 0) + (the-as vector #f) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data arg2)) + ) + ) + ) + (set! (-> (the-as sound-spec gp-0) sound-name) s0-0) + (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask volume)) + (set! (-> (the-as sound-spec gp-0) pitch-mod) 0) + (set! (-> (the-as sound-spec gp-0) volume) 1024) + (set! sv-112 (new 'static 'res-tag)) + (let* ((t9-2 (method-of-type res-lump get-property-data)) + (a1-5 'effect-param) + (a2-1 'exact) + (a3-1 arg1) + (t0-1 #f) + (t1-1 (the-as (pointer res-tag) (& sv-112))) + (t2-0 *res-static-buf*) + (a1-6 (t9-2 (the-as res-lump sv-144) a1-5 a2-1 a3-1 (the-as pointer t0-1) t1-1 t2-0)) + ) + (when a1-6 + (effect-param->sound-spec + (the-as sound-spec gp-0) + (the-as (pointer float) a1-6) + (the-as int (-> sv-112 elt-count)) + (the-as process-focusable (-> obj process)) + ) + (if (logtest? (-> (the-as sound-spec gp-0) mask) (sound-mask unk)) + (return 0) + ) + ) + ) + (let ((f0-0 (-> *setting-control* user-current under-water-pitch-mod))) + (when (!= f0-0 0.0) + (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask pitch)) + (let ((f0-1 (* 2.0 f0-0))) + (set! (-> (the-as sound-spec gp-0) pitch-mod) + (- (-> (the-as sound-spec gp-0) pitch-mod) (the int (* 1524.0 f0-1))) ) ) - (set! (-> (the-as sound-spec gp-0) sound-name) s0-0) - (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask volume)) - (set! (-> (the-as sound-spec gp-0) pitch-mod) 0) - (set! (-> (the-as sound-spec gp-0) volume) 1024) - (set! sv-112 (new 'static 'res-tag)) - (let* ((t9-2 (method-of-type res-lump get-property-data)) - (a1-5 'effect-param) - (a2-1 'exact) - (a3-1 arg1) - (t0-1 #f) - (t1-1 (the-as (pointer res-tag) (& sv-112))) - (t2-0 *res-static-buf*) - (a1-6 (t9-2 (the-as res-lump sv-144) a1-5 a2-1 a3-1 (the-as pointer t0-1) t1-1 t2-0)) - ) - (when a1-6 - (effect-param->sound-spec - (the-as sound-spec gp-0) - (the-as (pointer float) a1-6) - (the-as int (-> sv-112 elt-count)) - (the-as process-focusable (-> obj process)) - ) - (if (logtest? (-> (the-as sound-spec gp-0) mask) (sound-mask unk)) - (return 0) - ) - ) ) - (let ((f0-0 (-> *setting-control* user-current under-water-pitch-mod))) - (when (!= f0-0 0.0) - (logior! (-> (the-as sound-spec gp-0) mask) (sound-mask pitch)) - (let ((f0-1 (* 2.0 f0-0))) - (set! (-> (the-as sound-spec gp-0) pitch-mod) - (- (-> (the-as sound-spec gp-0) pitch-mod) (the int (* 1524.0 f0-1))) - ) - ) - ) - ) - (if (or (and (nonzero? (-> (the-as sound-spec gp-0) fo-max)) - (let ((f30-0 (* 4096.0 (the float (-> (the-as sound-spec gp-0) fo-max))))) - (set! sv-160 vector-vector-distance) - (let ((a0-8 (ear-trans 0)) - (a1-7 s5-0) - ) - (< f30-0 (sv-160 a0-8 a1-7)) - ) + ) + (if (or (and (nonzero? (-> (the-as sound-spec gp-0) fo-max)) + (let ((f30-0 (* 4096.0 (the float (-> (the-as sound-spec gp-0) fo-max))))) + (set! sv-160 vector-vector-distance) + (let ((a0-8 (ear-trans 0)) + (a1-7 s5-0) + ) + (< f30-0 (sv-160 a0-8 a1-7)) ) ) - (= (-> (the-as (pointer int8) gp-0) 9) 126) - ) - (return 0) - ) - (when *debug-effect-control* - (set! sv-128 s0-0) - (string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128))) - (format - #t - "(~5D) effect sound ~A ~A (~S) frame ~F joint ~D " - (-> pp clock frame-counter) - (-> obj process name) - arg0 - *temp-string* - arg1 - arg2 - ) - (format - #t - "volume: ~f pitch-mod: ~f~%" - (* 0.09765625 (the float (-> (the-as sound-spec gp-0) volume))) - (* 0.000656168 (the float (-> (the-as sound-spec gp-0) pitch-mod))) - ) + ) + (= (-> (the-as (pointer int8) gp-0) 9) 126) + ) + (return 0) + ) + (when *debug-effect-control* + (set! sv-128 s0-0) + (string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128))) + (format + #t + "(~5D) effect sound ~A ~A (~S) frame ~F joint ~D " + (current-time) + (-> obj process name) + arg0 + *temp-string* + arg1 + arg2 + ) + (format + #t + "volume: ~f pitch-mod: ~f~%" + (* 0.09765625 (the float (-> (the-as sound-spec gp-0) volume))) + (* 0.000656168 (the float (-> (the-as sound-spec gp-0) pitch-mod))) ) - (sound-play-by-spec (the-as sound-spec gp-0) (new-sound-id) s5-0) ) - 0 + (sound-play-by-spec (the-as sound-spec gp-0) (new-sound-id) s5-0) ) + 0 ) ;; definition for function target-land-effect diff --git a/test/decompiler/reference/jak2/engine/game/game-info_REF.gc b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc index f3499b2ce1..06510085b3 100644 --- a/test/decompiler/reference/jak2/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc @@ -790,8 +790,8 @@ (set! (-> v1-9 origin z) (the float (/ (-> s3-0 z) 16))) ) (set! (-> s5-0 flags) (font-flags shadow kerning large)) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (+ arg2 -75)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (+ arg2 -75)) (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) (let ((s2-0 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) @@ -800,9 +800,9 @@ (suspend) ) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.25)) - (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) s4-1)) 0.0 150.0)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.25)) + (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (current-time) s4-1)) 0.0 150.0)) (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) (let ((s3-2 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) @@ -1239,8 +1239,8 @@ process (lambda :behavior process ((arg0 string)) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 10)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 10)) (format *stdcon* "~S~%" arg0) (suspend) ) diff --git a/test/decompiler/reference/jak2/engine/game/main_REF.gc b/test/decompiler/reference/jak2/engine/game/main_REF.gc index 5ca0f94787..fd719e304c 100644 --- a/test/decompiler/reference/jak2/engine/game/main_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/main_REF.gc @@ -16,7 +16,6 @@ ;; definition for function letterbox ;; WARN: Return type mismatch pointer vs none. -;; ERROR: Failed store: (s.w! (+ v1-7 8) 0) at op 30 (defun letterbox () (with-dma-buffer-add-bucket ((s5-0 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id screen-filter) @@ -52,7 +51,6 @@ ;; definition for function blackout ;; WARN: Return type mismatch pointer vs none. -;; ERROR: Failed store: (s.w! (+ v1-6 8) 0) at op 21 (defun blackout () (with-dma-buffer-add-bucket ((s5-0 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id debug-no-zbuf2) @@ -261,7 +259,6 @@ ;; definition for method 9 of type screen-filter ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ a0-2 8) 0) at op 28 (defmethod draw screen-filter ((obj screen-filter)) (local-vars (v1-1 float)) (rlet ((vf0 :class vf) @@ -343,7 +340,6 @@ (define *first-boot* #t) ;; definition for function main-cheats -;; ERROR: Failed store: (s.w! (+ v1-77 8) 0) at op 163 (defun main-cheats () (when (and (cpad-hold? 0 l3) (or *cheat-mode* (not (demo?)))) ((lambda () @@ -1169,24 +1165,23 @@ (else (when (process-spawn-function process - (lambda ((arg0 time-frame)) (with-pp - (set-blackout-frames (seconds 100)) - (set! (-> *setting-control* user-default allow-pause) #f) - (set! (-> *setting-control* user-default allow-progress) #f) - (apply-settings *setting-control*) - (set! (-> *setting-control* user-default sfx-volume) 0.0) - (set! (-> *setting-control* user-default music-volume) 0.0) - (set! (-> *setting-control* user-default dialog-volume) 0.0) - (set! (-> *setting-control* user-default ambient-volume) 0.0) - (let ((s5-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) s5-0) (seconds 0.1)) - (suspend) - ) - ) - (kernel-shutdown) - (none) - ) - ) + (lambda ((arg0 time-frame)) + (set-blackout-frames (seconds 100)) + (set! (-> *setting-control* user-default allow-pause) #f) + (set! (-> *setting-control* user-default allow-progress) #f) + (apply-settings *setting-control*) + (set! (-> *setting-control* user-default sfx-volume) 0.0) + (set! (-> *setting-control* user-default music-volume) 0.0) + (set! (-> *setting-control* user-default dialog-volume) 0.0) + (set! (-> *setting-control* user-default ambient-volume) 0.0) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.1)) + (suspend) + ) + ) + (kernel-shutdown) + (none) + ) (if (= *master-exit* 'movie) 2 1 @@ -1209,7 +1204,6 @@ ;; definition for function end-display ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ v1-37 8) 0) at op 87 (defun end-display ((arg0 display)) (let ((s5-0 (-> (if *debug-segment* (-> arg0 frames (-> arg0 on-screen) debug-buf) diff --git a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc index 21a120a20e..708585a5f7 100644 --- a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc @@ -1591,11 +1591,11 @@ ) ) (logior! (-> self flags) (fail-mission-flags famflags-1)) - (set! (-> self grabbed-time) (-> self clock frame-counter)) + (set! (-> self grabbed-time) (current-time)) (when (not (logtest? (-> self flags) (fail-mission-flags famflags-3))) (when (not (logtest? (-> self flags) (fail-mission-flags famflags-5))) - (while (< (- (-> self clock frame-counter) (-> self grabbed-time)) (seconds 1.5)) - (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self grabbed-time))) 0.0 450.0))) + (while (< (- (current-time) (-> self grabbed-time)) (seconds 1.5)) + (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self grabbed-time))) 0.0 450.0))) (set-filter-color! (lerp-scale 1.0 1.25 f30-0 0.0 1.0) (lerp-scale 1.0 0.875 f30-0 0.0 1.0) @@ -1618,7 +1618,7 @@ (((fail-mission-message fammsg-0)) (until #f (when (or (and (logtest? (-> self flags) (fail-mission-flags famflags-0)) - (>= (- (-> self clock frame-counter) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) + (>= (- (current-time) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) ) (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logtest? (-> self flags) (fail-mission-flags famflags-3)) @@ -1713,9 +1713,9 @@ ) :code (behavior () (local-vars (a1-10 basic)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) - (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 270.0))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) + (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 270.0))) (when *sound-player-enable* (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-6 command) (sound-command set-param)) @@ -1726,7 +1726,7 @@ ) ) ) - (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 300.0))) + (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 300.0))) (set-filter-color! (lerp-scale 1.0 1.25 f30-1 0.0 1.0) (lerp-scale 1.0 0.875 f30-1 0.0 1.0) @@ -1889,7 +1889,7 @@ (set! (-> self lev-name) arg1) (add-setting! 'task arg0 0.0 0) (add-setting! 'task-manager (process->ppointer self) 0.0 0) - (set! (-> self intro-time) (-> self clock frame-counter)) + (set! (-> self intro-time) (current-time)) (set! (-> self fail-on-death?) (not (logtest? (-> arg0 flags) (game-task-node-flag no-fail-on-death)))) (when arg1 (let* ((v1-15 (level-get *level* arg1)) @@ -1917,29 +1917,27 @@ ;; definition for method 21 of type task-manager (defmethod check-time task-manager ((obj task-manager)) - (with-pp - (when (nonzero? (-> obj start-time)) - (let ((v1-3 (handle->process (-> obj hud-timer)))) - (if (and *target* (not v1-3)) - (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) - ) + (when (nonzero? (-> obj start-time)) + (let ((v1-3 (handle->process (-> obj hud-timer)))) + (if (and *target* (not v1-3)) + (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) + ) + ) + (let ((v1-15 (- (-> obj time-limit) (- (current-time) (-> obj start-time))))) + (let ((a0-15 *game-info*)) + (set! (-> a0-15 timer) v1-15) + (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) ) - (let ((v1-15 (- (-> obj time-limit) (- (-> pp clock frame-counter) (-> obj start-time))))) - (let ((a0-15 *game-info*)) - (set! (-> a0-15 timer) v1-15) - (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) - ) - (when (< v1-15 0) - (if *debug-segment* - (format #t "task failed: ran out of time~%") - ) - (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) - (go (method-of-object obj fail)) - ) + (when (< v1-15 0) + (if *debug-segment* + (format #t "task failed: ran out of time~%") + ) + (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) + (go (method-of-object obj fail)) ) ) - 0 ) + 0 ) ;; definition for method 19 of type task-manager @@ -2102,28 +2100,26 @@ ;; definition for method 22 of type task-manager ;; WARN: Return type mismatch object vs symbol. (defmethod task-manager-method-22 task-manager ((obj task-manager)) - (with-pp - (the-as - symbol - (and (or (not (logtest? (-> obj node-info flags) (game-task-node-flag city-wait))) - (let ((a0-2 (level-get-target-inside *level*))) - (cond - ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) - (set! (-> obj intro-time) (-> pp clock frame-counter)) - #f - ) - (else - #t - ) + (the-as + symbol + (and (or (not (logtest? (-> obj node-info flags) (game-task-node-flag city-wait))) + (let ((a0-2 (level-get-target-inside *level*))) + (cond + ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) + (set! (-> obj intro-time) (current-time)) + #f + ) + (else + #t ) ) ) - (or (zero? (-> obj info intro-delay)) - (>= (- (-> pp clock frame-counter) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) - ) - (and *target* (not (logtest? (focus-status dead teleporting) (-> *target* focus-status)))) - ) - ) + ) + (or (zero? (-> obj info intro-delay)) + (>= (- (current-time) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) + ) + (and *target* (not (logtest? (focus-status dead teleporting) (-> *target* focus-status)))) + ) ) ) @@ -2217,7 +2213,7 @@ (t9-3) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (logtest? (-> self info mask) (task-manager-mask resolution-scene)) (let ((gp-2 (ppointer->handle (process-spawn scene-player diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc index 04a7bbd4f2..9cbbd74173 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc @@ -787,7 +787,7 @@ ;; definition for function cam-master-effect ;; WARN: Return type mismatch int vs none. (defbehavior cam-master-effect camera-master () - (when (not (or (movie?) (>= (+ (-> self clock frame-counter) (seconds -10)) (-> self water-drip-time)))) + (when (not (or (movie?) (>= (+ (current-time) (seconds -10)) (-> self water-drip-time)))) (set! (-> *part-id-table* 46 init-specs 1 initial-valuef) (-> self water-drip-mult)) (set! (-> *part-id-table* 45 init-specs 1 initial-valuef) (* 0.9 (-> self water-drip-mult))) (set! (-> *part-id-table* 43 init-specs 11 initial-valuef) (* -2.7306666 (-> self water-drip-speed))) diff --git a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc index 70649bc3ef..7380db0163 100644 --- a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc @@ -1039,87 +1039,85 @@ ;; definition for method 9 of type sparticle-launch-control ;; WARN: Return type mismatch int vs none. (defmethod initialize sparticle-launch-control ((obj sparticle-launch-control) (arg0 sparticle-launch-group) (arg1 process)) - (with-pp - (let ((s5-0 0)) - (set! (-> obj group) arg0) - (set! (-> obj proc) (the-as process-drawable arg1)) - (set! (-> obj local-clock) 0) - (set! (-> obj fade) 1.0) - (set! (-> obj matrix) 0) - (set! (-> obj last-spawn-frame) (the-as int (+ (-> *display* real-frame-clock integral-frame-counter) -2))) - (set! (-> obj last-spawn-time) 0) - (if (logtest? (-> obj group flags) (sp-group-flag unk-4)) - (quaternion->matrix (-> obj origin) (-> (the-as process-drawable arg1) root quat)) - (matrix-identity! (-> obj origin)) - ) - (when (logtest? (-> arg0 flags) (sp-group-flag unk-6)) - (let ((f0-1 (-> arg0 rotate-x)) - (f1-0 (-> arg0 rotate-y)) - (f2-0 (-> arg0 rotate-z)) - (t9-2 matrix-rotate-xyz!) - (a0-3 (new 'stack-no-clear 'matrix)) - (a1-2 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-2 x) f0-1) - (set! (-> a1-2 y) f1-0) - (set! (-> a1-2 z) f2-0) - (set! (-> a1-2 w) 1.0) - (let ((a1-3 (t9-2 a0-3 a1-2))) - (matrix*! (-> obj origin) a1-3 (-> obj origin)) + (let ((s5-0 0)) + (set! (-> obj group) arg0) + (set! (-> obj proc) (the-as process-drawable arg1)) + (set! (-> obj local-clock) 0) + (set! (-> obj fade) 1.0) + (set! (-> obj matrix) 0) + (set! (-> obj last-spawn-frame) (the-as int (+ (-> *display* real-frame-clock integral-frame-counter) -2))) + (set! (-> obj last-spawn-time) 0) + (if (logtest? (-> obj group flags) (sp-group-flag unk-4)) + (quaternion->matrix (-> obj origin) (-> (the-as process-drawable arg1) root quat)) + (matrix-identity! (-> obj origin)) + ) + (when (logtest? (-> arg0 flags) (sp-group-flag unk-6)) + (let ((f0-1 (-> arg0 rotate-x)) + (f1-0 (-> arg0 rotate-y)) + (f2-0 (-> arg0 rotate-z)) + (t9-2 matrix-rotate-xyz!) + (a0-3 (new 'stack-no-clear 'matrix)) + (a1-2 (new 'stack-no-clear 'vector)) ) + (set! (-> a1-2 x) f0-1) + (set! (-> a1-2 y) f1-0) + (set! (-> a1-2 z) f2-0) + (set! (-> a1-2 w) 1.0) + (let ((a1-3 (t9-2 a0-3 a1-2))) + (matrix*! (-> obj origin) a1-3 (-> obj origin)) ) ) - (when (logtest? (-> arg0 flags) (sp-group-flag unk-7)) - (let ((a1-4 (new 'stack-no-clear 'vector))) - (set! (-> a1-4 x) (-> arg0 scale-x)) - (set! (-> a1-4 y) (-> arg0 scale-y)) - (set! (-> a1-4 z) (-> arg0 scale-z)) - (set! (-> a1-4 w) 1.0) - (set! (-> a1-4 w) 1.0) - (scale-matrix! (-> obj origin) a1-4 (-> obj origin)) - ) - ) - (dotimes (s3-0 (-> arg0 length)) - (let* ((a0-7 (-> arg0 launcher s3-0)) - (a1-6 (-> *part-id-table* (-> a0-7 launcher))) - (v1-29 (-> obj data s5-0)) - ) - (when (nonzero? a1-6) - (set! (-> v1-29 group-item) a0-7) - (cond - ((= (-> a1-6 type) sparticle-launcher) - (set! (-> v1-29 accum) 0.0) - (set! (-> v1-29 spawn-time) (the-as uint (+ (-> pp clock frame-counter) (seconds -100)))) - (set! (-> v1-29 offset) (the-as uint (-> a0-7 offset))) - (set! (-> v1-29 randomize) (the-as uint 0)) - (cond - ((logtest? (-> a0-7 flags) (sp-group-item-flag start-dead)) - (logclear! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) - (set! (-> v1-29 center) #f) - (set! (-> v1-29 sprite3d) #f) - (set! (-> v1-29 sprite) #f) - ) - (else - (logior! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) - (set! (-> v1-29 center) (-> obj origin trans)) - (set! (-> v1-29 sprite3d) #f) - (set! (-> v1-29 sprite) #f) - ) - ) - (+! s5-0 1) - ) - (else - (format 0 "initialize called with non-particle-launcher~%") - ) - ) - ) - ) - ) - (set! (-> obj length) s5-0) ) - 0 - (none) + (when (logtest? (-> arg0 flags) (sp-group-flag unk-7)) + (let ((a1-4 (new 'stack-no-clear 'vector))) + (set! (-> a1-4 x) (-> arg0 scale-x)) + (set! (-> a1-4 y) (-> arg0 scale-y)) + (set! (-> a1-4 z) (-> arg0 scale-z)) + (set! (-> a1-4 w) 1.0) + (set! (-> a1-4 w) 1.0) + (scale-matrix! (-> obj origin) a1-4 (-> obj origin)) + ) + ) + (dotimes (s3-0 (-> arg0 length)) + (let* ((a0-7 (-> arg0 launcher s3-0)) + (a1-6 (-> *part-id-table* (-> a0-7 launcher))) + (v1-29 (-> obj data s5-0)) + ) + (when (nonzero? a1-6) + (set! (-> v1-29 group-item) a0-7) + (cond + ((= (-> a1-6 type) sparticle-launcher) + (set! (-> v1-29 accum) 0.0) + (set! (-> v1-29 spawn-time) (the-as uint (+ (current-time) (seconds -100)))) + (set! (-> v1-29 offset) (the-as uint (-> a0-7 offset))) + (set! (-> v1-29 randomize) (the-as uint 0)) + (cond + ((logtest? (-> a0-7 flags) (sp-group-item-flag start-dead)) + (logclear! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) + (set! (-> v1-29 center) #f) + (set! (-> v1-29 sprite3d) #f) + (set! (-> v1-29 sprite) #f) + ) + (else + (logior! (-> v1-29 flags) (sp-launch-state-flags launcher-active)) + (set! (-> v1-29 center) (-> obj origin trans)) + (set! (-> v1-29 sprite3d) #f) + (set! (-> v1-29 sprite) #f) + ) + ) + (+! s5-0 1) + ) + (else + (format 0 "initialize called with non-particle-launcher~%") + ) + ) + ) + ) + ) + (set! (-> obj length) s5-0) ) + 0 + (none) ) ;; definition for method 9 of type sparticle-launch-group @@ -1301,7 +1299,7 @@ (if (not (or (is-visible? obj arg0) (logtest? (-> obj group flags) (sp-group-flag always-draw screen-space)))) (return 0) ) - (let ((s4-0 (the-as int (-> pp clock frame-counter))) + (let ((s4-0 (the-as int (current-time))) (s5-0 (-> obj last-spawn-time)) ) (let ((v1-10 (-> *display* real-frame-clock integral-frame-counter))) @@ -2391,7 +2389,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/load/load-state_REF.gc b/test/decompiler/reference/jak2/engine/load/load-state_REF.gc index df7d0b14f7..dfe645a496 100644 --- a/test/decompiler/reference/jak2/engine/load/load-state_REF.gc +++ b/test/decompiler/reference/jak2/engine/load/load-state_REF.gc @@ -149,7 +149,7 @@ ;; definition for method 21 of type load-state ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ v1-22 12) a0-5) at op 48 +;; ERROR: Failed load: (set! a0-11 (l.wu (+ a0-10 12))) at op 138 (defmethod add-borrow-levels load-state ((obj load-state)) (dotimes (s5-0 6) (let ((a0-1 (-> obj want s5-0 name))) @@ -318,7 +318,7 @@ (return #f) ) (if *display-load-commands* - (format 0 "NOTICE: ~D: ~f: execute command ~A~%" (-> pp clock frame-counter) f0-0 s3-0) + (format 0 "NOTICE: ~D: ~f: execute command ~A~%" (current-time) f0-0 s3-0) ) (cond ((pair? (car s3-0)) diff --git a/test/decompiler/reference/jak2/engine/load/loader_REF.gc b/test/decompiler/reference/jak2/engine/load/loader_REF.gc index d3f799a793..c1d2915072 100644 --- a/test/decompiler/reference/jak2/engine/load/loader_REF.gc +++ b/test/decompiler/reference/jak2/engine/load/loader_REF.gc @@ -925,7 +925,7 @@ (set-setting! 'spooling (process->ppointer self) 0.0 0) (set-setting! 'spool-anim (-> gp-0 anim) 0.0 0) (apply-settings *setting-control*) - (set! (-> gp-0 old-time) (-> self clock frame-counter)) + (set! (-> gp-0 old-time) (current-time)) (while (< (-> gp-0 part) (-> gp-0 anim parts)) (when (> (-> gp-0 part) 0) (while (let ((v1-99 (file-status *art-control* (-> gp-0 anim name) (-> gp-0 part)))) @@ -1071,13 +1071,13 @@ (f28-0 (+ (-> gp-0 part-audio-start) (/ (the float (+ (-> s5-8 frames num-frames) -1)) f30-0))) ) (set! sv-176 (current-str-pos (-> gp-0 sid))) - (set! (-> gp-0 good-time) (-> self clock frame-counter)) + (set! (-> gp-0 good-time) (current-time)) (until (>= (the float v0-59) f28-0) (if (= (-> self skel root-channel 0) (-> self skel channel)) (logior! (-> self skel status) (joint-control-status valid-spooled-frame)) ) (if (or ((-> gp-0 break-func) self) - (and (<= sv-176 0) (>= (- (-> self clock frame-counter) (-> gp-0 good-time)) (seconds 4))) + (and (<= sv-176 0) (>= (- (current-time) (-> gp-0 good-time)) (seconds 4))) (and (< 300 (-> gp-0 good-count)) (<= sv-176 0)) ) (goto cfg-130) @@ -1108,15 +1108,15 @@ (execute-commands-up-to *load-state* (ja-aframe-num 0)) (cond ((and (< (-> gp-0 old-pos) sv-176) (< -1 sv-176)) - (+! (-> gp-0 good-count) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) - (set! (-> gp-0 good-time) (-> self clock frame-counter)) + (+! (-> gp-0 good-count) (- (current-time) (-> self clock old-frame-counter))) + (set! (-> gp-0 good-time) (current-time)) ) (else 0 ) ) (set! (-> gp-0 old-pos) sv-176) - (set! (-> gp-0 old-time) (-> self clock frame-counter)) + (set! (-> gp-0 old-time) (current-time)) (suspend) (let* ((f26-0 (* (- (the float (current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0)) (f0-16 (if (str-id-is-playing? (the-as int (-> gp-0 sid))) diff --git a/test/decompiler/reference/jak2/engine/math/transformq_REF.gc b/test/decompiler/reference/jak2/engine/math/transformq_REF.gc index 97a03b0ea2..e8ccaaedbc 100644 --- a/test/decompiler/reference/jak2/engine/math/transformq_REF.gc +++ b/test/decompiler/reference/jak2/engine/math/transformq_REF.gc @@ -38,20 +38,19 @@ (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) ) (let ((f0-2 (-> obj old-y-angle-diff))) - (set! f30-0 (cond - ((or (= f0-2 0.0) - (and (< 0.0 f30-0) (< 0.0 f0-2)) - (or (and (< f30-0 0.0) (< f0-2 0.0)) - (>= (- (-> pp clock frame-counter) (-> obj angle-change-time)) (seconds 0.2)) - ) - ) - (set! (-> obj angle-change-time) (-> pp clock frame-counter)) - f30-0 - ) - (else - (* 0.000000001 f30-0) - ) - ) + (set! f30-0 + (cond + ((or (= f0-2 0.0) + (and (< 0.0 f30-0) (< 0.0 f0-2)) + (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) + ) + (set! (-> obj angle-change-time) (current-time)) + f30-0 + ) + (else + (* 0.000000001 f30-0) + ) + ) ) ) (set! (-> obj old-y-angle-diff) f30-0) diff --git a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc index 88a0ede198..7bbeb8594f 100644 --- a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc @@ -230,89 +230,87 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> pp clock frame-counter)) - ) - (enemy-method-129 self) - (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) - (if (-> self nav) - (enemy-method-100 self) - (enemy-method-103 self) - ) + (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) + (set! (-> self last-draw-time) (current-time)) ) - (when *target* - (if *target* - (look-at! - (-> *target* neck) - (the-as vector (-> self root-override2 root-prim prim-core)) - (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) - 'attacking - ) - self - ) - ) - ) - (when (nonzero? (-> self neck)) - (cond - ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) - (let ((a0-10 (handle->process (-> self focus handle)))) - (if a0-10 - (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) - ) - ) - ) - ((logtest? (-> self enemy-flags) (enemy-flag death-start)) - (let ((s5-1 (-> self move-dest)) - (v1-47 (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data (-> self enemy-info-override neck-joint)) - ) - ) - (a1-6 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-6 x) (-> s5-1 x)) - (set! (-> a1-6 y) (-> v1-47 y)) - (set! (-> a1-6 z) (-> s5-1 z)) - (set! (-> a1-6 w) 1.0) - (target-set! (-> self neck) a1-6) - ) - ) + (enemy-method-129 self) + (when (logtest? (enemy-flag use-trigger) (-> self enemy-flags)) + (if (-> self nav) + (enemy-method-100 self) + (enemy-method-103 self) ) - ) - (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> self auto-reset-penetrate-time)) (seconds 0.1)) - ) - (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) - (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) - (let ((v1-62 0)) - (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) - (set! v1-62 (logior (shl 1 32) v1-62)) - ) - (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) - ) - ) - (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) - (enemy-method-136 self) - ) - (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) - (enemy-method-54 self) - ) - (let ((v1-73 (-> self restore-nav-radius-time))) - (when (nonzero? v1-73) - (when (>= (-> pp clock frame-counter) v1-73) - (set! (-> self restore-nav-radius-time) 0) - (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) - ) - ) - ) - (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) - (joint-mod-debug-draw (-> self neck)) - ) - (ja-post) - 0 - (none) ) + (when *target* + (if *target* + (look-at! + (-> *target* neck) + (the-as vector (-> self root-override2 root-prim prim-core)) + (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) + 'attacking + ) + self + ) + ) + ) + (when (nonzero? (-> self neck)) + (cond + ((logtest? (-> self enemy-flags) (enemy-flag lock-focus)) + (let ((a0-10 (handle->process (-> self focus handle)))) + (if a0-10 + (target-set! (-> self neck) (get-trans (the-as process-focusable a0-10) 2)) + ) + ) + ) + ((logtest? (-> self enemy-flags) (enemy-flag death-start)) + (let ((s5-1 (-> self move-dest)) + (v1-47 (vector<-cspace! + (new 'stack-no-clear 'vector) + (-> self node-list data (-> self enemy-info-override neck-joint)) + ) + ) + (a1-6 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-6 x) (-> s5-1 x)) + (set! (-> a1-6 y) (-> v1-47 y)) + (set! (-> a1-6 z) (-> s5-1 z)) + (set! (-> a1-6 w) 1.0) + (target-set! (-> self neck) a1-6) + ) + ) + ) + ) + (when (and (logtest? (-> self enemy-flags) (enemy-flag attackable-backup)) + (>= (- (current-time) (-> self auto-reset-penetrate-time)) (seconds 0.1)) + ) + (logclear! (-> self enemy-flags) (enemy-flag attackable-backup)) + (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) + (let ((v1-62 0)) + (if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using)) + (set! v1-62 (logior (shl 1 32) v1-62)) + ) + (set! (-> self root-override2 penetrate-using) (the-as penetrate v1-62)) + ) + ) + (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) + (enemy-method-136 self) + ) + (if (logtest? (enemy-flag trackable-backup directed-ready) (-> self enemy-flags)) + (enemy-method-54 self) + ) + (let ((v1-73 (-> self restore-nav-radius-time))) + (when (nonzero? v1-73) + (when (>= (current-time) v1-73) + (set! (-> self restore-nav-radius-time) 0) + (set! (-> self root-override2 nav-radius) (-> self nav-radius-backup)) + ) + ) + ) + (if (and *debug-segment* (-> self enemy-info-override debug-draw-neck) (nonzero? (-> self neck))) + (joint-mod-debug-draw (-> self neck)) + ) + (ja-post) + 0 + (none) ) ;; definition for method 177 of type nav-enemy @@ -361,7 +359,7 @@ (cond ((logtest? (-> s5-0 state flags) (nav-state-flag blocked)) (if (zero? (-> obj blocked-start-time)) - (set! (-> obj blocked-start-time) (-> self clock frame-counter)) + (set! (-> obj blocked-start-time) (current-time)) ) ) (else @@ -1024,44 +1022,40 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-161 nav-enemy ((obj nav-enemy)) - (with-pp - (set! (-> obj enemy-flags) (the-as enemy-flag (logclear (-> obj enemy-flags) (enemy-flag enemy-flag39)))) - (set! (-> obj frustration-time) (-> pp clock frame-counter)) - (let ((v1-7 (handle->process (-> obj focus handle)))) - (if v1-7 - (set! (-> obj frustration-point quad) (-> (get-trans (the-as process-focusable v1-7) 1) quad)) - ) - ) - 0 - (none) + (set! (-> obj enemy-flags) (the-as enemy-flag (logclear (-> obj enemy-flags) (enemy-flag enemy-flag39)))) + (set! (-> obj frustration-time) (current-time)) + (let ((v1-7 (handle->process (-> obj focus handle)))) + (if v1-7 + (set! (-> obj frustration-point quad) (-> (get-trans (the-as process-focusable v1-7) 1) quad)) + ) ) + 0 + (none) ) ;; definition for method 160 of type nav-enemy (defmethod nav-enemy-method-160 nav-enemy ((obj nav-enemy)) - (with-pp - (let ((s5-0 (handle->process (-> obj focus handle)))) - (cond - ((or (not s5-0) - (< 6144.0 (vector-vector-distance (get-trans (the-as process-focusable s5-0) 1) (-> obj frustration-point))) - (< (-> obj enemy-info-override frustration-distance) - (vector-vector-xz-distance (get-trans (the-as process-focusable s5-0) 0) (-> obj root-override2 trans)) - ) - ) - (nav-enemy-method-161 obj) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj frustration-time)) - (+ (-> obj reaction-time) (-> obj enemy-info-override frustration-time)) - ) - (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag39) (-> obj enemy-flags)))) - 0 - ) + (let ((s5-0 (handle->process (-> obj focus handle)))) + (cond + ((or (not s5-0) + (< 6144.0 (vector-vector-distance (get-trans (the-as process-focusable s5-0) 1) (-> obj frustration-point))) + (< (-> obj enemy-info-override frustration-distance) + (vector-vector-xz-distance (get-trans (the-as process-focusable s5-0) 0) (-> obj root-override2 trans)) + ) + ) + (nav-enemy-method-161 obj) + ) + (else + (when (>= (- (current-time) (-> obj frustration-time)) + (+ (-> obj reaction-time) (-> obj enemy-info-override frustration-time)) + ) + (set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag39) (-> obj enemy-flags)))) + 0 ) ) ) - (none) ) + (none) ) ;; definition for method 162 of type nav-enemy @@ -1074,10 +1068,8 @@ ;; definition for method 163 of type nav-enemy (defmethod nav-enemy-method-163 nav-enemy ((obj nav-enemy)) - (with-pp - (let ((v1-0 (-> obj blocked-start-time))) - (and (nonzero? v1-0) (>= (- (-> pp clock frame-counter) v1-0) (-> obj enemy-info-override blocked-time))) - ) + (let ((v1-0 (-> obj blocked-start-time))) + (and (nonzero? v1-0) (>= (- (current-time) v1-0) (-> obj enemy-info-override blocked-time))) ) ) @@ -1553,10 +1545,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs time-frame. (defmethod nav-enemy-method-144 nav-enemy ((obj nav-enemy)) (set! (-> obj root-override2 nav-radius) 4.096) - (let ((s5-1 - (max (-> obj restore-nav-radius-time) (+ (-> self clock frame-counter) (get-rand-int-range obj 1500 2400))) - ) - ) + (let ((s5-1 (max (-> obj restore-nav-radius-time) (+ (current-time) (get-rand-int-range obj 1500 2400))))) (set! (-> obj restore-nav-radius-time) (the-as time-frame s5-1)) (the-as time-frame s5-1) ) @@ -1582,7 +1571,7 @@ This commonly includes things such as: (nav-enemy-method-176 self) (if (and (nav-enemy-method-163 self) (zero? (-> self restore-nav-radius-time)) - (>= (- (-> self clock frame-counter) (-> self blocked-start-time)) (seconds 4)) + (>= (- (current-time) (-> self blocked-start-time)) (seconds 4)) ) (nav-enemy-method-144 self) ) @@ -1600,14 +1589,14 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defbehavior nav-enemy-turn-to-face-dir nav-enemy ((arg0 vector) (arg1 float)) (local-vars (v1-18 symbol)) - (let ((s4-0 (-> self clock frame-counter))) + (let ((s4-0 (current-time))) (ja :group! (-> self draw art-group data (-> self enemy-info-override turn-anim))) (ja :num-func num-func-identity :frame-num 0.0) (until v1-18 (seek-toward-heading-vec! (-> self root-override2) arg0 (-> self nav max-rotation-rate) (seconds 0.02)) (suspend) (ja :num! (loop! 0.75)) - (set! v1-18 (or (>= (- (-> self clock frame-counter) s4-0) (seconds 10)) (enemy-method-94 self arg0 arg1))) + (set! v1-18 (or (>= (- (current-time) s4-0) (seconds 10)) (enemy-method-94 self arg0 arg1))) ) ) (forward-up->quaternion (-> self root-override2 quat) arg0 *y-vector*) @@ -2017,7 +2006,7 @@ This commonly includes things such as: (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (nav-enemy-method-163 self) (go-stare2 self) ) @@ -2054,7 +2043,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((a1-0 (new 'stack-no-clear 'vector))) (let ((a2-0 (-> self nav state))) (set! (-> a1-0 quad) (-> a2-0 target-post quad)) @@ -2089,14 +2078,14 @@ This commonly includes things such as: (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (nav-enemy-method-163 self) (go-stare2 self) ) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-virtual active) ) ) @@ -2107,7 +2096,7 @@ This commonly includes things such as: (go-flee self) ) (else - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-stare self) ) ) @@ -2158,7 +2147,7 @@ This commonly includes things such as: 0 (nav-enemy-method-167 self) (vector-reset! (-> self root-override2 transv)) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :exit (behavior () @@ -2219,11 +2208,9 @@ This commonly includes things such as: ) (let ((gp-0 (-> self focus aware))) (if (< (the-as int gp-0) 2) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (not (nav-enemy-method-163 self)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (not (nav-enemy-method-163 self))) (cond ((>= 1 (the-as int gp-0)) (go-virtual active) @@ -2232,7 +2219,7 @@ This commonly includes things such as: (if (and (get-enemy-target self) (not (and (-> self enemy-info-override use-frustration) (logtest? (enemy-flag enemy-flag39) (-> self enemy-flags))) ) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (go-hostile self) ) @@ -2245,7 +2232,7 @@ This commonly includes things such as: ) ((and (= gp-0 (enemy-aware enemy-aware-2)) (-> self enemy-info-override use-pacing) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (go-virtual pacing) ) @@ -2295,9 +2282,7 @@ This commonly includes things such as: ) :exit (-> (method-of-type nav-enemy stare) exit) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (not (nav-enemy-method-163 self)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (not (nav-enemy-method-163 self))) (let ((v1-6 (-> self focus aware))) (cond ((>= 1 (the-as int v1-6)) @@ -2315,14 +2300,14 @@ This commonly includes things such as: (ja-channel-push! 1 (seconds 0.2)) (let ((f30-0 (get-rand-float-range self 0.8 1.2))) (let ((gp-0 (get-rand-int-range self 60 210)) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) (f28-0 f30-0) ) (ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override idle-anim)) :num! (loop! f28-0) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) s5-0) gp-0) + (until (>= (- (current-time) s5-0) gp-0) (suspend) (ja :num! (loop! f28-0)) ) @@ -2358,7 +2343,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -2377,7 +2362,7 @@ This commonly includes things such as: (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self move-dest quad) (-> self root-override2 trans quad)) (set! (-> self state-timeout) (the-as time-frame (get-rand-int-range self 2100 3300))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (if (zero? (get-rand-int self 2)) (set! (-> self enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag40) (-> self enemy-flags)))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag40)))) @@ -2398,16 +2383,14 @@ This commonly includes things such as: ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 1 (the-as int gp-1)) (go-virtual active) ) (when (= gp-1 (enemy-aware enemy-aware-3)) - (when (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) - ) + (when (and (get-enemy-target self) (>= (- (current-time) (-> self starting-time)) (-> self reaction-time))) (nav-enemy-method-161 self) (go-virtual hostile) ) @@ -2418,16 +2401,14 @@ This commonly includes things such as: (if (nav-enemy-method-163 self) (go-stare2 self) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (nav-enemy-method-161 self) (go-stare2 self) ) ) ) (when (>= 1024.0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - (zero? (get-rand-int self 3)) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (zero? (get-rand-int self 3))) (nav-enemy-method-161 self) (go-stare2 self) ) @@ -2502,7 +2483,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior nav-enemy) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -2537,7 +2518,7 @@ This commonly includes things such as: ) (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :trans (behavior () @@ -2548,9 +2529,9 @@ This commonly includes things such as: ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (when (>= 1 (the-as int gp-1)) (nav-enemy-method-161 self) (if (-> self enemy-info-override use-stop-chase) @@ -2560,7 +2541,7 @@ This commonly includes things such as: ) (when (and (= gp-1 (enemy-aware enemy-aware-3)) (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) ) (nav-enemy-method-161 self) (go-hostile self) @@ -2665,7 +2646,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (let ((v1-3 (-> self focus aware))) (if (!= v1-3 (enemy-aware unaware)) (go-stare self) @@ -2965,7 +2946,7 @@ This commonly includes things such as: (let ((s5-1 2)) (logior! (-> self focus-status) (focus-status in-air)) (until (enemy-method-86 self) - (+! (-> gp-0 hang-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> gp-0 hang-time) (- (current-time) (-> self clock old-frame-counter))) (enemy-method-90 self s5-1 gp-0) (enemy-method-91 self s5-1 gp-0) (enemy-method-92 self s5-1 (the-as nav-poly gp-0)) diff --git a/test/decompiler/reference/jak2/engine/physics/chain-physics_REF.gc b/test/decompiler/reference/jak2/engine/physics/chain-physics_REF.gc index 45f9feec7e..26429f9501 100644 --- a/test/decompiler/reference/jak2/engine/physics/chain-physics_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/chain-physics_REF.gc @@ -70,7 +70,7 @@ ;; definition for method 10 of type chain-physics ;; WARN: Return type mismatch int vs none. (defmethod turn-off chain-physics ((obj chain-physics) (arg0 time-frame)) - (set! (-> obj turn-off-start) (-> self clock frame-counter)) + (set! (-> obj turn-off-start) (current-time)) (set! (-> obj turn-off-duration) arg0) 0 (none) @@ -135,11 +135,9 @@ 0.0 (fmin 1.0 - (parameter-ease-sin-clamp (- 1.0 (/ (the float (- (-> self clock frame-counter) (-> obj turn-off-start))) - (the float (-> obj turn-off-duration)) - ) - ) - ) + (parameter-ease-sin-clamp + (- 1.0 (/ (the float (- (current-time) (-> obj turn-off-start))) (the float (-> obj turn-off-duration)))) + ) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc index 61d1c6aff6..580d966954 100644 --- a/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc @@ -882,7 +882,6 @@ ) ;; definition for method 10 of type rigid-body-control -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch int vs object. (defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) (let* ((s4-1 (max 1 (min 4 (+ (the int (* 0.9999 (/ arg1 arg2))) 1)))) @@ -1173,7 +1172,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-42 rigid-body-object ((obj rigid-body-object)) (logior! (-> obj flags) (rigid-body-object-flag disturbed)) - (set! (-> obj disturbed-time) (-> self clock frame-counter)) + (set! (-> obj disturbed-time) (current-time)) (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) (rigid-body-object-method-38 obj) ) @@ -1429,7 +1428,7 @@ This commonly includes things such as: (when s3-0 (when (logtest? (-> s3-0 mask) (process-mask target)) (logior! (-> obj flags) (rigid-body-object-flag player-touching)) - (set! (-> obj player-touch-time) (-> self clock frame-counter)) + (set! (-> obj player-touch-time) (current-time)) (rigid-body-object-method-42 obj) ) (if (not (logtest? (-> s3-0 mask) (process-mask target))) diff --git a/test/decompiler/reference/jak2/engine/physics/trajectory_REF.gc b/test/decompiler/reference/jak2/engine/physics/trajectory_REF.gc index 3b271cb283..46a402f7ee 100644 --- a/test/decompiler/reference/jak2/engine/physics/trajectory_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/trajectory_REF.gc @@ -148,7 +148,7 @@ ;; definition for method 9 of type impact-control ;; INFO: Used lq/sq (defmethod initialize impact-control ((obj impact-control) (arg0 process-drawable) (arg1 int) (arg2 float) (arg3 collide-spec)) - (set! (-> obj start-time) (-> self clock frame-counter)) + (set! (-> obj start-time) (current-time)) (set! (-> obj process) (the-as (pointer process-drawable) (process->ppointer arg0))) (set! (-> obj joint) arg1) (set! (-> obj radius) arg2) diff --git a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc index 91228a4fd7..2d43617bc6 100644 --- a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc +++ b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc @@ -966,7 +966,7 @@ (set! (-> s5-0 root-channel) (-> s5-0 channel)) (set! (-> s5-0 blend-index) (the-as uint -1)) (dotimes (v1-19 arg0) - (set! (-> s5-0 root-channel v1-19 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> s5-0 root-channel v1-19 eval-time) (the-as uint (current-time))) (set! (-> s5-0 root-channel v1-19 group-sub-index) v1-19) (set! (-> s5-0 root-channel v1-19 command) (if (zero? v1-19) (joint-control-command push) @@ -1032,7 +1032,7 @@ ) (set! (-> s5-0 active-channels) (the-as uint (+ arg0 1 (-> s5-0 active-channels)))) (dotimes (v1-38 arg0) - (set! (-> s5-0 root-channel v1-38 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> s5-0 root-channel v1-38 eval-time) (the-as uint (current-time))) (set! (-> s5-0 root-channel v1-38 group-sub-index) v1-38) (set! (-> s5-0 root-channel v1-38 command) (if (zero? v1-38) (joint-control-command push) @@ -1090,7 +1090,7 @@ (else (let ((v0-1 (-> self skel channel (+ (-> self skel active-channels) (-> self skel float-channels))))) (+! (-> self skel float-channels) 1) - (set! (-> v0-1 eval-time) (the-as uint (-> self clock frame-counter))) + (set! (-> v0-1 eval-time) (the-as uint (current-time))) (set! (-> v0-1 group-sub-index) 0) (set! (-> v0-1 command) (joint-control-command float)) (set! (-> v0-1 frame-interp 0) arg2) @@ -1153,7 +1153,7 @@ (defbehavior ja-eval process-drawable () (let ((gp-0 (-> self skel root-channel 0)) (s5-0 (-> self skel channel (+ (-> self skel active-channels) (-> self skel float-channels)))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) (while (< (the-as int gp-0) (the-as int s5-0)) (cond @@ -1175,7 +1175,7 @@ (defbehavior ja-blend-eval process-drawable () (let ((gp-0 (-> self skel root-channel)) (s5-0 (the-as joint-control-channel (-> self skel channel))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) (when (and (nonzero? (-> self skel active-channels)) (!= gp-0 s5-0)) (while (< (the-as int s5-0) (the-as int gp-0)) @@ -1245,92 +1245,90 @@ ;; ERROR: Unsupported inline assembly instruction kind - [jr ra] (defmethod evaluate-joint-control process-drawable ((obj process-drawable)) (local-vars (s1-0 joint-control-channel) (s2-0 int) (s4-0 uint) (s7-0 none) (ra-0 int)) - (with-pp - (let ((gp-0 (-> obj skel))) - (let ((a0-1 (-> gp-0 top-anim))) - (b! (not a0-1) cfg-2 :delay (empty-form)) - (update a0-1) - ) - (until (= s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) - (label cfg-2) - (set! s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) - (let ((s3-0 (-> pp clock frame-counter))) - (b! (logtest? (-> obj draw status) (draw-control-status no-draw)) cfg-45 :delay (empty-form)) - (set! s2-0 0) - (b! #t cfg-30 :delay (nop!)) - (label cfg-4) - (set! s1-0 (-> gp-0 channel s2-0)) - (b! - (not (and (logtest? (-> s1-0 command) (joint-control-command thirty-two)) (!= (-> s1-0 eval-time) s3-0))) - cfg-10 - :delay (empty-form) - ) + (let ((gp-0 (-> obj skel))) + (let ((a0-1 (-> gp-0 top-anim))) + (b! (not a0-1) cfg-2 :delay (empty-form)) + (update a0-1) + ) + (until (= s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) + (label cfg-2) + (set! s4-0 (+ (-> gp-0 active-channels) (-> gp-0 float-channels))) + (let ((s3-0 (current-time))) + (b! (logtest? (-> obj draw status) (draw-control-status no-draw)) cfg-45 :delay (empty-form)) + (set! s2-0 0) + (b! #t cfg-30 :delay (nop!)) + (label cfg-4) + (set! s1-0 (-> gp-0 channel s2-0)) + (b! + (not (and (logtest? (-> s1-0 command) (joint-control-command thirty-two)) (!= (-> s1-0 eval-time) s3-0))) + cfg-10 + :delay (empty-form) ) - (joint-control-channel-eval s1-0) ) - (label cfg-10) - (let ((v1-19 (-> s1-0 command))) - (b! (!= v1-19 (joint-control-command stack)) cfg-12 :delay (nop!)) - (b! #t cfg-29 :delay (nop!)) - (label cfg-12) - (cond - ((= v1-19 (joint-control-command stack1)) - (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 0) (-> s1-0 frame-interp 0)) - (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 1) (-> s1-0 frame-interp 1)) - ) - (else - (let ((s0-0 (-> s1-0 frame-group))) - (when (not (and s0-0 (nonzero? s0-0) (= (logand (the-as int s0-0) 7) 4) (= (-> s0-0 type) art-joint-anim))) - (go process-drawable-art-error "joint-anim") - (.lw ra-0 return-from-thread s7-0) - (.jr ra-0) - (nop!) - 0 - ) - (when (nonzero? (-> s0-0 frames flags)) - (cond - ((logtest? (-> s0-0 frames flags) 2) - (update-time-stamp *anim-manager* s0-0) - ) - ((logtest? (-> s0-0 frames flags) 1) - (decompress *anim-manager* s0-0) - ) - ) - ) - (set! (-> s1-0 frame-num) - (fmax 0.0 (fmin (-> s1-0 frame-num) (the float (+ (-> s0-0 frames num-frames) -1)))) - ) + (joint-control-channel-eval s1-0) + ) + (label cfg-10) + (let ((v1-19 (-> s1-0 command))) + (b! (!= v1-19 (joint-control-command stack)) cfg-12 :delay (nop!)) + (b! #t cfg-29 :delay (nop!)) + (label cfg-12) + (cond + ((= v1-19 (joint-control-command stack1)) + (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 0) (-> s1-0 frame-interp 0)) + (set! (-> gp-0 channel (+ s2-0 -1) frame-interp 1) (-> s1-0 frame-interp 1)) + ) + (else + (let ((s0-0 (-> s1-0 frame-group))) + (when (not (and s0-0 (nonzero? s0-0) (= (logand (the-as int s0-0) 7) 4) (= (-> s0-0 type) art-joint-anim))) + (go process-drawable-art-error "joint-anim") + (.lw ra-0 return-from-thread s7-0) + (.jr ra-0) + (nop!) + 0 ) + (when (nonzero? (-> s0-0 frames flags)) + (cond + ((logtest? (-> s0-0 frames flags) 2) + (update-time-stamp *anim-manager* s0-0) + ) + ((logtest? (-> s0-0 frames flags) 1) + (decompress *anim-manager* s0-0) + ) + ) + ) + (set! (-> s1-0 frame-num) + (fmax 0.0 (fmin (-> s1-0 frame-num) (the float (+ (-> s0-0 frames num-frames) -1)))) + ) ) ) ) - (label cfg-29) - (+! s2-0 1) - (label cfg-30) - (b! (< s2-0 (the-as int s4-0)) cfg-4) - (dotimes (v1-56 (the-as int s4-0)) - (set! (-> gp-0 channel v1-56 frame-interp 0) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 0)))) - (set! (-> gp-0 channel v1-56 frame-interp 1) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 1)))) - ) - (if (or (zero? s4-0) (or (not (-> gp-0 root-channel 0 frame-group)) (zero? (-> gp-0 active-channels)))) - (logior! (-> obj draw status) (draw-control-status no-draw-temp)) - ) - (if (logtest? (-> obj skel status) (joint-control-status blend-shape blend-shape-valid)) - (merc-blend-shape obj) - ) - (if (logtest? (-> obj skel status) (joint-control-status eye-anim-valid eye-anim)) - (merc-eye-anim obj) - ) - (label cfg-45) - (let ((a0-26 (-> gp-0 effect))) - (if a0-26 - (update-effects a0-26) - ) - ) ) - 0 - (none) + (label cfg-29) + (+! s2-0 1) + (label cfg-30) + (b! (< s2-0 (the-as int s4-0)) cfg-4) + (dotimes (v1-56 (the-as int s4-0)) + (set! (-> gp-0 channel v1-56 frame-interp 0) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 0)))) + (set! (-> gp-0 channel v1-56 frame-interp 1) (fmax 0.0 (fmin 1.0 (-> gp-0 channel v1-56 frame-interp 1)))) + ) + (if (or (zero? s4-0) (or (not (-> gp-0 root-channel 0 frame-group)) (zero? (-> gp-0 active-channels)))) + (logior! (-> obj draw status) (draw-control-status no-draw-temp)) + ) + (if (logtest? (-> obj skel status) (joint-control-status blend-shape blend-shape-valid)) + (merc-blend-shape obj) + ) + (if (logtest? (-> obj skel status) (joint-control-status eye-anim-valid eye-anim)) + (merc-eye-anim obj) + ) + (label cfg-45) + (let ((a0-26 (-> gp-0 effect))) + (if a0-26 + (update-effects a0-26) + ) + ) ) + 0 + (none) ) ;; definition for function ja-post @@ -1467,33 +1465,31 @@ (arg5 float) (arg6 symbol) ) - (with-pp - (when (!= (-> obj interp) 0.0) - (let ((v1-1 obj)) - (set! (-> v1-1 frame-targ) arg0) - (set! (-> v1-1 frame-speed) arg4) - (set! (-> v1-1 frame-start) (/ arg1 (-> arg0 artist-step))) - (set! (-> v1-1 frame-blend) (if (zero? arg2) - 0.0 - (/ 5.0 (+ 5.0 (the float arg2))) - ) - ) - (set! (-> v1-1 frame-post-blend) (if (zero? arg3) - 0.0 - (/ 5.0 (+ 5.0 (the float arg3))) - ) - ) - (set! (-> v1-1 frame-post-end) (/ arg5 (-> arg0 artist-step))) - (set! (-> v1-1 frame-push-time) (-> pp clock frame-counter)) - (set! (-> v1-1 frame-post-put-away) #f) - ) - (if arg6 - (sound-play-by-spec (the-as sound-spec arg6) (new-sound-id) (the-as vector #t)) - ) + (when (!= (-> obj interp) 0.0) + (let ((v1-1 obj)) + (set! (-> v1-1 frame-targ) arg0) + (set! (-> v1-1 frame-speed) arg4) + (set! (-> v1-1 frame-start) (/ arg1 (-> arg0 artist-step))) + (set! (-> v1-1 frame-blend) (if (zero? arg2) + 0.0 + (/ 5.0 (+ 5.0 (the float arg2))) + ) + ) + (set! (-> v1-1 frame-post-blend) (if (zero? arg3) + 0.0 + (/ 5.0 (+ 5.0 (the float arg3))) + ) + ) + (set! (-> v1-1 frame-post-end) (/ arg5 (-> arg0 artist-step))) + (set! (-> v1-1 frame-push-time) (current-time)) + (set! (-> v1-1 frame-post-put-away) #f) ) - 0 - (none) + (if arg6 + (sound-play-by-spec (the-as sound-spec arg6) (new-sound-id) (the-as vector #t)) + ) ) + 0 + (none) ) ;; definition for method 10 of type top-anim-joint-control @@ -1505,230 +1501,228 @@ (the-as process-drawable (-> v1-0 0 self)) ) ) + (s3-0 (get-channel obj 1)) + (s5-0 (get-channel obj 0)) + (s4-0 (-> obj base-anim)) ) - (let ((s3-0 (get-channel obj 1)) - (s5-0 (get-channel obj 0)) - (s4-0 (-> obj base-anim)) - ) - (set! (-> obj frame-group-push) #f) - (cond - ((= (-> obj interp) 0.0) - (when s5-0 - (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) - (if s3-0 - (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) - ) - (when (= (-> s5-0 frame-interp 1) 0.0) - (set! (-> obj frame-post-put-away) #f) - (when (= (-> obj interp) 0.0) - (joint-channel-float-delete! s5-0) - (set! (-> obj frame-group) #f) - (set! (-> obj frame-num) 0.0) - (set! (-> pp skel generate-frame-function) create-interpolated-joint-animation-frame) - ) - (when s3-0 - (joint-channel-float-delete! s3-0) - (set! (-> obj frame-group-push) #f) - ) + (set! (-> obj frame-group-push) #f) + (cond + ((= (-> obj interp) 0.0) + (when s5-0 + (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) + (if s3-0 + (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) + ) + (when (= (-> s5-0 frame-interp 1) 0.0) + (set! (-> obj frame-post-put-away) #f) + (when (= (-> obj interp) 0.0) + (joint-channel-float-delete! s5-0) + (set! (-> obj frame-group) #f) + (set! (-> obj frame-num) 0.0) + (set! (-> pp skel generate-frame-function) create-interpolated-joint-animation-frame) + ) + (when s3-0 + (joint-channel-float-delete! s3-0) + (set! (-> obj frame-group-push) #f) ) ) ) - (else - (when (or (not s5-0) - (or (and (-> obj frame-targ) - (and (!= (-> obj frame-blend) 0.0) - (or (!= (-> s5-0 frame-group) (-> obj frame-targ)) (< (-> obj update-time) (-> obj frame-push-time))) - ) - ) - (and (not (-> obj frame-targ)) - (!= (-> s5-0 frame-group) s4-0) - (set! (-> obj frame-blend) (-> obj frame-post-blend)) - ) - ) + ) + (else + (when (or (not s5-0) + (or (and (-> obj frame-targ) + (and (!= (-> obj frame-blend) 0.0) + (or (!= (-> s5-0 frame-group) (-> obj frame-targ)) (< (-> obj update-time) (-> obj frame-push-time))) + ) + ) + (and (not (-> obj frame-targ)) + (!= (-> s5-0 frame-group) s4-0) + (set! (-> obj frame-blend) (-> obj frame-post-blend)) + ) + ) + ) + (when s3-0 + (joint-channel-float-delete! s3-0) + (set! (-> obj frame-group-push) #f) + (set! s5-0 (get-channel obj 0)) + (set! (-> s5-0 frame-interp 1) (-> obj interp)) + ) + (set! (-> pp skel generate-frame-function) create-interpolated2-joint-animation-frame) + (let ((s2-0 (the-as basic (-> obj frame-targ)))) + (set! s2-0 (cond + ((the-as art-joint-anim s2-0) + (empty) + s2-0 + ) + (else + s4-0 + ) + ) + ) + (set! s3-0 s5-0) + (if s3-0 + (set! (-> obj frame-group-push) (-> s3-0 frame-group)) + ) + (cond + ((= s4-0 s2-0) + (let ((v1-30 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 (when v1-30 + (set! (-> v1-30 param 0) 1.0) + (set! (-> v1-30 num-func) num-func-loop!) + v1-30 + ) + ) + ) + (when s5-0 + (set! (-> s5-0 frame-num) (-> obj frame-start)) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + ) + ((>= (-> obj frame-speed) 0.0) + (let ((v1-35 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 + (when v1-35 + (set! (-> v1-35 param 0) + (- (the float (+ (-> (the-as art-joint-anim s2-0) frames num-frames) -1)) (-> obj frame-post-end)) + ) + (set! (-> v1-35 param 1) (-> obj frame-speed)) + (set! (-> v1-35 num-func) num-func-seek!) + v1-35 + ) + ) + ) + (if s5-0 + (set! (-> s5-0 frame-num) (-> obj frame-start)) + ) + ) + (else + (when s5-0 + (let ((v1-39 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) + (set! s5-0 (when v1-39 + (set! (-> v1-39 param 0) 0.0) + (set! (-> v1-39 param 1) (fabs (-> obj frame-speed))) + (set! (-> v1-39 num-func) num-func-seek!) + v1-39 + ) + ) ) - (when s3-0 + (when s5-0 + (set! (-> s5-0 frame-num) (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-start))) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + ) + ) + ) + ) + (when s5-0 + (set! (-> obj frame-group) (-> s5-0 frame-group)) + (set! (-> obj frame-num) (-> s5-0 frame-num)) + (set! (-> obj frame-cur-blend) (-> obj frame-blend)) + ) + ) + (when s5-0 + (set! (-> pp skel interp-select 0) (the-as int (-> obj interp-select 0))) + (set! (-> pp skel interp-select 1) (the-as int (-> obj interp-select 1))) + (let ((f0-35 (cond + ((not (-> obj frame-targ)) + (-> obj base-anim-blend) + ) + (s3-0 + (-> obj frame-cur-blend) + ) + (else + 0.1333333 + ) + ) + ) + ) + (if (= f0-35 0.0) + (set! (-> s5-0 frame-interp 1) (-> obj interp)) + (seek! (-> s5-0 frame-interp 1) (-> obj interp) (* f0-35 (-> pp clock time-adjust-ratio))) + ) + ) + (when s3-0 + (set! (-> obj frame-group-push) (-> s3-0 frame-group)) + (set! (-> s3-0 frame-interp 1) (-> obj interp)) + (if (!= (-> s3-0 eval-time) (current-time)) + (joint-control-channel-eval s3-0) + ) + (when (= (-> s5-0 frame-interp 1) (-> obj interp)) (joint-channel-float-delete! s3-0) (set! (-> obj frame-group-push) #f) (set! s5-0 (get-channel obj 0)) (set! (-> s5-0 frame-interp 1) (-> obj interp)) ) - (set! (-> pp skel generate-frame-function) create-interpolated2-joint-animation-frame) - (let ((s2-0 (the-as basic (-> obj frame-targ)))) - (set! s2-0 (cond - ((the-as art-joint-anim s2-0) - (empty) - s2-0 - ) - (else - s4-0 - ) - ) - ) - (set! s3-0 s5-0) - (if s3-0 - (set! (-> obj frame-group-push) (-> s3-0 frame-group)) - ) - (cond - ((= s4-0 s2-0) - (let ((v1-30 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 (when v1-30 - (set! (-> v1-30 param 0) 1.0) - (set! (-> v1-30 num-func) num-func-loop!) - v1-30 - ) - ) - ) - (when s5-0 - (set! (-> s5-0 frame-num) (-> obj frame-start)) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - ) - ((>= (-> obj frame-speed) 0.0) - (let ((v1-35 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 - (when v1-35 - (set! (-> v1-35 param 0) - (- (the float (+ (-> (the-as art-joint-anim s2-0) frames num-frames) -1)) (-> obj frame-post-end)) - ) - (set! (-> v1-35 param 1) (-> obj frame-speed)) - (set! (-> v1-35 num-func) num-func-seek!) - v1-35 - ) - ) - ) - (if s5-0 - (set! (-> s5-0 frame-num) (-> obj frame-start)) - ) - ) - (else - (when s5-0 - (let ((v1-39 (ja-channel-float! (the-as art-joint-anim s2-0) 0.0 0.0 0.0))) - (set! s5-0 (when v1-39 - (set! (-> v1-39 param 0) 0.0) - (set! (-> v1-39 param 1) (fabs (-> obj frame-speed))) - (set! (-> v1-39 num-func) num-func-seek!) - v1-39 - ) - ) - ) - (when s5-0 - (set! (-> s5-0 frame-num) (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-start))) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - ) - ) - ) - ) - (when s5-0 - (set! (-> obj frame-group) (-> s5-0 frame-group)) - (set! (-> obj frame-num) (-> s5-0 frame-num)) - (set! (-> obj frame-cur-blend) (-> obj frame-blend)) - ) ) - (when s5-0 - (set! (-> pp skel interp-select 0) (the-as int (-> obj interp-select 0))) - (set! (-> pp skel interp-select 1) (the-as int (-> obj interp-select 1))) - (let ((f0-35 (cond - ((not (-> obj frame-targ)) - (-> obj base-anim-blend) - ) - (s3-0 - (-> obj frame-cur-blend) - ) - (else - 0.1333333 - ) - ) - ) - ) - (if (= f0-35 0.0) - (set! (-> s5-0 frame-interp 1) (-> obj interp)) - (seek! (-> s5-0 frame-interp 1) (-> obj interp) (* f0-35 (-> pp clock time-adjust-ratio))) - ) - ) - (when s3-0 - (set! (-> obj frame-group-push) (-> s3-0 frame-group)) - (set! (-> s3-0 frame-interp 1) (-> obj interp)) - (if (!= (-> s3-0 eval-time) (-> pp clock frame-counter)) - (joint-control-channel-eval s3-0) - ) - (when (= (-> s5-0 frame-interp 1) (-> obj interp)) - (joint-channel-float-delete! s3-0) - (set! (-> obj frame-group-push) #f) - (set! s5-0 (get-channel obj 0)) - (set! (-> s5-0 frame-interp 1) (-> obj interp)) - ) - ) - (let ((v1-70 (-> obj frame-targ))) - (cond - (v1-70 - (cond - ((= (-> s5-0 frame-group) v1-70) - (if (!= (-> s5-0 eval-time) (-> pp clock frame-counter)) - (joint-control-channel-eval s5-0) - ) - (when (= (-> s5-0 frame-num) (-> s5-0 param 0)) - (set! (-> obj frame-targ) #f) - (set! (-> obj frame-start) 0.0) - (cond - ((-> obj frame-post-put-away) - (set! (-> obj interp) 0.0) - (set! (-> obj frame-post-put-away) #f) - ) - ((!= (-> obj frame-post-blend) 0.0) - (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group frames num-frames) -1))) - ) - (else - (set! (-> s5-0 frame-num) 0.0) - (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) - (set! (-> s5-0 num-func) num-func-loop!) - (set! (-> s5-0 param 0) 1.0) - ) + (let ((v1-70 (-> obj frame-targ))) + (cond + (v1-70 + (cond + ((= (-> s5-0 frame-group) v1-70) + (if (!= (-> s5-0 eval-time) (current-time)) + (joint-control-channel-eval s5-0) + ) + (when (= (-> s5-0 frame-num) (-> s5-0 param 0)) + (set! (-> obj frame-targ) #f) + (set! (-> obj frame-start) 0.0) + (cond + ((-> obj frame-post-put-away) + (set! (-> obj interp) 0.0) + (set! (-> obj frame-post-put-away) #f) + ) + ((!= (-> obj frame-post-blend) 0.0) + (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group frames num-frames) -1))) + ) + (else + (set! (-> s5-0 frame-num) 0.0) + (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) + (set! (-> s5-0 num-func) num-func-loop!) + (set! (-> s5-0 param 0) 1.0) ) ) ) - (else - (set! (-> s5-0 eval-time) (the-as uint (-> pp clock frame-counter))) - (set! (-> s5-0 frame-group) v1-70) - (set! (-> s5-0 frame-num) (if (< (-> obj frame-speed) 0.0) - (- (the float (+ (-> v1-70 frames num-frames) -1)) (-> obj frame-start)) - (set! (-> s5-0 frame-num) (-> obj frame-start)) - ) - ) - (set! (-> s5-0 num-func) num-func-seek!) - (if (>= (-> obj frame-speed) 0.0) - (set! (-> s5-0 param 0) - (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-post-end)) - ) - (set! (-> s5-0 param 0) 0.0) + ) + (else + (set! (-> s5-0 eval-time) (the-as uint (current-time))) + (set! (-> s5-0 frame-group) v1-70) + (set! (-> s5-0 frame-num) (if (< (-> obj frame-speed) 0.0) + (- (the float (+ (-> v1-70 frames num-frames) -1)) (-> obj frame-start)) + (set! (-> s5-0 frame-num) (-> obj frame-start)) + ) ) - (set! (-> s5-0 param 1) (fabs (-> obj frame-speed))) - ) + (set! (-> s5-0 num-func) num-func-seek!) + (if (>= (-> obj frame-speed) 0.0) + (set! (-> s5-0 param 0) + (- (the float (+ (-> s5-0 frame-group frames num-frames) -1)) (-> obj frame-post-end)) + ) + (set! (-> s5-0 param 0) 0.0) + ) + (set! (-> s5-0 param 1) (fabs (-> obj frame-speed))) ) ) - (else - (when (!= (-> s5-0 frame-group) s4-0) - (set! (-> s5-0 frame-num) 0.0) - (set! (-> obj base-anim-speed) 1.0) - (set! (-> obj base-anim-blend) 0.1333333) - ) - (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) - (set! (-> s5-0 num-func) num-func-loop!) - (set! (-> s5-0 param 0) (-> obj base-anim-speed)) - (set! (-> obj frame-post-blend) 0.1333333) - ) + ) + (else + (when (!= (-> s5-0 frame-group) s4-0) + (set! (-> s5-0 frame-num) 0.0) + (set! (-> obj base-anim-speed) 1.0) + (set! (-> obj base-anim-blend) 0.1333333) + ) + (set! (-> s5-0 frame-group) (the-as art-joint-anim s4-0)) + (set! (-> s5-0 num-func) num-func-loop!) + (set! (-> s5-0 param 0) (-> obj base-anim-speed)) + (set! (-> obj frame-post-blend) 0.1333333) ) ) - (set! (-> obj frame-group) (-> s5-0 frame-group)) - (set! (-> obj frame-num) (-> s5-0 frame-num)) ) + (set! (-> obj frame-group) (-> s5-0 frame-group)) + (set! (-> obj frame-num) (-> s5-0 frame-num)) ) ) ) - (set! (-> obj update-time) (-> pp clock frame-counter)) ) + (set! (-> obj update-time) (current-time)) 0 (none) ) @@ -1817,7 +1811,7 @@ (while (and *target* (focus-test? *target* in-air)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-grab? *target* #f) (while (or (-> *setting-control* user-current talking) (-> *setting-control* user-current spooling) @@ -1826,7 +1820,7 @@ ) (suspend) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) arg0) + (while (< (- (current-time) (-> self state-time)) arg0) (suspend) ) (process-release? *target*) diff --git a/test/decompiler/reference/jak2/engine/process-drawable/process-taskable_REF.gc b/test/decompiler/reference/jak2/engine/process-drawable/process-taskable_REF.gc index b340be28eb..70b0cb9a31 100644 --- a/test/decompiler/reference/jak2/engine/process-drawable/process-taskable_REF.gc +++ b/test/decompiler/reference/jak2/engine/process-drawable/process-taskable_REF.gc @@ -81,7 +81,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (the-as object (case event-type (('say) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self want-to-say) v0-0) v0-0 ) @@ -90,7 +90,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw-bounds)) (let ((v1-6 (-> self root-override root-prim))) (set! (-> v1-6 prim-core collide-as) (collide-spec)) @@ -111,7 +111,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (let ((v1-1 (get-current-task-event (-> self task)))) (if (and (nonzero? (-> v1-1 action)) (or (not (logtest? (-> self draw status) (draw-control-status on-screen))) (logtest? (-> v1-1 flags) (game-task-flags gatflag-01)) - (< (- (-> self clock frame-counter) (-> self birth-time)) (seconds 0.1)) + (< (- (current-time) (-> self birth-time)) (seconds 0.1)) ) ) (go-virtual idle) @@ -126,7 +126,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (defstate idle (process-taskable) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -181,7 +181,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy (< (vector-vector-distance (target-pos 0) s5-0) f30-0) ) ) - (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) + (< (- (current-time) (-> self want-to-say)) (seconds 4)) ) (or (not (load-in-progress? *level*)) (= (-> gp-0 action) (game-task-action say))) (and (not (movie?)) @@ -201,9 +201,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) (process-taskable-method-34 self) ) - (when (or (= (-> gp-0 action) (game-task-action say)) - (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) - ) + (when (or (= (-> gp-0 action) (game-task-action say)) (< (- (current-time) (-> self want-to-say)) (seconds 4))) (case (-> gp-0 action) (((game-task-action play)) (go-virtual play-game gp-0) @@ -283,7 +281,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy ) :exit (behavior () (set! (-> self last-talk) (-> *display* game-clock frame-counter)) - (if (< (- (-> self clock frame-counter) (-> self want-to-say)) (seconds 4)) + (if (< (- (current-time) (-> self want-to-say)) (seconds 4)) (set! (-> self will-talk) #t) (set! (-> self will-talk) #f) ) @@ -324,8 +322,8 @@ Seen take in - `true-func` which takes no args TODO - seems fishy :enter (-> (method-of-type process-taskable active) enter) :exit (-> (method-of-type process-taskable active) exit) :code (behavior ((arg0 game-task-event)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc index e92d21f64d..3f0463f7bf 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc @@ -921,7 +921,7 @@ (defstate wait (scene-player) :virtual #t :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (or (-> self scene) (-> self preload-continue)) (let ((gp-0 (scene-decode-continue (the-as basic (if (-> self scene) (-> self scene load-point-obj) @@ -1012,12 +1012,12 @@ (and (-> *target* next-state) (= (-> *target* next-state name) 'target-flop-hit-ground)) ) (-> self scene) - (< (- (-> self clock frame-counter) (-> self state-time)) (-> self scene wait-air-time)) + (< (- (current-time) (-> self state-time)) (-> self scene wait-air-time)) ) (suspend) ) (suspend) - (let ((s5-0 (-> self clock frame-counter))) + (let ((s5-0 (current-time))) (when (and *target* (not (logtest? (-> *target* focus-status) (focus-status grabbed)))) (label cfg-44) (when (not (process-grab? *target* #f)) @@ -1050,11 +1050,10 @@ ) ) (when arg0 - (while (and (-> self scene) - (not (or (>= (- (-> self clock frame-counter) s5-0) (-> self scene wait-ground-time)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self scene wait-max-time)) - ) - ) + (while (and (-> self scene) (not (or (>= (- (current-time) s5-0) (-> self scene wait-ground-time)) + (>= (- (current-time) (-> self state-time)) (-> self scene wait-max-time)) + ) + ) ) (suspend) ) @@ -1153,8 +1152,8 @@ (* 30.0 (-> self clock seconds-per-frame)) (bucket-id screen-filter) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.05)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.05)) (suspend) ) ) @@ -1319,7 +1318,7 @@ (suspend) (scene-player-method-25 self 0.0) (set! (-> self cur-speed) 0.0) - (set! (-> self scene-start-time) (-> self clock frame-counter)) + (set! (-> self scene-start-time) (current-time)) (ja-play-spooled-anim (-> self anim) (the-as art-joint-anim #f) @@ -1492,10 +1491,10 @@ ) (when (cpad-pressed? 0 square) (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) - (set! (-> self subtitle-change-time) (-> self clock frame-counter)) + (set! (-> self subtitle-change-time) (current-time)) ) - (when (and (< (- (-> self clock frame-counter) (-> self subtitle-change-time)) (seconds 2)) - (< (mod (- (-> self clock frame-counter) (-> self subtitle-change-time)) 300) 210) + (when (and (< (- (current-time) (-> self subtitle-change-time)) (seconds 2)) + (< (mod (- (current-time) (-> self subtitle-change-time)) 300) 210) ) (let ((gp-6 (new 'stack 'font-context *font-default-matrix* 36 60 0.0 (font-color default) (font-flags shadow kerning)) @@ -1537,31 +1536,31 @@ (cond ((cpad-hold? 0 r1) (if (cpad-pressed? 0 circle) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) ) (seek! (-> self speed-change-speed) 8.0 - (* (lerp-scale 0.01 0.3 (the float (- (-> self clock frame-counter) (-> self speed-press-time))) 0.0 300.0) + (* (lerp-scale 0.01 0.3 (the float (- (current-time) (-> self speed-press-time))) 0.0 300.0) (-> self clock time-adjust-ratio) ) ) ) ((cpad-hold? 0 l1) (if (cpad-pressed? 0 square) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) ) (seek! (-> self speed-change-speed) -8.0 - (* (lerp-scale 0.01 0.3 (the float (- (-> self clock frame-counter) (-> self speed-press-time))) 0.0 300.0) + (* (lerp-scale 0.01 0.3 (the float (- (current-time) (-> self speed-press-time))) 0.0 300.0) (-> self clock time-adjust-ratio) ) ) ) ((cpad-hold? 0 x) (when (cpad-pressed? 0 x) - (set! (-> self speed-press-time) (-> self clock frame-counter)) + (set! (-> self speed-press-time) (current-time)) (cond ((= (-> self cur-speed) 0.0) (set! (-> self speed-change-speed) -1000.0) @@ -1594,12 +1593,12 @@ ) (set! (-> self targ-speed) 0.0) (set! (-> self cur-speed) 0.0) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) ) ) ((= (-> self speed-change-speed) -1000.0) (when (!= (-> self cur-speed) -1000.0) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) (set! (-> self targ-speed) -1000.0) (set! (-> self cur-speed) -1000.0) (sound-pause (-> gp-7 id)) @@ -1612,7 +1611,7 @@ (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (-> self clock seconds-per-frame)))) ) ) - (if (< (- (-> self clock frame-counter) (-> self speed-change-time)) (seconds 3)) + (if (< (- (current-time) (-> self speed-change-time)) (seconds 3)) (format *stdcon* "id ~d speed ~f~%" @@ -1624,8 +1623,8 @@ ) ) (when (and gp-7 (and (!= (-> self targ-speed) (-> self cur-speed)) - (< (-> self speed-change-time) (-> self clock frame-counter)) - (>= (- (-> self clock frame-counter) (-> self scene-start-time)) (seconds 1)) + (< (-> self speed-change-time) (current-time)) + (>= (- (current-time) (-> self scene-start-time)) (seconds 1)) ) ) (when *sound-player-enable* @@ -1638,7 +1637,7 @@ ) ) (set! (-> self cur-speed) (-> self targ-speed)) - (set! (-> self speed-change-time) (-> self clock frame-counter)) + (set! (-> self speed-change-time) (current-time)) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/sound/gsound_REF.gc b/test/decompiler/reference/jak2/engine/sound/gsound_REF.gc index d3a3ea3444..a3ef031e4a 100644 --- a/test/decompiler/reference/jak2/engine/sound/gsound_REF.gc +++ b/test/decompiler/reference/jak2/engine/sound/gsound_REF.gc @@ -966,10 +966,10 @@ otherwise, an explicit [[vector]] can be provided" ) (cond ((-> obj spec) - (when (or (< (-> obj time-base) 0) (>= (-> pp clock frame-counter) (-> obj play-time))) + (when (or (< (-> obj time-base) 0) (>= (current-time) (-> obj play-time))) (when (>= (-> obj time-base) 0) (set! (-> obj play-time) - (+ (-> pp clock frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) + (+ (current-time) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) (set! (-> obj playing-id) (new-sound-id)) ) @@ -991,7 +991,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (when (and *debug-effect-control* (>= (-> obj time-base) 0)) - (format #t "(~5D) effect sound ~A ~G " (-> pp clock frame-counter) (-> pp name) (&-> s5-1 sound-name)) + (format #t "(~5D) effect sound ~A ~G " (current-time) (-> pp name) (&-> s5-1 sound-name)) (format #t "volume: ~f pitch-mod: ~f~%" @@ -1025,7 +1025,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (else - (when (>= (-> pp clock frame-counter) (-> obj play-time)) + (when (>= (current-time) (-> obj play-time)) (set! (-> obj playing-id) (sound-play-by-name (-> obj name) @@ -1038,7 +1038,7 @@ otherwise, an explicit [[vector]] can be provided" ) ) (set! (-> obj play-time) - (+ (-> pp clock frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) + (+ (current-time) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) ) ) @@ -1301,32 +1301,31 @@ otherwise, an explicit [[vector]] can be provided" (defun sound-bank-reload () (process-spawn-function process - (lambda () (with-pp - (let ((gp-0 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 3))) - (dotimes (v1-0 3) - (set! (-> gp-0 v1-0) (the-as symbol (-> *level* sound-bank v1-0))) - ) - (let ((a1-3 (new 'stack-no-clear 'array 'symbol 4))) - (set! (-> a1-3 2) 'empty2) - (set! (-> a1-3 1) 'empty1) - (set! (-> a1-3 0) 'empty0) - (want-sound-banks *load-state* a1-3) - ) - (let ((s5-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) s5-0) (seconds 1)) - (suspend) - ) - ) - (let ((a1-4 (new 'stack-no-clear 'array 'symbol 4))) - (set! (-> a1-4 2) (-> gp-0 2)) - (set! (-> a1-4 1) (-> gp-0 1)) - (set! (-> a1-4 0) (-> gp-0 0)) - (want-sound-banks *load-state* a1-4) - ) - ) - (none) - ) + (lambda () + (let ((gp-0 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 3))) + (dotimes (v1-0 3) + (set! (-> gp-0 v1-0) (the-as symbol (-> *level* sound-bank v1-0))) + ) + (let ((a1-3 (new 'stack-no-clear 'array 'symbol 4))) + (set! (-> a1-3 2) 'empty2) + (set! (-> a1-3 1) 'empty1) + (set! (-> a1-3 0) 'empty0) + (want-sound-banks *load-state* a1-3) + ) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) + (suspend) ) + ) + (let ((a1-4 (new 'stack-no-clear 'array 'symbol 4))) + (set! (-> a1-4 2) (-> gp-0 2)) + (set! (-> a1-4 1) (-> gp-0 1)) + (set! (-> a1-4 0) (-> gp-0 0)) + (want-sound-banks *load-state* a1-4) + ) + ) + (none) + ) :to *display-pool* ) 0 diff --git a/test/decompiler/reference/jak2/engine/sound/speech_REF.gc b/test/decompiler/reference/jak2/engine/sound/speech_REF.gc index 5651b92e23..c11fc060db 100644 --- a/test/decompiler/reference/jak2/engine/sound/speech_REF.gc +++ b/test/decompiler/reference/jak2/engine/sound/speech_REF.gc @@ -56,10 +56,10 @@ (let ((s4-0 (handle->process (-> obj request handle)))) (when s4-0 (when (or (and (>= (-> obj request priority) 0.0) - (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) + (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) ) - (and (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) - (>= (- (-> pp clock frame-counter) (-> obj end-time)) (the-as time-frame (-> obj delay))) + (and (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> s5-1 delay))) + (>= (- (current-time) (-> obj end-time)) (the-as time-frame (-> obj delay))) ) ) (let ((s3-0 (-> s5-1 list length)) @@ -86,7 +86,7 @@ (set! (-> s5-1 play-index) v1-44) (let ((s3-1 (-> s5-1 list v1-44))) (mem-copy! (the-as pointer (-> obj last-request)) (the-as pointer (-> obj request)) 21) - (set! (-> obj start-time) (-> pp clock frame-counter)) + (set! (-> obj start-time) (current-time)) (set! (-> obj delay) (the-as uint (rand-vu-int-range (the-as int (-> s5-1 min-delay)) (the-as int (-> s5-1 max-delay)))) ) @@ -107,7 +107,7 @@ ) ) ) - (set! (-> obj update-time) (-> pp clock frame-counter)) + (set! (-> obj update-time) (current-time)) (when (nonzero? (-> obj id)) (let ((s4-1 (handle->process (-> obj last-request handle)))) (cond @@ -153,7 +153,7 @@ ) (case (get-status *gui-control* (-> obj id)) (((gui-status pending)) - (when (>= (- (-> pp clock frame-counter) (-> obj start-time)) (seconds 1)) + (when (>= (- (current-time) (-> obj start-time)) (seconds 1)) (set-action! *gui-control* (gui-action stop) @@ -183,27 +183,25 @@ ;; definition for method 9 of type speech-channel ;; WARN: Return type mismatch int vs none. (defmethod speech-channel-method-9 speech-channel ((obj speech-channel) (arg0 process-drawable) (arg1 speech-type)) - (with-pp - (let ((f0-0 (vector-vector-distance-squared (-> arg0 root trans) (-> obj target-pos))) - (f1-0 245760.0) - ) - (when (< f0-0 (* f1-0 f1-0)) - (let* ((f1-3 -1.0) - (f2-0 409600.0) - (f0-2 (+ (* f0-0 (/ f1-3 (* f2-0 f2-0))) (the float (-> obj speech-table arg1 priority)))) - ) - (when (< (-> obj request priority) f0-2) - (set! (-> obj request priority) f0-2) - (set! (-> obj request handle) (process->handle arg0)) - (set! (-> obj request speech-type) arg1) - (set! (-> obj request time) (-> pp clock frame-counter)) - ) + (let ((f0-0 (vector-vector-distance-squared (-> arg0 root trans) (-> obj target-pos))) + (f1-0 245760.0) + ) + (when (< f0-0 (* f1-0 f1-0)) + (let* ((f1-3 -1.0) + (f2-0 409600.0) + (f0-2 (+ (* f0-0 (/ f1-3 (* f2-0 f2-0))) (the float (-> obj speech-table arg1 priority)))) + ) + (when (< (-> obj request priority) f0-2) + (set! (-> obj request priority) f0-2) + (set! (-> obj request handle) (process->handle arg0)) + (set! (-> obj request speech-type) arg1) + (set! (-> obj request time) (current-time)) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 10 of type speech-channel diff --git a/test/decompiler/reference/jak2/engine/target/board/board-h_REF.gc b/test/decompiler/reference/jak2/engine/target/board/board-h_REF.gc index 22306b55b0..d1272d9c51 100644 --- a/test/decompiler/reference/jak2/engine/target/board/board-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/board-h_REF.gc @@ -411,13 +411,13 @@ (not (logtest? (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons l2))) ) (not *pause-lock*) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-debug-heal)) (seconds 0.1)) + (>= (- (current-time) (-> self control time-of-last-debug-heal)) (seconds 0.1)) (>= (-> self control last-time-on-surface) (-> self control time-of-last-debug-float)) ) (-> self board latch?) ) (not (focus-test? self dead hit grabbed in-head edge-grab pole board pilot mech dark)) - (or (zero? (-> self board)) (>= (- (-> self clock frame-counter) (-> self board board-time)) (seconds 0.5))) + (or (zero? (-> self board)) (>= (- (current-time) (-> self board board-time)) (seconds 0.5))) (not (logtest? (state-flags prevent-board) (-> self state-flags))) (< (-> self board board-time) (-> self control list-time-on-ground)) (not (logtest? (surface-flag no-board) (-> self control current-surface flags))) @@ -466,10 +466,7 @@ #f #t ) - (begin - (set! (-> self board latch?) #t) - (>= (- (-> self clock frame-counter) (-> self gun gun-time)) (seconds 0.4)) - ) + (begin (set! (-> self board latch?) #t) (>= (- (current-time) (-> self gun gun-time)) (seconds 0.4))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc index 8c4ce99a96..c13a5aabf2 100644 --- a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc @@ -64,7 +64,7 @@ ) (when (and (or (< (* f30-0 (-> self board turn-anim-targ)) 0.0) (= f30-0 0.0)) (and (< (* 0.2 (-> *TARGET_BOARD-bank* turn-frames)) (fabs (- f30-0 (-> self board turn-anim-targ)))) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (>= (current-time) (-> self control turn-lockout-end-time)) ) ) (let ((v1-50 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) @@ -81,9 +81,7 @@ ) (set! (-> self board turn-anim-duck-vel) (* 0.98 (-> self board turn-anim-duck-vel))) (+! (-> self board turn-anim-duck-vel) (* -8.0 (-> self clock seconds-per-frame))) - (when (and (board-on-ground?) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.2)) - ) + (when (and (board-on-ground?) (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2))) (if (logtest? (-> self control status) (collide-status impact-surface)) (+! (-> self board turn-anim-duck-vel) (lerp-scale 0.0 15.0 (-> self control normal-impact-vel) 0.0 81920.0)) ) @@ -104,31 +102,30 @@ (defbehavior target-board-spin-check target () (when (and (or (cpad-pressed? (-> self control cpad number) r1) (and (cpad-hold? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self board spin-check-time)) (seconds 0.3)) + (>= (- (current-time) (-> self board spin-check-time)) (seconds 0.3)) ) ) (not (and (and (-> self next-state) (let ((v1-24 (-> self next-state name))) (or (= v1-24 'target-board-trickx) (= v1-24 'target-board-hold)) ) ) - (< (- (-> self clock frame-counter) (-> self board spin-start-time)) (seconds 0.5)) + (< (- (current-time) (-> self board spin-start-time)) (seconds 0.5)) ) ) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self board spin-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-start-time) (current-time)) (set! (-> self board spin-start-dir quad) (-> self node-list data 3 bone transform vector 2 quad)) (vector-flatten! (-> self control turn-to-alt-heading) (-> self control c-R-w vector 2) *up-vector*) (vector-normalize! (-> self control turn-to-alt-heading) 1.0) (rot->dir-targ! (-> self control)) - (set! (-> self board trotyv-max) - (lerp-scale - 218453.33 - 91022.22 - (the float (- (-> self clock frame-counter) (-> self control last-time-on-surface))) - 0.0 - 300.0 - ) + (set! (-> self board trotyv-max) (lerp-scale + 218453.33 + 91022.22 + (the float (- (current-time) (-> self control last-time-on-surface))) + 0.0 + 300.0 + ) ) (set! (-> self board trotyv) 0.0) (set! (-> self board troty) 0.0) @@ -140,14 +137,14 @@ (cond ((and (cpad-hold? (-> self control cpad number) r1) (and (or (= (-> self control mod-surface name) 'spin) - (< (- (-> self clock frame-counter) (-> self board spin-time)) (seconds 0.05)) + (< (- (current-time) (-> self board spin-time)) (seconds 0.05)) ) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) ) ) (set! (-> self board turn-anim-tilt?) #f) (set! (-> self control mod-surface) *board-spin-mods*) - (set! (-> self board spin-time) (-> self clock frame-counter)) + (set! (-> self board spin-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 x) (* -0.0078125 (+ -128.0 (the float (-> self control cpad leftx))))) (set! (-> gp-0 y) 0.0) @@ -193,7 +190,7 @@ (set! (-> self control mod-surface) (the-as surface (-> self board mods-backup))) ) ) - (set! (-> self board spin-check-time) (-> self clock frame-counter)) + (set! (-> self board spin-check-time) (current-time)) (when (and (or (cpad-pressed? (-> self control cpad number) l1) (< (-> self control last-time-on-surface) (-> self board unknown-time-frame06)) ) @@ -201,7 +198,7 @@ ) (set! (-> self board turn-anim-tilt?) #f) (set! (-> self control mod-surface) *board-spin-mods*) - (set! (-> self board unknown-time-frame03) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame03) (current-time)) (let ((gp-2 (new 'stack-no-clear 'vector))) (set! (-> gp-2 x) (* -0.0078125 (+ -128.0 (the float (-> self control cpad leftx))))) (set! (-> gp-2 y) 0.0) @@ -219,7 +216,7 @@ (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (and (>= (target-height-above-ground) 4096.0) (< (seconds 0.165) (target-time-to-ground)) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame05)) (seconds 0.05)) + (>= (- (current-time) (-> self board unknown-time-frame05)) (seconds 0.05)) (< (-> self board unknown-time-frame05) (-> self board unknown-time-frame06)) ) ) @@ -243,7 +240,7 @@ (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (and (>= (target-height-above-ground) 4096.0) (< (seconds 0.165) (target-time-to-ground)) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame05)) (seconds 0.05)) + (>= (- (current-time) (-> self board unknown-time-frame05)) (seconds 0.05)) ) ) ) @@ -315,7 +312,7 @@ ) (set! (-> self board troty-cum) 0.0) (set! (-> self board flip-count) 0) - (if (>= (- (-> self clock frame-counter) (-> self board in-air-time)) (seconds 0.2)) + (if (>= (- (current-time) (-> self board in-air-time)) (seconds 0.2)) (flush-trick-list (-> self board)) ) 0 @@ -332,7 +329,7 @@ (f28-0 (vector-y-angle (-> self control transv))) (f0-2 (y-angle (-> self control))) ) - (if (< (- (-> self clock frame-counter) (-> self board halfpipe-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self board halfpipe-time)) (seconds 0.1)) (set! f28-0 (+ 32768.0 f28-0)) ) (let ((f0-5 (fabs (deg-diff f0-2 f28-0)))) @@ -440,7 +437,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (and (< (-> self control surface-angle) 0.3) (zero? (-> self board halfpipe-side-time))) ) - (set! (-> self board halfpipe-side-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-side-time) (current-time)) (set! v0-3 (logior (-> self control root-prim prim-core action) (collide-action no-normal-reset))) (set! (-> self control root-prim prim-core action) v0-3) v0-3 @@ -448,11 +445,11 @@ (else (if (and (not (board-on-ground?)) (nonzero? (-> self board halfpipe-side-time)) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-side-time)) (seconds 0.05)) + (>= (- (current-time) (-> self board halfpipe-side-time)) (seconds 0.05)) ) (go target-board-halfpipe) ) - (when (>= (- (-> self clock frame-counter) (-> self board halfpipe-side-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board halfpipe-side-time)) (seconds 0.2)) (set! (-> self board halfpipe-side-time) 0) (set! v0-3 (logclear (-> self control root-prim prim-core action) (collide-action no-normal-reset))) (set! (-> self control root-prim prim-core action) v0-3) @@ -465,11 +462,11 @@ ;; definition for function target-board-jump-trans (defbehavior target-board-jump-trans target () - (when (and (!= (-> self state-time) (-> self clock frame-counter)) (jump-hit-ground-stuck?)) - (set! (-> self board jump-land-time) (-> self clock frame-counter)) + (when (and (!= (-> self state-time) (current-time)) (jump-hit-ground-stuck?)) + (set! (-> self board jump-land-time) (current-time)) (go target-board-hit-ground) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (target-board-smack-surface?) ) (if (and (cpad-pressed? (-> self control cpad number) x) @@ -517,8 +514,8 @@ (< 0.0 (vector-dot (-> self control transv) s5-0)) ) ) - (set! (-> self board halfpipe-lip-time) (-> self clock frame-counter)) - (set! (-> self board halfpipe-side-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-lip-time) (current-time)) + (set! (-> self board halfpipe-side-time) (current-time)) (set! (-> self board halfpipe-lip-event) (the-as symbol (-> event param 0))) (let ((v0-2 (the-as object (logior (-> self control root-prim prim-core action) (collide-action no-normal-reset)))) ) @@ -573,7 +570,7 @@ :trans (behavior () (if (and (cpad-hold? (-> self control cpad number) l1) (not (logtest? (-> self state-flags) (state-flags prevent-duck))) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) ) @@ -597,7 +594,7 @@ ) (vector-normalize! gp-0 1.0) (cond - ((and (< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((and (< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (= (-> self control ground-pat mode) (pat-mode halfpipe)) ) ) @@ -605,7 +602,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (< (-> self control surface-angle) 0.5) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (else @@ -616,14 +613,14 @@ ) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> self board spin-ground-press-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-press-time) (current-time)) ) (if (and (cpad-hold? (-> self control cpad number) r1) (can-feet? #t) - (< (- (-> self clock frame-counter) (-> self board spin-ground-press-time)) (seconds 0.3)) + (< (- (current-time) (-> self board spin-ground-press-time)) (seconds 0.3)) (turn-around?) ) - (set! (-> self board spin-ground-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-start-time) (current-time)) ) (target-board-halfpipe-check) (if (target-board-smack-surface?) @@ -636,7 +633,7 @@ (set! (-> self control mod-surface) *board-walk-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) ) - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (or (= (-> self control mod-surface name) 'spin) (< 4096.0 (target-height-above-ground))) ) (set! (-> self control mod-surface) *board-jump-mods*) @@ -768,7 +765,7 @@ :trans (behavior () (if (and (or (not (cpad-hold? (-> self control cpad number) l1)) (logtest? (-> self state-flags) (state-flags prevent-duck)) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) ) @@ -794,7 +791,7 @@ ) (vector-normalize! gp-0 1.0) (cond - ((and (< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((and (< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (= (-> self control ground-pat mode) (pat-mode halfpipe)) ) ) @@ -802,7 +799,7 @@ (< 0.0 (vector-dot (-> self control transv) gp-0)) (< (-> self control surface-angle) 0.5) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (else @@ -822,14 +819,14 @@ ) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> self board spin-ground-press-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-press-time) (current-time)) ) (if (and (cpad-hold? (-> self control cpad number) r1) (can-feet? #t) - (< (- (-> self clock frame-counter) (-> self board spin-ground-press-time)) (seconds 0.3)) + (< (- (current-time) (-> self board spin-ground-press-time)) (seconds 0.3)) (turn-around?) ) - (set! (-> self board spin-ground-start-time) (-> self clock frame-counter)) + (set! (-> self board spin-ground-start-time) (current-time)) ) (target-board-halfpipe-check) (if (target-board-smack-surface?) @@ -843,7 +840,7 @@ (set! (-> self control mod-surface) *board-duck-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) ) - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (or (= (-> self control mod-surface name) 'spin) (< 4096.0 (target-height-above-ground))) ) (set! (-> self control mod-surface) *board-duck-jump-mods*) @@ -864,7 +861,7 @@ ;; failed to figure out what this is: (defstate target-board-jump (target) :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) - (if (and (= event-type 'edge-grab) (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1))) + (if (and (= event-type 'edge-grab) (< (- (current-time) (-> self state-time)) (seconds 0.1))) (return #f) ) (target-board-handler proc arg1 event-type event) @@ -877,7 +874,7 @@ (if (= arg2 'hit) (set! arg2 #f) ) - (when (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.5)) + (when (< (- (current-time) (-> self board ride-time)) (seconds 0.5)) (set! arg2 (the-as symbol *board-ride-jump-mods*)) (let ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> self control transv) 1.0))) (forward-up-nopitch->quaternion @@ -886,19 +883,19 @@ (vector-y-quaternion! (new-stack-vector0) (-> self control dir-targ)) ) (set! (-> self control turn-lockout-end-time) - (+ (-> self clock frame-counter) + (+ (current-time) (the int (lerp-scale 225.0 0.0 (vector-dot s2-0 (-> self control c-R-w vector 2)) -1.0 1.0)) ) ) ) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((f30-0 0.0)) (cond ((and (< 0.0 (-> self board shock-offsetv)) - (< (- (-> self clock frame-counter) (-> self board jump-land-time)) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.5)) + (< (- (current-time) (-> self board jump-land-time)) (seconds 0.5)) + (>= (- (current-time) (-> self board ride-time)) (seconds 0.5)) ) (let ((s3-2 (new 'stack-no-clear 'vector))) (set! (-> s3-2 quad) (-> self control trans quad)) @@ -990,7 +987,7 @@ #t #f (-> self control transv) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (if (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) 2.0 0.0 ) @@ -1156,7 +1153,7 @@ ) :enter (behavior () (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action no-normal-reset)) (set! (-> self control mod-surface) *board-halfpipe-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -1232,7 +1229,7 @@ ) :trans (behavior () (when (and (or (= (the-as int (-> self control did-move-to-pole-or-max-jump-height)) #t) - (and (< (- (-> self clock frame-counter) (-> self board halfpipe-lip-time)) (seconds 0.1)) + (and (< (- (current-time) (-> self board halfpipe-lip-time)) (seconds 0.1)) (= (-> self board halfpipe-lip-event) 'lipramp) ) ) @@ -1258,22 +1255,20 @@ ) ) ) - (set! (-> self board halfpipe-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-time) (current-time)) (if (= (-> self control gspot-pat-surfce mode) (pat-mode halfpipe)) - (set! (-> self board halfpipe-gspot-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-gspot-time) (current-time)) ) (when (jump-hit-ground-stuck?) (vector-float*! (-> self control transv) (-> self control transv) 1.5) (go target-board-turn-to (-> self control transv) (seconds 0.5)) ) (when (and (cpad-pressed? (-> self control cpad number) x) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.6)) - (< (- (-> self clock frame-counter) (-> self state-time)) - (the-as time-frame (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.6)) + (< (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* ground-timeout))) (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) ) - (set! (-> self board halfpipe-jump-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-jump-time) (current-time)) (vector-float*! (-> self control transv) (-> self control transv) 1.5) ) (target-board-spin-check) @@ -1286,7 +1281,7 @@ (set! (-> gp-0 y) 0.0) (vector-normalize! gp-0 1.0) (if (< 0.7 (vector-dot (-> self control to-target-pt-xz) gp-0)) - (+! (-> self control sliding-start-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self control sliding-start-time) (- (current-time) (-> self clock old-frame-counter))) (set! (-> self control sliding-start-time) 1) ) ) @@ -1303,7 +1298,7 @@ ) ) (when (or (>= (-> self control sliding-start-time) (seconds 0.05)) - (and (>= (- (-> self clock frame-counter) (-> self board halfpipe-gspot-time)) (seconds 0.5)) + (and (>= (- (current-time) (-> self board halfpipe-gspot-time)) (seconds 0.5)) (< (-> self board halfpipe-lip-time) (+ (-> self state-time) (seconds -0.2))) ) ) @@ -1316,7 +1311,7 @@ ) :code (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self board halfpipe-jump-time)) (seconds 0.5)) + ((< (- (current-time) (-> self board halfpipe-jump-time)) (seconds 0.5)) (ja-channel-push! 1 (seconds 0.05)) (ja-no-eval :group! (-> self draw art-group data 155) :num! (seek! (ja-aframe 8.0 0) 0.5) :frame-num 0.0) (until (ja-done? 0) @@ -1436,7 +1431,7 @@ (defstate target-board-jump-kick (target) :event target-board-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-jump-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (sound-play "board-k-jump") @@ -1449,10 +1444,10 @@ ) (target-board-smack-surface?) (cond - ((< (- (-> self clock frame-counter) (-> self board smack-surface-time)) (seconds 0.2)) + ((< (- (current-time) (-> self board smack-surface-time)) (seconds 0.2)) (go target-board-wall-kick (-> self board smack-normal) (-> self board smack-speed)) ) - ((< (- (-> self clock frame-counter) (-> self board glance-time)) (seconds 0.2)) + ((< (- (current-time) (-> self board glance-time)) (seconds 0.2)) (go target-board-wall-kick (vector-normalize-copy! (-> self control unknown-vector38) (-> self board glance-out-transv) 1.0) @@ -1499,7 +1494,7 @@ (* 0.008333334 (- (-> self control dynam gravity-length))) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-wall-kick-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (set! (-> self board smack-surface-time) 0) @@ -1545,7 +1540,7 @@ (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (cond ((= arg2 'halfpipe) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) @@ -1727,8 +1722,8 @@ (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) ) (set! (-> self control dynam gravity-length) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self board unknown-time-frame04) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self board unknown-time-frame04) (current-time)) (cond ((= arg2 'halfpipe) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) @@ -1749,7 +1744,7 @@ ) :exit (behavior () (set! (-> self board unknown-float01) 0.0) - (set! (-> self board unknown-time-frame05) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame05) (current-time)) (let ((v1-3 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-3 command) (sound-command set-param)) (set! (-> v1-3 id) (-> self board unknown-sound-id01)) @@ -1942,7 +1937,7 @@ (mod-var-jump #t #f (cpad-hold? (-> self control cpad number) x) (-> self control transv)) ) (when (jump-hit-ground-stuck?) - (set! (-> self board jump-land-time) (-> self clock frame-counter)) + (set! (-> self board jump-land-time) (current-time)) (go target-board-hit-ground) ) (set! (-> self board slow-transv quad) (-> self control transv quad)) @@ -2139,7 +2134,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *board-turn-to-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) (set! (-> self control sliding-start-time) arg1) @@ -2149,7 +2144,7 @@ (-> self control unknown-vector38) (vector-y-quaternion! (new-stack-vector0) (-> self control dir-targ)) ) - (set! (-> self control turn-lockout-end-time) (+ (-> self clock frame-counter) arg1)) + (set! (-> self control turn-lockout-end-time) (+ (current-time) arg1)) (none) ) :exit target-board-exit @@ -2166,7 +2161,7 @@ (flush-trick-list (-> self board)) (go target-board-jump (-> *TARGET_BOARD-bank* jump-height-min) (-> *TARGET_BOARD-bank* jump-height-max) #f) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self control sliding-start-time)) + (if (>= (- (current-time) (-> self state-time)) (-> self control sliding-start-time)) (go target-board-stance) ) (target-board-anim-trans) @@ -2192,7 +2187,7 @@ ) (('end-mode) (when (-> event param 0) - (let ((v1-6 (/ (- (-> self clock frame-counter) (-> self board ride-start-time)) 300))) + (let ((v1-6 (/ (- (current-time) (-> self board ride-start-time)) 300))) (if (> v1-6 0) (add-to-trick-list (-> self board) (board-tricks board-rail) (* 100.0 (the float v1-6))) ) @@ -2206,7 +2201,7 @@ ) ) :enter (behavior ((arg0 symbol) (arg1 object) (arg2 object) (arg3 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self focus-status) (logior (focus-status rail) (-> self focus-status))) (logior! (-> self control root-prim prim-core action) (collide-action can-ride)) (set! (-> self control mod-surface) *board-ride-mods*) @@ -2315,7 +2310,7 @@ ) (can-jump? 'board) ) - (let ((v1-15 (/ (- (-> self clock frame-counter) (-> self board ride-start-time)) 300))) + (let ((v1-15 (/ (- (current-time) (-> self board ride-start-time)) 300))) (if (> v1-15 0) (add-to-trick-list (-> self board) (board-tricks board-rail) (* 100.0 (the float v1-15))) ) @@ -2332,7 +2327,7 @@ (set! (-> self control unknown-word04) (the-as uint #f)) ) (if (-> self control unknown-spool-anim00) - (set! (-> self board ride-button-time) (-> self clock frame-counter)) + (set! (-> self board ride-button-time) (current-time)) ) (set! (-> self board turn-anim-targ) (* (-> self board ride-lean) (- (-> *TARGET_BOARD-bank* turn-frames)))) (cond @@ -2418,13 +2413,11 @@ (until #f (ja :num-func num-func-identity :frame-num (ja-aframe - (fmax - -5.0 - (fmin 5.0 (+ (* 3.0 (-> self board ride-lean)) - (* 0.5 (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time)))))) - ) - ) - ) + (fmax -5.0 (fmin 5.0 (+ (* 3.0 (-> self board ride-lean)) + (* 0.5 (sin (* 145.63556 (the float (- (current-time) (-> self state-time)))))) + ) + ) + ) 0 ) ) @@ -2454,7 +2447,7 @@ :enter (behavior ((arg0 handle)) (set! (-> self focus-status) (logior (focus-status halfpipe) (-> self focus-status))) (set! (-> self control unknown-handle02) arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action no-normal-reset)) (set! (-> self control mod-surface) *board-halfpipe-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -2484,11 +2477,11 @@ (none) ) :trans (behavior () - (set! (-> self board halfpipe-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-time) (current-time)) (if (= (-> self control gspot-pat-surfce mode) (pat-mode halfpipe)) - (set! (-> self board halfpipe-gspot-time) (-> self clock frame-counter)) + (set! (-> self board halfpipe-gspot-time) (current-time)) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (vector+float*! (-> self control transv) (-> self control transv) @@ -2500,7 +2493,7 @@ (vector-float*! (-> self control transv) (-> self control transv) 1.5) (go target-board-turn-to (-> self control transv) (seconds 0.5)) ) - (when (>= (- (-> self clock frame-counter) (-> self board halfpipe-gspot-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self board halfpipe-gspot-time)) (seconds 0.5)) (+! (-> self control transv x) (* 20480.0 (-> self control edge-grab-across-edge-dir x))) (+! (-> self control transv z) (* 20480.0 (-> self control edge-grab-across-edge-dir z))) (go target-board-stance) @@ -2570,7 +2563,7 @@ ) :enter (behavior () (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *board-jump-mods*) (set! (-> self board mods-backup) (-> self control mod-surface)) @@ -2723,7 +2716,7 @@ :enter (behavior ((arg0 handle)) (logclear! (-> self focus-status) (focus-status halfpipe)) (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (none) ) @@ -2817,7 +2810,7 @@ ) (logclear! (-> self focus-status) (focus-status halfpipe)) (set! (-> self board shock-offsetv) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) (new 'static 'surface :name 'jump @@ -3122,7 +3115,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-board-stance) ) @@ -3132,7 +3125,7 @@ :code (behavior ((arg0 vector) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) (logclear! (-> self focus-status) (focus-status halfpipe)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self attack-info))) (let ((s5-0 (new 'stack-no-clear 'vector))) (let ((v1-6 gp-0)) @@ -3181,7 +3174,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -3189,8 +3182,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc index 1cd08a96d6..4e98e64936 100644 --- a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc @@ -37,7 +37,7 @@ (case arg3 ((1) (if (< 0.9 (-> self control surface-angle)) - (set! (-> self board on-flat-time) (-> self clock frame-counter)) + (set! (-> self board on-flat-time) (current-time)) ) (set! (-> self board slip-factor) (lerp-scale 1.0 (-> arg0 slip-factor) (fabs (-> self control ctrl-slope-heading)) 0.0 1.0) @@ -45,41 +45,33 @@ (set! (-> arg0 slip-factor) (-> self board slip-factor)) (set! (-> arg0 slope-up-factor) (-> arg1 slope-up-factor)) (set! (-> arg0 slope-down-factor) (-> arg1 slope-down-factor)) - (set! (-> arg0 seek0) (lerp-scale - (* 0.1 (-> arg0 seek0)) - (-> arg0 seek0) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 seek0) + (lerp-scale + (* 0.1 (-> arg0 seek0)) + (-> arg0 seek0) + (the float (- (current-time) (-> self board spin-time))) + 0.0 + 600.0 + ) ) - (set! (-> arg0 seek90) (lerp-scale - (* 0.1 (-> arg0 seek90)) - (-> arg0 seek90) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 seek90) + (lerp-scale + (* 0.1 (-> arg0 seek90)) + (-> arg0 seek90) + (the float (- (current-time) (-> self board spin-time))) + 0.0 + 600.0 + ) ) - (set! (-> arg0 vel-turn) (lerp-scale - 131072.0 - (-> arg1 vel-turn) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 vel-turn) + (lerp-scale 131072.0 (-> arg1 vel-turn) (the float (- (current-time) (-> self board spin-time))) 0.0 600.0) ) - (set! (-> arg0 turnv) (lerp-scale - 91022.22 - (-> arg1 turnv) - (the float (- (-> self clock frame-counter) (-> self board spin-time))) - 0.0 - 600.0 - ) + (set! (-> arg0 turnv) + (lerp-scale 91022.22 (-> arg1 turnv) (the float (- (current-time) (-> self board spin-time))) 0.0 600.0) ) - (when (< (- (-> self clock frame-counter) (-> self board spin-ground-start-time)) (seconds 0.3)) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) - (set! (-> self board spin-ground-time) (-> self clock frame-counter)) + (when (< (- (current-time) (-> self board spin-ground-start-time)) (seconds 0.3)) + (set! (-> self control last-attack-end-time) (current-time)) + (set! (-> self board spin-ground-time) (current-time)) (set! (-> arg0 seek0) (* 0.1 (-> arg0 seek0))) (set! (-> arg0 seek90) (* 0.1 (-> arg0 seek90))) (set! (-> arg0 vel-turn) 131072.0) @@ -282,43 +274,42 @@ ) ;; definition for symbol *board-wall-kick-mods*, type surface -(define *board-wall-kick-mods* - (new 'static 'surface - :name 'jump - :tiltv 65536.0 - :tiltvv 262144.0 - :transv-max 143360.0 - :target-speed 102400.0 - :seek180 0.8 - :fric 0.2 - :nonlin-fric-dist 1.0 - :slip-factor 1.0 - :slide-factor 1.0 - :slope-slip-angle 1.0 - :impact-fric 0.8 - :bend-factor 1.0 - :bend-speed 1.0 - :alignv 1.0 - :slope-up-traction 1.0 - :align-speed 1.0 - :tiltvf 150.0 - :tiltvvf 60.0 - :mult-hook (lambda :behavior target - ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) - (case arg3 - ((1) - (when (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - (set! (-> arg0 turnv) 0.0) - (set! (-> arg0 turnvf) 0.0) - ) - ) +(define *board-wall-kick-mods* (new 'static 'surface + :name 'jump + :tiltv 65536.0 + :tiltvv 262144.0 + :transv-max 143360.0 + :target-speed 102400.0 + :seek180 0.8 + :fric 0.2 + :nonlin-fric-dist 1.0 + :slip-factor 1.0 + :slide-factor 1.0 + :slope-slip-angle 1.0 + :impact-fric 0.8 + :bend-factor 1.0 + :bend-speed 1.0 + :alignv 1.0 + :slope-up-traction 1.0 + :align-speed 1.0 + :tiltvf 150.0 + :tiltvvf 60.0 + :mult-hook (lambda :behavior target + ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) + (case arg3 + ((1) + (when (< (- (current-time) (-> self state-time)) (seconds 0.05)) + (set! (-> arg0 turnv) 0.0) + (set! (-> arg0 turnvf) 0.0) + ) + ) + ) + (none) + ) + :mode 'air + :flags (surface-flag no-turn-around turn-to-vel air) + ) ) - (none) - ) - :mode 'air - :flags (surface-flag no-turn-around turn-to-vel air) - ) - ) ;; definition for symbol *board-halfpipe-mods*, type surface (define *board-halfpipe-mods* (new 'static 'surface @@ -539,7 +530,7 @@ (a2-3 (-> gp-1 world-vertex 1)) (f0-2 (t9-8 s5-1 (the-as vector a1-8) a2-3)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.4)) + (if (and (>= (- (current-time) (-> self board ride-time)) (seconds 0.4)) (>= f0-2 0.0) (>= 1.0 f0-2) (not (and (-> self next-state) (= (-> self next-state name) 'target-board-duck-stance))) @@ -699,10 +690,10 @@ (set! (-> self board unknown-sound-id00) (new 'static 'sound-id)) (set-setting! 'mode-sound-bank 'board 0.0 0) (set-setting! 'sound-flava #f 30.0 2) - (set! (-> self board board-get-on-time) (-> self clock frame-counter)) + (set! (-> self board board-get-on-time) (current-time)) (set! (-> self board stick-lock) #f) (set! (-> self board stick-off) #f) - (set! (-> self board unstuck-time) (-> self clock frame-counter)) + (set! (-> self board unstuck-time) (current-time)) (set! (-> self board stuck-count) 0) (set! (-> self board slip-factor) 1.0) (set! (-> self board unknown-symbol00) #f) @@ -862,14 +853,14 @@ ;; INFO: Used lq/sq (defbehavior target-board-smack-surface? target () (when (and (logtest? (-> self control status) (collide-status touch-wall)) - (< (+ (-> self clock frame-counter) (seconds -0.05)) (-> self control last-time-touching-actor)) + (< (+ (current-time) (seconds -0.05)) (-> self control last-time-touching-actor)) (< 0.7 (-> self control touch-angle)) (< 73728.0 (-> self control ctrl-xz-vel)) (and (< (vector-dot (-> self control wall-contact-normal) (-> self control dynam gravity-normal)) 0.3) (not (logtest? (-> self control status) (collide-status touch-actor))) ) ) - (set! (-> self board smack-surface-time) (-> self clock frame-counter)) + (set! (-> self board smack-surface-time) (current-time)) (set! (-> self board smack-speed) (-> self control ctrl-xz-vel)) (set! (-> self board smack-normal quad) (-> self control wall-contact-normal quad)) #t @@ -947,14 +938,14 @@ (set! f0-28 0.0) (set! f1-23 0.0) ) - (when (and (< (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 1)) + (when (and (< (- (current-time) (-> self control last-time-touching-actor)) (seconds 1)) (>= f28-0 0.5) (< (vector-dot (-> self control wall-contact-normal) (-> self control to-target-pt-xz)) -0.7) (logtest? (-> self control mod-surface flags) (surface-flag air)) (< 0.0 (-> gp-0 y)) ) (cond - ((and (>= (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.1)) + ((and (>= (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.1)) (< 0.3 (-> self control blocked-factor)) ) (set! f0-28 f1-23) @@ -1060,7 +1051,7 @@ (logtest? (state-flags prevent-board) (-> self state-flags)) (not (logtest? (-> *game-info* features) (game-feature board))) ) - (and (>= (- (-> self clock frame-counter) (-> self board board-get-on-time)) (seconds 1)) + (and (>= (- (current-time) (-> self board board-get-on-time)) (seconds 1)) (< (-> self board board-get-on-time) (max (-> self control list-time-on-ground) (-> self control last-time-of-stuck)) ) @@ -1232,7 +1223,7 @@ ;; WARN: Return type mismatch int vs none. (defbehavior target-board-physics target ((arg0 vector)) (let ((f30-0 0.5)) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.3)) + (if (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.3)) (+! (-> self board shock-offsetv) (* (- (-> arg0 y) (-> self control transv y)) f30-0)) (set! (-> self board up-vector 1 quad) (-> self board up-vector 0 quad)) ) @@ -1250,7 +1241,7 @@ (set! (-> self board shock-offsetv) 0.0) (set! (-> self board shock-offset) (* 0.96 (-> self board shock-offset))) ) - ((and (or (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.2)) + ((and (or (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.2)) (< (-> self board shock-offset) 0.0) ) (!= (-> self control mod-surface mode) 'air) @@ -1436,7 +1427,7 @@ (not (and (-> self next-state) (= (-> self next-state name) 'target-board-smack))) (not (focus-test? self halfpipe)) (!= (-> self control ground-pat mode) 3) - (>= (- (-> self clock frame-counter) (-> self board halfpipe-time)) (seconds 0.1)) + (>= (- (current-time) (-> self board halfpipe-time)) (seconds 0.1)) ) ) (let ((s5-3 (new 'stack-no-clear 'vector))) @@ -1457,7 +1448,7 @@ (s3-3 (vector-matrix*! (new 'stack-no-clear 'vector) s3-2 (-> self control w-R-c))) ) (logior! (-> self control status) (collide-status glance)) - (set! (-> self board glance-time) (-> self clock frame-counter)) + (set! (-> self board glance-time) (current-time)) (let ((v1-99 s2-2)) (set! (-> self board glance-speed) (sqrtf (+ (* (-> v1-99 x) (-> v1-99 x)) (* (-> v1-99 z) (-> v1-99 z))))) ) @@ -1486,10 +1477,7 @@ ) (else (set! (-> self control turn-lockout-end-time) - (the-as - time-frame - (max (+ (-> self clock frame-counter) (seconds 0.1)) (-> self control turn-lockout-end-time)) - ) + (the-as time-frame (max (+ (current-time) (seconds 0.1)) (-> self control turn-lockout-end-time))) ) ) ) @@ -1528,7 +1516,7 @@ (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) ) 0 (none) @@ -1560,7 +1548,7 @@ (not (logtest? (-> self control status) (collide-status on-surface))) ) (begin - (set! (-> self board in-air-time) (-> self clock frame-counter)) + (set! (-> self board in-air-time) (current-time)) (and (not (and (-> self next-state) (let ((v1-12 (-> self next-state name))) (or (= v1-12 'target-board-stance) (= v1-12 'target-board-duck-stance) (= v1-12 'target-board-turn-to)) @@ -1599,7 +1587,7 @@ ) ) ) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.2)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.2)) ) ) ) @@ -1610,7 +1598,7 @@ (else (set! (-> self control bend-speed) 1024.0) (set! (-> self control bend-target) 1.0) - (when (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (when (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) (forward-up-nopitch->quaternion (-> self control dir-targ) (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ)) @@ -1664,7 +1652,7 @@ (#f (set! (-> self control dynam gravity-length) 245760.0) ) - ((>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (-> self clock seconds-per-frame))) ) (else @@ -1713,17 +1701,15 @@ ) (when (and (zero? (shr (shl (-> self board unknown-int00) 54) 61)) (!= (shr (shl (-> self board unknown-int00) 40) 58) 13) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.2)) + (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2)) (< 819.2 (- f30-0 f0-36)) (or (< (-> self board unknown-time-frame01) (-> self control last-time-on-surface)) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame01)) (seconds 0.2)) + (< (- (current-time) (-> self board unknown-time-frame01)) (seconds 0.2)) ) (< 0.98 (vector-dot (-> self board unknown-vector01) (-> self control standard-dynamics gravity-normal))) (< f26-0 8192.0) (< f30-0 8192.0) - (or (< (* 0.2 f28-0) f30-0) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - ) + (or (< (* 0.2 f28-0) f30-0) (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1))) ) (vector+float*! (-> self control transv) @@ -1731,25 +1717,25 @@ (-> self control dynam gravity-normal) (* 7.0 (fmin 4096.0 f30-0)) ) - (if (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) - (set! (-> self board unknown-time-frame01) (-> self clock frame-counter)) + (if (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) + (set! (-> self board unknown-time-frame01) (current-time)) ) - (set! (-> self board unknown-time-frame00) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame00) (current-time)) ) ) (when (and (not (logtest? (-> self control status) (collide-status on-surface))) (< 0.0 f28-0) (or (and (or (< (target-height-above-ground) 4096.0) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (< 8192.0 (- f28-0 (vector-dot (-> self control dynam gravity-normal) (-> self board slow-transv)))) ) - (< (- (-> self clock frame-counter) (-> self board unknown-time-frame02)) (seconds 0.1)) + (< (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.1)) ) (>= 204.8 f30-0) (not (and (-> self next-state) (= (-> self next-state name) 'target-board-jump))) ) - (set! (-> self board unknown-time-frame02) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame02) (current-time)) (vector-length (-> self control transv)) (let ((v1-303 (new-stack-vector0)) (f0-51 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1820,16 +1806,16 @@ (turn-to-vector s5-0 (-> self control pad-magnitude)) ) (if (and (= (-> self control pad-magnitude) 0.0) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (>= (current-time) (-> self control turn-lockout-end-time)) (not (logtest? (-> self control current-surface flags) (surface-flag turn-to-vel))) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (rot->dir-targ! (-> self control)) ) - (when (and (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self control turn-lockout-end-time)) + (when (and (< (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) + (>= (current-time) (-> self control turn-lockout-end-time)) (not (logtest? (-> self control current-surface flags) (surface-flag turn-to-vel))) - (>= (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.1)) + (>= (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.1)) ) (let* ((s3-0 (vector-flatten! @@ -1855,7 +1841,7 @@ ) ) (if (cpad-pressed? (-> self control cpad number) l1) - (set! (-> self board unknown-time-frame06) (-> self clock frame-counter)) + (set! (-> self board unknown-time-frame06) (current-time)) ) (board-add-thrust) (add-gravity) @@ -1929,7 +1915,7 @@ (set! (-> self board trotyv) 0.0) ) ((and (= (-> self control danger-mode) 'board-spin) - (or (board-on-ground?) (>= (- (-> self clock frame-counter) (-> self board spin-time)) (seconds 0.5))) + (or (board-on-ground?) (>= (- (current-time) (-> self board spin-time)) (seconds 0.5))) ) (target-danger-set! 'harmless #f) ) @@ -2025,7 +2011,7 @@ (joint-points) (do-target-gspot) (target-powerup-process) - (set! (-> self board board-time) (-> self clock frame-counter)) + (set! (-> self board board-time) (current-time)) (target-board-exit-check) (target-board-effect) (when (board-on-ground?) @@ -2085,9 +2071,9 @@ (return (the-as time-frame #f)) ) (vector-normalize-copy! (-> self board ride-dir) (-> self board ride-segment) 1.0) - (when (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (set! (-> self board ride-lock-on) #f) - (set! (-> self board ride-start-time) (-> self clock frame-counter)) + (set! (-> self board ride-start-time) (current-time)) (vector-normalize-copy! (-> self board ride-dir) (-> self control transv) 1.0) (dotimes (v1-25 3) (vector-reset! (-> self board ride-vertex-old v1-25)) @@ -2179,7 +2165,7 @@ ) ) (when (and (< (-> self board ride-vertex-index) 0.0) - (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (< (- (current-time) (-> self board ride-time)) (seconds 0.2)) (zero? s3-3) ) (+! s3-3 1) @@ -2207,7 +2193,7 @@ (dotimes (v1-127 3) (set! (-> self board ride-vertex v1-127 w) 1.0) ) - (when (>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + (when (>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (set! (-> self board ride-rot-abs 0) (vector-y-angle (-> self board ride-segment))) (set! (-> self board ride-rtv-abs) 0.0) ) @@ -2254,9 +2240,7 @@ ) ) (let ((s4-3 0)) - (if (and (< (fabs f30-2) 16384.0) - (< (- (-> self clock frame-counter) (-> self board ride-start-time)) (seconds 0.1)) - ) + (if (and (< (fabs f30-2) 16384.0) (< (- (current-time) (-> self board ride-start-time)) (seconds 0.1))) (set! s4-3 (logior s4-3 1)) ) (if (or (< (vector-dot @@ -2354,7 +2338,7 @@ (set! s4-3 (logior s4-3 8)) ) ) - (if (>= (- (-> self clock frame-counter) (-> self board ride-button-time)) (seconds 0.05)) + (if (>= (- (current-time) (-> self board ride-button-time)) (seconds 0.05)) (set! s4-3 (logior s4-3 16)) ) (if (< (vector-length (-> self board ride-segment)) @@ -2366,7 +2350,7 @@ (set! s4-3 (logior s4-3 64)) ) (logclear! (-> self control status) (collide-status probe-hit)) - (when (and (< (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) (nonzero? s4-3)) + (when (and (< (- (current-time) (-> self board ride-time)) (seconds 0.2)) (nonzero? s4-3)) (if (logtest? s4-3 1) (format #t "exit speed ~M~%" f30-2) ) @@ -2442,12 +2426,12 @@ (-> self control to-target-pt-xz) (+ (-> self board ride-rot) (* -2730.6667 (-> self board ride-lean))) ) - (set! (-> self board ride-time) (-> self clock frame-counter)) + (set! (-> self board ride-time) (current-time)) (set! (-> self board ride-speed) f30-2) ) ) ) - (let ((v0-3 (-> self clock frame-counter))) + (let ((v0-3 (current-time))) (set! (-> self control last-time-on-surface) v0-3) v0-3 ) @@ -2605,7 +2589,7 @@ (when (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags two)) (cond - ((>= (- (-> self clock frame-counter) (-> self board ride-time)) (seconds 0.2)) + ((>= (- (current-time) (-> self board ride-time)) (seconds 0.2)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags one)) (set! (-> *collide-edge-board-spec* touching-segment) #f) ) @@ -2731,7 +2715,7 @@ (target-powerup-process) (target-board-exit-check) (target-board-effect) - (set! (-> self board board-time) (-> self clock frame-counter)) + (set! (-> self board board-time) (current-time)) 0 (none) ) @@ -2817,7 +2801,7 @@ (fmin (-> self board turn-anim-frame) (+ -1.0 (-> *TARGET_BOARD-bank* turn-frames))) (- (+ -1.0 (-> *TARGET_BOARD-bank* turn-frames))) ) - (* (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (* (sin (* 145.63556 (the float (- (current-time) (-> self state-time))))) (lerp-scale 1.0 2.0 (fabs (-> self board turn-anim-frame)) 0.0 (-> *TARGET_BOARD-bank* turn-frames)) ) ) @@ -2828,20 +2812,15 @@ arg0 ) ) - (let ((f0-59 (fmin - (if (logtest? (-> self control status) (collide-status on-surface)) - (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) - (-> self board turn-anim-duck) - ) - (lerp-scale - 0.0 - -1.0 - (the float (- (-> self clock frame-counter) (-> self control last-time-on-surface))) - 30.0 - 120.0 - ) - ) - ) + (let ((f0-59 + (fmin + (if (logtest? (-> self control status) (collide-status on-surface)) + (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) + (-> self board turn-anim-duck) + ) + (lerp-scale 0.0 -1.0 (the float (- (current-time) (-> self control last-time-on-surface))) 30.0 120.0) + ) + ) ) (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (-> self clock seconds-per-frame))) (cond diff --git a/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc b/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc index f78d0bc506..2301aeae01 100644 --- a/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc @@ -66,151 +66,149 @@ (tangent vector) (overhang-nrm vector) ) - (with-pp - (set! contact-normal arg2) - (set! sv-20 arg3) - (set! sv-24 arg4) - (set! sv-28 arg5) - (set! sv-32 (-> arg3 0)) - (set! sv-40 (-> arg4 0)) - (set! sv-48 (-> arg5 0)) - (set! tangent (-> arg0 low-coverage-tangent)) - (set! overhang-nrm - (vector-cross! (-> arg0 low-coverage-overhang-plane-normal) (-> arg0 poly-normal) contact-normal) - ) - (vector-normalize! overhang-nrm 1.0) - (if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) overhang-nrm)) 0.866) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf09))) + (set! contact-normal arg2) + (set! sv-20 arg3) + (set! sv-24 arg4) + (set! sv-28 arg5) + (set! sv-32 (-> arg3 0)) + (set! sv-40 (-> arg4 0)) + (set! sv-48 (-> arg5 0)) + (set! tangent (-> arg0 low-coverage-tangent)) + (set! overhang-nrm + (vector-cross! (-> arg0 low-coverage-overhang-plane-normal) (-> arg0 poly-normal) contact-normal) ) - (vector-cross! tangent contact-normal overhang-nrm) - (if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) tangent)) - (vector-negate! tangent tangent) + (vector-normalize! overhang-nrm 1.0) + (if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) overhang-nrm)) 0.866) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf09))) + ) + (vector-cross! tangent contact-normal overhang-nrm) + (if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) tangent)) + (vector-negate! tangent tangent) + ) + (vector-normalize! tangent 1.0) + (let ((s4-0 (new 'stack-no-clear 'collide-query))) + (let ((s3-0 (vector-flatten! (-> arg0 low-coverage-tangent-xz) tangent (-> arg0 dynam gravity-normal)))) + (let ((v1-19 s4-0)) + (set! (-> v1-19 radius) 409.6) + (set! (-> v1-19 collide-with) (-> arg1 best-my-prim prim-core collide-with)) + (set! (-> v1-19 ignore-process0) #f) + (set! (-> v1-19 ignore-process1) #f) + (set! (-> v1-19 ignore-pat) (-> arg0 pat-ignore-mask)) + (set! (-> v1-19 action-mask) (collide-action solid)) ) - (vector-normalize! tangent 1.0) - (let ((s4-0 (new 'stack-no-clear 'collide-query))) - (let ((s3-0 (vector-flatten! (-> arg0 low-coverage-tangent-xz) tangent (-> arg0 dynam gravity-normal)))) - (let ((v1-19 s4-0)) - (set! (-> v1-19 radius) 409.6) - (set! (-> v1-19 collide-with) (-> arg1 best-my-prim prim-core collide-with)) - (set! (-> v1-19 ignore-process0) #f) - (set! (-> v1-19 ignore-process1) #f) - (set! (-> v1-19 ignore-pat) (-> arg0 pat-ignore-mask)) - (set! (-> v1-19 action-mask) (collide-action solid)) + (vector-normalize! s3-0 1.0) + (if (< (vector-dot s3-0 contact-normal) 0.0) + (vector-negate! s3-0 s3-0) ) - (vector-normalize! s3-0 1.0) - (if (< (vector-dot s3-0 contact-normal) 0.0) - (vector-negate! s3-0 s3-0) - ) - (set! (-> arg0 low-coverage-slope-to-next1) 4095996000.0) - (set! (-> arg0 low-coverage-dist-to-next2) 4095996000.0) - (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) s3-0 2867.2) - (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) - (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 4096.0) - (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) - (set! (-> arg0 low-coverage-slope-to-next1) - (vector-dot - (-> arg0 dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> s4-0 best-other-tri intersect)) - ) - ) - (set! (-> arg0 low-coverage-pat-next1) (-> s4-0 best-other-tri pat)) - (set! (-> arg0 low-coverage-norm-of-next1 quad) (-> s4-0 best-other-tri normal quad)) - 0 - ) - (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) (-> arg0 dynam gravity-normal) 819.2) - (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) - (vector+float*! (-> s4-0 start-pos) (-> s4-0 start-pos) s3-0 -819.2) - (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 -4096.0) - ) + (set! (-> arg0 low-coverage-slope-to-next1) 4095996000.0) + (set! (-> arg0 low-coverage-dist-to-next2) 4095996000.0) + (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) s3-0 2867.2) + (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) + (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 4096.0) (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) - (set! (-> arg0 low-coverage-dist-to-next2) - (vector-vector-distance (-> s4-0 start-pos) (-> s4-0 best-other-tri intersect)) + (set! (-> arg0 low-coverage-slope-to-next1) + (vector-dot + (-> arg0 dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> s4-0 best-other-tri intersect)) + ) ) - (set! (-> arg0 low-coverage-pat-next2) (-> s4-0 best-other-tri pat)) - (set! (-> arg0 low-coverage-norm-of-next2 quad) (-> s4-0 best-other-tri normal quad)) + (set! (-> arg0 low-coverage-pat-next1) (-> s4-0 best-other-tri pat)) + (set! (-> arg0 low-coverage-norm-of-next1 quad) (-> s4-0 best-other-tri normal quad)) 0 ) + (vector+float*! (-> s4-0 start-pos) (-> arg1 best-other-tri intersect) (-> arg0 dynam gravity-normal) 819.2) + (vector-normalize-copy! (-> s4-0 move-dist) (-> arg0 dynam gravity-normal) -20480.0) + (vector+float*! (-> s4-0 start-pos) (-> s4-0 start-pos) s3-0 -819.2) + (vector+float*! (-> s4-0 move-dist) (-> s4-0 move-dist) s3-0 -4096.0) ) - (when (and (not (logtest? sv-32 (cshape-reaction-flags csrf09))) - (and (or (< (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) - (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode wall)) - ) - (and (< (-> arg0 low-coverage-dist-to-next2) (* 2.0 (-> arg1 best-my-prim local-sphere w))) - (or (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode ground)) - (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode halfpipe)) - ) - ) - ) - ) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf07))) - (set! (-> arg0 time-of-last-lc-touch-edge) (-> pp clock frame-counter)) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) - (let ((f30-0 (vector-dot tangent (-> arg0 turn-to-target))) - (f0-27 (if (logtest? sv-32 (cshape-reaction-flags csrf01)) - (cos (- 16384.0 (acos (-> arg0 coverage)))) - (-> arg0 coverage) - ) - ) - (f1-11 (vector-dot - (-> arg0 dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-other-tri intersect)) - ) - ) + (when (>= (probe-using-line-sphere *collide-cache* s4-0) 0.0) + (set! (-> arg0 low-coverage-dist-to-next2) + (vector-vector-distance (-> s4-0 start-pos) (-> s4-0 best-other-tri intersect)) ) - (if (or (not (logtest? sv-32 (cshape-reaction-flags csrf05))) (< 0.5 f0-27)) - (set! sv-48 (the-as symbol #f)) - ) - (when (and (or (and (< f0-27 0.95) (>= f30-0 0.0)) - (and (logtest? sv-32 (cshape-reaction-flags csrf05)) (< f0-27 0.3)) - (< f1-11 (* -0.25 (-> arg1 best-my-prim local-sphere w))) - ) - (>= (vector-dot tangent contact-normal) -0.000001) - ) - (set! (-> arg0 surf) *edge-surface*) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf10))) - (set! sv-48 (the-as symbol #f)) - (when (logtest? sv-32 (cshape-reaction-flags csrf05)) - (set! sv-48 #t) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf12))) - ) - ) - ) + (set! (-> arg0 low-coverage-pat-next2) (-> s4-0 best-other-tri pat)) + (set! (-> arg0 low-coverage-norm-of-next2 quad) (-> s4-0 best-other-tri normal quad)) + 0 ) - (if (< (-> arg0 surface-angle) 0.0) - (set! sv-48 #t) - ) - (when sv-48 - (cond - ((and (or (or (= (-> arg0 poly-pat mode) (pat-mode ground)) (= (-> arg0 poly-pat mode) (pat-mode halfpipe))) - (and (logtest? sv-32 (cshape-reaction-flags csrf03)) - (>= (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) - (or (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode ground)) - (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode halfpipe)) + ) + (when (and (not (logtest? sv-32 (cshape-reaction-flags csrf09))) + (and (or (< (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) + (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode wall)) + ) + (and (< (-> arg0 low-coverage-dist-to-next2) (* 2.0 (-> arg1 best-my-prim local-sphere w))) + (or (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode ground)) + (= (-> arg0 low-coverage-pat-next2 mode) (pat-mode halfpipe)) ) - (< 0.3 (fabs (-> arg0 surface-angle))) ) ) - (not (logtest? sv-32 (cshape-reaction-flags csrf07))) - ) - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) - (set! sv-48 (the-as symbol #f)) - ) - (#t - (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) - (set! sv-40 (logior sv-40 (collide-status touch-edge))) - (set! (-> arg0 time-of-last-lc) (-> pp clock frame-counter)) + ) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf07))) + (set! (-> arg0 time-of-last-lc-touch-edge) (current-time)) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + (let ((f30-0 (vector-dot tangent (-> arg0 turn-to-target))) + (f0-27 (if (logtest? sv-32 (cshape-reaction-flags csrf01)) + (cos (- 16384.0 (acos (-> arg0 coverage)))) + (-> arg0 coverage) + ) + ) + (f1-11 (vector-dot + (-> arg0 dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-other-tri intersect)) + ) + ) + ) + (if (or (not (logtest? sv-32 (cshape-reaction-flags csrf05))) (< 0.5 f0-27)) + (set! sv-48 (the-as symbol #f)) + ) + (when (and (or (and (< f0-27 0.95) (>= f30-0 0.0)) + (and (logtest? sv-32 (cshape-reaction-flags csrf05)) (< f0-27 0.3)) + (< f1-11 (* -0.25 (-> arg1 best-my-prim local-sphere w))) + ) + (>= (vector-dot tangent contact-normal) -0.000001) + ) + (set! (-> arg0 surf) *edge-surface*) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf10))) + (set! sv-48 (the-as symbol #f)) + (when (logtest? sv-32 (cshape-reaction-flags csrf05)) + (set! sv-48 #t) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf12))) ) ) ) - (set! (-> sv-24 0) sv-40) - (set! (-> sv-20 0) sv-32) - (set! (-> sv-28 0) sv-48) - 0 - (none) ) + (if (< (-> arg0 surface-angle) 0.0) + (set! sv-48 #t) + ) + (when sv-48 + (cond + ((and (or (or (= (-> arg0 poly-pat mode) (pat-mode ground)) (= (-> arg0 poly-pat mode) (pat-mode halfpipe))) + (and (logtest? sv-32 (cshape-reaction-flags csrf03)) + (>= (* 1.25 (-> arg1 best-my-prim local-sphere w)) (-> arg0 low-coverage-slope-to-next1)) + (or (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode ground)) + (= (-> arg0 low-coverage-pat-next1 mode) (pat-mode halfpipe)) + ) + (< 0.3 (fabs (-> arg0 surface-angle))) + ) + ) + (not (logtest? sv-32 (cshape-reaction-flags csrf07))) + ) + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + (set! sv-48 (the-as symbol #f)) + ) + (#t + (set! sv-32 (logior sv-32 (cshape-reaction-flags csrf06))) + (set! sv-40 (logior sv-40 (collide-status touch-edge))) + (set! (-> arg0 time-of-last-lc) (current-time)) + ) + ) + ) + (set! (-> sv-24 0) sv-40) + (set! (-> sv-20 0) sv-32) + (set! (-> sv-28 0) sv-48) + 0 + (none) ) ;; definition for function target-collision-reaction @@ -383,7 +381,7 @@ (vector-! (new 'stack-no-clear 'vector) (-> arg1 best-other-tri intersect) (-> arg0 grount-touch-point)) ) ) - (< (- (-> self clock frame-counter) (-> arg0 list-time-on-ground)) (seconds 0.3)) + (< (- (current-time) (-> arg0 list-time-on-ground)) (seconds 0.3)) ) (logtest? sv-104 (cshape-reaction-flags csrf15)) ) @@ -454,7 +452,7 @@ (set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad)) (set! (-> arg0 ground-contact-normal quad) (-> sv-84 quad)) (set! (-> arg0 ground-local-norm-dot-grav) (vector-dot sv-84 (-> arg0 dynam gravity-normal))) - (set! (-> arg0 list-time-on-ground) (-> self clock frame-counter)) + (set! (-> arg0 list-time-on-ground) (current-time)) (set! (-> arg0 ground-pat) (-> arg0 poly-pat)) (set! (-> arg0 grount-touch-point quad) (-> arg1 best-other-tri intersect quad)) (set! (-> arg0 ground-contact-sphere-center quad) (-> arg1 best-my-prim prim-core world-sphere quad)) @@ -584,7 +582,7 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defbehavior rail-surface-touch target () - (when (>= (- (-> self clock frame-counter) (-> self control time-of-last-surface-change)) (seconds 0.2)) + (when (>= (- (current-time) (-> self control time-of-last-surface-change)) (seconds 0.2)) (logclear! (-> *collide-edge-board-spec* flags) (collide-edge-spec-flags one send-event)) (set! (-> *collide-edge-board-spec* touching-segment) #f) (do-edge-grabs *target* *collide-cache* *collide-edge-board-spec*) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc index 0a76cba8ad..4dd54b6ac6 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc @@ -235,7 +235,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (cond ((or (and *target* @@ -246,10 +246,8 @@ ) (go-virtual dissipate) ) - ((or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) (cpad-hold? 0 r1)) - (set! (-> self size-t) - (fmin 1.0 (* 0.016666668 (the float (- (-> self clock frame-counter) (-> self state-time))))) - ) + ((or (< (- (current-time) (-> self state-time)) (seconds 0.3)) (cpad-hold? 0 r1)) + (set! (-> self size-t) (fmin 1.0 (* 0.016666668 (the float (- (current-time) (-> self state-time)))))) (let ((t9-1 vector<-cspace!) (a0-13 (-> self root-override trans)) (v1-26 (-> self parent)) @@ -327,7 +325,7 @@ (vector-float*! (-> self spin-vector) (-> self spin-vector) (/ 1.0 f0-5)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-2 (get-process *default-dead-pool* part-tracker #x4000))) (when gp-2 (let ((t9-4 (method-of-type part-tracker activate))) @@ -399,7 +397,7 @@ (vector-flatten! (-> self spin-vector) (-> self spin-vector) s4-0) (matrix-axis-angle! s5-0 s4-0 (* 2002.4889 (-> self clock time-adjust-ratio))) (vector-matrix*! (-> self spin-vector) (-> self spin-vector) s5-0) - (let ((f0-9 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let ((f0-9 (the float (- (current-time) (-> self state-time)))) (f30-0 0.0) ) (cond @@ -554,11 +552,11 @@ (defstate fizzle (gun-dark-shot) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (deactivate self) ) (process-drawable-shock-effect @@ -659,7 +657,7 @@ (sv-320 process-drawable) (sv-336 process-drawable) ) - (if (< (- (-> self clock frame-counter) (-> self spawn-time)) (seconds 0.1)) + (if (< (- (current-time) (-> self spawn-time)) (seconds 0.1)) (send-event (ppointer->process (-> self parent)) 'release) ) (sound-stop (the-as sound-id (-> self trail-sound))) @@ -830,7 +828,7 @@ ((arg0 handle)) (let ((s5-0 (-> self parent)) (s4-0 0) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) ) (set! (-> self clock) (-> s5-0 0 clock)) (while (and (nonzero? (-> (the-as process-drawable (-> s5-0 0)) skel)) @@ -862,18 +860,18 @@ ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 0.1)) + (< (- (current-time) s3-0) (seconds 0.1)) ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 5)) + (< (- (current-time) s3-0) (seconds 5)) (not (logtest? (-> (the-as process-drawable (-> s5-0 0)) draw status) (draw-control-status no-draw no-draw-temp)) ) ) ) ) - (when (>= (- (-> self clock frame-counter) (the-as time-frame s4-0)) (seconds 0.05)) - (set! s4-0 (the-as int (-> self clock frame-counter))) + (when (>= (- (current-time) (the-as time-frame s4-0)) (seconds 0.05)) + (set! s4-0 (the-as int (current-time))) (if (handle->process arg0) (process-drawable-shock-effect-bullseye (the-as process-focusable (handle->process arg0)) @@ -903,8 +901,8 @@ (-> self result-array (+ gp-2 -1)) :to s4-1 ) - (let ((s4-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-2) (seconds 0.1)) + (let ((s4-2 (current-time))) + (until (>= (- (current-time) s4-2) (seconds 0.1)) (suspend) ) ) @@ -913,9 +911,9 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) + (let ((gp-3 (current-time))) (while (or (-> self child) (and (nonzero? (get-status *gui-control* (the-as sound-id (-> self explode-sound)))) - (< (- (-> self clock frame-counter) gp-3) (seconds 10)) + (< (- (current-time) gp-3) (seconds 10)) ) ) (suspend) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc index a379858bd6..69b08fb2a1 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc @@ -465,7 +465,7 @@ (defbehavior want-to-gun? process ((arg0 target) (arg1 symbol)) (local-vars (v1-36 symbol)) (and (logtest? (-> arg0 game features) (game-feature gun)) - (>= (- (-> self clock frame-counter) (-> arg0 gun gun-time)) (seconds 0.1)) + (>= (- (current-time) (-> arg0 gun gun-time)) (seconds 0.1)) (not (focus-test? arg0 dead hit board mech dark teleporting)) (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> arg0 control current-surface flags))) (not (logtest? (state-flags prevent-gun) (-> arg0 state-flags))) @@ -487,7 +487,7 @@ (-> arg0 gun latch?) ) (not (-> arg0 skel top-anim frame-group)) - (>= (- (-> self clock frame-counter) (-> arg0 control time-of-last-debug-float)) (seconds 0.1)) + (>= (- (current-time) (-> arg0 control time-of-last-debug-float)) (seconds 0.1)) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc index 11d21f6d35..1711b81770 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc @@ -472,8 +472,8 @@ (defstate debug-idle (gun-red-shot) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 3)) (let ((gp-0 (new 'stack-no-clear 'vector))) (dotimes (s5-0 (-> self probe-count)) (vector-float*! gp-0 (-> self probe-dir s5-0) 61440.0) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-states_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-states_REF.gc index 8745f4b1d7..51db9150a4 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-states_REF.gc @@ -43,7 +43,7 @@ (set! (-> self state-flags) (logior (state-flags lleg-still rleg-still) (-> self state-flags))) (set! (-> self control mod-surface) *gun-walk-mods*) (set! (-> self control unknown-word04) (the-as uint #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -120,7 +120,7 @@ (defstate target-gun-walk (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *gun-walk-mods*) (case (-> self gun gun-type) (((pickup-type eco-yellow) (pickup-type eco-blue)) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc index 0329fdbb54..1024a719fc 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc @@ -583,7 +583,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self draw shadow) (-> self shadow-backup)) (logior! (-> self skel status) (joint-control-status sync-math)) (none) @@ -617,7 +617,7 @@ ((begin (set! a0-14 (!= (-> (the-as target (-> self parent 0)) game gun-type) (-> self gun-type))) (and (the-as symbol a0-14) (let ((v1-16 (-> self state-time))) - (set! a0-14 (-> self clock frame-counter)) + (set! a0-14 (current-time)) (!= v1-16 (the-as time-frame a0-14)) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc index 8173ea2c3e..00917f2b74 100644 --- a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc @@ -6,7 +6,7 @@ (defbehavior build-conversions target ((arg0 vector)) (when (!= (-> self control prev-surf) (-> self control surf)) (set! (-> self control prev-surf) (-> self control surf)) - (set! (-> self control time-of-last-surface-change) (-> self clock frame-counter)) + (set! (-> self control time-of-last-surface-change) (current-time)) ) (surface-mult! (-> self control current-surface) (-> self control mod-surface) (-> self control surf)) (when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 3) @@ -456,7 +456,7 @@ arg1 "~0ky:~,,2M t:~d cy: ~,,2M my: ~,,2M impv:~,,2M " (-> arg0 control last-trans-any-surf y) - (- (-> (the-as target pp) clock frame-counter) (-> arg0 control last-time-on-surface)) + (- (current-time) (-> arg0 control last-time-on-surface)) (- (-> arg0 control trans y) (-> arg0 control last-trans-any-surf y)) (- (-> arg0 control highest-jump-mark y) (-> arg0 control last-trans-leaving-surf y)) (-> arg0 control ground-impact-vel) @@ -519,7 +519,7 @@ (set! (-> arg0 w) 0.0) (set! (-> self control pad-xz-dir quad) (-> arg0 quad)) (set! (-> self control pad-magnitude) (-> self control cpad stick0-speed)) - (when (< (-> self control update-cam-R-w-start-time) (-> self clock frame-counter)) + (when (< (-> self control update-cam-R-w-start-time) (current-time)) (let ((s5-0 (-> self control cam-R-w)) (t9-2 matrix-local->world) (a0-13 #t) @@ -635,14 +635,14 @@ (set! (-> self control idx-of-fastest-xz-vel) a0-3) (set! (-> self control average-xz-vel) f1-1) (if (logtest? (-> self control current-surface flags) (surface-flag no-turn-around)) - (set! (-> v1-7 0) (-> self clock frame-counter)) + (set! (-> v1-7 0) (current-time)) ) - (and (>= (the-as uint (- (-> self clock frame-counter) (-> v1-7 0))) (the-as uint 300)) + (and (>= (the-as uint (- (current-time) (-> v1-7 0))) (the-as uint 300)) (< f0-1 0.0) (< 32768.0 f1-1) (< 0.7 (-> self control pad-magnitude)) - (>= (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.3)) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-lc)) (seconds 0.3)) + (>= (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.3)) + (>= (- (current-time) (-> self control time-of-last-lc)) (seconds 0.3)) (logtest? (-> self control status) (collide-status on-surface)) (and (< 0.7 (-> self control surface-angle)) #t) ) @@ -666,13 +666,11 @@ ) ) ) - (if (>= (- (-> self clock frame-counter) (-> self control time-of-last-wall-hide-first-check-pass)) (seconds 0.1)) - (set! (-> self control time-of-first-wall-hide-first-check-pass) (-> self clock frame-counter)) + (if (>= (- (current-time) (-> self control time-of-last-wall-hide-first-check-pass)) (seconds 0.1)) + (set! (-> self control time-of-first-wall-hide-first-check-pass) (current-time)) ) - (set! (-> self control time-of-last-wall-hide-first-check-pass) (-> self clock frame-counter)) - (when (>= (- (-> self clock frame-counter) (-> self control time-of-first-wall-hide-first-check-pass)) - (seconds 0.5) - ) + (set! (-> self control time-of-last-wall-hide-first-check-pass) (current-time)) + (when (>= (- (current-time) (-> self control time-of-first-wall-hide-first-check-pass)) (seconds 0.5)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) (let ((v1-34 (-> gp-0 bbox)) (a0-13 (-> self control trans)) @@ -731,7 +729,7 @@ ;; WARN: Return type mismatch int vs none. (defbehavior target-log-trans target () (let ((v1-1 (-> self control trans-log-idx))) - (set! (-> self control trans-log-times v1-1) (-> self clock frame-counter)) + (set! (-> self control trans-log-times v1-1) (current-time)) (set! (-> self control trans-log-trans v1-1 quad) (-> self control trans quad)) (set! (-> self control trans-log-idx) (logand (+ v1-1 1) 127)) ) @@ -750,7 +748,7 @@ (let* ((v1-0 127) (a1-2 (logand (+ (-> s4-0 trans-log-idx) v1-0) 127)) ) - (while (and (< (- (-> self clock frame-counter) (-> s4-0 trans-log-times a1-2)) arg0) (> v1-0 0)) + (while (and (< (- (current-time) (-> s4-0 trans-log-times a1-2)) arg0) (> v1-0 0)) (vector+! s5-0 s5-0 (-> s4-0 trans-log-trans a1-2)) (+! gp-0 1) (+! v1-0 -1) @@ -1002,9 +1000,9 @@ ) ) ) - (set! (-> self control time-of-last-clear-wall-in-jump) (-> self clock frame-counter)) + (set! (-> self control time-of-last-clear-wall-in-jump) (current-time)) ) - (if (< (- (-> self clock frame-counter) (-> self control time-of-last-clear-wall-in-jump)) (seconds 0.2)) + (if (< (- (current-time) (-> self control time-of-last-clear-wall-in-jump)) (seconds 0.2)) (set! f30-0 (+ 204800.0 f30-0)) ) (if (and (not (logtest? (-> self control status) (collide-status touch-wall))) @@ -1153,14 +1151,14 @@ (collide-status on-surface touch-surface) ) ) - (< (- (-> self clock frame-counter) (-> self control last-time-touching-actor)) (seconds 0.5)) + (< (- (current-time) (-> self control last-time-touching-actor)) (seconds 0.5)) (not (and (-> self next-state) (let ((v1-15 (-> self next-state name))) (or (= v1-15 'target-walk) (= v1-15 'target-gun-walk)) ) ) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) - (< (- (-> self clock frame-counter) (-> self control time-of-last-lc)) (seconds 0.5)) + (< (- (current-time) (-> self state-time)) (seconds 0.5)) + (< (- (current-time) (-> self control time-of-last-lc)) (seconds 0.5)) (logtest? (-> self control current-surface flags) (surface-flag turn-to-pad)) (!= (-> self control force-turn-to-strength) 0.0) ) @@ -1185,9 +1183,7 @@ s4-0 s3-1 (cond - ((and (or (>= 0.0 (-> self control turn-to-magnitude)) - (< (-> self clock frame-counter) (-> self control turn-lockout-end-time)) - ) + ((and (or (>= 0.0 (-> self control turn-to-magnitude)) (< (current-time) (-> self control turn-lockout-end-time))) (not (logtest? (-> self control current-surface flags) (surface-flag turn-when-centered))) ) 0.0 @@ -1535,7 +1531,7 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defbehavior pre-collide-setup target () - (if (>= (-> self clock frame-counter) (-> self control additional-decaying-velocity-decay-start-time)) + (if (>= (current-time) (-> self control additional-decaying-velocity-decay-start-time)) (vector-normalize! (-> self control additional-decaying-velocity) (seek @@ -1547,9 +1543,7 @@ ) (cond ((logtest? (-> self control old-status) (collide-status on-surface)) - (if (>= (+ (-> self clock frame-counter) (seconds -0.035)) - (-> self control additional-decaying-velocity-end-time) - ) + (if (>= (+ (current-time) (seconds -0.035)) (-> self control additional-decaying-velocity-end-time)) (vector-reset! (-> self control additional-decaying-velocity)) ) ) @@ -1583,7 +1577,7 @@ (set! (-> self current-level) (level-get-target-inside *level*)) (if (-> self current-level) (+! (-> self game task-in-times (-> self current-level info task-level)) - (- (-> self clock frame-counter) (-> self clock old-frame-counter)) + (- (current-time) (-> self clock old-frame-counter)) ) ) (if (and (-> self current-level) (or (not gp-0) (!= (-> gp-0 name) (-> self current-level name)))) @@ -1601,15 +1595,13 @@ (cond ((= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) (if (zero? (-> self control time-between-zero-inputs)) - (set! (-> self control time-between-zero-inputs) - (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) - ) + (set! (-> self control time-between-zero-inputs) (- (current-time) (-> self control time-of-last-zero-input))) ) - (set! (-> self control time-of-last-zero-input) (-> self clock frame-counter)) + (set! (-> self control time-of-last-zero-input) (current-time)) (quaternion-copy! (-> self control last-nonzero-input-dir-targ) (-> self control dir-targ)) ) (else - (set! (-> self control time-of-last-nonzero-input) (-> self clock frame-counter)) + (set! (-> self control time-of-last-nonzero-input) (current-time)) (set! (-> self control time-between-zero-inputs) 0) 0 ) @@ -1620,7 +1612,7 @@ ((-> self control current-surface active-hook)) (cond ((logtest? (-> self control status) (collide-status on-surface)) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) (if (and (>= (-> self control coverage) 1.0) (not (logtest? (-> self control status) (collide-status touch-actor on-water))) @@ -1658,7 +1650,7 @@ (logtest? (-> self control mod-surface flags) (surface-flag look-around)) (not (focus-test? self edge-grab pole flut tube board pilot dark)) (-> *setting-control* user-current allow-look-around) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-look-around-wait))) (seconds 0.05)) + (>= (- (current-time) (the-as int (-> self no-look-around-wait))) (seconds 0.05)) (not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control ctrl-xz-vel))) ) ) @@ -1714,7 +1706,7 @@ ) ) (send-event *camera* 'reset-follow) - (set! (-> self control time-of-last-debug-float) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-float) (current-time)) (cond ((focus-test? self mech indax) (if (not (and (-> self next-state) (let ((v1-179 (-> self next-state name))) @@ -1798,9 +1790,7 @@ ) ) (let ((v1-229 (-> self current-level))) - (when (and (or (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 2)) - (focus-test? self pilot) - ) + (when (and (or (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 2)) (focus-test? self pilot)) (and v1-229 (< (-> self control trans y) (-> v1-229 info buttom-height)) (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))) @@ -1852,19 +1842,19 @@ ;; WARN: Return type mismatch int vs none. (defbehavior post-flag-setup target () (if (logtest? (-> self control status) (collide-status touch-wall touch-actor)) - (set! (-> self control last-time-touching-actor) (-> self clock frame-counter)) + (set! (-> self control last-time-touching-actor) (current-time)) ) (when (logtest? (-> self state-flags) (state-flags tinvul1)) - (if (< (logand (- (-> self clock frame-counter) (-> self control invul1-on-time)) 3) 1) + (if (< (logand (- (current-time) (-> self control invul1-on-time)) 3) 1) (logior! (-> self draw status) (draw-control-status no-draw-bounds)) (logclear! (-> self draw status) (draw-control-status no-draw-bounds)) ) - (if (>= (- (-> self clock frame-counter) (-> self control invul1-on-time)) (-> self control invul1-off-time)) + (if (>= (- (current-time) (-> self control invul1-on-time)) (-> self control invul1-off-time)) (target-timed-invulnerable-off self 1) ) ) (when (logtest? (state-flags tinvul2) (-> self state-flags)) - (if (>= (- (-> self clock frame-counter) (-> self control invul2-on-time)) (-> self control invul2-off-time)) + (if (>= (- (current-time) (-> self control invul2-on-time)) (-> self control invul2-off-time)) (target-timed-invulnerable-off self 2) ) ) @@ -2092,7 +2082,7 @@ (set! (-> self control hand-to-edge-dist) (vector-length s4-1)) (cond ((and (< 819.2 (-> self control hand-to-edge-dist)) - (>= (- (-> self clock frame-counter) (-> self control last-successful-compute-edge-time)) (seconds 0.2)) + (>= (- (current-time) (-> self control last-successful-compute-edge-time)) (seconds 0.2)) ) (cond ((-> s5-0 pilot-edge-grab?) @@ -2138,7 +2128,7 @@ ) ) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (vector+! s3-1 s3-1 (-> self control cspace-offset)) (move-to-point! (-> self control) s3-1) ) @@ -2151,9 +2141,9 @@ (move-by-vector! (-> self control) a1-20) ) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) - (if (and (>= (- (-> self clock frame-counter) (-> self control edge-grab-start-time)) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self control last-successful-compute-edge-time)) (seconds 0.5)) + (set! (-> self control rider-time) (current-time)) + (if (and (>= (- (current-time) (-> self control edge-grab-start-time)) (seconds 0.5)) + (>= (- (current-time) (-> self control last-successful-compute-edge-time)) (seconds 0.5)) ) (send-event self 'end-mode) ) @@ -2164,13 +2154,13 @@ (let ((a1-23 (new 'stack-no-clear 'vector))) (vector-! a1-23 (-> s5-0 center-hold) (-> self control ctrl-to-hands-offset)) (vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (vector+! a1-23 a1-23 (-> self control cspace-offset)) (move-to-point! (-> self control) a1-23) ) (set! (-> self control hand-to-edge-dist) 0.0) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) - (set! (-> self control last-successful-compute-edge-time) (-> self clock frame-counter)) + (set! (-> self control last-successful-compute-edge-time) (current-time)) ) ) ) @@ -2243,7 +2233,7 @@ ) (let ((a1-15 (vector-! (new-stack-vector0) (-> gp-0 center-hold) (-> gp-0 center-hold-old)))) (vector-float*! (-> self control rider-last-move) a1-15 (-> self clock frames-per-second)) - (set! (-> self control rider-time) (-> self clock frame-counter)) + (set! (-> self control rider-time) (current-time)) (move-by-vector! (-> self control) a1-15) ) ) @@ -2283,7 +2273,7 @@ (send-event *camera* 'ease-in #x3f000000 v1-10) ) (vector-segment-distance-point! (-> self control midpoint-of-hands) s4-1 s3-1 s5-0) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (if (< (- (current-time) (-> self state-time)) (seconds 0.05)) (set! (-> self control hand-to-edge-dist) (fmax 0.0 (fmin 1.0 (/ (vector-vector-distance s4-1 s5-0) (* 2.0 (-> (the-as swingpole s2-0) edge-length))))) ) @@ -2382,7 +2372,7 @@ ) (vector<-cspace! gp-0 (-> self node-list data 6)) (cond - ((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame26)) + ((>= (+ (current-time) (seconds -2)) (-> self control unknown-time-frame26)) (set! (-> self control camera-pos quad) (-> s5-0 quad)) ) ((not (and (logtest? (-> self water flags) (water-flags under-water)) @@ -2393,7 +2383,7 @@ (-> self control camera-pos) gp-0 s5-0 - (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame26)))) + (* 0.0016666667 (the float (- (current-time) (-> self control unknown-time-frame26)))) ) ) (else @@ -2401,13 +2391,7 @@ (-> self control camera-pos) s5-0 gp-0 - (fmax - 0.0 - (fmin - 1.0 - (* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame27)))) - ) - ) + (fmax 0.0 (fmin 1.0 (* 0.0011111111 (the float (- (current-time) (-> self control unknown-time-frame27)))))) ) ) ) @@ -3135,7 +3119,7 @@ (set! (-> self control bent-gravity-normal quad) (-> self control standard-dynamics gravity-normal quad)) (quaternion-identity! (-> self control override-quat)) (set! (-> self control override-quat-alpha) 0.0) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (set! (-> self control bend-amount) 0.0) (set! (-> self control bend-speed) 32.0) (set! (-> self cam-user-mode) 'normal) @@ -3371,9 +3355,9 @@ (set! (-> obj current-level) #f) (level-setup) (set! (-> obj pre-joint-hook) (the-as (function none :behavior target) nothing)) - (set! (-> obj init-time) (-> self clock frame-counter)) + (set! (-> obj init-time) (current-time)) (set! (-> obj spool-anim) (the-as spool-anim #t)) - (set! (-> obj ambient-time) (-> self clock frame-counter)) + (set! (-> obj ambient-time) (current-time)) 0 (none) ) diff --git a/test/decompiler/reference/jak2/engine/target/mech_suit/carry-h_REF.gc b/test/decompiler/reference/jak2/engine/target/mech_suit/carry-h_REF.gc index 99b7c32ff4..97410899b8 100644 --- a/test/decompiler/reference/jak2/engine/target/mech_suit/carry-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech_suit/carry-h_REF.gc @@ -472,10 +472,10 @@ Returns `-1.0` if it exceeds the maximum allowed" (let* ((a1-8 (quaternion-normalize! (matrix->quaternion (new 'stack-no-clear 'quaternion) s5-1))) (s5-3 (quaternion-normalize! (quaternion*! a1-8 a1-8 (-> obj grab-quat)))) (v1-19 (vector-! (new 'stack-no-clear 'vector) (-> s4-0 point) s3-2)) - (f30-0 (* 0.033333335 (the float (- (-> self clock frame-counter) (-> obj pickup-time))))) + (f30-0 (* 0.033333335 (the float (- (current-time) (-> obj pickup-time))))) ) (cond - ((>= (- (-> self clock frame-counter) (-> obj pickup-time)) (seconds 1)) + ((>= (- (current-time) (-> obj pickup-time)) (seconds 1)) (set! (-> obj process 0 control trans quad) (-> v1-19 quad)) (quaternion-copy! (-> obj process 0 control quat) s5-3) ) diff --git a/test/decompiler/reference/jak2/engine/target/mech_suit/grunt-mech_REF.gc b/test/decompiler/reference/jak2/engine/target/mech_suit/grunt-mech_REF.gc index ae9b5d8eaf..0026912f67 100644 --- a/test/decompiler/reference/jak2/engine/target/mech_suit/grunt-mech_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech_suit/grunt-mech_REF.gc @@ -125,75 +125,71 @@ ;; definition for method 10 of type grunt-mech-info ;; WARN: Return type mismatch int vs none. (defmethod grunt-mech-info-method-10 grunt-mech-info ((obj grunt-mech-info)) - (with-pp - (let ((s5-0 (-> pp clock frame-counter))) - (when (!= (-> obj last-update-time) s5-0) - (when (< s5-0 (-> obj last-update-time)) - (countdown (v1-4 6) - (let ((a0-4 (-> obj holds v1-4))) - (set! (-> a0-4 grunt-handle) (the-as handle #f)) - (set! (-> a0-4 timeout) (the-as uint 0)) - ) - 0 + (let ((s5-0 (current-time))) + (when (!= (-> obj last-update-time) s5-0) + (when (< s5-0 (-> obj last-update-time)) + (countdown (v1-4 6) + (let ((a0-4 (-> obj holds v1-4))) + (set! (-> a0-4 grunt-handle) (the-as handle #f)) + (set! (-> a0-4 timeout) (the-as uint 0)) ) - (set! (-> obj reserved-mask) (the-as uint 0)) 0 ) - (set! (-> obj last-update-time) s5-0) - (let ((v1-8 *target*)) - (cond - ((and v1-8 (focus-test? v1-8 mech)) - (let ((s4-0 (-> v1-8 manipy 0 node-list data 3))) - (dotimes (s3-0 6) - (let ((s2-0 (-> obj holds s3-0))) - (matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform)) - (vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w))) - (when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout)))) - (set! (-> s2-0 grunt-handle) (the-as handle #f)) - (logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask)) - ) + (set! (-> obj reserved-mask) (the-as uint 0)) + 0 + ) + (set! (-> obj last-update-time) s5-0) + (let ((v1-8 *target*)) + (cond + ((and v1-8 (focus-test? v1-8 mech)) + (let ((s4-0 (-> v1-8 manipy 0 node-list data 3))) + (dotimes (s3-0 6) + (let ((s2-0 (-> obj holds s3-0))) + (matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform)) + (vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w))) + (when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout)))) + (set! (-> s2-0 grunt-handle) (the-as handle #f)) + (logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask)) ) ) ) ) - (else - (countdown (v1-25 6) - (let ((a0-16 (-> obj holds v1-25))) - (set! (-> a0-16 grunt-handle) (the-as handle #f)) - (set! (-> a0-16 timeout) (the-as uint 0)) - ) - 0 + ) + (else + (countdown (v1-25 6) + (let ((a0-16 (-> obj holds v1-25))) + (set! (-> a0-16 grunt-handle) (the-as handle #f)) + (set! (-> a0-16 timeout) (the-as uint 0)) ) - (set! (-> obj reserved-mask) (the-as uint 0)) 0 ) + (set! (-> obj reserved-mask) (the-as uint 0)) + 0 ) ) ) ) - (none) ) + (none) ) ;; definition for method 9 of type grunt-mech-info (defmethod grunt-mech-info-method-9 grunt-mech-info ((obj grunt-mech-info) (arg0 int) (arg1 process) (arg2 symbol)) - (with-pp - (grunt-mech-info-method-10 obj) - (let ((v1-2 *target*)) - (when (and v1-2 (focus-test? v1-2 mech) (not (logtest? (-> v1-2 focus-status) (focus-status dead ignore)))) - (let ((v1-8 (-> obj holds arg0))) - (when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1)) - (set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5)))) - (return #t) - ) - (when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask))) - (when (not arg2) - (logior! (-> obj reserved-mask) (-> v1-8 reserve-mask)) - (set! (-> v1-8 grunt-handle) (process->handle arg1)) - (set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5)))) - ) - #t + (grunt-mech-info-method-10 obj) + (let ((v1-2 *target*)) + (when (and v1-2 (focus-test? v1-2 mech) (not (logtest? (-> v1-2 focus-status) (focus-status dead ignore)))) + (let ((v1-8 (-> obj holds arg0))) + (when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1)) + (set! (-> v1-8 timeout) (the-as uint (+ (current-time) (seconds 0.5)))) + (return #t) + ) + (when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask))) + (when (not arg2) + (logior! (-> obj reserved-mask) (-> v1-8 reserve-mask)) + (set! (-> v1-8 grunt-handle) (process->handle arg1)) + (set! (-> v1-8 timeout) (the-as uint (+ (current-time) (seconds 0.5)))) ) + #t ) ) ) @@ -619,12 +615,10 @@ ;; definition for method 191 of type grunt-mech ;; WARN: Return type mismatch object vs none. (defmethod grunt-mech-method-191 grunt-mech ((obj grunt-mech)) - (with-pp - (if (>= (-> pp clock frame-counter) (-> obj state-timeout)) - (go (method-of-object obj mech-dismount)) - ) - (none) - ) + (if (>= (current-time) (-> obj state-timeout)) + (go (method-of-object obj mech-dismount)) + ) + (none) ) ;; failed to figure out what this is: @@ -632,11 +626,11 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) (set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec)) (stop-looking-at-target! self) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 450 900))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 450 900))) (logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere)) (none) ) @@ -776,7 +770,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec)) (let* ((v1-4 (-> self nav)) (a1-0 (-> self dismount-dest)) @@ -870,7 +864,7 @@ :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () ((-> (method-of-type grunt circling) enter)) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 750 1200))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 750 1200))) (none) ) :trans (behavior () @@ -881,9 +875,9 @@ ) (let ((gp-1 (-> self focus aware))) (if (or (!= gp-1 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (when (>= 1 (the-as int gp-1)) (nav-enemy-method-161 self) (if (-> self enemy-info-override use-stop-chase) @@ -896,13 +890,13 @@ (when v1-33 (cond ((focus-test? v1-33 mech) - (when (>= (-> self clock frame-counter) (-> self state-timeout)) + (when (>= (current-time) (-> self state-timeout)) (nav-enemy-method-161 self) (go-hostile self) ) ) (else - (when (>= (- (-> self clock frame-counter) (-> self starting-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self starting-time)) (-> self reaction-time)) (nav-enemy-method-161 self) (go-hostile self) ) @@ -931,7 +925,7 @@ :event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler) :enter (behavior () ((-> (method-of-type grunt-mech mech-post-circling) enter)) - (set! (-> self state-timeout) (+ (-> self clock frame-counter) (get-rand-int-range self 900 1800))) + (set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 900 1800))) (none) ) :trans (-> (method-of-type grunt-mech mech-post-circling) trans) diff --git a/test/decompiler/reference/jak2/engine/target/mech_suit/mech-states_REF.gc b/test/decompiler/reference/jak2/engine/target/mech_suit/mech-states_REF.gc index 654e645c51..a4ed2046cc 100644 --- a/test/decompiler/reference/jak2/engine/target/mech_suit/mech-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech_suit/mech-states_REF.gc @@ -59,7 +59,7 @@ ) 1820.4445 ) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.05)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.05)) ) ) (go target-mech-walk) @@ -354,7 +354,7 @@ *null-vector* *null-vector* (the-as process #f) - (-> self clock frame-counter) + (current-time) ) (let* ((s4-0 (get-trans self 3)) (a0-4 (the-as process-focusable (combo-tracker-method-13 @@ -524,7 +524,7 @@ ) (when (send-event-function (-> s4-1 cshape process) a1-6) (set! (-> self control send-attack-dest) (process->handle s5-2)) - (set! (-> self control send-attack-time) (-> self clock frame-counter)) + (set! (-> self control send-attack-time) (current-time)) #t ) ) @@ -536,7 +536,7 @@ (set! (-> self mech forward-vel) 0.0) (set! (-> self mech forward-vel) -40960.0) ) - (when (or (not s5-2) (= (-> self control send-attack-time) (-> self clock frame-counter))) + (when (or (not s5-2) (= (-> self control send-attack-time) (current-time))) (let ((s5-3 (get-process *default-dead-pool* part-tracker #x4000))) (when s5-3 (let ((t9-7 (method-of-type part-tracker activate))) @@ -584,7 +584,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-punch-mods*) (set! (-> self mech state-impact? 0) #f) (rot->dir-targ! (-> self control)) @@ -593,7 +593,7 @@ :exit (behavior () (set! (-> *mech-punch-mods* turnvv) 0.0) (set! (-> self mech state-impact? 0) #f) - (set! (-> self control last-running-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-running-attack-end-time) (current-time)) (target-exit) (target-mech-exit) (none) @@ -686,14 +686,14 @@ ) (+! gp-0 1) (target-mech-punch-pick (the-as symbol gp-0)) - (set! (-> self state-time) (+ (-> self clock frame-counter) (seconds -0.465))) + (set! (-> self state-time) (+ (current-time) (seconds -0.465))) (set! (-> self mech forward-vel) (fmax 0.0 (-> self mech forward-vel))) (set! s4-0 159) (set! s5-0 #f) ) ) ) - (let ((v1-142 (- (-> self clock frame-counter) (-> self state-time))) + (let ((v1-142 (- (current-time) (-> self state-time))) (s3-2 #t) (f30-4 1.0) ) @@ -747,9 +747,8 @@ ) ) ) - (set! s3-2 (and (>= (- (-> self clock frame-counter) (-> self state-time)) s4-0) - (and (>= (-> self mech forward-vel) 0.0) s3-2) - ) + (set! s3-2 + (and (>= (- (current-time) (-> self state-time)) s4-0) (and (>= (-> self mech forward-vel) 0.0) s3-2)) ) (set! (-> self mech state-impact? 0) s3-2) (set-forward-vel (-> self mech forward-vel)) @@ -784,7 +783,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-jump-mods*) (set! (-> self mech jump-thrust) 0.0) (let* ((v1-4 *game-info*) @@ -813,7 +812,7 @@ ) (when (if (and (and v1-9 (= v1-9 (-> self draw art-group data 330))) (< f0-0 (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -854,11 +853,7 @@ (set! (-> self mech thruster-flame-length) 20480.0) ) ) - (seek! - (-> self mech jump-thrust-fuel) - 0.0 - (the float (- (-> self clock frame-counter) (-> self clock old-frame-counter))) - ) + (seek! (-> self mech jump-thrust-fuel) 0.0 (the float (- (current-time) (-> self clock old-frame-counter)))) ) (else (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (-> self clock seconds-per-frame))) @@ -921,7 +916,7 @@ (defstate target-mech-jump (target) :event (-> target-mech-falling event) :enter (behavior ((arg0 float) (arg1 float) (arg2 surface)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (let* ((v1-4 *game-info*) (a2-5 (+ (-> v1-4 attack-id) 1)) @@ -964,7 +959,7 @@ (-> v1-0 id) ) (set! (-> self mech jump-thrust-fuel) (-> *TARGET-bank* mech-jump-thrust-fuel)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (cond ((= arg0 'stuck) ) @@ -996,7 +991,7 @@ (if (and (cpad-pressed? (-> self control cpad number) circle square) (can-hands? #t)) (go target-mech-punch) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.25)) (if (move-legs?) (go target-mech-walk) ) @@ -1048,7 +1043,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-mech-stance) ) @@ -1057,7 +1052,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self attack-info)) (s5-0 (new 'stack-no-clear 'vector)) ) @@ -1104,7 +1099,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -1112,8 +1107,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) @@ -1257,8 +1252,8 @@ ) (ja-channel-push! 1 (seconds 0.3)) (ja-no-eval :group! (-> self draw art-group data 330) :num! (loop! 0.5) :frame-num 0.0) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.8)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.8)) (ja :group! (-> self draw art-group data 330) :num! (loop! 0.5)) (suspend) ) @@ -1388,8 +1383,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 2)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 2)) (suspend) ) ) @@ -1400,7 +1395,7 @@ (if (!= (-> self game mode) 'play) (go target-jump 16384.0 16384.0 (the-as surface #f)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) (none) ) @@ -1496,7 +1491,7 @@ :enter (behavior () (set! (-> self control mod-surface) *mech-pickup-mods*) (set! (-> self mech stick-off) (the-as basic #t)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self carry other) (the-as handle #f)) (set! (-> self carry other-value) 100000000000.0) @@ -1744,7 +1739,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *mech-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self mech stick-off) (the-as basic #t)) (none) @@ -1912,7 +1907,7 @@ (set! (-> self control mod-surface turnvv) 20024.889) (set! (-> self control did-move-to-pole-or-max-jump-height) 0.0) (rot->dir-targ! (-> self control)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1927,13 +1922,13 @@ ) 1820.4445 ) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.05)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.05)) ) ) (go target-mech-carry-walk) ) (if (and (cpad-pressed? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.1)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.1)) ) (go target-mech-carry-drop) ) @@ -2008,7 +2003,7 @@ (defstate target-mech-carry-walk (target) :event (-> target-mech-carry-stance event) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *mech-carry-walk-mods*) (set! (-> self control unknown-word04) (the-as uint 0.0)) (none) @@ -2032,7 +2027,7 @@ ) ) (if (and (cpad-pressed? (-> self control cpad number) r1) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.1)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.1)) ) (go target-mech-carry-drop) ) @@ -2121,9 +2116,7 @@ (case event-type (('push) (when (zero? (-> self control sliding-start-time)) - (set! (-> self control sliding-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> event param 0))) - ) + (set! (-> self control sliding-start-time) (+ (current-time) (the-as time-frame (-> event param 0)))) (let ((v0-0 (the-as object #t))) (set! (-> self control unknown-word04) (the-as uint v0-0)) v0-0 @@ -2143,7 +2136,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control sliding-start-time) 0) (set! (-> self control unknown-word04) (the-as uint #f)) (set! (-> self control mod-surface) *mech-carry-drag-mods*) @@ -2177,7 +2170,7 @@ ) :trans (behavior () (when (and (not (cpad-hold? (-> self control cpad number) r1)) - (>= (- (-> self clock frame-counter) (-> self carry pickup-time)) (seconds 0.5)) + (>= (- (current-time) (-> self carry pickup-time)) (seconds 0.5)) ) (sound-play "mech-drag-off") (if (or (and (>= (-> self mech back-touch-time) (-> self state-time)) @@ -2230,9 +2223,7 @@ ) (f26-0 0.0) ) - (if (and (nonzero? (-> self control sliding-start-time)) - (< (-> self control sliding-start-time) (-> self clock frame-counter)) - ) + (if (and (nonzero? (-> self control sliding-start-time)) (< (-> self control sliding-start-time) (current-time))) (send-event self 'drop) (set! f28-0 (cond @@ -2360,7 +2351,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *mech-carry-jump-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (-> target-mech-carry-pickup exit) @@ -2369,7 +2360,7 @@ (go target-mech-carry-hit-ground #f) ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) #t @@ -2485,7 +2476,7 @@ (defstate target-mech-carry-jump (target) :event (-> target-mech-carry-falling event) :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *mech-carry-jump-mods*) @@ -2561,7 +2552,7 @@ :event (-> target-mech-carry-drop event) :enter (behavior () (set! (-> self control mod-surface) *mech-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self mech stick-off) (the-as basic #t)) (none) diff --git a/test/decompiler/reference/jak2/engine/target/mech_suit/mech_REF.gc b/test/decompiler/reference/jak2/engine/target/mech_suit/mech_REF.gc index d228a0627a..685666bf55 100644 --- a/test/decompiler/reference/jak2/engine/target/mech_suit/mech_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech_suit/mech_REF.gc @@ -168,7 +168,7 @@ (let ((f30-0 20480.0)) (until #f (when (and (logtest? (-> self draw status) (draw-control-status on-screen)) - (>= (- (-> self clock frame-counter) (-> self probe-time)) (seconds 1)) + (>= (- (current-time) (-> self probe-time)) (seconds 1)) ) (move-to-ground (-> self root-override) @@ -177,7 +177,7 @@ #t (collide-spec backgnd obstacle hit-by-player-list hit-by-others-list pusher) ) - (set! (-> self probe-time) (-> self clock frame-counter)) + (set! (-> self probe-time) (current-time)) ) (when (and (and *target* (and (>= f30-0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) @@ -296,8 +296,8 @@ (mech-method-24 self) (suspend) ) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 1)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) (mech-method-24 self) (suspend) ) @@ -466,7 +466,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('look-at-point) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (go-virtual active) ) ) @@ -501,7 +501,7 @@ This commonly includes things such as: :virtual #t :event (-> (method-of-type mech-target idle) event) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -511,7 +511,7 @@ This commonly includes things such as: ) (not (logtest? (focus-status mech) (-> *target* focus-status))) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (>= (- (current-time) (-> self state-time)) (seconds 10)) ) (go-virtual idle) ) diff --git a/test/decompiler/reference/jak2/engine/target/mech_suit/target-mech_REF.gc b/test/decompiler/reference/jak2/engine/target/mech_suit/target-mech_REF.gc index 5def06c9ce..9185d65431 100644 --- a/test/decompiler/reference/jak2/engine/target/mech_suit/target-mech_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech_suit/target-mech_REF.gc @@ -468,7 +468,7 @@ ;; definition for function target-mech-get-off? (defbehavior target-mech-get-off? target () (when (and (mech-on-ground?) - (< (-> self mech no-get-off-time) (-> self clock frame-counter)) + (< (-> self mech no-get-off-time) (current-time)) (-> *setting-control* user-current pilot-exit) ) (let ((gp-0 (new 'stack-no-clear 'collide-query)) @@ -764,7 +764,7 @@ ) ) (('target-mech-get-off) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0)))) (set! (-> self mech no-get-off-time) (the-as time-frame v0-0)) v0-0 ) @@ -1123,9 +1123,9 @@ (set! (-> self board latch?) #f) (set! (-> self mech stick-lock) #f) (set! (-> self mech stick-off) #f) - (set! (-> self mech unstuck-time) (-> self clock frame-counter)) + (set! (-> self mech unstuck-time) (current-time)) (set! (-> self mech stuck-count) 0) - (set! (-> self mech mech-start-time) (-> self clock frame-counter)) + (set! (-> self mech mech-start-time) (current-time)) (set! (-> self mech jump-thrust) 0.0) (set! (-> self mech jump-thrust-fuel) (-> *TARGET-bank* mech-jump-thrust-fuel)) (set! (-> self mech state-impact? 0) #f) @@ -1636,7 +1636,7 @@ (let ((v1-98 (vector-! (new 'stack-no-clear 'vector) (-> self control wall-contact-pt) (-> self control trans)))) (set! (-> v1-98 y) 0.0) (when (< (vector-dot v1-98 (-> self control c-R-w vector 2)) 0.0) - (set! (-> self mech back-touch-time) (-> self clock frame-counter)) + (set! (-> self mech back-touch-time) (current-time)) (set! (-> self mech back-touch-point quad) (-> self control wall-contact-pt quad)) (set! (-> self mech back-touch-trans quad) (-> self control trans quad)) ) @@ -1774,7 +1774,7 @@ (quaternion-copy! (the-as quaternion (-> self mech mech-quat)) (-> self control quat)) (set! (-> self mech mech-scale quad) (-> self control scale quad)) (vector+! (-> self alt-cam-pos) (-> self control camera-pos) (new 'static 'vector :y 4096.0 :w 1.0)) - (set! (-> self mech mech-time) (-> self clock frame-counter)) + (set! (-> self mech mech-time) (current-time)) (target-mech-effect) 0 (none) @@ -1785,7 +1785,3 @@ (target-mech-real-post) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc b/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc index 56c0d10fac..0dd5fa904d 100644 --- a/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc @@ -67,7 +67,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self special-anim-time)) (seconds 1)) + (when (>= (- (current-time) (-> self special-anim-time)) (seconds 1)) (set! (-> self special-anim-interp) 0.0) (set! (-> self special-anim-frame) 0.0) ) @@ -77,7 +77,7 @@ ) (case arg2 ((1) - (set! (-> self special-anim-time) (-> self clock frame-counter)) + (set! (-> self special-anim-time) (current-time)) (cond ((= (-> gp-0 control mod-surface name) 'spin) (set! (-> arg1 z) diff --git a/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc b/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc index a7736e9592..19236a03c1 100644 --- a/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc @@ -596,9 +596,9 @@ (let ((v1-52 (ja-group))) (cond ((and v1-52 (= v1-52 (-> self draw art-group data 61))) - (let ((s5-0 (-> self clock frame-counter))) - (while (or (= arg0 -1) (< (- (-> self clock frame-counter) s5-0) arg0)) - (when (>= (- (-> self clock frame-counter) s5-0) (seconds 0.01)) + (let ((s5-0 (current-time))) + (while (or (= arg0 -1) (< (- (current-time) s5-0) arg0)) + (when (>= (- (current-time) s5-0) (seconds 0.01)) (let ((v1-62 (ja-group))) (when (not (and v1-62 (= v1-62 (-> self draw art-group data 27)))) (ja-channel-push! 1 (seconds 0.1)) @@ -646,10 +646,9 @@ ) ) (ja-no-eval :group! (-> self draw art-group data 27) :num! (loop!) :frame-num 0.0) - (let ((s5-1 (-> self clock frame-counter))) - (while (or (= arg0 -1) (and (< (- (-> self clock frame-counter) s5-1) arg0) - (not (logtest? (-> self control status) (collide-status on-surface))) - ) + (let ((s5-1 (current-time))) + (while (or (= arg0 -1) + (and (< (- (current-time) s5-1) arg0) (not (logtest? (-> self control status) (collide-status on-surface)))) ) (suspend) (ja :group! (-> self draw art-group data 27) :num! (loop!)) @@ -1123,7 +1122,7 @@ ) ) ) - (let ((s4-10 (-> self clock frame-counter)) + (let ((s4-10 (current-time)) (f24-2 (if (and (using-gun? self) (or (= (-> self gun gun-type) (pickup-type eco-yellow)) (= (-> self gun gun-type) (pickup-type eco-blue))) @@ -1133,7 +1132,7 @@ ) ) ) - (until (and (>= arg0 0) (>= (- (-> self clock frame-counter) s4-10) arg0)) + (until (and (>= arg0 0) (>= (- (current-time) s4-10) arg0)) (let ((f20-0 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control local-slope-z))))) (f22-1 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control local-slope-x))))) ) @@ -1346,7 +1345,7 @@ ) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.4))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.4))) (if (using-gun? self) (go target-high-jump @@ -1788,7 +1787,7 @@ (f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) ) (while (not (or (and (< (fabs (/ f0-11 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.7)) + (>= (- (current-time) (-> self state-time)) (seconds 1.7)) ) ) (quaternion-rotate-y! diff --git a/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc b/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc index b434edbe0e..5a24fdd43e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc @@ -152,7 +152,7 @@ ) :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (set! (-> self carry other) (the-as handle #f)) (set! (-> self carry other-value) 100000000000.0) @@ -296,7 +296,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (none) ) @@ -423,7 +423,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *carry-walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -485,7 +485,7 @@ (defstate target-carry-walk (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *carry-walk-mods*) (none) ) @@ -553,7 +553,7 @@ :event target-jump-event-handler :enter (behavior () (set! (-> self control mod-surface) *carry-jump-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -570,7 +570,7 @@ ) (when (if (and (< f0-0 (-> *TARGET-bank* stuck-distance)) (and (>= v1-12 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) v1-12) + (>= (- (current-time) (-> self state-time)) v1-12) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -674,7 +674,7 @@ (defstate target-carry-jump (target) :event target-jump-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -743,7 +743,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-forward-vel 0.0) (none) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc b/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc index c3662bf809..abd0ddfd3a 100644 --- a/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc @@ -51,7 +51,7 @@ ) ) (or (and (not (and (focus-test? self dark) (nonzero? (-> self darkjak)))) - (and (>= (- (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) + (and (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) (seconds 0.05) ) (>= (-> self game eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default)) @@ -112,7 +112,7 @@ ) (target-danger-set! (-> self control danger-mode) #f) (update-transforms (-> self control)) - (if (and (or (>= (- (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) + (if (and (or (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time)) (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) ) (not (-> *setting-control* user-current darkjak)) @@ -189,7 +189,7 @@ ) (set-darkjak-texture-morph! f30-0) (cond - ((and (= f30-0 0.0) (< (- (-> self clock frame-counter) (-> self teleport-time)) (seconds 0.5))) + ((and (= f30-0 0.0) (< (- (current-time) (-> self teleport-time)) (seconds 0.5))) (set! (-> self skel override 0) 0.00001) (set! (-> self skel override 41) 0.000001) ) @@ -314,12 +314,12 @@ (set! (-> self darkjak want-stage) (-> self darkjak stage)) (set! (-> self neck flex-blend) 0.0) (set! (-> self control mod-surface) *darkjak-trans-mods*) - (set! (-> self darkjak start-time) (-> self clock frame-counter)) + (set! (-> self darkjak start-time) (current-time)) (set! (-> self darkjak attack-count) (the-as uint 0)) (set! (-> self darkjak-giant-interp) 1.0) (set-setting! 'sound-flava #f 30.0 4) (set! (-> self focus-status) (logior (focus-status dark) (-> self focus-status))) - (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (-> self clock frame-counter)) + (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (current-time)) (set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) (seconds 20)) (if (logtest? (-> self darkjak stage) 16) (logior! (-> self state-flags) (state-flags sf4)) @@ -334,7 +334,7 @@ (let ((s5-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! s5-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! s5-0 (- (current-time) (-> self clock old-frame-counter))) (if (>= s5-0 300) (go target-falling #f) ) @@ -468,7 +468,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (if (>= gp-0 300) (go target-falling #f) ) @@ -666,9 +666,9 @@ (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2)) (< sv-32 2) ) - (set! sv-40 (the-as int (-> self clock frame-counter))) + (set! sv-40 (the-as int (current-time))) ) - (when (>= (- (-> self clock frame-counter) (the-as time-frame sv-40)) (seconds 0.5)) + (when (>= (- (current-time) (the-as time-frame sv-40)) (seconds 0.5)) (set! sv-40 0) 0 ) @@ -698,7 +698,7 @@ (-> self control trans) (get-trans s4-0 3) s4-0 - (-> self clock frame-counter) + (current-time) ) ) (target-start-attack) @@ -737,13 +737,13 @@ (cond ((and (>= (ja-frame-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-falling #f) @@ -763,10 +763,8 @@ ) (let ((s5-1 (get-trans (the-as process-focusable gp-0) 3))) (when (and (< 2048.0 (vector-vector-distance (-> self control trans) s5-1)) - (or (and (= gp-0 (handle->process sv-56)) - (< (- (-> self clock frame-counter) (the-as time-frame sv-64)) (seconds 0.1)) - ) - (>= (- (-> self clock frame-counter) (the-as time-frame sv-64)) (seconds 1)) + (or (and (= gp-0 (handle->process sv-56)) (< (- (current-time) (the-as time-frame sv-64)) (seconds 0.1))) + (>= (- (current-time) (the-as time-frame sv-64)) (seconds 1)) ) ) (forward-up-nopitch->quaternion @@ -780,9 +778,7 @@ (new 'stack-no-clear 'vector) (-> self control trans) s5-1 - (* 0.009107469 - (the float (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time))) - ) + (* 0.009107469 (the float (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)))) ) ) ) @@ -793,7 +789,7 @@ ) (when (!= gp-0 (handle->process sv-56)) (set! sv-56 (process->handle gp-0)) - (set! sv-64 (the-as int (-> self clock frame-counter))) + (set! sv-64 (the-as int (current-time))) ) ) ) @@ -802,13 +798,13 @@ (set-forward-vel sv-16) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) (zero? sv-32) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.2)) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.2)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -950,7 +946,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) (the-as float sv-48)))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 sv-24) @@ -959,7 +955,7 @@ (set! sv-24 (+ sv-24 1)) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1811,11 +1807,11 @@ ) ) (set! sv-64 0) - (set! sv-72 (-> self clock frame-counter)) - (set! sv-80 (-> self clock frame-counter)) + (set! sv-72 (current-time)) + (set! sv-80 (current-time)) (set! sv-88 (the-as float 0.0)) (set! sv-92 0.0) - (set! sv-96 (-> self clock frame-counter)) + (set! sv-96 (current-time)) (let* ((v1-70 (-> self game)) (a0-33 (+ (-> v1-70 attack-id) 1)) ) @@ -1825,7 +1821,7 @@ (ja-channel-push! 2 (seconds 0.05)) (ja :group! (-> self draw art-group data 419)) (ja :chan 1 :group! (-> self draw art-group data 420)) - (while (or (< sv-64 sv-48) (< (- (-> self clock frame-counter) sv-80) (seconds 1.5))) + (while (or (< sv-64 sv-48) (< (- (current-time) sv-80) (seconds 1.5))) (let ((v1-77 (new-stack-vector0))) (let ((f0-8 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) 0.0 @@ -1845,11 +1841,11 @@ (set! (-> self darkjak clock-vel) -4.0) (set! (-> self darkjak clock-on) #t) (send-event *camera* 'joystick -1098907648 #x3f800000) - (when (>= (- (-> self clock frame-counter) sv-72) (seconds 0.1)) - (set! sv-72 (-> self clock frame-counter)) + (when (>= (- (current-time) sv-72) (seconds 0.1)) + (set! sv-72 (current-time)) (target-bomb1-fire-shot sv-60 sv-64 sv-48 (the-as int sv-104)) (set! sv-64 (+ sv-64 1)) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! sv-92 1.0) ) ) @@ -1882,7 +1878,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self gun surpress-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (current-time)) (send-event (handle->process (-> self notify)) 'notify 'attack 17) (go target-darkjak-get-off) (none) diff --git a/test/decompiler/reference/jak2/engine/target/target-death_REF.gc b/test/decompiler/reference/jak2/engine/target/target-death_REF.gc index 2507ce2856..07c2a1b69e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-death_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-death_REF.gc @@ -89,7 +89,7 @@ (apply-settings *setting-control*) (logclear! (-> self focus-status) (focus-status teleporting)) (set! (-> self mode-cache) #f) - (set! (-> self teleport-time) (-> self clock frame-counter)) + (set! (-> self teleport-time) (current-time)) (set! (-> self control last-trans-any-surf quad) (-> self control trans quad)) (set! (-> self game kiosk-timeout) (the-as uint (-> *display* game-clock frame-counter))) (none) @@ -98,7 +98,7 @@ (local-vars (v1-96 symbol)) (set! *spawn-actors* #f) (set! (-> self control unknown-word04) (the-as uint #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self focus-status) (logior (focus-status teleporting) (-> self focus-status))) (let ((a0-3 (get-continue-by-name (-> self game) (-> arg0 name)))) (cond @@ -293,8 +293,8 @@ ) ) ) - (let ((s5-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-6) (seconds 0.05)) + (let ((s5-6 (current-time))) + (until (>= (- (current-time) s5-6) (seconds 0.05)) (suspend) ) ) @@ -320,8 +320,8 @@ (intro-play) ) ((logtest? (-> arg0 flags) (continue-flags cf7)) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 0.05)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 0.05)) (suspend) ) ) @@ -354,8 +354,8 @@ (go target-grab 'stance) ) (else - (let ((s5-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-9) (seconds 0.05)) + (let ((s5-9 (current-time))) + (until (>= (- (current-time) s5-9) (seconds 0.05)) (suspend) ) ) @@ -676,7 +676,7 @@ (if (and (cpad-pressed? (-> self control cpad number) square) (and (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -700,7 +700,7 @@ ) ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* stuck-time))) + (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* stuck-time))) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) ) @@ -961,7 +961,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) (when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2)) - (set! (-> self control time-of-last-debug-heal) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-heal) (current-time)) (pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f)) (go target-stance) ) @@ -971,7 +971,7 @@ :code (behavior ((arg0 symbol) (arg1 attack-info)) (local-vars (sv-32 attack-info) (sv-36 vector)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! sv-32 (-> self attack-info)) (set! sv-36 (new 'stack-no-clear 'vector)) @@ -1026,7 +1026,7 @@ ((= arg0 'attack) (send-event (handle->process (-> self notify)) 'notify 'hit (-> sv-32 mode)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> sv-32 mode) (('endlessfall) (cond @@ -1034,8 +1034,8 @@ (let ((gp-1 (new-stack-vector0))) (set! (-> gp-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 1)) (suspend) ) ) @@ -1510,7 +1510,7 @@ (the-as game-save #f) (the-as string #f) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) 0 (none) @@ -1703,8 +1703,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-3) (seconds 2)) + (let ((s5-3 (current-time))) + (until (>= (- (current-time) s5-3) (seconds 2)) (suspend) ) ) @@ -1784,7 +1784,7 @@ (ja :num! (seek!)) ) (while (not (or (logtest? (-> self control status) (collide-status on-surface)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (>= (- (current-time) (-> self state-time)) (seconds 2)) ) ) (suspend) @@ -1824,8 +1824,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 2)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 2)) (suspend) ) ) @@ -1877,8 +1877,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-10) (seconds 2)) + (let ((s5-10 (current-time))) + (until (>= (- (current-time) s5-10) (seconds 2)) (suspend) ) ) @@ -1897,8 +1897,8 @@ (set! (-> self post-hook) target-no-ja-move-post) (ja-channel-set! 0) (ja-post) - (let ((s5-11 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-11) (seconds 1.2)) + (let ((s5-11 (current-time))) + (until (>= (- (current-time) s5-11) (seconds 1.2)) (suspend) ) ) @@ -1939,8 +1939,8 @@ (target-falling-anim 30 (seconds 0.33)) (ja-channel-push! 1 (seconds 0.3)) (ja-no-eval :group! (-> self draw art-group data 32) :num! (loop! 0.5) :frame-num 0.0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.8)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.8)) (when (and (logtest? (-> self control status) (collide-status on-surface)) (!= (-> self control cur-pat event) 2)) (set! v1-24 'target-hit-ground-hard) (goto cfg-17) @@ -1988,8 +1988,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) @@ -2100,8 +2100,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s5-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-13) (seconds 2)) + (let ((s5-13 (current-time))) + (until (>= (- (current-time) s5-13) (seconds 2)) (suspend) ) ) @@ -2124,7 +2124,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (if (-> self control unknown-spool-anim00) (return #f) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc b/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc index 59e1f50556..e42b47ad21 100644 --- a/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc @@ -81,9 +81,7 @@ (set! (-> arg0 turnvf) f0-15) ) (cond - ((and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + ((and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> arg0 turnvv) 0.0) (set! (-> arg0 turnvvf) 0.0) (set! (-> arg0 seek0) 0.0) @@ -210,7 +208,7 @@ (set! (-> self gun top-anim-twist-reset) (the-as uint 0)) (set! (-> gp-0 gun-type) (pickup-type eco-yellow)) (target-gun-type-set! arg0) - (set! (-> gp-0 gun-get-on-time) (-> self clock frame-counter)) + (set! (-> gp-0 gun-get-on-time) (current-time)) ) (set! (-> self board latch?) #f) (set! (-> self gun put-away?) #f) @@ -1193,7 +1191,7 @@ (set! (-> self gun track?) (logand -9 (-> self gun track?))) ) (let ((gp-0 (the-as basic #f))) - (when (and (or (< (- (-> self clock frame-counter) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) + (when (and (or (< (- (current-time) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) (and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) ) @@ -1201,7 +1199,7 @@ (= (-> self gun gun-type) (pickup-type eco-dark)) ) ) - (>= (-> self clock frame-counter) (-> self gun track-target-hold-time)) + (>= (current-time) (-> self gun track-target-hold-time)) ) (target-gun-build-track-list) (let ((t2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 8)))) @@ -1275,9 +1273,9 @@ (the-as focus (-> self gun track-target)) (the-as process-focusable gp-0) ) - (set! (-> self gun track-start-time) (-> self clock frame-counter)) - (if (< (- (-> self clock frame-counter) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) - (set! (-> self gun track-press-start-time) (-> self clock frame-counter)) + (set! (-> self gun track-start-time) (current-time)) + (if (< (- (current-time) (-> self control time-of-last-nonzero-input)) (seconds 0.2)) + (set! (-> self gun track-press-start-time) (current-time)) ) ) (if (logtest? (process-mask enemy guard) (-> (the-as process-focusable gp-0) mask)) @@ -1289,9 +1287,7 @@ (cond ((or (not s5-1) (or (and (focus-test? (the-as process-focusable s5-1) dead) (zero? (-> self gun track-target-hold-time))) - (and (not (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + (and (not (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) ) (and (not (logtest? (surface-flag spin) (-> self control current-surface flags))) (let ((f30-0 21845.334) @@ -1482,7 +1478,7 @@ ) (set! (-> self gun top-anim-low-high) 1.0) (if (zero? (-> self gun fire-pending)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) ) (((pickup-type eco-blue)) @@ -1532,8 +1528,8 @@ ;; WARN: Return type mismatch int vs none. (defbehavior target-gun-combo-start target ((arg0 int) (arg1 time-frame)) (target-top-anim-base-mode arg0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) arg0)) - (set! (-> self gun track-target-hold-time) (+ (-> self clock frame-counter) arg1)) + (set! (-> self gun surpress-time) (+ (current-time) arg0)) + (set! (-> self gun track-target-hold-time) (+ (current-time) arg1)) 0 (none) ) @@ -1545,14 +1541,14 @@ (if (!= (not (logtest? (-> self game features) (game-feature gun))) (not (-> self gun gun))) (target-gun-setup (logtest? (-> self game features) (game-feature gun))) ) - (if (and (>= (- (-> self clock frame-counter) (-> self gun combo-window-start)) (seconds 0.7)) + (if (and (>= (- (current-time) (-> self gun combo-window-start)) (seconds 0.7)) (zero? (-> self gun fire-pending)) ) (set! (-> self gun combo-window-state) #f) ) (cond ((and (cpad-pressed? (-> self control cpad number) r1) - (< (- (-> self clock frame-counter) (-> self gun combo-window-start)) (seconds 0.7)) + (< (- (current-time) (-> self gun combo-window-start)) (seconds 0.7)) (not (focus-test? self mech dark)) (not (logtest? (surface-flag gun-off) (-> self control current-surface flags))) (not (logtest? (state-flags prevent-gun) (-> self state-flags))) @@ -1578,7 +1574,7 @@ (-> self control trans) (get-trans (the-as process-focusable gp-0) 3) (the-as process-focusable gp-0) - (-> self clock frame-counter) + (current-time) ) ((method-of-type focus try-update-focus) (the-as focus (-> self gun track-target)) @@ -1590,7 +1586,7 @@ (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) (target-gun-combo-start 20 (seconds 0.4)) (send-event self 'gun-combo #t) (case (-> self gun combo-window-state) @@ -1613,17 +1609,15 @@ (logtest? (surface-flag gun-turn-fast) (-> self control current-surface flags)) (not (logtest? (state-flags prevent-gun) (-> self state-flags))) (zero? (-> self gun track-target-hold-time)) - (or (zero? (-> self gun turn-fast-hold-time)) - (>= (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + (or (zero? (-> self gun turn-fast-hold-time)) (>= (current-time) (-> self gun turn-fast-hold-time))) ) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) (target-top-anim-base-mode 60) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) - (set! (-> self gun turn-fast-hold-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) + (set! (-> self gun turn-fast-hold-time) (+ (current-time) (seconds 0.2))) (send-event self 'gun-combo #t) ) ) @@ -1634,14 +1628,14 @@ (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) - (set! (-> self gun fire-pending-time) (-> self clock frame-counter)) + (set! (-> self gun fire-pending-time) (current-time)) ) ) ) (cond ((using-gun? self) (when (and (nonzero? (-> self gun top-anim-twist-reset)) - (< (the-as time-frame (-> self gun top-anim-twist-reset)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self gun top-anim-twist-reset)) (current-time)) ) (quat<-gun! (the-as quaternion (-> self gun top-anim-twist-targ)) (the-as quaternion (-> self gun gun-type))) (set! (-> self gun top-anim-twist-reset) (the-as uint 0)) @@ -1743,12 +1737,8 @@ (the-as vector #f) ) (cond - ((or (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) - (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + ((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) + (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) (and (logtest? (-> self gun track?) 1) (logtest? (-> self gun track?) 4)) (or (logtest? (surface-flag gun-strafe) (-> self control current-surface flags)) (focus-test? self pilot-riding) @@ -1811,7 +1801,7 @@ ((and (logtest? (-> self gun track?) 1) (logtest? (process-mask enemy guard) (-> (handle->process (-> self gun track-target 0 handle)) mask)) ) - (if (and (< (- (-> self clock frame-counter) (-> self gun track-press-start-time)) (seconds 0.5)) + (if (and (< (- (current-time) (-> self gun track-press-start-time)) (seconds 0.5)) (< (-> self control time-between-zero-inputs) (seconds 0.5)) (and (= (-> self control turn-to-magnitude) 0.0) (not (logtest? (-> self control current-surface flags) (surface-flag air attack))) @@ -1825,12 +1815,8 @@ ) ) (cond - ((or (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) - (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) + ((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) + (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) ) (set! (-> self gun track?) (the-as uint 7)) (set! (-> self gun upper-body twist-max y) 21845.334) @@ -1896,7 +1882,7 @@ ) ) (set! (-> self gun upper-body track-mode) (the-as track-mode (-> self gun track?))) - (when (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.5)) + (when (< (- (current-time) (-> self gun fire-time)) (seconds 1.5)) (let ((v1-459 (-> self neck))) (set! (-> v1-459 blend) 0.0) ) @@ -1964,7 +1950,7 @@ (-> self draw art-group data 245) ) (else - (when (and (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.5)) + (when (and (>= (- (current-time) (-> self gun fire-time)) (seconds 1.5)) (let ((v1-50 (-> self skel top-anim frame-group))) (or (= v1-50 (-> self draw art-group data 247)) (= v1-50 (-> self draw art-group data 254))) ) @@ -2011,10 +1997,8 @@ (-> self draw art-group data 244) ) (else - (when (and (or (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2.5)) - (and (< 4096.0 (-> self control ctrl-xz-vel)) - (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 1.25)) - ) + (when (and (or (>= (- (current-time) (-> self gun fire-time)) (seconds 2.5)) + (and (< 4096.0 (-> self control ctrl-xz-vel)) (>= (- (current-time) (-> self gun fire-time)) (seconds 1.25))) ) (let ((v1-104 (-> self skel top-anim frame-group))) (or (= v1-104 (-> self draw art-group data 294)) @@ -2044,9 +2028,7 @@ (let ((v1-119 (ja-group))) (cond ((and (and v1-119 (or (= v1-119 self) (= v1-119 (-> self draw art-group data 261)))) - (and (< (-> self gun top-anim-low-high) 0.5) - (>= (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 0.2)) - ) + (and (< (-> self gun top-anim-low-high) 0.5) (>= (- (current-time) (-> self gun fire-time)) (seconds 0.2))) ) (let ((s5-2 (get-channel (-> self skel top-anim) 0))) (set! gp-0 (if (< 0.9 (-> self control unknown-float002)) @@ -2187,8 +2169,8 @@ ) (set! (-> self gun active?) (and (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> self control current-surface flags))) - (and (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self gun surpress-time)) + (and (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (current-time) (-> self gun surpress-time)) (let ((v1-35 (-> self skel top-anim frame-group)) (f0-13 (-> self skel top-anim frame-num)) ) @@ -2255,19 +2237,19 @@ ) ) (if (-> self gun active?) - (set! (-> self gun active-time) (-> self clock frame-counter)) + (set! (-> self gun active-time) (current-time)) ) (set! (-> self gun laser-active?) (not (logtest? (surface-flag gun-inactive gun-hide gun-off laser-hide) (-> self control current-surface flags)) ) ) (when (and (not (and (not (logtest? (surface-flag gun-inactive gun-hide gun-off) (-> self control current-surface flags))) - (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) - (>= (-> self clock frame-counter) (-> self gun surpress-time)) + (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (current-time) (-> self gun surpress-time)) ) ) - (and (>= (- (-> self clock frame-counter) (-> self gun fire-pending-time)) (seconds 0.2)) - (>= (- (-> self clock frame-counter) (-> self gun active-time)) (seconds 0.2)) + (and (>= (- (current-time) (-> self gun fire-pending-time)) (seconds 0.2)) + (>= (- (current-time) (-> self gun active-time)) (seconds 0.2)) (= (-> self gun fire-pending) 1) ) ) @@ -2331,7 +2313,7 @@ ) ) ) - (>= (- (-> self clock frame-counter) (-> self gun gun-get-on-time)) (seconds 0.1)) + (>= (- (current-time) (-> self gun gun-get-on-time)) (seconds 0.1)) (let ((v1-110 (-> self skel top-anim frame-targ))) (or (not v1-110) (= v1-110 (-> self draw art-group data 304)) @@ -2518,7 +2500,7 @@ ) (set! (-> self gun top-anim-low-high) 0.0) ) - ((and (rand-vu-percent? 0.2) (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2))) + ((and (rand-vu-percent? 0.2) (< (- (current-time) (-> self gun fire-time)) (seconds 2))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 293)) @@ -2534,7 +2516,7 @@ ) ) ((and (or (rand-vu-percent? 0.2) (= (-> self skel top-anim frame-targ) (-> self draw art-group data 256))) - (< (- (-> self clock frame-counter) (-> self gun fire-time)) (seconds 2)) + (< (- (current-time) (-> self gun fire-time)) (seconds 2)) ) (push-anim-to-targ (-> self skel top-anim) @@ -2653,23 +2635,23 @@ (set! (-> gp-0 combo-window-state) 'target-attack-air) ) (if (cpad-pressed? (-> self control cpad number) r1) - (set! (-> gp-0 fire-start-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-start-time) (current-time)) ) (case (-> gp-0 gun-control) ((1) (when (and (cpad-pressed? (-> self control cpad number) r1) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (or (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (or (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (case (-> gp-0 combo-window-state) (('target-attack-air 'target-attack 'target-running-attack) - (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 combo-fire-delay))) + (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 combo-fire-delay))) ) ) ) @@ -2679,7 +2661,7 @@ (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2692,23 +2674,23 @@ ((2) (when (and (cpad-hold? (-> self control cpad number) r1) (and (not (handle->process (-> self gun charge-active?))) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (> (-> gp-0 fire-pending) 0) (-> self gun active?) ) (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2722,9 +2704,7 @@ (cond ((cpad-hold? (-> self control cpad number) r1) (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (-> self clock seconds-per-frame))) - (if (and (nonzero? (-> self gun track-target-hold-time)) - (< (-> self clock frame-counter) (-> self gun track-target-hold-time)) - ) + (if (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> gp-0 fire-spinv) 218453.33) ) ) @@ -2772,22 +2752,22 @@ ) (when (and (cpad-hold? (-> self control cpad number) r1) (-> self gun active?) - (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (-> self clock frame-counter) (-> gp-0 fire-time))) + (< (the-as time-frame (+ (-> gp-0 fire-delay) -30)) (- (current-time) (-> gp-0 fire-time))) ) - (set! (-> gp-0 fire-pending-time) (-> self clock frame-counter)) + (set! (-> gp-0 fire-pending-time) (current-time)) (if (zero? (-> self gun fire-pending)) (+! (-> self gun fire-pending) 1) ) (set! (-> gp-0 fire-charge) 0.5) ) - (when (and (>= (- (-> self clock frame-counter) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) + (when (and (>= (- (current-time) (-> gp-0 fire-time)) (the-as time-frame (-> gp-0 fire-delay))) (> (-> gp-0 fire-pending) 0) (-> self gun active?) ) (seekl! (-> self gun fire-pending) 0 1) (cond ((send-event self 'gun (-> gp-0 gun-type)) - (set! (-> self gun fire-time) (-> self clock frame-counter)) + (set! (-> self gun fire-time) (current-time)) ) (else (set! (-> self gun fire-time) 0) @@ -2826,7 +2806,7 @@ ) ) ) - (set! (-> gp-0 gun-time) (-> self clock frame-counter)) + (set! (-> gp-0 gun-time) (current-time)) ) ) 0 diff --git a/test/decompiler/reference/jak2/engine/target/target-handler_REF.gc b/test/decompiler/reference/jak2/engine/target/target-handler_REF.gc index 87122a776a..8435818a69 100644 --- a/test/decompiler/reference/jak2/engine/target/target-handler_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-handler_REF.gc @@ -278,7 +278,7 @@ ) (when sv-96 (set! (-> self control send-attack-dest) (process->handle arg0)) - (set! (-> self control send-attack-time) (-> self clock frame-counter)) + (set! (-> self control send-attack-time) (current-time)) (send-event self 'hit arg1 arg0 arg2) (set! arg0 (and (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2)) arg0) @@ -293,7 +293,7 @@ (local-vars (sv-112 vector) (sv-128 matrix)) (let ((gp-0 (-> self parent))) (let ((s4-0 0) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) ) (set! (-> self clock) (-> gp-0 0 clock)) (while (let ((v1-48 gp-0)) @@ -326,7 +326,7 @@ ) ) ) - (< (- (-> self clock frame-counter) s3-0) (seconds 15)) + (< (- (current-time) s3-0) (seconds 15)) (not (logtest? (-> (the-as process-focusable (-> gp-0 0)) draw status) (draw-control-status no-draw no-draw-temp)) ) ) @@ -355,10 +355,10 @@ ) ) (send-event (ppointer->process gp-0) 'color-effect 'dark 60) - (when (>= (- (-> self clock frame-counter) (the-as time-frame s4-0)) (seconds 0.05)) - (set! s4-0 (the-as int (-> self clock frame-counter))) + (when (>= (- (current-time) (the-as time-frame s4-0)) (seconds 0.05)) + (set! s4-0 (the-as int (current-time))) (cond - ((and (< (- (-> self clock frame-counter) s3-0) (seconds 0.5)) (handle->process arg0)) + ((and (< (- (current-time) s3-0) (seconds 0.5)) (handle->process arg0)) (process-drawable2-shock-effect (the-as process-drawable (handle->process arg0)) (the-as process-drawable (ppointer->process gp-0)) @@ -644,7 +644,7 @@ (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.2)) ) ((= v1-37 'darkjak) - (set! (-> self darkjak attack-time) (-> self clock frame-counter)) + (set! (-> self darkjak attack-time) (current-time)) (let* ((v1-160 *game-info*) (a0-102 (+ (-> v1-160 attack-id) 1)) ) @@ -794,7 +794,7 @@ (('release) (when (and (nonzero? (-> self gun)) (handle->process (-> self gun charge-active?))) (set! (-> self gun charge-active?) (the-as handle #f)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> self gun fire-time) (the-as time-frame v0-0)) v0-0 ) @@ -814,7 +814,7 @@ ) (rot->dir-targ! (-> self control)) (logior! (-> self control status) (collide-status on-surface on-ground touch-surface)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> self control last-time-on-surface) (the-as time-frame v0-0)) v0-0 ) @@ -830,7 +830,7 @@ ) (('color-effect) (set! (-> self color-effect) (the-as basic (-> arg3 param 0))) - (set! (-> self color-effect-start-time) (-> self clock frame-counter)) + (set! (-> self color-effect-start-time) (current-time)) (set! v0-0 (-> arg3 param 1)) (set! (-> self color-effect-duration) (the-as uint v0-0)) v0-0 @@ -1008,14 +1008,12 @@ ) ) (('no-load-wait) - (set! v0-0 (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) + (set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0)))) (set! (-> self no-load-wait) (the-as uint v0-0)) v0-0 ) (('no-look-around) - (set! (-> self no-look-around-wait) - (the-as uint (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0)))) - ) + (set! (-> self no-look-around-wait) (the-as uint (+ (current-time) (the-as time-frame (-> arg3 param 0))))) (if (and (-> self next-state) (= (-> self next-state name) 'target-look-around)) (send-event self 'end-mode) ) @@ -1111,18 +1109,18 @@ (.mul.x.vf vf1 vf1 vf2 :mask #b111) (.svf (&-> v1-15 quad) vf1) ) - (set! (-> self control additional-decaying-velocity-end-time) (-> self clock frame-counter)) + (set! (-> self control additional-decaying-velocity-end-time) (current-time)) (set! (-> self control additional-decaying-velocity-decay-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 1))) + (+ (current-time) (the-as time-frame (-> arg3 param 1))) ) (set! v0-0 #t) (b! #t cfg-291 :delay (nop!)) (label cfg-23) (b! (!= v1-0 'push-transv) cfg-25 :delay (nop!)) (set! (-> self control additional-decaying-velocity quad) (-> (the-as vector (-> arg3 param 0)) quad)) - (set! (-> self control additional-decaying-velocity-end-time) (-> self clock frame-counter)) + (set! (-> self control additional-decaying-velocity-end-time) (current-time)) (set! (-> self control additional-decaying-velocity-decay-start-time) - (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 1))) + (+ (current-time) (the-as time-frame (-> arg3 param 1))) ) (set! v0-0 #t) (b! #t cfg-291 :delay (nop!)) @@ -1137,7 +1135,7 @@ ) (or (logtest? (-> self state-flags) (state-flags sf1)) (focus-test? self dead dangerous hit grabbed in-head edge-grab pole flut tube board pilot mech) - (>= (the-as time-frame (-> self no-load-wait)) (-> self clock frame-counter)) + (>= (the-as time-frame (-> self no-load-wait)) (current-time)) ) ) ) @@ -1270,7 +1268,7 @@ ) ((logtest? (-> arg3 param 2) 128) (set! (-> self darkjak stage) (logand -2 (-> self darkjak stage))) - (set! v0-0 (+ (- (seconds 20) (-> self fact-override darkjak-start-time)) (-> self clock frame-counter))) + (set! v0-0 (+ (- (seconds 20) (-> self fact-override darkjak-start-time)) (current-time))) (set! (-> self fact-override darkjak-effect-time) (the-as time-frame v0-0)) v0-0 ) diff --git a/test/decompiler/reference/jak2/engine/target/target-part_REF.gc b/test/decompiler/reference/jak2/engine/target/target-part_REF.gc index 9ae4b5058a..09437adf02 100644 --- a/test/decompiler/reference/jak2/engine/target/target-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-part_REF.gc @@ -2244,13 +2244,13 @@ (defbehavior process-drawable-burn-effect target ((arg0 time-frame)) (sound-play "get-burned") (let ((s5-1 (new 'stack 'rgbaf)) - (s3-0 (-> self clock frame-counter)) + (s3-0 (current-time)) (s4-1 (-> self parent)) ) (set! (-> s5-1 quad) (-> (the-as process-drawable (-> s4-1 0)) draw color-mult quad)) (let ((s2-1 (vector-float*! (the-as vector (new 'stack 'rgbaf)) (the-as vector s5-1) 0.0))) - (while (< (- (-> self clock frame-counter) s3-0) arg0) - (let ((v1-8 (- (-> self clock frame-counter) s3-0))) + (while (< (- (current-time) s3-0) arg0) + (let ((v1-8 (- (current-time) s3-0))) (if (< v1-8 (the-as time-frame (/ arg0 2))) (vector-lerp! (-> (the-as process-drawable (-> s4-1 0)) draw color-mult) @@ -2616,98 +2616,96 @@ (sv-736 int) (sv-752 lightning-tracker) ) - (with-pp - (set! sv-640 arg6) - (let ((s5-0 *lightning-probe-vars*)) - (if (= arg4 256) - (set! sv-656 arg4) - (set! sv-656 (rand-vu-int-range 3 (/ (+ (-> arg0 node-list length) -1) 2))) - ) - (set! sv-672 (new 'stack-no-clear 'matrix)) - (set! sv-688 (new 'stack-no-clear 'collide-query)) - (set! sv-704 (the-as symbol #f)) - (when (nonzero? arg4) + (set! sv-640 arg6) + (let ((s5-0 *lightning-probe-vars*)) + (if (= arg4 256) (set! sv-656 arg4) - sv-656 + (set! sv-656 (rand-vu-int-range 3 (/ (+ (-> arg0 node-list length) -1) 2))) ) - (if (= arg4 256) - (set! (-> sv-688 start-pos quad) (-> arg0 root trans quad)) - (vector<-cspace! (-> sv-688 start-pos) (-> arg0 node-list data sv-656)) - ) - (set! sv-720 (-> sv-688 move-dist)) - (set! (-> sv-720 x) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 y) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 z) (rand-vu-float-range 0.0 65536.0)) - (set! (-> sv-720 w) 1.0) - (matrix-rotate-zyx! sv-672 (-> sv-688 move-dist)) - (set! sv-736 6) - (while (nonzero? sv-736) - (set! sv-736 (+ sv-736 -1)) - (vector-rotate*! (-> sv-688 move-dist) (-> s5-0 probe-dirs sv-736) sv-672) - (vector-normalize! (-> sv-688 move-dist) sv-640) - (let ((v1-29 sv-688)) - (set! (-> v1-29 radius) 409.6) - (set! (-> v1-29 collide-with) (collide-spec backgnd crate obstacle hit-by-others-list pusher)) - (set! (-> v1-29 ignore-process0) arg0) - (set! (-> v1-29 ignore-process1) #f) - (set! (-> v1-29 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-29 action-mask) (collide-action solid)) - ) - (when (>= (fill-and-probe-using-line-sphere *collide-cache* sv-688) 0.0) - (set! (-> s5-0 last-valid-time) (-> pp clock frame-counter)) - (set! (-> s5-0 src-joint-index) (the-as uint sv-656)) - (set! (-> s5-0 end-pos quad) (-> sv-688 best-other-tri intersect quad)) - (when (< 8192.0 (vector-vector-distance (-> s5-0 end-pos) (-> sv-688 start-pos))) - (set! sv-704 #t) - (goto cfg-15) - ) + (set! sv-672 (new 'stack-no-clear 'matrix)) + (set! sv-688 (new 'stack-no-clear 'collide-query)) + (set! sv-704 (the-as symbol #f)) + (when (nonzero? arg4) + (set! sv-656 arg4) + sv-656 + ) + (if (= arg4 256) + (set! (-> sv-688 start-pos quad) (-> arg0 root trans quad)) + (vector<-cspace! (-> sv-688 start-pos) (-> arg0 node-list data sv-656)) + ) + (set! sv-720 (-> sv-688 move-dist)) + (set! (-> sv-720 x) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 y) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 z) (rand-vu-float-range 0.0 65536.0)) + (set! (-> sv-720 w) 1.0) + (matrix-rotate-zyx! sv-672 (-> sv-688 move-dist)) + (set! sv-736 6) + (while (nonzero? sv-736) + (set! sv-736 (+ sv-736 -1)) + (vector-rotate*! (-> sv-688 move-dist) (-> s5-0 probe-dirs sv-736) sv-672) + (vector-normalize! (-> sv-688 move-dist) sv-640) + (let ((v1-29 sv-688)) + (set! (-> v1-29 radius) 409.6) + (set! (-> v1-29 collide-with) (collide-spec backgnd crate obstacle hit-by-others-list pusher)) + (set! (-> v1-29 ignore-process0) arg0) + (set! (-> v1-29 ignore-process1) #f) + (set! (-> v1-29 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-29 action-mask) (collide-action solid)) + ) + (when (>= (fill-and-probe-using-line-sphere *collide-cache* sv-688) 0.0) + (set! (-> s5-0 last-valid-time) (current-time)) + (set! (-> s5-0 src-joint-index) (the-as uint sv-656)) + (set! (-> s5-0 end-pos quad) (-> sv-688 best-other-tri intersect quad)) + (when (< 8192.0 (vector-vector-distance (-> s5-0 end-pos) (-> sv-688 start-pos))) + (set! sv-704 #t) + (goto cfg-15) ) ) - (label cfg-15) - (when sv-704 - (set! sv-752 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000))) - (set! sv-624 - (when sv-752 - (let ((t9-11 (method-of-type lightning-tracker activate))) - (t9-11 sv-752 arg0 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000)) - ) - (run-now-in-process - sv-752 - lightning-tracker-init - arg1 - arg5 - arg2 - arg0 - (if (= arg4 256) - (-> arg0 root trans) - (-> s5-0 src-joint-index) - ) - (-> s5-0 end-pos) - ) - (-> sv-752 ppointer-override) + ) + (label cfg-15) + (when sv-704 + (set! sv-752 (the-as lightning-tracker (get-process *default-dead-pool* lightning-tracker #x4000))) + (set! sv-624 + (when sv-752 + (let ((t9-11 (method-of-type lightning-tracker activate))) + (t9-11 sv-752 arg0 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000)) ) + (run-now-in-process + sv-752 + lightning-tracker-init + arg1 + arg5 + arg2 + arg0 + (if (= arg4 256) + (-> arg0 root trans) + (-> s5-0 src-joint-index) + ) + (-> s5-0 end-pos) + ) + (-> sv-752 ppointer-override) ) - (when sv-624 - (set! (-> sv-624 0 user-time 0) 0) - (when arg3 - (let ((v1-62 (get-field-spec-by-id arg3 (sp-field-id spt-timer)))) - (if v1-62 - (set! (-> v1-62 initial-valuef) (the-as float (-> sv-624 0 duration))) - ) - ) - (let ((t9-14 sp-launch-particles-var) - (a0-29 *sp-particle-system-2d*) - (a2-7 *launch-matrix*) - ) - (set! (-> a2-7 trans quad) (-> s5-0 end-pos quad)) - (t9-14 a0-29 arg3 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + ) + (when sv-624 + (set! (-> sv-624 0 user-time 0) 0) + (when arg3 + (let ((v1-62 (get-field-spec-by-id arg3 (sp-field-id spt-timer)))) + (if v1-62 + (set! (-> v1-62 initial-valuef) (the-as float (-> sv-624 0 duration))) + ) + ) + (let ((t9-14 sp-launch-particles-var) + (a0-29 *sp-particle-system-2d*) + (a2-7 *launch-matrix*) + ) + (set! (-> a2-7 trans quad) (-> s5-0 end-pos quad)) + (t9-14 a0-29 arg3 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) ) ) - (the-as object 0) ) + (the-as object 0) ) ;; definition for function process-drawable-shock-wall-effect diff --git a/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc b/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc index 9cd99e6f35..fbfd51b64e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc @@ -5,7 +5,7 @@ (defstate target-wade-stance (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *wade-mods*) (set-zero! (-> self water bob)) (none) @@ -22,7 +22,7 @@ :trans (behavior () ((-> self state-hook)) (when (and (not (logtest? (water-flags wading) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water wade-time)) (seconds 0.05)) + (>= (- (current-time) (-> self water wade-time)) (seconds 0.05)) ) (if (logtest? (water-flags swimming) (-> self water flags)) (go target-swim-stance) @@ -77,7 +77,7 @@ :trans (behavior () ((-> self state-hook)) (when (and (not (logtest? (water-flags wading) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water wade-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water wade-time)) (seconds 0.1)) ) (if (logtest? (water-flags swimming) (-> self water flags)) (go target-swim-stance) @@ -304,7 +304,7 @@ (ja :chan 2 :num! (chan 0)) (ja :chan 3 :num! (chan 0)) (ja :chan 4 :num! (chan 0)) - (when (and (>= (- (-> self clock frame-counter) (the-as time-frame gp-6)) (seconds 0.2)) + (when (and (>= (- (current-time) (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)) @@ -317,7 +317,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) #f ) - (set! gp-6 (the-as int (-> self clock frame-counter))) + (set! gp-6 (the-as int (current-time))) ) ((46 47 48 49) (spawn-ripples @@ -328,7 +328,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) #f ) - (set! gp-6 (the-as int (-> self clock frame-counter))) + (set! gp-6 (the-as int (current-time))) ) ) ) @@ -377,7 +377,7 @@ (defstate target-swim-stance (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *swim-mods*) (logior! (-> self water flags) (water-flags swim-ground)) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) @@ -424,7 +424,7 @@ (set-zero! (-> self water bob)) ) (when (and (not (logtest? (water-flags swimming) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) (if (logtest? (water-flags wading) (-> self water flags)) (go target-wade-stance) @@ -439,7 +439,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> self clock frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -534,7 +534,7 @@ :enter (behavior () ((-> target-swim-stance enter)) (die-on-next-update! (-> self water bob)) - (set! (-> self control unknown-word04) (the-as uint (-> self clock frame-counter))) + (set! (-> self control unknown-word04) (the-as uint (current-time))) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) (none) ) @@ -547,7 +547,7 @@ (set-zero! (-> self water bob)) ) (when (and (not (logtest? (water-flags swimming) (-> self water flags))) - (>= (- (-> self clock frame-counter) (-> self water swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water swim-time)) (seconds 0.1)) ) (if (logtest? (water-flags wading) (-> self water flags)) (go target-wade-stance) @@ -562,7 +562,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> self clock frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) + (>= (- (current-time) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -581,14 +581,12 @@ ) (cond ((= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (if (>= (the-as uint (- (-> self clock frame-counter) (the-as int (-> self control unknown-word04)))) - (the-as uint 15) - ) + (if (>= (the-as uint (- (current-time) (the-as int (-> self control unknown-word04)))) (the-as uint 15)) (go target-swim-stance) ) ) (else - (set! (-> self control unknown-word04) (the-as uint (-> self clock frame-counter))) + (set! (-> self control unknown-word04) (the-as uint (current-time))) ) ) (target-swim-tilt 0.0 2.0 0.0 1.0) @@ -697,13 +695,13 @@ (target-standard-event-handler proc arg1 event-type event) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self state-flags) (logior (state-flags lleg-no-ik rleg-no-ik) (-> self state-flags))) (logclear! (-> self water flags) (water-flags swim-ground)) (set! (-> self control mod-surface) *dive-mods*) (set! (-> self control dynam gravity-max) 16384.0) (set! (-> self control dynam gravity-length) 16384.0) - (set! (-> self water swim-time) (-> self clock frame-counter)) + (set! (-> self water swim-time) (current-time)) (set! (-> self control unknown-word04) (the-as uint #f)) (set! (-> self neck flex-blend) 0.0) (none) @@ -743,11 +741,11 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self water swim-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self water swim-time)) (seconds 0.5)) (go target-stance) ) (cond - ((>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.1)) + ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) (set! (-> self control mod-surface) *dive-mods*) (if (and (-> self next-state) (= (-> self next-state name) 'target-swim-down)) (target-swim-tilt -0.9 1.0 0.0 0.5) @@ -834,21 +832,21 @@ ) ) (until #f - (when (and (!= (-> self tobot?) 'tobot) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05))) + (when (and (!= (-> self tobot?) 'tobot) (>= (- (current-time) (-> self state-time)) (seconds 0.05))) (if (and (or (not (cpad-hold? (-> self control cpad number) circle square)) (-> self control unknown-spool-anim00)) - (>= (- (-> self clock frame-counter) (-> self state-time)) gp-0) + (>= (- (current-time) (-> self state-time)) gp-0) ) (go target-swim-up) ) - (if (or (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame27)) s5-0) + (if (or (>= (- (current-time) (-> self control unknown-time-frame27)) s5-0) (and (logtest? (-> self control status) (collide-status on-surface)) - (and (< (-> self water swim-depth) 8192.0) (>= (- (-> self clock frame-counter) (-> self state-time)) gp-0)) + (and (< (-> self water swim-depth) 8192.0) (>= (- (current-time) (-> self state-time)) gp-0)) ) ) (go target-swim-up) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (sound-play "water-bubbles" :id (-> self control bubbles-sound)) ) (let ((s4-3 (new-stack-vector0)) @@ -898,7 +896,7 @@ (the-as surface #f) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 10)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 10)) (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (let ((a1-3 (new 'stack-no-clear 'event-message-block))) @@ -920,11 +918,11 @@ ) ) (if (and (cpad-pressed? (-> self control cpad number) circle square) - (or (< (- (-> self clock frame-counter) (-> self control unknown-time-frame27)) (seconds 10)) + (or (< (- (current-time) (-> self control unknown-time-frame27)) (seconds 10)) (logtest? (-> self control status) (collide-status touch-ceiling)) ) (and (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) ) (go target-swim-down) @@ -1011,9 +1009,9 @@ #f (label cfg-51) (logior! (-> self water flags) (water-flags swim-ground)) - (set! (-> self water swim-time) (-> self clock frame-counter)) + (set! (-> self water swim-time) (current-time)) (start-bobbing! (-> self water) -4096.0 600 1500) - (set! (-> self water bob start-time) (+ (-> self clock frame-counter) (seconds -0.05))) + (set! (-> self water bob start-time) (+ (current-time) (seconds -0.05))) (go target-swim-stance) (none) ) @@ -1027,7 +1025,7 @@ :exit target-exit :trans (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + ((< (- (current-time) (-> self state-time)) (seconds 0.5)) (set! (-> self water flags) (logior (water-flags jump-out) (-> self water flags))) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc b/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc index 991308dad3..5c0f32ed0c 100644 --- a/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc @@ -623,7 +623,7 @@ (set! (-> self tube entity) (-> a0-4 entity)) ) ) - (set! (-> self tube start-time) (-> self clock frame-counter)) + (set! (-> self tube start-time) (current-time)) (set! (-> self tube tube-sound-id) (new-sound-id)) (set! (-> self tube tube-sound-vol) 0.0) (set! (-> self tube tube-sound-pitch) 0.0) @@ -713,7 +713,7 @@ (ja :group! (-> self draw art-group data 111) :num! (identity (ja-aframe (+ (-> self tube turn-anim-frame) - (* 5.0 (sin (* 145.63556 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (* 5.0 (sin (* 145.63556 (the float (- (current-time) (-> self state-time)))))) ) 0 ) @@ -784,7 +784,7 @@ (defstate target-tube-jump (target) :event (-> target-tube-start event) :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *tube-jump-mods*) @@ -864,9 +864,9 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (let ((gp-0 (-> self attack-info))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (when (not (logtest? (-> arg1 mask) (attack-info-mask vector))) (vector-! (-> arg1 vector) @@ -915,7 +915,7 @@ (when (= arg0 'attack) (send-event (handle->process (-> self notify)) 'notify 'hit (-> gp-0 mode)) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('bot) (pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f)) @@ -1000,10 +1000,10 @@ ) (set! (-> self control transv quad) (the-as uint128 0)) (initialize! (-> self game) 'life (the-as game-save #f) (the-as string #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until v1-42 (suspend) - (set! v1-42 (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) + (set! v1-42 (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-tube) (none) diff --git a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc index 8b93722235..4adb736f4e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc @@ -1268,110 +1268,108 @@ :virtual #t :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (let ((v1-0 event-type)) - (the-as - object - (cond - ((= v1-0 'draw) - (cond - ((-> event param 0) - (ja-channel-set! 1) - (ja :group! (-> self draw art-group data 2)) - (transform-post) - ) - (else - (ja-channel-set! 0) - (transform-post) - ) - ) - ) - ((= v1-0 'fire-down) - (cond - ((>= (-> self heat) 1.0) - (let ((v1-8 (- (-> self clock frame-counter) (-> self fire-time))) - (a0-7 6) - (a1-1 (-> self fire-time-interval)) - ) - (when (>= v1-8 (* a0-7 a1-1)) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self a1-1 event-type)) - ) - ) - ) - (else - (when (>= (- (-> self clock frame-counter) (-> self fire-time)) (-> self fire-time-interval)) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self arg1 event-type)) - ) - ) - ) - ) - ((= v1-0 'fire-pressed) - (set! (-> self fire-time) (-> self clock frame-counter)) - (the-as object (base-turret-method-45 self arg1 event-type)) - ) - ((= v1-0 'bonk) - #f - ) - ((or (= v1-0 'touch) (= v1-0 'attack)) - (let* ((gp-0 (-> event param 0)) - (s5-0 (the-as object (-> event param 1))) - (s4-0 proc) - (v1-21 (if (type? s4-0 projectile) - s4-0 + (the-as object (cond + ((= v1-0 'draw) + (cond + ((-> event param 0) + (ja-channel-set! 1) + (ja :group! (-> self draw art-group data 2)) + (transform-post) + ) + (else + (ja-channel-set! 0) + (transform-post) + ) + ) + ) + ((= v1-0 'fire-down) + (cond + ((>= (-> self heat) 1.0) + (let ((v1-8 (- (current-time) (-> self fire-time))) + (a0-7 6) + (a1-1 (-> self fire-time-interval)) + ) + (when (>= v1-8 (* a0-7 a1-1)) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self a1-1 event-type)) + ) ) + ) + (else + (when (>= (- (current-time) (-> self fire-time)) (-> self fire-time-interval)) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self arg1 event-type)) + ) + ) + ) + ) + ((= v1-0 'fire-pressed) + (set! (-> self fire-time) (current-time)) + (the-as object (base-turret-method-45 self arg1 event-type)) + ) + ((= v1-0 'bonk) + #f + ) + ((or (= v1-0 'touch) (= v1-0 'attack)) + (let* ((gp-0 (-> event param 0)) + (s5-0 (the-as object (-> event param 1))) + (s4-0 proc) + (v1-21 (if (type? s4-0 projectile) + s4-0 + ) + ) + ) + (when (and gp-0 v1-21) + (case (-> (the-as attack-info s5-0) mode) + (('wasp-shot 'guard-shot) + (seek! (-> self health) 0.0 0.25) + (activate! (-> self smush-control) 0.2 15 75 1.0 0.9 (-> *display* entity-clock)) + (sound-play "turret-take-hit") + (let ((v0-1 (the-as object (+ (current-time) (seconds 0.08))))) + (set! (-> self red-filter-timer) (the-as time-frame v0-1)) + v0-1 + ) + ) + (('drill-ship-shot) + (seek! (-> self health) 0.0 0.5) + (activate! (-> self smush-control) 0.2 24 144 1.0 0.9 (-> *display* entity-clock)) + (sound-play "turret-take-hit") + ) + ) + ) + ) + ) + ((= v1-0 'test) + (set! (-> self health) (seek (-> self health) 0.0 (the-as float (-> event param 0)))) + ) + ((= v1-0 'exit-valid) + (let ((v1-33 (-> self path-mode))) + (cond + ((or (zero? v1-33) (= v1-33 5) (= v1-33 1)) + (base-turret-method-41 self (the-as vector (-> event param 0))) + #t + ) + (else + #f + ) + ) + ) + ) + ((= v1-0 'exit) + (let ((v1-37 (-> self path-mode))) + (when (if (or (zero? v1-37) (= v1-37 5) (= v1-37 1)) + #t + ) + (go-virtual shutdown) + #f + ) + ) + ) + (else + (turret-handler proc arg1 event-type event) ) - ) - (when (and gp-0 v1-21) - (case (-> (the-as attack-info s5-0) mode) - (('wasp-shot 'guard-shot) - (seek! (-> self health) 0.0 0.25) - (activate! (-> self smush-control) 0.2 15 75 1.0 0.9 (-> *display* entity-clock)) - (sound-play "turret-take-hit") - (let ((v0-1 (the-as object (+ (-> self clock frame-counter) (seconds 0.08))))) - (set! (-> self red-filter-timer) (the-as time-frame v0-1)) - v0-1 - ) - ) - (('drill-ship-shot) - (seek! (-> self health) 0.0 0.5) - (activate! (-> self smush-control) 0.2 24 144 1.0 0.9 (-> *display* entity-clock)) - (sound-play "turret-take-hit") - ) - ) - ) - ) - ) - ((= v1-0 'test) - (set! (-> self health) (seek (-> self health) 0.0 (the-as float (-> event param 0)))) - ) - ((= v1-0 'exit-valid) - (let ((v1-33 (-> self path-mode))) - (cond - ((or (zero? v1-33) (= v1-33 5) (= v1-33 1)) - (base-turret-method-41 self (the-as vector (-> event param 0))) - #t - ) - (else - #f - ) - ) - ) - ) - ((= v1-0 'exit) - (let ((v1-37 (-> self path-mode))) - (when (if (or (zero? v1-37) (= v1-37 5) (= v1-37 1)) - #t ) - (go-virtual shutdown) - #f - ) - ) - ) - (else - (turret-handler proc arg1 event-type event) - ) - ) - ) + ) ) ) :enter (behavior () @@ -1482,8 +1480,8 @@ :post (behavior () (when (nonzero? (-> self red-filter-timer)) (cond - ((< (-> self clock frame-counter) (-> self red-filter-timer)) - (let* ((v1-5 (- (-> self red-filter-timer) (-> self clock frame-counter))) + ((< (current-time) (-> self red-filter-timer)) + (let* ((v1-5 (- (-> self red-filter-timer) (current-time))) (f0-1 (- 1.0 (* 0.041666668 (the float v1-5)))) ) (set-filter-color! 1.0 f0-1 f0-1) @@ -1766,8 +1764,8 @@ (sound-stop (-> self sound-id 1)) (sound-stop (-> self sound-id 2)) (set! (-> self focus-status) (focus-status disable ignore inactive)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.8)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.8)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-util_REF.gc b/test/decompiler/reference/jak2/engine/target/target-util_REF.gc index 8afd333a01..26be7c23e2 100644 --- a/test/decompiler/reference/jak2/engine/target/target-util_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-util_REF.gc @@ -1212,7 +1212,7 @@ (>= (- (-> *display* base-clock frame-counter) (-> self control cpad change-time)) (seconds 60)) (>= (- (-> *display* game-clock frame-counter) (the-as int (-> self game kiosk-timeout))) (seconds 60)) ) - (and (>= (- (-> self clock frame-counter) (-> self ambient-time)) (seconds 30)) + (and (>= (- (current-time) (-> self ambient-time)) (seconds 30)) (not (logtest? (-> self control status) (collide-status touch-actor))) (logtest? (-> self control status) (collide-status on-surface)) (not (or (logtest? (water-flags touch-water) (-> self water flags)) @@ -1256,15 +1256,15 @@ ;; definition for function can-jump? (defbehavior can-jump? target ((arg0 symbol)) (and (or (logtest? (-> self control status) (collide-status on-surface)) - (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (and (logtest? (-> self control status) (collide-status on-surface)) (< 0.866 (-> self control surface-angle)) ) (and (= arg0 'board) - (or (< (- (-> self clock frame-counter) (-> self board unknown-time-frame00)) (seconds 0.05)) - (and (< (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) (seconds 0.5)) + (or (< (- (current-time) (-> self board unknown-time-frame00)) (seconds 0.05)) + (and (< (- (current-time) (-> self control last-time-of-stuck)) (seconds 0.5)) (< (target-height-above-ground) 2048.0) ) ) @@ -1299,7 +1299,7 @@ (when (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) #t ) ) @@ -1325,15 +1325,13 @@ ;; WARN: Return type mismatch object vs none. (defbehavior fall-test target ((arg0 (state symbol target)) (arg1 float)) (when (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) arg1) ) - (if (< (- (-> self clock frame-counter) (-> self control rider-time)) - (the-as time-frame (-> *TARGET-bank* ground-timeout)) - ) + (if (< (- (current-time) (-> self control rider-time)) (the-as time-frame (-> *TARGET-bank* ground-timeout))) (send-event self 'push-transv (-> self control rider-last-move) #x7530) ) (go arg0 #f) @@ -1345,7 +1343,7 @@ ;; WARN: Return type mismatch object vs none. (defbehavior slide-down-test target () (if (and (not (logtest? (-> self control status) (collide-status on-surface touch-edge))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (logtest? (-> self control status) (collide-status touch-surface)) @@ -1375,13 +1373,11 @@ (< (-> self control local-slope-z) 0.7) (not (logtest? (-> self state-flags) (state-flags prevent-attack prevent-duck))) (not (and (focus-test? self dark) (nonzero? (-> self darkjak)))) - (>= (- (-> self clock frame-counter) (the-as int (-> *TARGET-bank* roll-timeout))) - (-> self control last-roll-end-time) - ) + (>= (- (current-time) (the-as int (-> *TARGET-bank* roll-timeout))) (-> self control last-roll-end-time)) (or (not (enabled-gun? self)) (not (-> *TARGET-bank* strafe-duck-jump)) (and (< 0.3 (vector-dot (-> self control to-target-pt-xz) (-> self control c-R-w vector 2))) - (>= (- (-> self clock frame-counter) (-> self control time-of-last-zero-input)) (seconds 0.3)) + (>= (- (current-time) (-> self control time-of-last-zero-input)) (seconds 0.3)) ) ) (not (and (not (using-gun? self)) (!= (-> self skel top-anim interp) 0.0))) @@ -1445,13 +1441,13 @@ #f ) ((and (or (not arg0) - (and (< (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (and (< (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (< (-> self control local-slope-z) 0.7) ) ) - (>= (- (-> self clock frame-counter) (-> self control last-running-attack-end-time)) + (>= (- (current-time) (-> self control last-running-attack-end-time)) (the-as time-frame (if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 1) (>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0) ) @@ -1464,7 +1460,7 @@ #t ) (else - (set! (-> self control last-hands-attempt-time) (-> self clock frame-counter)) + (set! (-> self control last-hands-attempt-time) (current-time)) #f ) ) @@ -1478,13 +1474,13 @@ ) #f ) - ((>= (- (-> self clock frame-counter) (-> self control last-attack-end-time)) + ((>= (- (current-time) (-> self control last-attack-end-time)) (the-as time-frame (-> *TARGET-bank* attack-timeout)) ) #t ) (else - (set! (-> self control last-feet-attempt-time) (-> self clock frame-counter)) + (set! (-> self control last-feet-attempt-time) (current-time)) #f ) ) @@ -1572,24 +1568,22 @@ ;; definition for function target-timed-invulnerable ;; WARN: Return type mismatch int vs none. (defun target-timed-invulnerable ((arg0 time-frame) (arg1 target) (arg2 int)) - (with-pp - (case arg2 - ((1) - (logior! (-> arg1 state-flags) (state-flags tinvul1)) - (set! (-> arg1 control invul1-on-time) (-> pp clock frame-counter)) - (set! (-> arg1 control invul1-off-time) arg0) - ) - ((2) - (set! (-> arg1 state-flags) (logior (state-flags tinvul2) (-> arg1 state-flags))) - (set! (-> arg1 control invul2-on-time) (-> pp clock frame-counter)) - (set! (-> arg1 control invul2-off-time) arg0) - ) - ) - (modify-collide-as! (-> arg1 control) 2 (collide-spec jak-vulnerable) (collide-spec)) - (logior! (-> arg1 focus-status) (focus-status ignore)) - 0 - (none) + (case arg2 + ((1) + (logior! (-> arg1 state-flags) (state-flags tinvul1)) + (set! (-> arg1 control invul1-on-time) (current-time)) + (set! (-> arg1 control invul1-off-time) arg0) + ) + ((2) + (set! (-> arg1 state-flags) (logior (state-flags tinvul2) (-> arg1 state-flags))) + (set! (-> arg1 control invul2-on-time) (current-time)) + (set! (-> arg1 control invul2-off-time) arg0) + ) ) + (modify-collide-as! (-> arg1 control) 2 (collide-spec jak-vulnerable) (collide-spec)) + (logior! (-> arg1 focus-status) (focus-status ignore)) + 0 + (none) ) ;; definition for function target-timed-invulnerable-off @@ -1625,7 +1619,7 @@ (dotimes (a2-2 8) (let ((v1-9 (-> self attack-info-old a2-2))) (when (= (-> arg0 id) (-> v1-9 id)) - (if (< (- (-> self clock frame-counter) (-> v1-9 attack-time)) + (if (< (- (current-time) (-> v1-9 attack-time)) (the-as time-frame (-> *TARGET-bank* same-attack-invulnerable-timeout)) ) (return #f) diff --git a/test/decompiler/reference/jak2/engine/target/target2_REF.gc b/test/decompiler/reference/jak2/engine/target/target2_REF.gc index e1c0c8f4be..1ea367d3ba 100644 --- a/test/decompiler/reference/jak2/engine/target/target2_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target2_REF.gc @@ -12,7 +12,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('loading) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else @@ -23,8 +23,8 @@ :exit target-exit :code (behavior () (set! (-> self control mod-surface) *trip-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 0.05)) (ja-channel-push! 1 (seconds 0.1)) (ja-no-eval :group! (-> self draw art-group data 63) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 63)) frames num-frames) -1))) @@ -46,8 +46,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.3)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.3)) (suspend) (ja :num! (seek! (ja-aframe 19.0 0) 0.05)) (suspend) @@ -131,11 +131,11 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () - (set! (-> self ambient-time) (-> self clock frame-counter)) + (set! (-> self ambient-time) (current-time)) (let ((a0-0 (-> self spool-anim))) (when (and a0-0 (= (-> *setting-control* user-current spooling) (process->ppointer self))) (ja-abort-spooled-anim a0-0 (the-as art-joint-anim #f) -1) @@ -200,10 +200,8 @@ (set! (-> a1-0 from) (process->ppointer self)) (set! (-> a1-0 num-params) 0) (set! (-> a1-0 message) 'dist-from-interp-src) - (and (or (< (send-event-function *camera* a1-0) 4915.2) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) - ) - (and (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.07)) (zero? (ja-group-size))) + (and (or (< (send-event-function *camera* a1-0) 4915.2) (< (- (current-time) (-> self state-time)) (seconds 0.05))) + (and (< (- (current-time) (-> self state-time)) (seconds 0.07)) (zero? (ja-group-size))) ) ) (suspend) @@ -388,7 +386,7 @@ (none) ) :exit (behavior () - (set! (-> self ambient-time) (-> self clock frame-counter)) + (set! (-> self ambient-time) (current-time)) (logclear! (-> self state-flags) (state-flags sf2)) (target-exit) (none) @@ -398,7 +396,7 @@ (let ((gp-0 0)) (while (not (logtest? (-> self control status) (collide-status on-surface))) (target-falling-anim-trans) - (+! gp-0 (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! gp-0 (- (current-time) (-> self clock old-frame-counter))) (suspend) ) (if (or (> gp-0 0) (let ((v1-10 (ja-group))) @@ -554,7 +552,7 @@ ) :enter (behavior ((arg0 handle)) (set! (-> self control anim-handle) arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *pole-mods*) (logior! (-> self focus-status) (focus-status pole)) (target-collide-set! 'pole 0.0) @@ -580,7 +578,7 @@ (pad-buttons x) ) (not (logtest? (-> self state-flags) (state-flags prevent-jump))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.4)) + (>= (- (current-time) (-> self state-time)) (seconds 0.4)) ) (set! (-> self control transv quad) (the-as uint128 0)) (cond @@ -796,11 +794,11 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> *edge-grab-info* pilot-edge-grab?) #f) (set! (-> self control unknown-handle000) (the-as handle #f)) (set! (-> self control mod-surface) *edge-grab-mods*) - (set! (-> self control edge-grab-start-time) (-> self clock frame-counter)) + (set! (-> self control edge-grab-start-time) (current-time)) (logior! (-> self control root-prim prim-core action) (collide-action dont-push-away)) (logior! (-> self focus-status) (focus-status edge-grab)) (set! (-> self control unknown-vector37 quad) (-> self control transv quad)) @@ -835,7 +833,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) ) @@ -1032,7 +1030,7 @@ (set! (-> self control transv quad) (the-as uint128 0)) (set! (-> self control time-of-last-clear-wall-in-jump) 0) (set-forward-vel 16384.0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (send-event *camera* 'damp-up) (go target-jump-forward arg0 arg1) (none) @@ -1075,9 +1073,9 @@ (set! (-> self control transv quad) (the-as uint128 0)) (logclear! (-> self focus-status) (focus-status edge-grab)) (logclear! (-> self control root-prim prim-core action) (collide-action dont-push-away)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (vector-float*! (-> self control transv) (-> self control edge-grab-across-edge-dir) -40960.0) - (if (< (- (-> self clock frame-counter) (-> self control rider-time)) (seconds 0.2)) + (if (< (- (current-time) (-> self control rider-time)) (seconds 0.2)) (send-event self 'push-transv (-> self control rider-last-move) #x7530) ) (go target-falling 'target-edge-grab) @@ -1193,7 +1191,7 @@ (-> self control wall-contact-normal) (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control quat)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1212,7 +1210,7 @@ (go target-ice-stance) ) (if (and (move-legs?) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (let ((f0-1 (vector-dot (-> self control to-target-pt-xz) (-> self control wall-contact-normal)))) (< 0.1 f0-1) ) @@ -1332,8 +1330,8 @@ (until #f (let ((s5-0 (rand-vu-int-range 30 600))) (ja :group! (-> self draw art-group data 85)) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) s5-0) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) s5-0) (gp-0) (suspend) ) @@ -1393,9 +1391,9 @@ (ja :num! (seek! max f30-0)) ) (let ((s5-2 (rand-vu-int-range 60 300)) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) s5-2) + (until (>= (- (current-time) s4-2) s5-2) (gp-0) (suspend) ) @@ -1421,9 +1419,9 @@ (ja :num! (seek! 0.0 f30-0)) ) (let ((s5-3 (rand-vu-int-range 60 300)) - (s4-3 (-> self clock frame-counter)) + (s4-3 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-3) s5-3) + (until (>= (- (current-time) s4-3) s5-3) (gp-0) (suspend) ) @@ -1460,7 +1458,7 @@ ) ) :code (behavior ((arg0 float) (arg1 symbol) (arg2 vector) (arg3 int)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *turn-around-mods*) (ja-channel-push! 1 (seconds 0.15)) (set-forward-vel 0.0) @@ -1478,13 +1476,13 @@ (lambda :behavior target ((arg0 vector) (arg1 time-frame) (arg2 float)) (local-vars (sv-32 time-frame) (sv-40 vector) (sv-44 symbol)) - (set! sv-32 (-> self clock frame-counter)) + (set! sv-32 (current-time)) (let ((v1-2 (new-stack-vector0))) (set! (-> v1-2 quad) (-> arg0 quad)) (set! sv-40 v1-2) ) (set! sv-44 #t) - (until (>= (- (-> self clock frame-counter) sv-32) arg1) + (until (>= (- (current-time) sv-32) arg1) (let ((s4-0 (ppointer->process (-> self parent)))) (cond ((and sv-44 @@ -1500,7 +1498,7 @@ ) (else (if sv-44 - (set! sv-32 (-> self clock frame-counter)) + (set! sv-32 (current-time)) ) (set! sv-44 (the-as symbol #f)) (when (and (-> (the-as target s4-0) next-state) @@ -1635,7 +1633,7 @@ ) (rot->dir-targ! (-> self control)) (logior! (-> self control status) (collide-status on-surface on-ground touch-surface)) - (set! (-> self control last-time-on-surface) (-> self clock frame-counter)) + (set! (-> self control last-time-on-surface) (current-time)) (ja-channel-set! 0) (ja-post) (target-exit) @@ -1704,7 +1702,7 @@ (none) ) :trans (behavior () - (set! (-> self control time-of-last-debug-float) (-> self clock frame-counter)) + (set! (-> self control time-of-last-debug-float) (current-time)) (cond ((cpad-hold? (-> self control cpad number) r2) (let ((a1-0 (new 'stack-no-clear 'vector))) diff --git a/test/decompiler/reference/jak2/engine/target/target_REF.gc b/test/decompiler/reference/jak2/engine/target/target_REF.gc index 2b3cf43b8b..3a38111f77 100644 --- a/test/decompiler/reference/jak2/engine/target/target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target_REF.gc @@ -15,7 +15,7 @@ ) (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (>= arg1 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) arg1) + (>= (- (current-time) (-> self state-time)) arg1) (not (and *cheat-mode* (cpad-hold? (-> self control cpad number) r2))) ) #t @@ -23,7 +23,7 @@ (logior! (-> self control status) (collide-status on-surface)) (go target-hit-ground 'stuck) ) - (if (!= (-> self state-time) (-> self clock frame-counter)) + (if (!= (-> self state-time) (current-time)) (slide-down-test) ) 0 @@ -47,7 +47,7 @@ :event target-standard-event-handler :enter (behavior () (set! (-> self control mod-surface) *walk-mods*) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -149,7 +149,7 @@ (if (and (using-gun? self) (-> self next-state) (= (-> self next-state name) 'target-walk)) (go target-gun-walk) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *walk-mods*) (none) ) @@ -222,7 +222,7 @@ ) (go target-running-attack) ) - (when (and (turn-around?) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3))) + (when (and (turn-around?) (>= (- (current-time) (-> self state-time)) (seconds 0.3))) (set! (-> self control transv quad) (-> self control transv-history (-> self control idx-of-fastest-xz-vel) quad) ) @@ -291,7 +291,7 @@ (go target-running-attack) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) (seconds 0.08)) + (>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.08)) ) (go target-falling #f) ) @@ -328,7 +328,7 @@ (none) ) :exit (behavior () - (set! (-> self control unknown-time-frame13) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame13) (current-time)) (none) ) :trans (behavior () @@ -447,7 +447,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *slide-down-mods*) (set! (-> self control sliding-start-time) 0) (set! (-> self control force-turn-to-strength) 1.0) @@ -457,7 +457,7 @@ :exit (behavior () (target-effect-exit) (target-exit) - (set! (-> self control unknown-time-frame13) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame13) (current-time)) (none) ) :trans (behavior () @@ -477,7 +477,7 @@ ) (zero? (-> self control sliding-start-time)) ) - (set! (-> self control sliding-start-time) (-> self clock frame-counter)) + (set! (-> self control sliding-start-time) (current-time)) ) (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) @@ -487,7 +487,7 @@ (pad-buttons x) ) (can-jump? #f) - (!= (-> self state-time) (-> self clock frame-counter)) + (!= (-> self state-time) (current-time)) ) (forward-up-nopitch->quaternion (-> self control dir-targ) @@ -505,7 +505,7 @@ (pad-buttons circle) ) (can-feet? #t) - (!= (-> self state-time) (-> self clock frame-counter)) + (!= (-> self state-time) (current-time)) ) (go target-attack) ) @@ -517,8 +517,8 @@ (pad-buttons square) ) (can-hands? #t) - (>= (- (-> self clock frame-counter) (-> self control last-running-attack-end-time)) (seconds 0.7)) - (!= (-> self state-time) (-> self clock frame-counter)) + (>= (- (current-time) (-> self control last-running-attack-end-time)) (seconds 0.7)) + (!= (-> self state-time) (current-time)) ) (go target-running-attack) ) @@ -566,7 +566,7 @@ (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (-> self clock seconds-per-frame))) ) ) - (set! (-> self control turn-lockout-end-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self control turn-lockout-end-time) (+ (current-time) (seconds 0.1))) (target-post) (none) ) @@ -580,7 +580,7 @@ (set! arg1 (* arg1 (-> self darkjak-giant-interp))) ) (logclear! (-> self control status) (collide-status touch-ceiling-sticky)) - (set! (-> self control unknown-time-frame19) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame19) (current-time)) (delete-back-vel) (let* ((f0-4 arg5) (f1-2 0.0) @@ -592,7 +592,7 @@ (s3-1 (+ arg0 f0-5)) ) (let ((s2-1 (+ arg1 f0-5))) - (when (< (- (-> self clock frame-counter) (-> self control rider-time)) (seconds 0.05)) + (when (< (- (current-time) (-> self control rider-time)) (seconds 0.05)) (let ((f0-8 (fmax 0.0 @@ -653,7 +653,7 @@ ;; INFO: Used lq/sq (defbehavior mod-var-jump target ((arg0 symbol) (arg1 symbol) (arg2 symbol) (arg3 vector)) (local-vars (v0-1 vector)) - (let ((f0-1 (* 0.033333335 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (let ((f0-1 (* 0.033333335 (the float (- (current-time) (-> self state-time)))))) (cond ((or (< 1.0 f0-1) (< (-> self control unknown-float36) 0.0) (not arg2)) (set! (-> self control unknown-float36) -1.0) @@ -784,7 +784,7 @@ :event target-standard-event-handler :enter (behavior ((arg0 symbol)) (if (not arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self control bend-target) 1.0) (set! (-> self control mod-surface) *duck-mods*) @@ -873,7 +873,7 @@ (set! (-> self neck base-joint) (the-as uint 8)) (cond ((using-gun? self) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.7))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.7))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 283)) @@ -955,7 +955,7 @@ :event target-standard-event-handler :enter (behavior ((arg0 symbol)) (if (not arg0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self control bend-target) 1.0) (target-collide-set! 'duck 1.0) @@ -1109,7 +1109,7 @@ (go target-launch (the-as float a0-7) (the-as symbol a1-3) a2-3 (-> self control unknown-dword10)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -1167,7 +1167,7 @@ (* 26624.0 (-> self darkjak-giant-interp) (-> self darkjak-giant-interp)) ) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1399,7 +1399,7 @@ (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-0 (-> self control unknown-dword10)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (if (!= (-> self control mod-surface) *slide-jump-mods*) @@ -1423,7 +1423,7 @@ (if (and (cpad-pressed? (-> self control cpad number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1442,7 +1442,7 @@ ) ) ) - (if (!= (-> self state-time) (-> self clock frame-counter)) + (if (!= (-> self state-time) (current-time)) (mod-var-jump #t #t (cpad-hold? (-> self control cpad number) x) (-> self control transv)) ) (seek! @@ -1540,7 +1540,7 @@ (if (or (= arg2 'duck) (= arg2 'launch)) (go target-duck-high-jump arg0 arg1 (the-as symbol arg2)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (sound-play "jump" :pitch 0.3) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) @@ -1583,7 +1583,7 @@ ) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -1618,7 +1618,7 @@ (defstate target-duck-high-jump (target) :event target-standard-event-handler :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *turn-around-mods*) (case arg2 @@ -1671,7 +1671,7 @@ :event target-jump-event-handler :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) (set! (-> self control unknown-symbol03) (the-as float arg2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 80 :pitch -0.4) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) @@ -1827,7 +1827,7 @@ ) ) (set! (-> self control unknown-word04) (the-as uint arg0)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -2075,18 +2075,17 @@ ;; failed to figure out what this is: (let ((v1-25 (copy *attack-mods* 'global))) (set! (-> v1-25 flags) (surface-flag attack spin gun-turn-fast)) - (set! (-> v1-25 mult-hook) (lambda :behavior target - ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) - ((-> *attack-mods* mult-hook) arg0 arg1 arg2 arg3) - (when (= arg3 1) - (if (and (nonzero? (-> self gun turn-fast-hold-time)) - (< (-> self clock frame-counter) (-> self gun turn-fast-hold-time)) - ) - (set-quaternion! (-> self control) (-> self control dir-targ)) - ) - ) - (none) - ) + (set! (-> v1-25 mult-hook) + (lambda :behavior target + ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int)) + ((-> *attack-mods* mult-hook) arg0 arg1 arg2 arg3) + (when (= arg3 1) + (if (and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time))) + (set-quaternion! (-> self control) (-> self control dir-targ)) + ) + ) + (none) + ) ) (set! *attack-end-mods* v1-25) ) @@ -2110,7 +2109,7 @@ (the-as int (-> self control attack-count)) (-> self control penetrate-using) ) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (let ((v0-2 (the-as object (-> self state name)))) (set! (-> self gun combo-window-state) (the-as symbol v0-2)) v0-2 @@ -2143,7 +2142,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (target-start-attack) (target-danger-set! 'spin #f) (set! (-> self control mod-surface) *attack-mods*) @@ -2167,7 +2166,7 @@ (if (zero? (-> self gun track-target-hold-time)) (quaternion-copy! (-> self control dir-targ) (-> self control unknown-quaternion04)) ) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-attack-end-time) (current-time)) (target-exit) (none) ) @@ -2371,8 +2370,8 @@ ) ) (when gp-1 - (set! (-> self control sliding-start-time) (-> self clock frame-counter)) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self control sliding-start-time) (current-time)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (let ((v1-13 (if (type? proc process-focusable) proc @@ -2397,7 +2396,7 @@ ) (cond ((or (= gp-1 'die) (= gp-1 'push)) - (let ((v0-2 (the-as object (-> self clock frame-counter)))) + (let ((v0-2 (the-as object (current-time)))) (set! (-> self control unknown-time-frame18) (the-as time-frame v0-2)) v0-2 ) @@ -2439,13 +2438,13 @@ ) (logclear! (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons square)) (logclear! (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (pad-buttons square)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (combo-tracker-method-12 (-> self control unknown-combo-tracker00) *null-vector* *null-vector* (the-as process #f) - (-> self clock frame-counter) + (current-time) ) (set! (-> self control sliding-start-time) 0) (set! (-> self control unknown-time-frame18) 0) @@ -2475,19 +2474,19 @@ (set! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length)) (set! (-> *run-attack-mods* turnv) 0.0) (set! (-> *run-attack-mods* turnvv) 0.0) - (set! (-> self control last-running-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-running-attack-end-time) (current-time)) (target-exit) (none) ) :trans (behavior () - (when (!= (-> self state-time) (-> self clock frame-counter)) + (when (!= (-> self state-time) (current-time)) (when (and (or (smack-surface? #t) (and (>= (-> self control surface-slope-z) 0.7) (not (logtest? (-> self control status) (collide-status touch-actor))) ) ) (begin - (set! (-> self control unknown-time-frame18) (-> self clock frame-counter)) + (set! (-> self control unknown-time-frame18) (current-time)) (set! (-> self control bend-target) 0.0) (let ((v1-11 (new-stack-vector0)) (f0-3 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -2508,14 +2507,14 @@ #t ) (or (zero? (-> self control sliding-start-time)) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) (!= (-> self control unknown-word04) 1) ) ) (if (and (cpad-pressed? (-> self control cpad number) x) (< 4096.0 (-> self control ctrl-xz-vel)) - (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (or (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (not (logtest? (-> *cpad-list* cpads (-> self control cpad number) button0-abs 0) (pad-buttons square))) ) (not (logtest? (-> self state-flags) (state-flags prevent-jump prevent-attack))) @@ -2535,7 +2534,7 @@ ) ) (if (and (logtest? (water-flags touch-water) (-> self water flags)) - (zero? (mod (- (-> self clock frame-counter) (-> self state-time)) 21)) + (zero? (mod (- (current-time) (-> self state-time)) 21)) ) (spawn-ripples (-> self water) @@ -2624,13 +2623,13 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-falling #f) @@ -2640,14 +2639,12 @@ (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) - (seconds 0.05) - ) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -2767,7 +2764,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) f28-0))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -2777,7 +2774,7 @@ ) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -2788,7 +2785,7 @@ (when (and (using-gun? self) (or (< (-> self control pad-magnitude) 0.7) (= (-> self gun gun-type) (pickup-type eco-blue))) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.5))) (when (zero? (-> self gun track-target-hold-time)) (case (-> self gun gun-type) (((pickup-type eco-blue)) @@ -2891,7 +2888,7 @@ ) ) :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (target-start-attack) (target-danger-set! 'spin-air #f) @@ -2968,7 +2965,7 @@ :exit (behavior () (set! (-> self control dynam gravity-max) (-> self control standard-dynamics gravity-max)) (set! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length)) - (set! (-> self control last-attack-end-time) (-> self clock frame-counter)) + (set! (-> self control last-attack-end-time) (current-time)) (target-exit) (none) ) @@ -2977,14 +2974,14 @@ (set-quaternion! (-> self control) (-> self control dir-targ)) (go target-hit-ground #f) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (seek! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length) (* 245760.0 (-> self clock seconds-per-frame)) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (< (vector-dot (-> self control dynam gravity-normal) (-> self control last-transv)) (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) ) @@ -3075,12 +3072,12 @@ (defstate target-attack-uppercut (target) :event target-dangerous-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (target-start-attack) (target-danger-set! 'uppercut #f) (set! (-> self control mod-surface) *uppercut-mods*) (set! (-> self neck flex-blend) 0.0) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.15))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.15))) (if (using-gun? self) (target-top-anim-base-mode 37) ) @@ -3221,7 +3218,7 @@ ) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.5))) (go target-falling 'uppercut) ) #t @@ -3235,14 +3232,14 @@ (if (and (= (-> self control ground-pat material) (pat-material ice)) (< 32768.0 (-> self control ctrl-xz-vel))) (set-forward-vel 32768.0) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #f (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self neck flex-blend) 0.0) (set! (-> self control mod-surface) *uppercut-jump-mods*) (target-start-attack) (target-danger-set! 'uppercut #f) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (set! (-> self gun track-target-hold-time) 0) 0 @@ -3256,7 +3253,7 @@ (when (and (cpad-pressed? (-> self control cpad number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (and (>= (- (-> self clock frame-counter) (-> self control last-time-of-stuck)) + (and (>= (- (current-time) (-> self control last-time-of-stuck)) (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (not (logtest? (-> self state-flags) (state-flags prevent-attack))) @@ -3324,7 +3321,7 @@ (-> self align) (the-as align-opts (cond ((>= 30.0 (ja-aframe-num 0)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) (if (nonzero? (-> self gun track-target-hold-time)) 2 18 @@ -3347,7 +3344,7 @@ (-> self align) (the-as align-opts (cond ((>= 35.0 (ja-aframe-num 0)) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) (if (nonzero? (-> self gun track-target-hold-time)) 2 18 @@ -3369,7 +3366,7 @@ ) ) ) - (set! (-> self gun surpress-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (current-time)) (go target-falling #f) (none) ) @@ -3422,7 +3419,7 @@ (set-forward-vel arg2) (set-forward-vel (-> self control ctrl-xz-vel)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *flop-mods*) (set! (-> self neck flex-blend) 0.0) @@ -3478,7 +3475,7 @@ (not (logtest? (-> self control status) (collide-status touch-actor))) (>= (-> self control unknown-word04) (the-as uint 2)) ) - (set! (-> self control last-time-of-stuck) (-> self clock frame-counter)) + (set! (-> self control last-time-of-stuck) (current-time)) (set! gp-1 'stuck) ) ) @@ -3641,9 +3638,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) - (the-as time-frame (-> *TARGET-bank* fall-timeout)) - ) + (if (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> *TARGET-bank* fall-timeout))) (!= (-> self tobot?) 'tobot) ) (go target-falling #f) @@ -3696,7 +3691,7 @@ ) (target-land-effect) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control unknown-word04) (the-as uint arg0)) (set-forward-vel 0.0) (set! (-> self control mod-surface) *flop-land-mods*) @@ -3713,9 +3708,7 @@ ) :exit target-exit :trans (behavior () - (when (and (!= (-> self control unknown-spool-anim00) 'stuck) - (!= (-> self state-time) (-> self clock frame-counter)) - ) + (when (and (!= (-> self control unknown-spool-anim00) 'stuck) (!= (-> self state-time) (current-time))) (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0) (-> *cpad-list* cpads (-> self control cpad number) button0-rel 1) ) @@ -3731,7 +3724,7 @@ (when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2) (>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0) ) - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (< (- (current-time) (-> self state-time)) (seconds 0.25)) ) (do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5) 22 @@ -3784,7 +3777,7 @@ ) :enter (behavior () (target-collide-set! 'duck 1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! (-> self neck base-joint) (the-as uint 8)) (set! (-> self control mod-surface) *roll-mods*) @@ -3805,7 +3798,7 @@ :exit (behavior () (when (not (and (-> self next-state) (= (-> self next-state name) 'target-roll))) (set! (-> self control unknown-word02) 0) - (set! (-> self control last-roll-end-time) (-> self clock frame-counter)) + (set! (-> self control last-roll-end-time) (current-time)) ) (target-exit) (target-collide-set! 'normal 0.0) @@ -3840,18 +3833,16 @@ ) (until (ja-done? 0) (if (cpad-pressed? (-> self control cpad number) x) - (set! gp-0 (the-as int (-> self clock frame-counter))) + (set! gp-0 (the-as int (current-time))) ) - (when (and (not s4-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2))) + (when (and (not s4-0) (>= (- (current-time) (-> self state-time)) (seconds 0.2))) (set! s4-0 #t) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) ) (when (and (or (smack-surface? #f) (>= (-> self control surface-slope-z) 0.7)) - (>= (the-as uint (- (-> self clock frame-counter) (the-as int (-> self control unknown-word04)))) - (the-as uint 3) - ) - (>= (- (-> self clock frame-counter) (-> self state-time)) 1) + (>= (the-as uint (- (current-time) (the-as int (-> self control unknown-word04)))) (the-as uint 3)) + (>= (- (current-time) (-> self state-time)) 1) ) (when (>= 6.0 (ja-aframe-num 0)) (if (using-gun? self) @@ -3865,11 +3856,11 @@ ) ) (if (zero? s5-0) - (set! s5-0 (the-as int (-> self clock frame-counter))) + (set! s5-0 (the-as int (current-time))) ) ) (if (cpad-pressed? (-> self control cpad number) square) - (-> self clock frame-counter) + (current-time) ) (compute-alignment! (-> self align)) (cond @@ -3889,9 +3880,7 @@ (set! f30-0 (* f30-0 (fmin 1.0 (-> self control zx-vel-frac)))) ) ) - (if (and (or (< (- (-> self clock frame-counter) (the-as time-frame gp-0)) - (the-as time-frame (-> *TARGET-bank* roll-jump-pre-window)) - ) + (if (and (or (< (- (current-time) (the-as time-frame gp-0)) (the-as time-frame (-> *TARGET-bank* roll-jump-pre-window))) (cpad-pressed? (-> self control cpad number) x) ) (can-jump? 'target-roll-flip) @@ -3899,14 +3888,12 @@ (go target-roll-flip (-> *TARGET-bank* roll-flip-height) (-> *TARGET-bank* roll-flip-dist)) ) ) - (set! (-> self state-hook-time) (-> self clock frame-counter)) + (set! (-> self state-hook-time) (current-time)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> self clock frame-counter) (-> self state-hook-time)) - (the-as time-frame (-> *TARGET-bank* roll-jump-post-window)) - ) + ((>= (- (current-time) (-> self state-hook-time)) (the-as time-frame (-> *TARGET-bank* roll-jump-post-window))) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else @@ -3926,7 +3913,7 @@ (none) ) ) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.2))) (go target-duck-stance 'roll) (none) ) @@ -3959,7 +3946,7 @@ (set! (-> self neck flex-blend) 0.0) (set! (-> self neck base-joint) (the-as uint 8)) (set! (-> self gun track-target-hold-time) 0) - (set! (-> self gun combo-window-start) (-> self clock frame-counter)) + (set! (-> self gun combo-window-start) (current-time)) (set! (-> self gun combo-window-state) (-> self state name)) (target-collide-set! 'duck 1.0) (none) @@ -3973,7 +3960,7 @@ (if (and (or (smack-surface? #f) (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) - (and (!= (-> self state-time) (-> self clock frame-counter)) (not (using-gun? self))) + (and (!= (-> self state-time) (current-time)) (not (using-gun? self))) ) (target-shoved (-> *TARGET-bank* smack-surface-dist) @@ -4045,9 +4032,9 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> self control status) (collide-status on-surface))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.01)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.01)) (let ((v1-50 (ja-group))) (when (not (and v1-50 (= v1-50 (-> self draw art-group data 27)))) (ja-channel-push! 1 (seconds 0.1)) @@ -4080,13 +4067,13 @@ ) ) (target-land-effect) - (set! (-> self gun surpress-time) (+ (-> self clock frame-counter) (seconds 0.1))) - (set! (-> self state-hook-time) (-> self clock frame-counter)) + (set! (-> self gun surpress-time) (+ (current-time) (seconds 0.1))) + (set! (-> self state-hook-time) (current-time)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> self clock frame-counter) (-> self state-hook-time)) (seconds 0.1)) + ((>= (- (current-time) (-> 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/jak2/engine/ui/credits_REF.gc b/test/decompiler/reference/jak2/engine/ui/credits_REF.gc index 1866b52054..c21b3bab2c 100644 --- a/test/decompiler/reference/jak2/engine/ui/credits_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/credits_REF.gc @@ -97,9 +97,9 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) + (let ((gp-1 (current-time))) (while (let ((a0-9 (level-get *level* 'outrocst))) - (and a0-9 (not (draw-end-credits a0-9 (* 0.15 (the float (- (-> self clock frame-counter) gp-1)))))) + (and a0-9 (not (draw-end-credits a0-9 (* 0.15 (the float (- (current-time) gp-1)))))) ) (suspend) ) diff --git a/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc index 16cef87826..9a861d253b 100644 --- a/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc @@ -863,52 +863,50 @@ ;; definition for method 9 of type minimap ;; WARN: Return type mismatch int vs none. (defmethod debug-draw minimap ((obj minimap)) - (with-pp - (when *trail-graph* - (dotimes (s5-0 6) - (let ((s4-0 (-> obj trail s5-0))) - (when (and (-> s4-0 used-by) - (>= (-> s4-0 node-count) 0) - (< (- (-> pp clock frame-counter) (the-as int (-> s4-0 last-updated))) (seconds 5)) - ) - (let* ((a3-0 (target-pos 0)) - (v1-12 s5-0) - (t1-0 (cond - ((zero? v1-12) - *color-green* - ) - ((= v1-12 1) - *color-blue* - ) - ((= v1-12 2) - *color-white* - ) - ((= v1-12 3) - *color-red* - ) - (else - *color-magenta* - ) + (when *trail-graph* + (dotimes (s5-0 6) + (let ((s4-0 (-> obj trail s5-0))) + (when (and (-> s4-0 used-by) + (>= (-> s4-0 node-count) 0) + (< (- (current-time) (the-as int (-> s4-0 last-updated))) (seconds 5)) + ) + (let* ((a3-0 (target-pos 0)) + (v1-12 s5-0) + (t1-0 (cond + ((zero? v1-12) + *color-green* + ) + ((= v1-12 1) + *color-blue* + ) + ((= v1-12 2) + *color-white* + ) + ((= v1-12 3) + *color-red* + ) + (else + *color-magenta* ) ) - ) - (debug-draw-path - *trail-graph* - (-> s4-0 node-count) - (-> s4-0 node-id) - a3-0 - (-> s4-0 cached-info orig-goal-pos) - t1-0 - (* 1024.0 (the float s5-0)) - ) + ) + ) + (debug-draw-path + *trail-graph* + (-> s4-0 node-count) + (-> s4-0 node-id) + a3-0 + (-> s4-0 cached-info orig-goal-pos) + t1-0 + (* 1024.0 (the float s5-0)) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 14 of type minimap @@ -916,114 +914,112 @@ ;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] (defmethod update-trails minimap ((obj minimap)) "Main function to do trail search per-frame" - (with-pp - (let ((s5-0 *trail-graph*)) - (when s5-0 - (.mtc0 Count 0) - (let ((v1-1 0)) - (while (< (the-as uint v1-1) (the-as uint #x605a)) - (let ((v1-2 (-> s5-0 mode))) - (cond - ((= v1-2 1) - (run-until-done-or-timeout s5-0 #x605a) - ) - ((zero? v1-2) - (let ((v1-5 -1)) - (let ((a0-5 0)) - (countdown (a1-1 6) - (let* ((a2-3 (-> obj trail a1-1)) - (a3-0 (-> a2-3 used-by)) - ) - (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) - (set! v1-5 a1-1) - (set! a0-5 (the-as int (-> a2-3 last-updated))) - ) - ) - ) - (let ((a1-5 (-> pp clock frame-counter))) - (if (or (< v1-5 0) (= a0-5 a1-5)) - (goto cfg-68) - ) - ) - ) - (let ((s4-0 (-> obj trail v1-5)) - (s3-0 (the-as object #f)) - ) - (let* ((v1-9 (-> s4-0 used-by)) - (s2-0 (-> v1-9 position)) + (let ((s5-0 *trail-graph*)) + (when s5-0 + (.mtc0 Count 0) + (let ((v1-1 0)) + (while (< (the-as uint v1-1) (the-as uint #x605a)) + (let ((v1-2 (-> s5-0 mode))) + (cond + ((= v1-2 1) + (run-until-done-or-timeout s5-0 #x605a) + ) + ((zero? v1-2) + (let ((v1-5 -1)) + (let ((a0-5 0)) + (countdown (a1-1 6) + (let* ((a2-3 (-> obj trail a1-1)) + (a3-0 (-> a2-3 used-by)) ) - (set! s3-0 (cond - ((= s2-0 #t) - (let* ((s2-1 (handle->process (-> v1-9 handle))) - (v1-13 (if (type? s2-1 process-drawable) - s2-1 - ) - ) - ) - (if v1-13 - (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) - ) - ) - s3-0 + (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) + (set! v1-5 a1-1) + (set! a0-5 (the-as int (-> a2-3 last-updated))) + ) + ) + ) + (let ((a1-5 (current-time))) + (if (or (< v1-5 0) (= a0-5 a1-5)) + (goto cfg-68) + ) + ) + ) + (let ((s4-0 (-> obj trail v1-5)) + (s3-0 (the-as object #f)) + ) + (let* ((v1-9 (-> s4-0 used-by)) + (s2-0 (-> v1-9 position)) + ) + (set! s3-0 (cond + ((= s2-0 #t) + (let* ((s2-1 (handle->process (-> v1-9 handle))) + (v1-13 (if (type? s2-1 process-drawable) + s2-1 + ) + ) + ) + (if v1-13 + (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) + ) ) - ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) - (let* ((v1-19 s2-0) - (s3-1 (if v1-19 - (-> (the-as entity-actor v1-19) extra process) - ) - ) - (v1-21 (if (type? s3-1 process-drawable) - s3-1 - ) - ) - ) - (if v1-21 - (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) - (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) - ) - ) - s3-0 + s3-0 + ) + ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) + (let* ((v1-19 s2-0) + (s3-1 (if v1-19 + (-> (the-as entity-actor v1-19) extra process) + ) + ) + (v1-21 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (if v1-21 + (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) + (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) + ) ) - (else - s2-0 - ) + s3-0 + ) + (else + s2-0 ) - ) - ) - (when s3-0 - (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) - (set! (-> s4-0 search-id) (-> s5-0 search-id)) - ) + ) + ) + ) + (when s3-0 + (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) + (set! (-> s4-0 search-id) (-> s5-0 search-id)) ) ) ) - ((or (= v1-2 3) (= v1-2 2)) - (countdown (v1-33 6) - (let ((s4-1 (-> obj trail v1-33))) - (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) - (set! (-> s4-1 node-count) - (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) - ) - (set! (-> s4-1 last-updated) (the-as uint (-> pp clock frame-counter))) - (goto cfg-64) - ) + ) + ((or (= v1-2 3) (= v1-2 2)) + (countdown (v1-33 6) + (let ((s4-1 (-> obj trail v1-33))) + (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) + (set! (-> s4-1 node-count) + (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) + ) + (set! (-> s4-1 last-updated) (the-as uint (current-time))) + (goto cfg-64) ) ) - (label cfg-64) - (reset-search-state s5-0) ) - ) + (label cfg-64) + (reset-search-state s5-0) + ) ) - (.mfc0 v1-1 Count) ) + (.mfc0 v1-1 Count) ) - (label cfg-68) - 0 ) + (label cfg-68) + 0 ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 10 of type minimap @@ -1167,7 +1163,6 @@ ) ;; definition for method 3 of type engine-minimap -;; INFO: this function exists in multiple non-identical object files (defmethod inspect engine-minimap ((obj engine-minimap)) ((the-as (function engine-minimap engine-minimap) (find-parent-method engine-minimap 3)) obj) (let ((s5-0 0) @@ -1209,7 +1204,7 @@ (let ((f30-0 1.0)) (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) - (if (or (not v1-26) (>= (- (-> pp clock frame-counter) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) (set! f30-0 0.0001) ) ) @@ -1964,7 +1959,6 @@ ;; definition for method 21 of type minimap ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ a0-4 8) 0) at op 35 (defmethod sub-draw-1-1 minimap ((obj minimap) (arg0 minimap-draw-work)) (with-pp (let ((s5-0 (-> arg0 buf))) @@ -2137,7 +2131,6 @@ ;; definition for method 19 of type minimap ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ a0-2 8) 0) at op 11 (defmethod sub-draw-1-2 minimap ((obj minimap) (arg0 minimap-draw-work)) (local-vars (a3-4 int) (t0-4 int) (sv-48 vector) (sv-52 matrix) (sv-56 vector)) (let ((s5-0 (-> arg0 buf))) @@ -2412,7 +2405,7 @@ (set! s2-0 #t) (set! (-> arg1 edge-ry) -131072.0) ) - ((>= (- (-> pp clock frame-counter) (the-as int (-> a2-2 last-updated))) (seconds 5)) + ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) (set! s2-0 #t) (set! (-> arg1 edge-ry) -131072.0) ) diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc index df45a00c3c..f066f674e9 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc @@ -115,7 +115,7 @@ (let ((a0-5 arg0)) (set! (-> a0-5 flags) (font-flags kerning middle large)) ) - (if (< (mod (-> self clock frame-counter) 300) 210) + (if (< (mod (current-time) 300) 210) (print-game-text (lookup-text! *common-text* (text-id progress-memcard-loading-data) #f) arg0 @@ -2560,60 +2560,58 @@ ;; definition for method 10 of type menu-loading-option ;; WARN: Return type mismatch int vs none. (defmethod draw-option menu-loading-option ((obj menu-loading-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol)) - (with-pp - (let ((f30-0 (* 2.0 (- 0.5 (-> arg0 menu-transition))))) - (set! (-> arg1 alpha) (- 1.0 (-> arg0 menu-transition))) - (let ((v1-3 arg1)) - (set! (-> v1-3 scale) 0.55) - ) - (let ((s4-0 arg1)) - (set! (-> s4-0 color) (progress-selected 0)) - ) - (let ((a0-3 arg1)) - (set! (-> a0-3 flags) (font-flags kerning middle left large)) - ) - (set! (-> arg1 origin x) 120.0) - (set! (-> arg1 origin y) 110.0) - (let ((v1-8 arg1)) - (set! (-> v1-8 width) (the float 270)) - ) - (let ((v1-9 arg1)) - (set! (-> v1-9 height) (the float 35)) - ) - (if (< f30-0 0.0) - 0.0 - ) + (let ((f30-0 (* 2.0 (- 0.5 (-> arg0 menu-transition))))) + (set! (-> arg1 alpha) (- 1.0 (-> arg0 menu-transition))) + (let ((v1-3 arg1)) + (set! (-> v1-3 scale) 0.55) ) - (when (or (< (mod (-> pp clock frame-counter) 300) 150) (!= (-> arg0 menu-transition) 0.0)) - (let ((a1-1 416)) - (case (-> arg0 current) - (('saving) - (set! a1-1 415) - ) - (('formatting) - (set! a1-1 417) - ) - (('creating) - (set! a1-1 418) - ) - ) - (print-game-text (lookup-text! *common-text* (the-as text-id a1-1) #f) arg1 #f 44 (bucket-id progress)) + (let ((s4-0 arg1)) + (set! (-> s4-0 color) (progress-selected 0)) + ) + (let ((a0-3 arg1)) + (set! (-> a0-3 flags) (font-flags kerning middle left large)) + ) + (set! (-> arg1 origin x) 120.0) + (set! (-> arg1 origin y) 110.0) + (let ((v1-8 arg1)) + (set! (-> v1-8 width) (the float 270)) + ) + (let ((v1-9 arg1)) + (set! (-> v1-9 height) (the float 35)) + ) + (if (< f30-0 0.0) + 0.0 ) - ) - (set! (-> arg1 origin y) (+ 45.0 (-> arg1 origin y))) - (let ((v1-25 arg1)) - (set! (-> v1-25 height) (the float 160)) - ) - (let ((a0-16 arg1)) - (set! (-> a0-16 color) (font-color #7efbfb)) - ) - (let ((s5-2 print-game-text)) - (format (clear *temp-string*) (lookup-text! *common-text* (text-id progress-memcard-dont-remove) #f) 1) - (s5-2 *temp-string* arg1 #f 44 (bucket-id progress)) - ) - 0 - (none) ) + (when (or (< (mod (current-time) 300) 150) (!= (-> arg0 menu-transition) 0.0)) + (let ((a1-1 416)) + (case (-> arg0 current) + (('saving) + (set! a1-1 415) + ) + (('formatting) + (set! a1-1 417) + ) + (('creating) + (set! a1-1 418) + ) + ) + (print-game-text (lookup-text! *common-text* (the-as text-id a1-1) #f) arg1 #f 44 (bucket-id progress)) + ) + ) + (set! (-> arg1 origin y) (+ 45.0 (-> arg1 origin y))) + (let ((v1-25 arg1)) + (set! (-> v1-25 height) (the float 160)) + ) + (let ((a0-16 arg1)) + (set! (-> a0-16 color) (font-color #7efbfb)) + ) + (let ((s5-2 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (text-id progress-memcard-dont-remove) #f) 1) + (s5-2 *temp-string* arg1 #f 44 (bucket-id progress)) + ) + 0 + (none) ) ;; definition for method 10 of type menu-insufficient-space-option @@ -7983,7 +7981,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc index 84149a9557..569c14302d 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc @@ -1339,13 +1339,13 @@ (let ((gp-4 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *x-vector* - (* 182.04445 (* (-> self swing) (sin (the float (* 40 (-> self clock frame-counter)))))) + (* 182.04445 (* (-> self swing) (sin (the float (* 40 (current-time)))))) ) ) (s5-4 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *y-vector* - (* 182.04445 (* (-> self swing) (sin (the float (* 0 (-> self clock frame-counter)))))) + (* 182.04445 (* (-> self swing) (sin (the float (* 0 (current-time)))))) ) ) ) @@ -2010,8 +2010,8 @@ (set! f30-0 (-> (the-as (pointer float) gp-0))) ) ) - (when (< (seconds 0.03) (- (-> self clock frame-counter) (-> *progress-state* last-slider-sound))) - (set! (-> *progress-state* last-slider-sound) (-> self clock frame-counter)) + (when (< (seconds 0.03) (- (current-time) (-> *progress-state* last-slider-sound))) + (set! (-> *progress-state* last-slider-sound) (current-time)) (sound-play-by-name (static-sound-name "menu-slide") (new-sound-id) @@ -2538,7 +2538,7 @@ ) (else (sound-play "generic-beep") - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! (-> arg0 current) 'none) (set-next-state arg0 s3-0 0) ) @@ -2635,7 +2635,7 @@ (cond ((-> *progress-state* yes-no-choice) (set! (-> *setting-control* user-default video-mode) (-> *progress-state* video-mode-choice)) - (set! (-> *progress-state* video-mode-timeout) (-> self clock frame-counter)) + (set! (-> *progress-state* video-mode-timeout) (current-time)) (set-next-state arg0 'video-mode-ok 0) ) (else @@ -2689,7 +2689,7 @@ ) ) (when (and (nonzero? (-> *progress-state* video-mode-timeout)) - (< (seconds 10) (- (-> self clock frame-counter) (-> *progress-state* video-mode-timeout))) + (< (seconds 10) (- (current-time) (-> *progress-state* video-mode-timeout))) ) (set! (-> *progress-state* video-mode-timeout) 0) (set! (-> *progress-state* video-mode-choice) 'pal) @@ -2725,7 +2725,7 @@ (sound-play "generic-beep") (set-progressive-scan #t) (set! (-> *progress-state* graphic-options-progressive-scan) #t) - (set! (-> *progress-state* progressive-mode-timeout) (-> self clock frame-counter)) + (set! (-> *progress-state* progressive-mode-timeout) (current-time)) (set-next-state arg0 'progressive-mode-ok 0) ) (else @@ -2783,7 +2783,7 @@ ) ) (when (and (nonzero? (-> *progress-state* progressive-mode-timeout)) - (< (seconds 10) (- (-> self clock frame-counter) (-> *progress-state* progressive-mode-timeout))) + (< (seconds 10) (- (current-time) (-> *progress-state* progressive-mode-timeout))) ) (set! (-> *progress-state* progressive-mode-timeout) 0) (set! (-> *setting-control* user-default use-progressive-scan) #f) @@ -2998,10 +2998,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-index) 0) (set! s4-0 #t) (+! (-> obj task-index) -1) @@ -3010,10 +3010,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (let ((s3-0 -1)) (dotimes (s2-0 (-> *game-info* play-list length)) (let* ((v1-41 (-> *game-info* play-list s2-0)) @@ -3110,10 +3110,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-index) 0) (set! gp-0 #t) (+! (-> obj task-index) -1) @@ -3122,10 +3122,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj task-index) (+ (length s4-0) -1)) (set! gp-0 #t) (+! (-> obj task-index) 1) @@ -3181,10 +3181,10 @@ (cond ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (> (-> obj task-line-index) 0) (set! s5-0 #t) (+! (-> obj task-line-index) -1) @@ -3193,10 +3193,10 @@ ) ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj task-line-index) (+ (-> *progress-state* total-num-tasks) -1)) (+! (-> obj task-line-index) 1) (set! (-> arg0 sliding-height) 1.0) @@ -3244,11 +3244,11 @@ (cond ((or (logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) (when (< 1 (get-num-highscores)) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! s5-0 #t) (set! (-> obj prev-page-index) (-> obj page-index)) (set! (-> obj page-index) (get-next-highscore (-> obj page-index))) @@ -3259,11 +3259,11 @@ ) ((or (logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) (when (< 1 (get-num-highscores)) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (set! (-> obj prev-page-index) (-> obj page-index)) (set! (-> obj page-index) (get-prev-highscore (-> obj page-index))) (set! s5-0 #t) @@ -3341,10 +3341,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< (-> obj item-index) s2-0) (set! (-> obj prev-item-index) (-> obj item-index)) (set! s5-2 #t) @@ -3355,10 +3355,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> obj last-move))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> obj last-move))) (seconds 0.2)) ) ) - (set! (-> obj last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> obj last-move) (the-as uint (current-time))) (when (< s3-0 (-> obj item-index)) (set! (-> obj prev-item-index) (-> obj item-index)) (+! (-> obj item-index) -1) @@ -3427,10 +3427,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (cond ((< (-> *progress-state* game-options-item-selected) 3) (+! (-> *progress-state* game-options-item-selected) 1) @@ -3443,10 +3443,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* game-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (if (> (-> *progress-state* game-options-item-selected) 0) (+! (-> *progress-state* game-options-item-selected) -1) (set! (-> *progress-state* game-options-item-selected) 3) @@ -3455,7 +3455,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* game-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* game-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* game-options-item-picked) (the-as basic #t)) (sound-play "generic-beep") ) @@ -3603,57 +3603,55 @@ ;; definition for function update-center-screen (defun update-center-screen () - (with-pp - (let ((v1-0 #f)) - (cond - (#t - (cond - ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dx) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) -2) -96 96) - ) - (set! v1-0 #t) - ) - ((logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dx) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) 2) -96 96) - ) - (set! v1-0 #t) - ) - ((logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dy) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) -2) -48 48) - ) - (set! v1-0 #f) - ) - ((logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (set! (-> *setting-control* user-default display-dy) - (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) 2) -48 48) - ) - (set! v1-0 #f) - ) - ((cpad-pressed? 0 triangle) - (set! (-> *setting-control* user-default display-dx) (-> *progress-state* center-x-backup)) - (set! (-> *setting-control* user-default display-dy) (-> *progress-state* center-y-backup)) - ) - ) - ) - (else - (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) - (set! (-> *progress-state* center-x-backup) (-> *setting-control* user-default display-dx)) - (set! (-> *progress-state* center-y-backup) (-> *setting-control* user-default display-dy)) - ) + (let ((v1-0 #f)) + (cond + (#t + (cond + ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dx) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) -2) -96 96) + ) + (set! v1-0 #t) + ) + ((logtest? (pad-buttons right l-analog-right) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dx) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dx) 2) -96 96) + ) + (set! v1-0 #t) + ) + ((logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dy) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) -2) -48 48) + ) + (set! v1-0 #f) + ) + ((logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) + (set! (-> *setting-control* user-default display-dy) + (min-max-wrap-around (+ (-> *setting-control* user-default display-dy) 2) -48 48) + ) + (set! v1-0 #f) + ) + ((cpad-pressed? 0 triangle) + (set! (-> *setting-control* user-default display-dx) (-> *progress-state* center-x-backup)) + (set! (-> *setting-control* user-default display-dy) (-> *progress-state* center-y-backup)) + ) ) ) - (when v1-0 - (when (< (seconds 0.3) (- (-> pp clock frame-counter) (-> *progress-state* last-slider-sound))) - (set! (-> *progress-state* last-slider-sound) (-> pp clock frame-counter)) - (sound-play "roll-over") + (else + (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (set! (-> *progress-state* center-x-backup) (-> *setting-control* user-default display-dx)) + (set! (-> *progress-state* center-y-backup) (-> *setting-control* user-default display-dy)) ) ) ) - 0 + (when v1-0 + (when (< (seconds 0.3) (- (current-time) (-> *progress-state* last-slider-sound))) + (set! (-> *progress-state* last-slider-sound) (current-time)) + (sound-play "roll-over") + ) + ) ) + 0 ) ;; definition for method 9 of type menu-graphic-option @@ -3667,12 +3665,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* graphic-options-last-move))) - (seconds 0.5) - ) + (>= (- (current-time) (the-as int (-> *progress-state* graphic-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> arg0 selected-option) #f) (cond ((< (-> *progress-state* graphic-options-item-selected) (if (= (scf-get-territory) 1) @@ -3691,12 +3687,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* graphic-options-last-move))) - (seconds 0.5) - ) + (>= (- (current-time) (the-as int (-> *progress-state* graphic-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> arg0 selected-option) #f) (cond ((> (-> *progress-state* graphic-options-item-selected) 0) @@ -3716,7 +3710,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* graphic-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* graphic-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* graphic-options-item-picked) (the-as basic #t)) (set! (-> arg0 selected-option) #f) (sound-play "generic-beep") @@ -3906,10 +3900,10 @@ (cond ((or (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons down l-analog-up) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (cond ((< (-> *progress-state* qr-options-item-selected) 1) (+! (-> *progress-state* qr-options-item-selected) 1) @@ -3927,10 +3921,10 @@ ) ((or (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-rel 0)) (and (logtest? (pad-buttons up l-analog-down) (-> *cpad-list* cpads 0 button0-abs 0)) - (>= (- (-> self clock frame-counter) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) + (>= (- (current-time) (the-as int (-> *progress-state* qr-options-last-move))) (seconds 0.5)) ) ) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (cond ((> (-> *progress-state* qr-options-item-selected) 0) (+! (-> *progress-state* qr-options-item-selected) -1) @@ -3947,7 +3941,7 @@ ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) - (set! (-> *progress-state* qr-options-last-move) (the-as uint (-> self clock frame-counter))) + (set! (-> *progress-state* qr-options-last-move) (the-as uint (current-time))) (set! (-> *progress-state* qr-options-item-picked) (the-as basic #t)) (set! (-> arg0 selected-option) #t) (sound-play "generic-beep") diff --git a/test/decompiler/reference/jak2/engine/util/smush-control-h_REF.gc b/test/decompiler/reference/jak2/engine/util/smush-control-h_REF.gc index cc5c262380..fce7690b82 100644 --- a/test/decompiler/reference/jak2/engine/util/smush-control-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/util/smush-control-h_REF.gc @@ -61,53 +61,49 @@ ;; definition for method 10 of type smush-control (defmethod update! smush-control ((obj smush-control)) - (with-pp - (cond - ((!= (-> obj amp) 0.0) - (let* ((f30-0 (the float (- (-> pp clock frame-counter) (-> obj start-time)))) - (f0-2 (-> obj period)) - (f28-0 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) - ) - (when (>= (- f30-0 (-> obj ticks)) (-> obj period)) - (set! (-> obj amp) (* (-> obj amp) (-> obj damp-amp))) - (set! (-> obj period) (* (-> obj period) (-> obj damp-period))) - (set! (-> obj ticks) f30-0) - (if (< (-> obj damp-period) 0.0) - (set-zero! obj) - ) - ) - (if (>= f30-0 (-> obj duration)) + (cond + ((!= (-> obj amp) 0.0) + (let* ((f30-0 (the float (- (current-time) (-> obj start-time)))) + (f0-2 (-> obj period)) + (f28-0 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) + ) + (when (>= (- f30-0 (-> obj ticks)) (-> obj period)) + (set! (-> obj amp) (* (-> obj amp) (-> obj damp-amp))) + (set! (-> obj period) (* (-> obj period) (-> obj damp-period))) + (set! (-> obj ticks) f30-0) + (if (< (-> obj damp-period) 0.0) (set-zero! obj) ) - (* (sin (/ (* 65536.0 f28-0) (-> obj period))) - (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) - ) ) + (if (>= f30-0 (-> obj duration)) + (set-zero! obj) + ) + (* (sin (/ (* 65536.0 f28-0) (-> obj period))) + (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + ) ) - (else - 0.0 - ) + ) + (else + 0.0 ) ) ) ;; definition for method 11 of type smush-control (defmethod get-no-update smush-control ((obj smush-control)) - (with-pp - (cond - ((!= (-> obj amp) 0.0) - (let* ((f30-0 (the float (- (-> pp clock frame-counter) (-> obj start-time)))) - (f0-2 (-> obj period)) - (f0-4 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) - ) - (* (sin (/ (* 65536.0 f0-4) (-> obj period))) - (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + (cond + ((!= (-> obj amp) 0.0) + (let* ((f30-0 (the float (- (current-time) (-> obj start-time)))) + (f0-2 (-> obj period)) + (f0-4 (- f30-0 (* (the float (the int (/ f30-0 f0-2))) f0-2))) ) - ) + (* (sin (/ (* 65536.0 f0-4) (-> obj period))) + (* (-> obj amp) (/ (- (-> obj duration) f30-0) (-> obj duration))) + ) ) - (else - 0.0 - ) + ) + (else + 0.0 ) ) ) diff --git a/test/decompiler/reference/jak2/engine/util/sync-info_REF.gc b/test/decompiler/reference/jak2/engine/util/sync-info_REF.gc index 1a173c070b..80f8fb8d88 100644 --- a/test/decompiler/reference/jak2/engine/util/sync-info_REF.gc +++ b/test/decompiler/reference/jak2/engine/util/sync-info_REF.gc @@ -12,13 +12,11 @@ ;; definition for method 9 of type sync-info (defmethod get-current-phase-no-mod sync-info ((obj sync-info)) "Get the current value, with no fancy modifications." - (with-pp - (let* ((v1-0 (-> obj period)) - (f0-1 (the float v1-0)) - (f1-2 (+ (the float (mod (the-as uint (-> pp clock frame-counter)) v1-0)) (-> obj offset))) - ) - (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) - ) + (let* ((v1-0 (-> obj period)) + (f0-1 (the float v1-0)) + (f1-2 (+ (the float (mod (the-as uint (current-time)) v1-0)) (-> obj offset))) + ) + (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) ) ) @@ -32,19 +30,17 @@ ;; WARN: Return type mismatch int vs none. (defmethod sync-now! sync-info ((obj sync-info) (arg0 float)) "Adjust our offset so our current phase is the given phase." - (with-pp - (let* ((a2-0 (-> obj period)) - (f0-1 (the float a2-0)) - (v1-0 (- arg0 (* (the float (the int (/ arg0 f0-1))) f0-1))) - (f1-4 (+ (the float (mod (the-as uint (-> pp clock frame-counter)) a2-0)) (-> obj offset))) - (f1-6 (/ (- f1-4 (* (the float (the int (/ f1-4 f0-1))) f0-1)) f0-1)) - (f1-10 (+ (* (- v1-0 f1-6) f0-1) f0-1 (-> obj offset))) - ) - (set! (-> obj offset) (- f1-10 (* (the float (the int (/ f1-10 f0-1))) f0-1))) - ) - 0 - (none) + (let* ((a2-0 (-> obj period)) + (f0-1 (the float a2-0)) + (v1-0 (- arg0 (* (the float (the int (/ arg0 f0-1))) f0-1))) + (f1-4 (+ (the float (mod (the-as uint (current-time)) a2-0)) (-> obj offset))) + (f1-6 (/ (- f1-4 (* (the float (the int (/ f1-4 f0-1))) f0-1)) f0-1)) + (f1-10 (+ (* (- v1-0 f1-6) f0-1) f0-1 (-> obj offset))) + ) + (set! (-> obj offset) (- f1-10 (* (the float (the int (/ f1-10 f0-1))) f0-1))) ) + 0 + (none) ) ;; definition for method 11 of type sync-info @@ -63,16 +59,14 @@ ;; definition for method 14 of type sync-info (defmethod get-timeframe-offset! sync-info ((obj sync-info) (arg0 time-frame)) "Get the difference between the given time-frame and when this sync-info is at 0." - (with-pp - (if (zero? arg0) - (set! arg0 (-> pp clock frame-counter)) - ) - (let* ((v1-4 (-> obj period)) - (f0-1 (the float v1-4)) - (f1-2 (+ (the float (mod arg0 (the-as time-frame v1-4))) (-> obj offset))) - ) - (+ arg0 (the int (- f0-1 (* (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) f0-1)))) + (if (zero? arg0) + (set! arg0 (current-time)) ) + (let* ((v1-4 (-> obj period)) + (f0-1 (the float v1-4)) + (f1-2 (+ (the float (mod arg0 (the-as time-frame v1-4))) (-> obj offset))) + ) + (+ arg0 (the int (- f0-1 (* (/ (- f1-2 (* (the float (the int (/ f1-2 f0-1))) f0-1)) f0-1) f0-1)))) ) ) @@ -117,29 +111,27 @@ ;; definition for method 11 of type sync-linear (defmethod get-norm! sync-linear ((obj sync-linear) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f0-1 (the float v1-4)) - ) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f1-0 2.0) - (f2-2 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f0-3 (* f1-0 (/ (- f2-2 (* (the float (the int (/ f2-2 f0-1))) f0-1)) f0-1))) - ) - (if (>= f0-3 1.0) - (set! f0-3 (- 2.0 f0-3)) - ) - f0-3 - ) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f0-1 (the float v1-4)) ) - (else - (let ((f1-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset)))) - (/ (- f1-5 (* (the float (the int (/ f1-5 f0-1))) f0-1)) f0-1) - ) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f1-0 2.0) + (f2-2 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f0-3 (* f1-0 (/ (- f2-2 (* (the float (the int (/ f2-2 f0-1))) f0-1)) f0-1))) + ) + (if (>= f0-3 1.0) + (set! f0-3 (- 2.0 f0-3)) + ) + f0-3 + ) + ) + (else + (let ((f1-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset)))) + (/ (- f1-5 (* (the float (the int (/ f1-5 f0-1))) f0-1)) f0-1) ) ) ) @@ -257,67 +249,65 @@ ;; definition for method 11 of type sync-eased (defmethod get-norm! sync-eased ((obj sync-eased) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f3-0 (the float v1-4)) - (f0-1 (-> obj pause-in)) - (f2-0 (-> obj pause-out)) - (f1-1 (* 0.5 (- f3-0 (+ f0-1 f2-0)))) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f3-0 (the float v1-4)) + (f0-1 (-> obj pause-in)) + (f2-0 (-> obj pause-out)) + (f1-1 (* 0.5 (- f3-0 (+ f0-1 f2-0)))) + ) + (the int (+ f0-1 f2-0 f3-0)) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f4-7 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-2 (- f4-7 (* (the float (the int (/ f4-7 f3-0))) f3-0))) + (v1-6 #f) + ) + (when (>= f3-2 (+ f1-1 f0-1)) + (set! v1-6 #t) + (set! f3-2 (- f3-2 (+ f1-1 f0-1))) + f0-1 + (set! f0-1 f2-0) ) - (the int (+ f0-1 f2-0 f3-0)) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f4-7 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-2 (- f4-7 (* (the float (the int (/ f4-7 f3-0))) f3-0))) - (v1-6 #f) - ) - (when (>= f3-2 (+ f1-1 f0-1)) - (set! v1-6 #t) - (set! f3-2 (- f3-2 (+ f1-1 f0-1))) - f0-1 - (set! f0-1 f2-0) - ) - (cond - ((< f3-2 f0-1) - (set! f3-2 f0-1) - ) - ((< (+ f0-1 f1-1) f3-2) - (set! f3-2 (+ f0-1 f1-1)) - ) - ) - (let* ((f0-3 (/ (- f3-2 f0-1) f1-1)) - (f1-2 (-> obj tlo)) - (f0-8 (/ (cond - ((< f0-3 f1-2) - (* f0-3 f0-3) - ) - ((< f0-3 (-> obj thi)) - (+ (* 2.0 f1-2 (- f0-3 f1-2)) (-> obj ylo)) - ) - (else - (let ((f1-5 (- 1.0 f0-3))) - (- (-> obj yend) (* f1-5 f1-5 (-> obj m2))) - ) + (cond + ((< f3-2 f0-1) + (set! f3-2 f0-1) + ) + ((< (+ f0-1 f1-1) f3-2) + (set! f3-2 (+ f0-1 f1-1)) + ) + ) + (let* ((f0-3 (/ (- f3-2 f0-1) f1-1)) + (f1-2 (-> obj tlo)) + (f0-8 (/ (cond + ((< f0-3 f1-2) + (* f0-3 f0-3) + ) + ((< f0-3 (-> obj thi)) + (+ (* 2.0 f1-2 (- f0-3 f1-2)) (-> obj ylo)) + ) + (else + (let ((f1-5 (- 1.0 f0-3))) + (- (-> obj yend) (* f1-5 f1-5 (-> obj m2))) ) ) - (-> obj yend) ) - ) - ) - (if v1-6 - (set! f0-8 (- 1.0 f0-8)) - ) - f0-8 - ) + (-> obj yend) + ) + ) + ) + (if v1-6 + (set! f0-8 (- 1.0 f0-8)) + ) + f0-8 ) ) - (else - (format 0 "ERROR: Attempting to use sync-eased in unsupported non-pong mode.~%") - 0.0 - ) + ) + (else + (format 0 "ERROR: Attempting to use sync-eased in unsupported non-pong mode.~%") + 0.0 ) ) ) @@ -396,46 +386,44 @@ ;; definition for method 11 of type sync-paused (defmethod get-norm! sync-paused ((obj sync-paused) (arg0 int)) "Get the current value, from 0 to 1." - (with-pp - (if (zero? arg0) - (set! arg0 (the-as int (-> pp clock frame-counter))) - ) - (let* ((v1-4 (-> obj period)) - (f2-0 (the float v1-4)) - (f0-1 (-> obj pause-in)) - (f1-0 (-> obj pause-out)) + (if (zero? arg0) + (set! arg0 (the-as int (current-time))) + ) + (let* ((v1-4 (-> obj period)) + (f2-0 (the float v1-4)) + (f0-1 (-> obj pause-in)) + (f1-0 (-> obj pause-out)) + ) + (the int (+ f0-1 f1-0 f2-0)) + (cond + ((logtest? (-> obj sync-flags) (sync-flags pong)) + (let* ((f3-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-6 (- f3-5 (* (the float (the int (/ f3-5 f2-0))) f2-0))) + (f2-2 (* 0.5 (- f2-0 (+ f0-1 f1-0)))) + (v1-7 #f) + ) + (when (>= f3-6 (+ f2-2 f0-1)) + (set! v1-7 #t) + (set! f3-6 (- f3-6 (+ f2-2 f0-1))) + (set! f0-1 f1-0) ) - (the int (+ f0-1 f1-0 f2-0)) - (cond - ((logtest? (-> obj sync-flags) (sync-flags pong)) - (let* ((f3-5 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-6 (- f3-5 (* (the float (the int (/ f3-5 f2-0))) f2-0))) - (f2-2 (* 0.5 (- f2-0 (+ f0-1 f1-0)))) - (v1-7 #f) + (let* ((f1-1 (/ (- f3-6 f0-1) f2-2)) + (f0-5 (fmax 0.0 (fmin 1.0 f1-1))) ) - (when (>= f3-6 (+ f2-2 f0-1)) - (set! v1-7 #t) - (set! f3-6 (- f3-6 (+ f2-2 f0-1))) - (set! f0-1 f1-0) - ) - (let* ((f1-1 (/ (- f3-6 f0-1) f2-2)) - (f0-5 (fmax 0.0 (fmin 1.0 f1-1))) - ) - (if v1-7 - (set! f0-5 (- 1.0 f0-5)) - ) - f0-5 - ) + (if v1-7 + (set! f0-5 (- 1.0 f0-5)) + ) + f0-5 ) ) - (else - (let* ((f3-9 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) - (f3-10 (- f3-9 (* (the float (the int (/ f3-9 f2-0))) f2-0))) - (f1-5 (- f2-0 (+ f0-1 f1-0))) - (f1-6 (/ (- f3-10 f0-1) f1-5)) - ) - (fmax 0.0 (fmin 1.0 f1-6)) - ) + ) + (else + (let* ((f3-9 (+ (the float (mod arg0 (the-as int v1-4))) (-> obj offset))) + (f3-10 (- f3-9 (* (the float (the int (/ f3-9 f2-0))) f2-0))) + (f1-5 (- f2-0 (+ f0-1 f1-0))) + (f1-6 (/ (- f3-10 f0-1) f1-5)) + ) + (fmax 0.0 (fmin 1.0 f1-6)) ) ) ) @@ -461,34 +449,28 @@ ;; definition for method 10 of type delayed-rand-float (defmethod reset! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (set! (-> obj start-time) (-> pp clock frame-counter)) - (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) - (set! (-> obj value) (rand-vu-float-range (- (-> obj max-val)) (-> obj max-val))) - ) + (set! (-> obj start-time) (current-time)) + (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) + (set! (-> obj value) (rand-vu-float-range (- (-> obj max-val)) (-> obj max-val))) ) ;; definition for method 11 of type delayed-rand-float (defmethod update! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (reset! obj) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (reset! obj) + ) + (-> obj value) ) ;; definition for method 12 of type delayed-rand-float ;; WARN: Return type mismatch float vs none. (defmethod update-and-clear! delayed-rand-float ((obj delayed-rand-float)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (reset! obj) - (set! (-> obj value) 0.0) - ) - (-> obj value) - (none) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (reset! obj) + (set! (-> obj value) 0.0) + ) + (-> obj value) + (none) ) ;; definition for method 9 of type oscillating-float @@ -578,35 +560,29 @@ ;; definition for method 10 of type delayed-rand-vector (defmethod update-now! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (set! (-> obj start-time) (-> pp clock frame-counter)) - (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) - (set! (-> obj value x) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) - (set! (-> obj value y) (rand-vu-float-range (- (-> obj y-max)) (-> obj y-max))) - (set! (-> obj value z) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) - (-> obj value) - ) + (set! (-> obj start-time) (current-time)) + (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) + (set! (-> obj value x) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) + (set! (-> obj value y) (rand-vu-float-range (- (-> obj y-max)) (-> obj y-max))) + (set! (-> obj value z) (rand-vu-float-range (- (-> obj xz-max)) (-> obj xz-max))) + (-> obj value) ) ;; definition for method 11 of type delayed-rand-vector (defmethod update-with-delay! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (update-now! obj) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (update-now! obj) + ) + (-> obj value) ) ;; definition for method 12 of type delayed-rand-vector (defmethod update-with-delay-or-reset! delayed-rand-vector ((obj delayed-rand-vector)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj start-time)) (-> obj timer)) - (update-now! obj) - (vector-reset! (-> obj value)) - ) - (-> obj value) - ) + (if (>= (- (current-time) (-> obj start-time)) (-> obj timer)) + (update-now! obj) + (vector-reset! (-> obj value)) + ) + (-> obj value) ) ;; definition for method 9 of type oscillating-vector @@ -656,7 +632,3 @@ (-> obj value) ) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/atoll/ash1-course_REF.gc b/test/decompiler/reference/jak2/levels/atoll/ash1-course_REF.gc index dfd3936ea7..ce1f243563 100644 --- a/test/decompiler/reference/jak2/levels/atoll/ash1-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/ash1-course_REF.gc @@ -101,12 +101,12 @@ ) ) ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) (let ((s5-0 (get-current-task-event (-> arg1 task)))) (cond ((and (nonzero? (-> arg1 waypoint-time0)) - (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) + (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) (let ((f0-0 143360.0)) (and (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) (= (-> s5-0 action) (game-task-action say)) @@ -205,19 +205,13 @@ (with-pp (when (not (channel-active? arg1 (the-as uint 0))) (cond - ((and (not (speech-playing? arg1 45)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) - ) + ((and (not (speech-playing? arg1 45)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5))) (play-speech arg1 45) ) - ((and (not (speech-playing? arg1 46)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 7)) - ) + ((and (not (speech-playing? arg1 46)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 7))) (play-speech arg1 46) ) - ((and (not (speech-playing? arg1 47)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 14)) - ) + ((and (not (speech-playing? arg1 47)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 14))) (play-speech arg1 47) ) ) @@ -252,22 +246,20 @@ ) ) :on-update (lambda ((arg0 ashelin-battle)) - (with-pp - (set-frontline-dist! arg0) - (let ((s5-0 (target-pos 0))) - (if (>= (-> s5-0 y) 176128.0) - (set! (-> arg0 player-in-bounds-time) (-> pp clock frame-counter)) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg0 player-in-bounds-time)) (seconds 4)) - (send-event arg0 'instant-death) - ) - (if (< (-> s5-0 y) 192512.0) - (logior! (-> arg0 bot-flags) (bot-flags bf10)) - (logclear! (-> arg0 bot-flags) (bot-flags bf10)) - ) - ) - (none) + (set-frontline-dist! arg0) + (let ((s5-0 (target-pos 0))) + (if (>= (-> s5-0 y) 176128.0) + (set! (-> arg0 player-in-bounds-time) (current-time)) + ) + (if (>= (- (current-time) (-> arg0 player-in-bounds-time)) (seconds 4)) + (send-event arg0 'instant-death) + ) + (if (< (-> s5-0 y) 192512.0) + (logior! (-> arg0 bot-flags) (bot-flags bf10)) + (logclear! (-> arg0 bot-flags) (bot-flags bf10)) + ) ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -316,18 +308,16 @@ (set! (-> v1-22 bytes 8) 7) (let ((v0-12 (lambda ((arg0 asht-wait-spot) (arg1 ashelin-battle)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - (let ((s5-0 (get-current-task-event (-> arg1 task)))) - (when (and (= (-> s5-0 action) (game-task-action say)) - (not (channel-active? arg1 (the-as uint 0))) - (scene-play arg1 (the-as string (-> s5-0 scene)) #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 5 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + (let ((s5-0 (get-current-task-event (-> arg1 task)))) + (when (and (= (-> s5-0 action) (game-task-action say)) + (not (channel-active? arg1 (the-as uint 0))) + (scene-play arg1 (the-as string (-> s5-0 scene)) #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 5 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) diff --git a/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc b/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc index b0c43875bb..235bf68d39 100644 --- a/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc @@ -130,9 +130,7 @@ (+ (-> self init-height) (+ (-> self range-bottom) (get-scaled-val! (-> self sync) f0-1 0))) ) ) - (when (and (logtest? (actor-option user18) (-> self fact options)) - (< (-> self sound-time 0) (-> self clock frame-counter)) - ) + (when (and (logtest? (actor-option user18) (-> self fact options)) (< (-> self sound-time 0) (current-time))) (sound-stop (the-as sound-id (-> self looping-id))) (sound-play "piston-loop" :id (the-as sound-id (-> self looping-id)) :position (-> self sound-trans)) (+! (-> self sound-time 0) (the int (* 0.5 (the float (-> self sync period))))) @@ -487,7 +485,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "liftcat") (none) ) @@ -497,7 +495,7 @@ This commonly includes things such as: (if (>= (-> self down-y) (-> gp-0 trans y)) (go-virtual idle-down) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (set! (-> self root transv y) -8192.0) (set! (-> self root transv y) 0.0) ) @@ -684,38 +682,38 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the int (-> self cycle-offset))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the int (-> self cycle-offset))) (suspend) ) ) (until #f - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the int (-> self cycle-time))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the int (-> self cycle-time))) (suspend) ) ) (activate! (-> self smush) -1.0 60 225 1.0 1.0 (-> self clock)) (sound-play "rot-pipe-wiggle" :position (-> self root-override trans)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (set! (-> self shudder-angle) (* 364.0889 (update! (-> self smush)))) (suspend) ) ) (set! (-> self shudder-angle) 0.0) (set-zero! (-> self smush)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) (sound-play "rot-pipe-turn" :position (-> self root-override trans)) (let* ((f0-7 2.0) (f30-1 (* 16384.0 f0-7)) - (gp-6 (-> self clock frame-counter)) + (gp-6 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 0.5)) + (until (>= (- (current-time) gp-6) (seconds 0.5)) (set! (-> self rot-angle) (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) ) @@ -863,7 +861,7 @@ This commonly includes things such as: object (case event-type (('touch 'attack) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self collide-off-timer))) (seconds 2)) + (when (>= (- (current-time) (the-as int (-> self collide-off-timer))) (seconds 2)) (let* ((s4-0 proc) (s3-0 (if (type? s4-0 process-focusable) s4-0 @@ -895,7 +893,7 @@ This commonly includes things such as: (send-event-function proc a1-8) ) ) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self collide-off-timer) (the-as uint v0-0)) v0-0 ) @@ -1511,9 +1509,9 @@ This commonly includes things such as: () (local-vars (v1-31 symbol)) (set! (-> self data-int32 0) 0) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (until #f - (when (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40)) + (when (>= (- (current-time) (-> self beep-time)) (seconds 40)) (let ((v1-7 (logand (-> self data-int32 0) 3))) (cond ((zero? v1-7) @@ -1530,7 +1528,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (+! (-> self data-int32 0) 1) ) (b! diff --git a/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc b/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc index 08cc62e702..017c13ed64 100644 --- a/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc @@ -135,26 +135,24 @@ ;; INFO: Used lq/sq (defmethod event-handler! juicer-shot ((obj juicer-shot) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Multiplex the projectile's event processing, called by [[projectile-event-handler]]" - (with-pp - (case arg2 - (('reset) - (let ((v1-1 (the-as object (-> arg3 param 0)))) - (set! (-> obj root-override trans quad) (-> (the-as matrix v1-1) trans quad)) - (set! (-> obj starting-pos quad) (-> (the-as matrix v1-1) trans quad)) - (set! (-> obj root-override transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) - (set! (-> obj pre-move-transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) - ) - (set! (-> obj hits) 0) - (set! (-> obj spawn-time) (-> pp clock frame-counter)) - (if (made-impact? obj) - (go (method-of-object obj impact)) - (go (method-of-object obj moving)) - ) - #t + (case arg2 + (('reset) + (let ((v1-1 (the-as object (-> arg3 param 0)))) + (set! (-> obj root-override trans quad) (-> (the-as matrix v1-1) trans quad)) + (set! (-> obj starting-pos quad) (-> (the-as matrix v1-1) trans quad)) + (set! (-> obj root-override transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) + (set! (-> obj pre-move-transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0)) ) - (else - ((method-of-type projectile event-handler!) obj arg0 arg1 arg2 arg3) - ) + (set! (-> obj hits) 0) + (set! (-> obj spawn-time) (current-time)) + (if (made-impact? obj) + (go (method-of-object obj impact)) + (go (method-of-object obj moving)) + ) + #t + ) + (else + ((method-of-type projectile event-handler!) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1308,9 +1306,9 @@ (when (and (or (logtest? (-> self nav state flags) (nav-state-flag blocked)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) (rand-vu-int-range (seconds 1) (seconds 2))) + (if (and (>= (- (current-time) (-> self last-fire-time)) (rand-vu-int-range (seconds 1) (seconds 2))) (< 20480.0 f30-0) ) (go-virtual attack) @@ -1321,7 +1319,7 @@ ) (if (and (check-los? (-> self los) 0) (or (>= 11468.8 f30-0) - (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) (rand-vu-int-range (seconds 5) (seconds 8))) + (and (>= (- (current-time) (-> self last-fire-time)) (rand-vu-int-range (seconds 5) (seconds 8))) (>= 53248.0 f30-0) ) ) @@ -1439,7 +1437,7 @@ (set! (-> self torso-track-player) #f) (logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup)) (juicer-method-184 self #f) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (if (logtest? (-> self enemy-flags) (enemy-flag check-water)) (logior! (-> self focus-status) (focus-status dangerous)) (logclear! (-> self focus-status) (focus-status dangerous)) @@ -1471,8 +1469,8 @@ (s5-0 (+ (-> v1-29 attack-id) 1)) ) (set! (-> v1-29 attack-id) s5-0) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (seconds 0.25)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (seconds 0.25)) (ja-no-eval :group! juicer-attack0-ja :num! (seek! (the float (+ (-> (the-as art-joint-anim juicer-attack0-ja) frames num-frames) -1))) :frame-num 0.0 @@ -1484,7 +1482,7 @@ (vector-vector-distance (-> self root-override2 trans) (get-trans (the-as process-focusable s3-0) 0)) ) (fire-projectile self (the-as process-focusable s3-0) s5-0) - (-> self clock frame-counter) + (current-time) (if (not gp-0) (set! gp-0 #t) ) @@ -1710,14 +1708,14 @@ (ja-channel-push! 1 (seconds 0.6)) (let ((f30-0 (get-rand-float-range self 0.8 1.2))) (let ((gp-0 (get-rand-int-range self 60 210)) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) (f28-0 f30-0) ) (ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override idle-anim)) :num! (loop! f28-0) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) s5-0) gp-0) + (until (>= (- (current-time) s5-0) gp-0) (suspend) (ja :num! (loop! f28-0)) ) diff --git a/test/decompiler/reference/jak2/levels/atoll/sig0-course_REF.gc b/test/decompiler/reference/jak2/levels/atoll/sig0-course_REF.gc index 723225be0d..93ce4e97e9 100644 --- a/test/decompiler/reference/jak2/levels/atoll/sig0-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/sig0-course_REF.gc @@ -927,15 +927,13 @@ ) ) (when (and (demo?) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 1)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 1)) (logtest? (-> arg0 waypoint-bits) 16) ) (set! (-> arg0 waypoint-bits) (logand -17 (-> arg0 waypoint-bits))) (talker-spawn-func (-> *talker-speech* 80) *entity-pool* (target-pos 0) (the-as region #f)) ) - (when (or (not (logtest? (-> arg0 waypoint-bits) 8)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 8)) - ) + (when (or (not (logtest? (-> arg0 waypoint-bits) 8)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))) (if (and (demo?) (not (logtest? (-> arg0 waypoint-bits) 8))) (logior! (-> arg0 waypoint-bits) 16) ) @@ -951,7 +949,7 @@ (set! (-> s5-4 liftcat-speech-index) v1-62) ) ) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) ) ) ) @@ -989,57 +987,55 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((not (logtest? (-> arg1 waypoint-bits) 1)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 81920.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (logior! (-> arg1 waypoint-bits) 1) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 10) - (set-setting! 'entity-name "camera-68" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 81920.0) - (set! (-> arg1 too-far-fail-dist-delta) 225280.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((not (logtest? (-> arg1 waypoint-bits) 1)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 81920.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (logior! (-> arg1 waypoint-bits) 1) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 10) + (set-setting! 'entity-name "camera-68" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 81920.0) + (set! (-> arg1 too-far-fail-dist-delta) 225280.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 13 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 13 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 2) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 2) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -1259,14 +1255,11 @@ :on-update (lambda ((arg0 sig-atoll)) (with-pp (b! (not (channel-active? arg0 (the-as uint 0))) cfg-2 :delay (empty-form)) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) (b! #t cfg-21 :delay (nop!)) (label cfg-2) (b! - (not (and (not (speech-playing? arg0 12)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.75)) - ) - ) + (not (and (not (speech-playing? arg0 12)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.75)))) cfg-7 :delay (empty-form) ) @@ -1274,7 +1267,7 @@ (b! #t cfg-21 :delay (nop!)) (label cfg-7) (if (and (not (speech-playing? arg0 13)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.5)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.5)) (outside-spot-radius? arg0 (the-as bot-spot #f) (the-as vector #f) #f) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-5 from) (process->ppointer pp)) @@ -1422,56 +1415,54 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 73728.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (play-speech arg1 15) - (reset-warn-time! arg1) - (set-setting! 'entity-name "camera-69" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 73728.0) - (set! (-> arg1 too-far-fail-dist-delta) 233472.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 73728.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (play-speech arg1 15) + (reset-warn-time! arg1) + (set-setting! 'entity-name "camera-69" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 73728.0) + (set! (-> arg1 too-far-fail-dist-delta) 233472.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 18 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 18 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -1664,15 +1655,13 @@ (none) ) :on-update (lambda ((arg0 sig-atoll)) - (with-pp - (if (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 1.5)) - (not (speech-playing? arg0 18)) - (not (channel-active? arg0 (the-as uint 0))) - ) - (play-speech arg0 18) - ) - (none) - ) + (if (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 1.5)) + (not (speech-playing? arg0 18)) + (not (channel-active? arg0 (the-as uint 0))) + ) + (play-speech arg0 18) + ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -1722,9 +1711,7 @@ ) ) ) - (when (or (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 8)) - ) + (when (or (not (logtest? (-> arg1 waypoint-bits) 2)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 8))) (logior! (-> arg1 waypoint-bits) 2) (let* ((s5-1 (-> arg1 sig-course)) (s4-1 (-> s5-1 liftcat-speech-index)) @@ -1737,7 +1724,7 @@ (set! (-> s5-1 liftcat-speech-index) v1-35) ) ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) ) ) @@ -1828,56 +1815,54 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 61440.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 21) - (set-setting! 'entity-name "camera-70" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 61440.0) - (set! (-> arg1 too-far-fail-dist-delta) 245760.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 61440.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 21) + (set-setting! 'entity-name "camera-70" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 61440.0) + (set! (-> arg1 too-far-fail-dist-delta) 245760.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 23 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 23 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -2177,63 +2162,61 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (set! (-> arg1 too-far-warn-dist) 184320.0) - (set! (-> arg1 too-far-fail-dist-delta) 122880.0) - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 73728.0) - ) - (cond - ((and (< f0-2 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 23) - (set-setting! 'entity-name "camera-71" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 73728.0) - (set! (-> arg1 too-far-fail-dist-delta) 233472.0) - ) + (set! (-> arg1 too-far-warn-dist) 184320.0) + (set! (-> arg1 too-far-fail-dist-delta) 122880.0) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 73728.0) + ) + (cond + ((and (< f0-2 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 23) + (set-setting! 'entity-name "camera-71" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 73728.0) + (set! (-> arg1 too-far-fail-dist-delta) 233472.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - ) - (remove-setting! 'string-startup-vector) - (logior! (-> arg1 waypoint-bits) 2) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 29 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + ) + (remove-setting! 'string-startup-vector) + (logior! (-> arg1 waypoint-bits) 2) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 29 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) @@ -2432,7 +2415,7 @@ (with-pp (cond ((not (logtest? (-> arg0 bot-task-bits) 4)) - (when (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.25)) + (when (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.25)) (< (-> arg0 sig-course spots 36 center x) (-> (target-pos 0) x)) ) (logior! (-> arg0 bot-task-bits) 4) @@ -2520,17 +2503,13 @@ ) ) :on-update (lambda ((arg0 sig-atoll)) - (with-pp - (sig0-say-look-out-if-should arg0) - (when (and (not (logtest? (-> arg0 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 8)) - ) - (logior! (-> arg0 waypoint-bits) 1) - (logior! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 16384.0) - ) - (none) + (sig0-say-look-out-if-should arg0) + (when (and (not (logtest? (-> arg0 waypoint-bits) 1)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))) + (logior! (-> arg0 waypoint-bits) 1) + (logior! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 16384.0) ) + (none) ) :on-skipping-here #f :check-too-far 'sig0-final-snipers-check-too-far @@ -2625,7 +2604,7 @@ (with-pp (cond ((not (speech-playing? arg0 27)) - (if (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 0.5)) + (if (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.5)) (play-speech arg0 27) ) ) @@ -2634,7 +2613,7 @@ (logior! (-> arg0 waypoint-bits) 1) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 122880.0) - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg0 waypoint-time0) (current-time)) ) ) ((not (logtest? (-> arg0 waypoint-bits) 2)) @@ -2658,15 +2637,13 @@ ) 5 ) - (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 10)) + (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 10)) ) (set! (-> arg0 bot-flags) (logior (bot-flags bf21) (-> arg0 bot-flags))) (logior! (-> arg0 waypoint-bits) 2) ) (else - (if (and (>= (- (-> pp clock frame-counter) (-> arg0 waypoint-time0)) (seconds 4)) - (not (speech-playing? arg0 28)) - ) + (if (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 4)) (not (speech-playing? arg0 28))) (play-speech arg0 28) ) ) @@ -2809,61 +2786,59 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-atoll)) - (with-pp - (cond - ((zero? (-> arg1 waypoint-time0)) - (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) - (f1-0 61440.0) - ) - (cond - ((and (< f0-0 (* f1-0 f1-0)) - (not (channel-active? arg1 (the-as uint 0))) - (process-grab? arg1 #t) - (process-grab? *target* #t) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (process-grab? arg1 #f) - (process-grab? *target* #f) - (reset-warn-time! arg1) - (play-speech arg1 31) - (set-setting! 'entity-name "camera-72" 0.0 0) - ) - (else - (set! (-> arg1 too-far-warn-dist) 61440.0) - (set! (-> arg1 too-far-fail-dist-delta) 430080.0) - ) + (cond + ((zero? (-> arg1 waypoint-time0)) + (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0))) + (f1-0 61440.0) + ) + (cond + ((and (< f0-0 (* f1-0 f1-0)) + (not (channel-active? arg1 (the-as uint 0))) + (process-grab? arg1 #t) + (process-grab? *target* #t) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + (process-grab? arg1 #f) + (process-grab? *target* #f) + (reset-warn-time! arg1) + (play-speech arg1 31) + (set-setting! 'entity-name "camera-72" 0.0 0) + ) + (else + (set! (-> arg1 too-far-warn-dist) 61440.0) + (set! (-> arg1 too-far-fail-dist-delta) 430080.0) ) ) ) ) - ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - ) - (remove-setting! 'string-startup-vector) - (logior! (-> arg1 waypoint-bits) 2) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4.5)) - (process-release? arg1) - (process-release? *target*) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 38 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) + ) + ((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1)) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + ) + (remove-setting! 'string-startup-vector) + (logior! (-> arg1 waypoint-bits) 2) ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'sound-mode #f 0.0 1) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5)) + (process-release? arg1) + (process-release? *target*) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 38 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'sound-mode #f 0.0 1) ) ) - #f ) + #f ) ) ) diff --git a/test/decompiler/reference/jak2/levels/atoll/sniper_REF.gc b/test/decompiler/reference/jak2/levels/atoll/sniper_REF.gc index bb791c54d5..15edd601c6 100644 --- a/test/decompiler/reference/jak2/levels/atoll/sniper_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/sniper_REF.gc @@ -268,7 +268,7 @@ (t9-0) ) ) - (set! (-> self next-pick-time) (-> self clock frame-counter)) + (set! (-> self next-pick-time) (current-time)) (none) ) :code (behavior () @@ -301,11 +301,11 @@ :post (behavior () (when (or (logtest? (-> self nav state flags) (nav-state-flag at-target)) (nav-enemy-method-163 self) - (>= (-> self clock frame-counter) (-> self next-pick-time)) + (>= (current-time) (-> self next-pick-time)) ) (nav-enemy-method-156 self) (nav-enemy-method-162 self) - (set! (-> self next-pick-time) (+ (-> self clock frame-counter) (get-rand-int-range self 300 1050))) + (set! (-> self next-pick-time) (+ (current-time) (get-rand-int-range self 300 1050))) ) (nav-enemy-method-176 self) (none) diff --git a/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc b/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc index f81b424c80..3041e576ec 100644 --- a/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc @@ -1403,13 +1403,13 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :code (behavior () - (set! (-> self wiggle-time) (+ (-> self clock frame-counter) (seconds -10))) + (set! (-> self wiggle-time) (+ (current-time) (seconds -10))) (set! (-> self wiggle-angle) 0.0) (let ((f30-0 (get-rand-float-range self 0.9 1.1))) (until #f (ja :num! (loop! f30-0)) - (when (>= (- (-> self clock frame-counter) (-> self wiggle-time)) (seconds 1)) - (set! (-> self wiggle-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self wiggle-time)) (seconds 1)) + (set! (-> self wiggle-time) (current-time)) (krew-boss-clone-method-180 self) ) (suspend) @@ -2332,37 +2332,35 @@ For example for an elevator pre-compute the distance between the first and last (defmethod general-event-handler krew-boss ((obj krew-boss) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('track) - (cond - ((-> arg3 param 0) - (if (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - #t - 'abort - ) - ) - (else - (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) - ) - ) - ) - (('notify) - (case (-> arg3 param 0) - (('hit) - (krew-hits-jak-speech obj) - (set! (-> obj next-shooting-frame) 100) - (set! (-> obj spawn-charge) #t) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj state-time) (the-as time-frame v0-0)) - v0-0 + (case arg2 + (('track) + (cond + ((-> arg3 param 0) + (if (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) + #t + 'abort ) - ) + ) + (else + (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active)) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (case (-> arg3 param 0) + (('hit) + (krew-hits-jak-speech obj) + (set! (-> obj next-shooting-frame) 100) + (set! (-> obj spawn-charge) #t) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj state-time) (the-as time-frame v0-0)) + v0-0 + ) ) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -2678,26 +2676,24 @@ For example for an elevator pre-compute the distance between the first and last ;; definition for method 56 of type krew-boss (defmethod damage-amount-from-attack krew-boss ((obj krew-boss) (arg0 process) (arg1 event-message-block)) "@returns the amount of damage taken from an attack. This can come straight off the [[attack-info]] or via [[penetrate-using->damage]]" - (with-pp - (let ((v1-0 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg1))) - (cond - ((or (logtest? (penetrate jak-blue-shot) v1-0) (logtest? (penetrate jak-dark-shot) v1-0)) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-damage-time)) (seconds 5)) - (set! (-> obj last-damage-time) (-> pp clock frame-counter)) - 5 - ) - (else - 0 - ) - ) - ) - ((logtest? (penetrate dark-bomb) v1-0) - 20 - ) - (else + (let ((v1-0 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg1))) + (cond + ((or (logtest? (penetrate jak-blue-shot) v1-0) (logtest? (penetrate jak-dark-shot) v1-0)) + (cond + ((>= (- (current-time) (-> obj last-damage-time)) (seconds 5)) + (set! (-> obj last-damage-time) (current-time)) 5 ) + (else + 0 + ) + ) + ) + ((logtest? (penetrate dark-bomb) v1-0) + 20 + ) + (else + 5 ) ) ) @@ -2841,7 +2837,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> self spawn-charge) #t) (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (when (not (handle->process (-> self hud-handle))) (set! (-> self hud-handle) (ppointer->handle (process-spawn hud-krew-boss :init hud-init-by-other :to self))) (krew-comes-in-speech self) @@ -2865,7 +2861,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (if (or (!= (-> self focus aware) 3) (not (get-enemy-target self))) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) ) (when (= (-> self next-shooting-frame) 200) (cond @@ -2906,7 +2902,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -2973,7 +2969,7 @@ For example for an elevator pre-compute the distance between the first and last ) ) (let ((gp-2 (the int (* 300.0 (- 3.0 (* 0.5 (+ -1.0 (the float (-> self gameplay-pass))))))))) - (when (and (-> self spawn-charge) (>= (- (-> self clock frame-counter) (-> self state-time)) (+ gp-2 -300))) + (when (and (-> self spawn-charge) (>= (- (current-time) (-> self state-time)) (+ gp-2 -300))) (process-spawn part-tracker :init part-tracker-init @@ -2987,7 +2983,7 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self spawn-charge) #f) ) - (when (and (= (-> self next-shooting-frame) 100) (>= (- (-> self clock frame-counter) (-> self state-time)) gp-2)) + (when (and (= (-> self next-shooting-frame) 100) (>= (- (current-time) (-> self state-time)) gp-2)) (set! (-> self next-shooting-frame) 0) (ja :chan 1 :num-func num-func-identity :frame-num 0.0) ) @@ -3003,7 +2999,7 @@ For example for an elevator pre-compute the distance between the first and last ((= (-> self next-shooting-frame) 20) (set! (-> self next-shooting-frame) 100) (set! (-> self spawn-charge) #t) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (+! (-> self next-shooting-frame) 5) diff --git a/test/decompiler/reference/jak2/levels/castle/pad/caspad-obs_REF.gc b/test/decompiler/reference/jak2/levels/castle/pad/caspad-obs_REF.gc index aa0020694a..10a84fd7f7 100644 --- a/test/decompiler/reference/jak2/levels/castle/pad/caspad-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/pad/caspad-obs_REF.gc @@ -127,8 +127,8 @@ (none) ) :code (behavior () - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 1)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/castle/pad/castle-tasks_REF.gc b/test/decompiler/reference/jak2/levels/castle/pad/castle-tasks_REF.gc index b946ba715c..8eef4893b1 100644 --- a/test/decompiler/reference/jak2/levels/castle/pad/castle-tasks_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/pad/castle-tasks_REF.gc @@ -18,8 +18,8 @@ (until #f (when (< (vector-vector-distance (target-pos 0) (-> self info end-sphere)) (-> self info end-sphere r)) (send-event (handle->process (-> self arrow)) 'leave) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.007)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.007)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/citizen-enemy_REF.gc b/test/decompiler/reference/jak2/levels/city/common/citizen-enemy_REF.gc index 6878babf08..e2e6e26bdd 100644 --- a/test/decompiler/reference/jak2/levels/city/common/citizen-enemy_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/citizen-enemy_REF.gc @@ -37,26 +37,24 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a1-0 options) (overlaps-others-options)) - (set! (-> a1-0 collide-with-filter) (-> obj enemy-info-override overlaps-others-collide-with-filter)) - (set! (-> a1-0 tlist) *touching-list*) - (find-overlapping-shapes (-> obj root-override2) a1-0) - ) - (when (and (not (focus-test? obj disable dead ignore inactive)) - (< (-> obj next-update-target) (-> pp clock frame-counter)) - (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (-> obj next-state) - (= (-> obj next-state name) 'active) - ) - (citizen-enemy-method-202 obj) - (set! (-> obj next-update-target) (+ (-> pp clock frame-counter) (seconds 0.2))) - (traffic-danger-init! obj) - ) - ((method-of-type citizen track-target!) obj) - (none) + (let ((a1-0 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-0 options) (overlaps-others-options)) + (set! (-> a1-0 collide-with-filter) (-> obj enemy-info-override overlaps-others-collide-with-filter)) + (set! (-> a1-0 tlist) *touching-list*) + (find-overlapping-shapes (-> obj root-override2) a1-0) ) + (when (and (not (focus-test? obj disable dead ignore inactive)) + (< (-> obj next-update-target) (current-time)) + (not (logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (-> obj next-state) + (= (-> obj next-state name) 'active) + ) + (citizen-enemy-method-202 obj) + (set! (-> obj next-update-target) (+ (current-time) (seconds 0.2))) + (traffic-danger-init! obj) + ) + ((method-of-type citizen track-target!) obj) + (none) ) ;; definition for method 76 of type citizen-enemy @@ -351,7 +349,3 @@ (go (method-of-object obj active)) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/city/common/citizen_REF.gc b/test/decompiler/reference/jak2/levels/city/common/citizen_REF.gc index 8a7a327edf..ef02954e31 100644 --- a/test/decompiler/reference/jak2/levels/city/common/citizen_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/citizen_REF.gc @@ -413,89 +413,85 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (when (< (-> obj next-time-look-at) (-> pp clock frame-counter)) - (when (nonzero? (-> obj neck)) - (let ((a0-4 (handle->process (-> obj focus handle)))) - (when a0-4 - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (get-trans (the-as process-focusable a0-4) 2) quad)) - (if (and (-> obj next-state) (= (-> obj next-state name) 'flee)) - (set! (-> s5-0 quad) (-> obj danger-pos quad)) - ) - (when (< (vector-vector-distance s5-0 (-> obj root-override2 trans)) 122880.0) - (look-at-target! obj (enemy-flag lock-focus)) - (target-set! (-> obj neck) s5-0) - ) - ) - ) - ) - (when (< (-> obj stop-time-look-at) (-> pp clock frame-counter)) - (shut-down (-> obj neck)) - (set! (-> obj next-time-look-at) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 0.0 20.0)))) - ) - (set! (-> obj stop-time-look-at) - (+ (-> obj next-time-look-at) (the int (* 300.0 (get-rand-float-range obj 5.0 10.0)))) - ) - ) - ) - ) - (let ((a0-18 (-> obj enemy-flags))) - (when (and (logtest? a0-18 (enemy-flag attackable-backup)) - (>= (- (-> pp clock frame-counter) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) - ) - (set! (-> obj enemy-flags) (logclear a0-18 (enemy-flag attackable-backup))) - (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) - (let ((v1-50 0)) - (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) - (set! v1-50 (logior (shl 1 32) v1-50)) - ) - (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-50)) - ) - ) - ) - (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) - (set! (-> obj last-draw-time) (-> pp clock frame-counter)) - ) - (let ((s5-3 (-> obj draw shadow-ctrl))) - (when (!= *nav-enemy-dummy-shadow-control* s5-3) - (let ((f0-7 (vector-vector-distance (camera-pos) (-> obj root-override2 trans)))) - (cond - ((< 163840.0 f0-7) - (logior! (-> s5-3 settings flags) (shadow-flags disable-draw)) - 0 - ) - (else - (let ((v1-65 s5-3)) - (logclear! (-> v1-65 settings flags) (shadow-flags disable-draw)) - ) - 0 - (let* ((f0-8 (lerp-scale 0.0 1.0 f0-7 163840.0 40960.0)) - (f0-11 (fmax 0.01 (+ (* -2.0 f0-8 f0-8 f0-8) (* 3.0 f0-8 f0-8)))) - ) - (set! (-> s5-3 settings shadow-dir w) (* 614400.0 f0-11)) + (when (< (-> obj next-time-look-at) (current-time)) + (when (nonzero? (-> obj neck)) + (let ((a0-4 (handle->process (-> obj focus handle)))) + (when a0-4 + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (get-trans (the-as process-focusable a0-4) 2) quad)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'flee)) + (set! (-> s5-0 quad) (-> obj danger-pos quad)) ) + (when (< (vector-vector-distance s5-0 (-> obj root-override2 trans)) 122880.0) + (look-at-target! obj (enemy-flag lock-focus)) + (target-set! (-> obj neck) s5-0) ) ) ) ) - ) - (when (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) - (enemy-method-54 obj) - (when (and (focus-test? obj touch-water) - (< (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) - ) - (set! (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) - (if (not (and (-> obj next-state) (= (-> obj next-state name) 'in-ditch))) - (go (method-of-object obj in-ditch)) - ) + (when (< (-> obj stop-time-look-at) (current-time)) + (shut-down (-> obj neck)) + (set! (-> obj next-time-look-at) (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 0.0 20.0))))) + (set! (-> obj stop-time-look-at) + (+ (-> obj next-time-look-at) (the int (* 300.0 (get-rand-float-range obj 5.0 10.0)))) + ) ) ) - (ja-post) - 0 - (none) ) + (let ((a0-18 (-> obj enemy-flags))) + (when (and (logtest? a0-18 (enemy-flag attackable-backup)) + (>= (- (current-time) (-> obj auto-reset-penetrate-time)) (seconds 0.1)) + ) + (set! (-> obj enemy-flags) (logclear a0-18 (enemy-flag attackable-backup))) + (set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj)) + (let ((v1-50 0)) + (if (logtest? (penetrate knocked) (-> obj root-override2 penetrate-using)) + (set! v1-50 (logior (shl 1 32) v1-50)) + ) + (set! (-> obj root-override2 penetrate-using) (the-as penetrate v1-50)) + ) + ) + ) + (if (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-control-status on-screen))) + (set! (-> obj last-draw-time) (current-time)) + ) + (let ((s5-3 (-> obj draw shadow-ctrl))) + (when (!= *nav-enemy-dummy-shadow-control* s5-3) + (let ((f0-7 (vector-vector-distance (camera-pos) (-> obj root-override2 trans)))) + (cond + ((< 163840.0 f0-7) + (logior! (-> s5-3 settings flags) (shadow-flags disable-draw)) + 0 + ) + (else + (let ((v1-65 s5-3)) + (logclear! (-> v1-65 settings flags) (shadow-flags disable-draw)) + ) + 0 + (let* ((f0-8 (lerp-scale 0.0 1.0 f0-7 163840.0 40960.0)) + (f0-11 (fmax 0.01 (+ (* -2.0 f0-8 f0-8 f0-8) (* 3.0 f0-8 f0-8)))) + ) + (set! (-> s5-3 settings shadow-dir w) (* 614400.0 f0-11)) + ) + ) + ) + ) + ) + ) + (when (logtest? (enemy-flag trackable-backup directed-ready) (-> obj enemy-flags)) + (enemy-method-54 obj) + (when (and (focus-test? obj touch-water) + (< (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) + ) + (set! (-> obj root-override2 trans y) (+ -11468.8 (-> obj water-surface-height))) + (if (not (and (-> obj next-state) (= (-> obj next-state name) 'in-ditch))) + (go (method-of-object obj in-ditch)) + ) + ) + ) + (ja-post) + 0 + (none) ) ;; definition for method 128 of type citizen @@ -1393,7 +1389,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1488,7 +1484,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1505,9 +1501,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (-> self wait-return-state) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self wait-time)) - ) + (if (and (-> self wait-return-state) (>= (- (current-time) (-> self state-time)) (-> self wait-time))) (go (-> self wait-return-state)) ) (none) @@ -1554,7 +1548,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior citizen) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1594,13 +1588,13 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (not (logtest? (-> self nav state flags) (nav-state-flag in-mesh))) (< (-> self root-override2 trans y) 4096.0) ) (go-virtual in-ditch) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self wait-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self wait-time)) (let ((f0-2 (-> self nav state speed))) (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (-> self clock seconds-per-frame)))) ) @@ -1615,10 +1609,10 @@ This commonly includes things such as: (v1-36 (-> self root-override2 transv)) ) (if (< f0-8 (sqrtf (+ (* (-> v1-36 x) (-> v1-36 x)) (* (-> v1-36 z) (-> v1-36 z))))) - (set! (-> self cp-next-time) (-> self clock frame-counter)) + (set! (-> self cp-next-time) (current-time)) ) ) - (when (< (+ (-> self cp-next-time) (seconds 2)) (-> self clock frame-counter)) + (when (< (+ (-> self cp-next-time) (seconds 2)) (current-time)) (let ((a1-3 (vector-! (new 'stack-no-clear 'vector) (-> self controller path-prev-point) @@ -1626,7 +1620,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self cp-next-time) (-> self clock frame-counter)) + (set! (-> self cp-next-time) (current-time)) (citizen-method-195 self a1-3) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/civilian_REF.gc b/test/decompiler/reference/jak2/levels/city/common/civilian_REF.gc index e4641b74fa..ddba1440cd 100644 --- a/test/decompiler/reference/jak2/levels/city/common/civilian_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/civilian_REF.gc @@ -353,121 +353,119 @@ (defmethod general-event-handler civilian ((obj civilian) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((= v1-0 'track) - #f + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'track) + #f + ) + ((= v1-0 'combo) + #f + ) + ((= v1-0 'touched) + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'panic) + (let ((a0-6 (-> arg3 param 0))) + (set! (-> obj danger-pos quad) (-> (the-as sphere (+ a0-6 0)) quad)) ) - ((= v1-0 'combo) - #f - ) - ((= v1-0 'touched) - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'panic) - (let ((a0-6 (-> arg3 param 0))) - (set! (-> obj danger-pos quad) (-> (the-as sphere (+ a0-6 0)) quad)) + (if (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) + (or (= v1-6 'active) (= v1-6 'wait) (= v1-6 'avoid-danger)) + ) + ) + (go (method-of-object obj flee)) ) - (if (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) - (or (= v1-6 'active) (= v1-6 'wait) (= v1-6 'avoid-danger)) - ) - ) - (go (method-of-object obj flee)) - ) - ) - ((= v1-0 'event-death) - (if (zero? (-> obj hit-points)) - (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) - ) - ) - ((= v1-0 'avoid) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((a0-15 (-> arg3 param 0))) - (set! (-> obj danger-pos quad) (-> (the-as vector (+ a0-15 0)) quad)) + ) + ((= v1-0 'event-death) + (if (zero? (-> obj hit-points)) + (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) ) - (if (and (-> obj next-state) (let ((v1-18 (-> obj next-state name))) - (or (= v1-18 'active) (= v1-18 'wait)) - ) - ) - (go (method-of-object obj avoid-danger)) - ) + ) + ((= v1-0 'avoid) + (set! (-> obj last-danger-time) (current-time)) + (let ((a0-15 (-> arg3 param 0))) + (set! (-> obj danger-pos quad) (-> (the-as vector (+ a0-15 0)) quad)) ) - ((= v1-0 'clear-path) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-23 (the-as traffic-danger-info (-> arg3 param 0)))) - (set! (-> obj cp-valid?) #t) - (set! (-> obj cp-sphere quad) (-> v1-23 sphere quad)) - (set! (-> obj cp-vec quad) (-> v1-23 velocity quad)) - (case (-> v1-23 danger-type) - (((traffic-danger-type tdt0)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 20.0) - ) - (((traffic-danger-type tdt1)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 20.0) - ) - (((traffic-danger-type tdt2)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt3)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt4)) - (set! (-> obj allow-dive) #f) - (set! (-> obj cp-factor) 2.0) - ) - (((traffic-danger-type tdt5)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - (((traffic-danger-type tdt6)) - (set! (-> obj allow-dive) #t) - (set! (-> obj cp-factor) 50.0) - ) - ) + (if (and (-> obj next-state) (let ((v1-18 (-> obj next-state name))) + (or (= v1-18 'active) (= v1-18 'wait)) + ) + ) + (go (method-of-object obj avoid-danger)) ) - (let ((s5-1 (-> obj cp-plane))) - (set! (-> s5-1 quad) (-> obj cp-vec quad)) - (set! (-> s5-1 y) 0.0) - (vector-rotate90-around-y! s5-1 s5-1) - (vector-normalize! s5-1 1.0) - (set! (-> s5-1 w) (- (vector-dot (the-as vector s5-1) (the-as vector (-> obj cp-sphere))))) - ) - (set! (-> obj cp-exit-time) (+ (-> pp clock frame-counter) (seconds 4))) - (if (and (-> obj next-state) (let ((v1-54 (-> obj next-state name))) - (or (= v1-54 'active) (= v1-54 'wait) (= v1-54 'avoid-danger)) - ) - ) - (go (method-of-object obj clear-path)) - ) - ) - ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) - (speech-control-method-13 *speech-control* (the-as handle obj)) - (if (logtest? (-> obj flags) (citizen-flag female)) - (speech-control-method-12 - *speech-control* - obj - (speech-type speech-type-0 speech-type-1 speech-type-3 speech-type-4) - ) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-4)) - ) - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'end-task) - (let ((v0-0 (the-as object (logclear (-> obj flags) (citizen-flag persistent))))) - (set! (-> obj flags) (the-as citizen-flag v0-0)) - v0-0 + ) + ((= v1-0 'clear-path) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-23 (the-as traffic-danger-info (-> arg3 param 0)))) + (set! (-> obj cp-valid?) #t) + (set! (-> obj cp-sphere quad) (-> v1-23 sphere quad)) + (set! (-> obj cp-vec quad) (-> v1-23 velocity quad)) + (case (-> v1-23 danger-type) + (((traffic-danger-type tdt0)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 20.0) + ) + (((traffic-danger-type tdt1)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 20.0) + ) + (((traffic-danger-type tdt2)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt3)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt4)) + (set! (-> obj allow-dive) #f) + (set! (-> obj cp-factor) 2.0) + ) + (((traffic-danger-type tdt5)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) + (((traffic-danger-type tdt6)) + (set! (-> obj allow-dive) #t) + (set! (-> obj cp-factor) 50.0) + ) ) ) - (else - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (let ((s5-1 (-> obj cp-plane))) + (set! (-> s5-1 quad) (-> obj cp-vec quad)) + (set! (-> s5-1 y) 0.0) + (vector-rotate90-around-y! s5-1 s5-1) + (vector-normalize! s5-1 1.0) + (set! (-> s5-1 w) (- (vector-dot (the-as vector s5-1) (the-as vector (-> obj cp-sphere))))) + ) + (set! (-> obj cp-exit-time) (+ (current-time) (seconds 4))) + (if (and (-> obj next-state) (let ((v1-54 (-> obj next-state name))) + (or (= v1-54 'active) (= v1-54 'wait) (= v1-54 'avoid-danger)) + ) + ) + (go (method-of-object obj clear-path)) + ) + ) + ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) + (speech-control-method-13 *speech-control* (the-as handle obj)) + (if (logtest? (-> obj flags) (citizen-flag female)) + (speech-control-method-12 + *speech-control* + obj + (speech-type speech-type-0 speech-type-1 speech-type-3 speech-type-4) + ) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-4)) + ) + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'end-task) + (let ((v0-0 (the-as object (logclear (-> obj flags) (citizen-flag persistent))))) + (set! (-> obj flags) (the-as citizen-flag v0-0)) + v0-0 + ) + ) + (else + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -576,8 +574,8 @@ ) ) ) - (when (< (-> self cp-next-time) (-> self clock frame-counter)) - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 600 1200))) + (when (< (-> self cp-next-time) (current-time)) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 600 1200))) (citizen-method-190 self (-> self cp-force)) ) (add-offset-to-target! (-> self nav state) (-> self cp-force)) @@ -610,7 +608,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -660,7 +658,7 @@ (speech-control-method-12 *speech-control* self (speech-type speech-type-4)) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (not (logtest? (-> self nav state flags) (nav-state-flag in-mesh))) (< (-> self root-override2 trans y) 4096.0) ) @@ -841,7 +839,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -859,7 +857,7 @@ (set! (-> v1-9 target-speed) (* (-> self speed-scale) (-> self speed-walk))) ) 0 - (set! (-> self next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 300 600))) + (set! (-> self next-time) (+ (current-time) (get-rand-int-range self 300 600))) (set! (-> self last-second-pos quad) (-> self root-override2 trans quad)) (set! (-> self last-distance) (vector-vector-xz-distance (-> self controller turn-exit-point) (-> self root-override2 trans)) @@ -876,7 +874,7 @@ (none) ) :trans (behavior () - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (go-virtual active) ) (when (citizen-method-187 self) @@ -993,9 +991,9 @@ ;; INFO: Used lq/sq (defbehavior civilian-clear-path-post2 civilian () (citizen-method-192 self) - (when (< (-> self cp-next-time) (-> self clock frame-counter)) + (when (< (-> self cp-next-time) (current-time)) (citizen-method-190 self (-> self cp-force)) - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 1200 2400))) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 1200 2400))) ) (let ((gp-1 (new 'stack-no-clear 'vector))) (citizen-method-188 self gp-1) @@ -1030,7 +1028,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1048,7 +1046,7 @@ (set! (-> v1-9 target-speed) (* (-> self speed-scale) (-> self speed-walk))) ) 0 - (set! (-> self cp-next-time) (+ (-> self clock frame-counter) (get-rand-int-range self 1200 2400))) + (set! (-> self cp-next-time) (+ (current-time) (get-rand-int-range self 1200 2400))) (set! (-> self cp-force quad) (the-as uint128 0)) (if *citizen-debug* (set-vector! (-> self draw color-mult) 0.0 1.0 0.0 1.0) @@ -1111,7 +1109,7 @@ (go-dive self) ) ) - (if (< (-> self cp-exit-time) (-> self clock frame-counter)) + (if (< (-> self cp-exit-time) (current-time)) (go-virtual active) ) (none) @@ -1141,7 +1139,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1174,7 +1172,7 @@ (none) ) :trans (behavior () - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (go-virtual get-up-front) ) (none) @@ -1211,7 +1209,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1320,7 +1318,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1401,7 +1399,7 @@ (suspend) (ja :num! (seek! max (-> self speed-scale))) ) - (if (< (+ (-> self last-danger-time) (seconds 1)) (-> self clock frame-counter)) + (if (< (+ (-> self last-danger-time) (seconds 1)) (current-time)) (goto cfg-9) ) ) @@ -1445,7 +1443,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1509,7 +1507,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1619,7 +1617,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1667,7 +1665,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1840,7 +1838,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-4 enemy-flags)))) @@ -1963,7 +1961,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-5 (-> self root-override2 root-prim))) (set! (-> v1-5 prim-core collide-as) (collide-spec)) (set! (-> v1-5 prim-core collide-with) (collide-spec)) @@ -2098,7 +2096,7 @@ (let ((a0-1 (the-as object (-> event param 0)))) (set! (-> self event-param-point quad) (-> (the-as vector a0-1) quad)) ) - (let ((v1-3 (-> self clock frame-counter)) + (let ((v1-3 (current-time)) (a0-3 (-> self state-time)) ) (if (>= (- v1-3 a0-3) (seconds 1)) @@ -2124,7 +2122,7 @@ ) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-5 (-> self root-override2 root-prim))) (set! (-> v1-5 prim-core collide-as) (collide-spec)) (set! (-> v1-5 prim-core collide-with) (collide-spec)) @@ -2206,7 +2204,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-28 (-> self root-override2 root-prim))) (set! (-> v1-28 prim-core collide-as) (collide-spec)) (set! (-> v1-28 prim-core collide-with) (collide-spec)) @@ -2338,7 +2336,7 @@ :event (the-as (function process int symbol event-message-block object :behavior civilian) enemy-event-handler) :enter (behavior () (logclear! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/city/common/ctyport-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/common/ctyport-obs_REF.gc index c9e7eb35c9..49e74d7006 100644 --- a/test/decompiler/reference/jak2/levels/city/common/ctyport-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/ctyport-obs_REF.gc @@ -668,7 +668,7 @@ :event (the-as (function process int symbol event-message-block object :behavior boat-base) vehicle-event-handler) :enter (behavior () (logior! (-> self flags) (rigid-body-object-flag riding)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/test/decompiler/reference/jak2/levels/city/common/ctywide-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/common/ctywide-obs_REF.gc index 1a61a3af35..a02986875c 100644 --- a/test/decompiler/reference/jak2/levels/city/common/ctywide-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/ctywide-obs_REF.gc @@ -60,155 +60,153 @@ ;; definition for method 23 of type security-wall ;; WARN: Return type mismatch int vs none. (defmethod security-wall-method-23 security-wall ((obj security-wall)) - (with-pp - (when (< (-> obj next-message-time) (-> pp clock frame-counter)) - (set! (-> obj next-message-time) - (the-as int (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) - ) - (let ((v1-6 (rand-vu-int-count 15))) - (cond - ((zero? v1-6) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - ) - ((= v1-6 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 3) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 4) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - ) - ((= v1-6 5) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 6) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - ) - ((= v1-6 7) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 8) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - ) - ((= v1-6 9) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - ) - ((= v1-6 10) - (let ((v1-45 (rand-vu-int-count 3))) - (cond - ((zero? v1-45) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) - ) - ((= v1-45 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) - ) - ((= v1-45 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) - ) - ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) - ((= v1-6 11) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (let ((v1-57 (rand-vu-int-count 3))) - (cond - ((zero? v1-57) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) - ) - ((= v1-57 1) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) - ) - ((= v1-57 2) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) - ) - ) - ) - ) - ((= v1-6 12) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 13) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - ) - ((= v1-6 14) - (case (-> obj pass) - ((29) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) - ) - ((30) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) - ) - ((31) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) - ) - ((32) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) - ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) - ) + (when (< (-> obj next-message-time) (current-time)) + (set! (-> obj next-message-time) + (the-as int (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) ) - ) - (+! (-> obj message) 1) - (when (>= (-> obj message) 5) - (set! (-> obj message) 0) - 0 + (let ((v1-6 (rand-vu-int-count 15))) + (cond + ((zero? v1-6) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + ) + ((= v1-6 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 3) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 4) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + ) + ((= v1-6 5) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 6) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + ) + ((= v1-6 7) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 8) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + ) + ((= v1-6 9) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv012" -99.0 0) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + ) + ((= v1-6 10) + (let ((v1-45 (rand-vu-int-count 3))) + (cond + ((zero? v1-45) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) + ) + ((= v1-45 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) + ) + ((= v1-45 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) + ) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) + ((= v1-6 11) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (let ((v1-57 (rand-vu-int-count 3))) + (cond + ((zero? v1-57) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv035" -99.0 0) + ) + ((= v1-57 1) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv038" -99.0 0) + ) + ((= v1-57 2) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv058" -99.0 0) + ) + ) + ) + ) + ((= v1-6 12) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv014" -99.0 0) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 13) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv011" -99.0 0) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + ) + ((= v1-6 14) + (case (-> obj pass) + ((29) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv015" -99.0 0) + ) + ((30) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv016" -99.0 0) + ) + ((31) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv017" -99.0 0) + ) + ((32) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv018" -99.0 0) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) "cityv013" -99.0 0) + ) ) ) - 0 - (none) + (+! (-> obj message) 1) + (when (>= (-> obj message) 5) + (set! (-> obj message) 0) + 0 + ) ) + 0 + (none) ) ;; definition for method 24 of type security-wall @@ -1809,8 +1807,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek! (ja-aframe 32.0 0))) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 5)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 5)) (suspend) ) ) @@ -2011,7 +2009,7 @@ This commonly includes things such as: ) (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) - (set! (-> obj next-time-shot) (+ (-> pp clock frame-counter) (seconds 1))) + (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) (set! (-> obj num-shots) (the-as uint 0)) 0 ) @@ -2045,7 +2043,7 @@ This commonly includes things such as: :virtual #t :event cty-guard-turret-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self num-shots) (the-as uint 0)) 0 (none) @@ -2065,7 +2063,7 @@ This commonly includes things such as: ((zero? (-> self next-time-shot)) (cty-guard-turret-method-35 self) ) - ((>= (-> self clock frame-counter) (-> self next-time-shot)) + ((>= (current-time) (-> self next-time-shot)) (cty-guard-turret-method-34 self) (+! (-> self num-shots) 1) (cond @@ -2074,7 +2072,7 @@ This commonly includes things such as: 0 ) (else - (set! (-> self next-time-shot) (+ (-> self clock frame-counter) (seconds 0.1))) + (set! (-> self next-time-shot) (+ (current-time) (seconds 0.1))) ) ) ) @@ -2479,30 +2477,28 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (set! (-> obj minimap) #f) - (set! (-> obj vehicle) (the-as handle #f)) - (set! (-> obj spawned) #f) - (process-drawable-from-entity! obj arg0) - (logclear! (-> obj mask) (process-mask actor-pause movie)) - (let ((f0-0 (res-lump-float (-> obj entity) 'rotoffset))) - (if (!= f0-0 0.0) - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-0) - ) - ) - (parking-spot-method-24 obj) - (set! (-> obj test-sphere quad) (-> obj root trans quad)) - (set! (-> obj test-sphere r) 24576.0) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (let ((a1-5 (get-random-parking-spot-type *traffic-engine*))) - (if (!= a1-5 (traffic-type traffic-type-21)) - (parking-spot-method-23 obj (the-as uint a1-5)) - ) - ) - (go (method-of-object obj idle)) - (none) + (set! (-> obj root) (new 'process 'trsqv)) + (set! (-> obj minimap) #f) + (set! (-> obj vehicle) (the-as handle #f)) + (set! (-> obj spawned) #f) + (process-drawable-from-entity! obj arg0) + (logclear! (-> obj mask) (process-mask actor-pause movie)) + (let ((f0-0 (res-lump-float (-> obj entity) 'rotoffset))) + (if (!= f0-0 0.0) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-0) + ) ) + (parking-spot-method-24 obj) + (set! (-> obj test-sphere quad) (-> obj root trans quad)) + (set! (-> obj test-sphere r) 24576.0) + (set! (-> obj state-time) (current-time)) + (let ((a1-5 (get-random-parking-spot-type *traffic-engine*))) + (if (!= a1-5 (traffic-type traffic-type-21)) + (parking-spot-method-23 obj (the-as uint a1-5)) + ) + ) + (go (method-of-object obj idle)) + (none) ) ;; failed to figure out what this is: @@ -2515,8 +2511,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior parking-spot) sleep-code) :post (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) - (set! (-> self state-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.25)) + (set! (-> self state-time) (current-time)) (parking-spot-method-21 self) (when (not (-> self spawned)) (let ((f0-0 (vector-vector-distance-squared (camera-pos) (-> self test-sphere))) @@ -3421,7 +3417,7 @@ This commonly includes things such as: (add-setting! 'music-volume 'rel (-> *setting-control* user-current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* user-current sfx-movie-volume) 0) (add-setting! 'dialog-volume 'rel (-> *setting-control* user-current dialog-volume-hint) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((v1-21 (get-current-task-event (-> self task))) (gp-0 (add-process *gui-control* @@ -3435,7 +3431,7 @@ This commonly includes things such as: ) ) (while (nonzero? (get-status *gui-control* gp-0)) - (set! (-> self time) (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (set! (-> self time) (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (suspend) (when (cpad-pressed? 0 triangle) (set-action! @@ -3502,7 +3498,7 @@ This commonly includes things such as: :enter (behavior () (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) (set! (-> self time) -1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -3546,7 +3542,7 @@ This commonly includes things such as: (vf7 :class vf) ) (init-vf0-vector) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1.5)) (let ((gp-0 0) (s5-0 0) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/ctywide-tasks_REF.gc b/test/decompiler/reference/jak2/levels/city/common/ctywide-tasks_REF.gc index e1d46ffe59..70a9ae594e 100644 --- a/test/decompiler/reference/jak2/levels/city/common/ctywide-tasks_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/ctywide-tasks_REF.gc @@ -42,8 +42,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -92,8 +92,8 @@ (lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'leave) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -185,8 +185,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 38) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -240,8 +240,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 31) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -252,8 +252,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 35) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) @@ -277,8 +277,8 @@ ) (wait-for-speech-end (-> self sound-id 0)) (set! (-> self sub-state) (the-as uint 2)) - (let ((gp-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 1)) + (let ((gp-6 (current-time))) + (until (>= (- (current-time) gp-6) (seconds 1)) (suspend) ) ) @@ -329,7 +329,7 @@ ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -350,7 +350,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 60)) + (until (>= (- (current-time) (-> self state-time)) (seconds 60)) (suspend) ) (set! (-> self sub-state) (the-as uint 1)) @@ -358,8 +358,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 35) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -376,8 +376,8 @@ (the-as sound-id (talker-spawn-func (-> *talker-speech* 37) *entity-pool* (target-pos 0) (the-as region #f))) ) (wait-for-speech-end (-> self sound-id 0)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 3)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 3)) (suspend) ) ) @@ -474,7 +474,7 @@ ) ) (set-setting! 'airlock #f 0.0 0) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (none) ) ) @@ -490,8 +490,8 @@ (send-event *traffic-manager* 'set-alert-duration 9000) (send-event *target* 'end-mode) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (script-eval '(send-event "keira-npc-1" 'say)) @@ -810,7 +810,7 @@ (set! (-> self arrow) (process->handle a0-20)) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (the-as time-frame (the int (-> gp-0 time)))) ) (none) @@ -866,8 +866,8 @@ () (send-event *target* 'end-mode) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (close! (-> self node-info) 'event) diff --git a/test/decompiler/reference/jak2/levels/city/common/guard_REF.gc b/test/decompiler/reference/jak2/levels/city/common/guard_REF.gc index 6903a9c0ee..0916db40a8 100644 --- a/test/decompiler/reference/jak2/levels/city/common/guard_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/guard_REF.gc @@ -627,193 +627,191 @@ (defmethod general-event-handler crimson-guard ((obj crimson-guard) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) - (speech-control-method-13 *speech-control* (the-as handle obj)) - (logior! (-> obj flags) (citizen-flag hostile)) - (let* ((s0-0 (handle->process (-> obj incoming attacker-handle))) - (s1-0 (if (type? s0-0 process-focusable) - s0-0 - ) - ) - ) - (when s1-0 - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-3)) - (trigger-alert obj 1 (the-as target s1-0)) - ) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ((= v1-0 'event-death) - (if (zero? (-> obj hit-points)) - (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) - ) - ) - ((= v1-0 'bouncing-off) - (when (or (and (-> obj next-state) (= (-> obj next-state name) 'active)) - (and (-> obj next-state) (= (-> obj next-state name) 'wait)) - ) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-2 speech-type-3)) - (go (method-of-object obj close-attack-active)) - ) - ) - ((= v1-0 'combo) - (and (not (and (-> obj next-state) (= (-> obj next-state name) 'inactive))) - (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) - ) - ) - ((= v1-0 'avoid) - #f - ) - ((= v1-0 'panic) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-38 (the-as traffic-danger-info (-> arg3 param 0)))) - (case (-> v1-38 danger-type) - (((traffic-danger-type tdt7)) - (set! (-> obj cp-factor) 20.0) - (let ((s5-1 (method-of-object obj trigger-alert)) - (s4-1 1) - (s3-1 (handle->process (-> v1-38 handle))) - ) - (the-as object (s5-1 obj s4-1 (the-as target (if (type? s3-1 process-focusable) - s3-1 - ) - ) - ) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((or (= v1-0 'hit) (= v1-0 'hit-flinch) (= v1-0 'hit-knocked)) + (speech-control-method-13 *speech-control* (the-as handle obj)) + (logior! (-> obj flags) (citizen-flag hostile)) + (let* ((s0-0 (handle->process (-> obj incoming attacker-handle))) + (s1-0 (if (type? s0-0 process-focusable) + s0-0 ) - ) + ) ) - ) + (when s1-0 + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-1 speech-type-3)) + (trigger-alert obj 1 (the-as target s1-0)) ) ) - ((= v1-0 'clear-path) - (set! (-> obj last-danger-time) (-> pp clock frame-counter)) - (let ((v1-44 (the-as traffic-danger-info (-> arg3 param 0)))) - (set! (-> obj cp-valid?) #t) - (set! (-> obj cp-sphere quad) (-> v1-44 sphere quad)) - (set! (-> obj cp-vec quad) (-> v1-44 velocity quad)) - (case (-> v1-44 danger-type) - (((traffic-danger-type tdt0)) - (trigger-alert obj 1 *target*) - ) - (((traffic-danger-type tdt1)) - ) - (((traffic-danger-type tdt2)) - ) - (((traffic-danger-type tdt3)) - ) - (((traffic-danger-type tdt4)) - ) - (((traffic-danger-type tdt5)) - ) - (((traffic-danger-type tdt6)) - ) - (((traffic-danger-type tdt7)) - (trigger-alert obj 1 *target*) - ) - ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'event-death) + (if (zero? (-> obj hit-points)) + (the-as object (do-effect (-> obj skel effect) 'death-default 0.0 -1)) ) - (let ((s5-2 (-> obj cp-plane))) - (set! (-> s5-2 quad) (-> obj cp-vec quad)) - (set! (-> s5-2 y) 0.0) - (vector-rotate90-around-y! s5-2 s5-2) - (vector-normalize! s5-2 1.0) - (set! (-> s5-2 w) (- (vector-dot (the-as vector s5-2) (the-as vector (-> obj cp-sphere))))) - ) - (let ((v0-4 (the-as object (+ (-> pp clock frame-counter) (seconds 1))))) - (set! (-> obj cp-exit-time) (the-as time-frame v0-4)) - v0-4 - ) - ) - ((= v1-0 'end-pursuit) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event end-pursuit recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (logtest? (-> obj flags) (citizen-flag hostile)) - (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) - (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) - (go (method-of-object obj active)) - ) - ) - ) - ((= v1-0 'alert-begin) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event alert-begin recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (not (logtest? (-> obj flags) (citizen-flag hostile))) - (let ((a1-27 (the-as object (-> arg3 param 0)))) - (when (and (the-as uint a1-27) - (not (logtest? (-> (the-as process-focusable a1-27) focus-status) (focus-status disable dead inactive))) - ) - (set! (-> obj traffic-target-status handle) (process->handle (the-as process-focusable a1-27))) - (try-update-focus (-> obj focus) (the-as process-focusable a1-27) obj) - (if (and (not (and (-> obj next-state) (= (-> obj next-state name) 'jump))) - (not (and (-> obj next-state) (= (-> obj next-state name) 'exit-transport))) - ) - (the-as object (go-hostile obj)) - ) + ) + ((= v1-0 'bouncing-off) + (when (or (and (-> obj next-state) (= (-> obj next-state name) 'active)) + (and (-> obj next-state) (= (-> obj next-state name) 'wait)) ) - ) - ) - ) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-2 speech-type-3)) + (go (method-of-object obj close-attack-active)) ) - ((= v1-0 'alert-end) - (when *debug-segment* - (when (focus-test? obj inactive) - (format 0 "guard::event alert-end recieved by inactive process ~d~%" (-> obj pid)) - (break!) - 0 - ) - ) - (when (not (focus-test? obj dead)) - (when (logtest? (-> obj flags) (citizen-flag hostile)) - (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-2)) - (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) - (go (method-of-object obj active)) - ) - ) - ) - ((= v1-0 'track) - (if (and (-> obj next-state) (let ((v1-129 (-> obj next-state name))) - (or (= v1-129 'exit-transport) (= v1-129 'jump)) - ) + ) + ((= v1-0 'combo) + (and (not (and (-> obj next-state) (= (-> obj next-state name) 'inactive))) + (and (not (logtest? (enemy-flag multi-focus) (-> obj enemy-flags))) (nonzero? (-> obj hit-points))) + ) + ) + ((= v1-0 'avoid) + #f + ) + ((= v1-0 'panic) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-38 (the-as traffic-danger-info (-> arg3 param 0)))) + (case (-> v1-38 danger-type) + (((traffic-danger-type tdt7)) + (set! (-> obj cp-factor) 20.0) + (let ((s5-1 (method-of-object obj trigger-alert)) + (s4-1 1) + (s3-1 (handle->process (-> v1-38 handle))) ) - #f - #t - ) + (the-as object (s5-1 obj s4-1 (the-as target (if (type? s3-1 process-focusable) + s3-1 + ) + ) + ) + ) + ) + ) + ) ) - ((= v1-0 'notify) - (let ((a0-84 (-> arg3 param 0)) - (v1-130 (the-as object (-> arg3 param 1))) - ) - (when (= a0-84 'attack) - (when (logtest? (-> (the-as process-focusable v1-130) mask) (process-mask target)) - (when (focus-test? (the-as process-focusable v1-130) dead) - (format #t "guard killed player~%") - (the-as object (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-3))) - ) + ) + ((= v1-0 'clear-path) + (set! (-> obj last-danger-time) (current-time)) + (let ((v1-44 (the-as traffic-danger-info (-> arg3 param 0)))) + (set! (-> obj cp-valid?) #t) + (set! (-> obj cp-sphere quad) (-> v1-44 sphere quad)) + (set! (-> obj cp-vec quad) (-> v1-44 velocity quad)) + (case (-> v1-44 danger-type) + (((traffic-danger-type tdt0)) + (trigger-alert obj 1 *target*) + ) + (((traffic-danger-type tdt1)) + ) + (((traffic-danger-type tdt2)) + ) + (((traffic-danger-type tdt3)) + ) + (((traffic-danger-type tdt4)) + ) + (((traffic-danger-type tdt5)) + ) + (((traffic-danger-type tdt6)) + ) + (((traffic-danger-type tdt7)) + (trigger-alert obj 1 *target*) + ) + ) + ) + (let ((s5-2 (-> obj cp-plane))) + (set! (-> s5-2 quad) (-> obj cp-vec quad)) + (set! (-> s5-2 y) 0.0) + (vector-rotate90-around-y! s5-2 s5-2) + (vector-normalize! s5-2 1.0) + (set! (-> s5-2 w) (- (vector-dot (the-as vector s5-2) (the-as vector (-> obj cp-sphere))))) + ) + (let ((v0-4 (the-as object (+ (current-time) (seconds 1))))) + (set! (-> obj cp-exit-time) (the-as time-frame v0-4)) + v0-4 + ) + ) + ((= v1-0 'end-pursuit) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event end-pursuit recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (logtest? (-> obj flags) (citizen-flag hostile)) + (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) + (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) + (go (method-of-object obj active)) + ) + ) + ) + ((= v1-0 'alert-begin) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event alert-begin recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (not (logtest? (-> obj flags) (citizen-flag hostile))) + (let ((a1-27 (the-as object (-> arg3 param 0)))) + (when (and (the-as uint a1-27) + (not (logtest? (-> (the-as process-focusable a1-27) focus-status) (focus-status disable dead inactive))) + ) + (set! (-> obj traffic-target-status handle) (process->handle (the-as process-focusable a1-27))) + (try-update-focus (-> obj focus) (the-as process-focusable a1-27) obj) + (if (and (not (and (-> obj next-state) (= (-> obj next-state name) 'jump))) + (not (and (-> obj next-state) (= (-> obj next-state name) 'exit-transport))) + ) + (the-as object (go-hostile obj)) + ) ) ) ) ) - (else - ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + ((= v1-0 'alert-end) + (when *debug-segment* + (when (focus-test? obj inactive) + (format 0 "guard::event alert-end recieved by inactive process ~d~%" (-> obj pid)) + (break!) + 0 + ) + ) + (when (not (focus-test? obj dead)) + (when (logtest? (-> obj flags) (citizen-flag hostile)) + (logclear! (-> obj flags) (citizen-flag persistent in-pursuit hostile)) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-0 speech-type-2)) + (citizen-method-195 obj (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))) + (go (method-of-object obj active)) + ) + ) + ) + ((= v1-0 'track) + (if (and (-> obj next-state) (let ((v1-129 (-> obj next-state name))) + (or (= v1-129 'exit-transport) (= v1-129 'jump)) + ) + ) + #f + #t + ) + ) + ((= v1-0 'notify) + (let ((a0-84 (-> arg3 param 0)) + (v1-130 (the-as object (-> arg3 param 1))) + ) + (when (= a0-84 'attack) + (when (logtest? (-> (the-as process-focusable v1-130) mask) (process-mask target)) + (when (focus-test? (the-as process-focusable v1-130) dead) + (format #t "guard killed player~%") + (the-as object (speech-control-method-12 *speech-control* obj (speech-type speech-type-1 speech-type-3))) + ) + ) + ) + ) + ) + (else + ((method-of-type citizen general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -830,7 +828,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -904,7 +902,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1836,7 +1834,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1990,7 +1988,7 @@ (t9-1) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-11 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-11 enemy-flags))) (set! (-> v1-11 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-11 enemy-flags)))) @@ -2086,9 +2084,7 @@ (when (and (< (-> self target-self-xz-dist) 163840.0) (or (< 40960.0 (-> self target-self-xz-dist)) (>= 2 (the-as int (-> self focus aware)))) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) - (the int (* 300.0 (get-rand-float-range self 1.0 3.0))) - ) + (if (and (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (get-rand-float-range self 1.0 3.0)))) (logtest? (-> self flags) (citizen-flag target-in-sight)) ) (go-virtual gun-shoot) @@ -2291,8 +2287,8 @@ (set! (-> a0-9 velocity quad) (-> v1-15 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (current-time)) (crimson-guard-method-220 self) (set! (-> self miss-amount) (lerp-scale 0.0 16384.0 (-> self target-self-dist) 40960.0 122880.0)) (set! (-> self miss-amount) 16384.0) @@ -2301,7 +2297,7 @@ (set! (-> self miss-amount) 0.0) ) ) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (none) ) @@ -2329,7 +2325,7 @@ ) (go-virtual close-attack) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (not (logtest? (-> self flags) (citizen-flag target-in-sight))) (< 184320.0 (-> self target-self-xz-dist)) (< 10922.667 (fabs (-> self target-y-angle))) @@ -2368,7 +2364,7 @@ (set! v1-35 #t) (goto cfg-10) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! v1-35 #f) (goto cfg-10) ) @@ -2376,7 +2372,7 @@ (b! (not #f) cfg-3 :delay (set! v1-35 #f)) (label cfg-10) (when v1-35 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 3)) (until #f (ja-channel-push! 1 (seconds 0.1)) @@ -2753,10 +2749,10 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (current-time)) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (crimson-guard-method-221 self) (none) @@ -2854,9 +2850,9 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (crimson-guard-method-221 self) (none) @@ -3332,7 +3328,7 @@ ) 0 (set! (-> self miss-amount) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self lazer-sound) (the-as uint 0)) 0 (none) @@ -3373,7 +3369,7 @@ ) :trans (behavior () (crimson-guard-method-220 self) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (or (< 32768.0 (-> self target-self-xz-dist)) (not (logtest? (-> self flags) (citizen-flag target-in-sight)))) ) (go-hostile self) @@ -3400,7 +3396,7 @@ ) (let ((gp-2 #t)) (until #f - (while (or (< 7281.778 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (-> self clock frame-counter))) + (while (or (< 7281.778 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (current-time))) (when gp-2 ) (speech-control-method-12 *speech-control* self (speech-type speech-type-0 speech-type-3)) @@ -3459,7 +3455,7 @@ (suspend) (ja :num! (loop!)) (set! v1-94 - (or (< (-> self clock frame-counter) (-> self next-shot)) + (or (< (current-time) (-> self next-shot)) (< (-> self target-self-xz-dist) 16384.0) (not (and (handle->process (-> self focus handle)) (not (logtest? (-> (the-as process-focusable (handle->process (-> self focus handle))) focus-status) @@ -3501,7 +3497,7 @@ (ja :num! (seek!)) ) (crimson-guard-method-221 self) - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 0.1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 0.1)))) (let ((v1-155 (-> (the-as collide-shape-prim-group (-> self root-override2 root-prim)) child 2))) (logior! (-> v1-155 prim-core action) (collide-action deadly)) ) @@ -3530,12 +3526,12 @@ ) (set! (-> v1-158 state mode) (the-as lightning-mode a0-56)) ) - (let ((s5-1 (-> self clock frame-counter)) + (let ((s5-1 (current-time)) (s4-1 150) (f30-1 1.0) ) (ja-no-eval :group! (-> self draw art-group data 22) :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) s5-1) s4-1) + (until (>= (- (current-time) s5-1) s4-1) (crimson-guard-method-222 self) (suspend) (ja :num! (loop! f30-1)) @@ -3574,7 +3570,7 @@ ) ) (else - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (suspend) 0 ) @@ -3871,7 +3867,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior crimson-guard) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self nav flags) (nav-control-flag output-sphere-hash)) (logclear! (-> self flags) (citizen-flag hostile)) (nav-enemy-method-166 self) @@ -3949,18 +3945,15 @@ (while (not (-> self already-shot)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-set! 1) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 150) (f30-0 2.0) ) (ja-no-eval :group! (-> self draw art-group data 6) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) - (crimson-guard-method-223 - self - (* 0.006666667 (the float (- (-> self clock frame-counter) (-> self state-time)))) - ) + (until (>= (- (current-time) gp-0) s5-0) + (crimson-guard-method-223 self (* 0.006666667 (the float (- (current-time) (-> self state-time))))) (suspend) (ja :num! (loop! f30-0)) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/metalhead-flitter_REF.gc b/test/decompiler/reference/jak2/levels/city/common/metalhead-flitter_REF.gc index 0f7c79b0a7..836ce0e365 100644 --- a/test/decompiler/reference/jak2/levels/city/common/metalhead-flitter_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/metalhead-flitter_REF.gc @@ -411,15 +411,15 @@ ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.6)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.6)) (suspend) ) ) (set! (-> self root-override2 trans y) (+ -8192.0 (-> self root-override2 trans y))) (logior! (-> self draw status) (draw-control-status no-draw)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -450,7 +450,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self root-override2))) (vector-reset! (-> gp-0 transv)) (set! (-> gp-0 transv y) (* 4096.0 (get-rand-float-range self 34.0 38.0))) @@ -565,88 +565,84 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod metalhead-flitter-method-205 metalhead-flitter ((obj metalhead-flitter)) - (with-pp - (let* ((s5-0 (handle->process (-> obj focus handle))) - (s3-0 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj focus handle))) + (s3-0 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when s3-0 + (let* ((s5-1 (get-trans (the-as process-focusable s3-0) 0)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) + (f30-0 (vector-length s4-1)) + ) + (cond + ((enemy-method-99 obj (the-as process-focusable s3-0)) + (go-flee obj) ) - (when s3-0 - (let* ((s5-1 (get-trans (the-as process-focusable s3-0) 0)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) - (f30-0 (vector-length s4-1)) - ) - (cond - ((enemy-method-99 obj (the-as process-focusable s3-0)) - (go-flee obj) - ) - ((and (< f30-0 32768.0) (not (metalhead-flitter-method-207 obj (the-as process-focusable s3-0)))) - (go (method-of-object obj circling)) - ) - ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s4-1 quad)) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) - (vector-normalize! s5-2 f30-0) - (if (>= (vector-dot s3-1 s5-2) 0.98) - (go (method-of-object obj attack)) - ) - ) - ) - ) - ((< f30-0 32768.0) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - ) - ((or (>= (- (-> pp clock frame-counter) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) - (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) - ) - (set! (-> obj last-change-dir) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) - (s2-0 (new 'stack-no-clear 'vector)) + ((and (< f30-0 32768.0) (not (metalhead-flitter-method-207 obj (the-as process-focusable s3-0)))) + (go (method-of-object obj circling)) + ) + ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s4-1 quad)) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) + (vector-normalize! s5-2 f30-0) + (if (>= (vector-dot s3-1 s5-2) 0.98) + (go (method-of-object obj attack)) ) - (if (-> obj heading) - (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) - (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) - ) - (set! (-> obj heading) (not (-> obj heading))) - (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) - (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) - ) - (vector-normalize! s3-2 f28-1) - (vector+! s3-2 s3-2 s4-2) - ) - (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) - (vector+! s2-0 s5-1 s3-2) - (set! (-> obj target-pos quad) (-> s2-0 quad)) ) ) - ) + ) + ((< f30-0 32768.0) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + ) + ((or (>= (- (current-time) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) + (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) + ) + (set! (-> obj last-change-dir) (the-as uint (current-time))) + (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (if (-> obj heading) + (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) + (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) + ) + (set! (-> obj heading) (not (-> obj heading))) + (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) + (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) + ) + (vector-normalize! s3-2 f28-1) + (vector+! s3-2 s3-2 s4-2) + ) + (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) + (vector+! s2-0 s5-1 s3-2) + (set! (-> obj target-pos quad) (-> s2-0 quad)) + ) + ) ) - 0 ) + 0 ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 206 of type metalhead-flitter ;; WARN: Return type mismatch time-frame vs none. (defmethod metalhead-flitter-method-206 metalhead-flitter ((obj metalhead-flitter)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj amb-sound-timer))) - (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) - ) - (sound-play "flitter-amb" :position (-> obj root-override2 trans)) - (set! (-> obj amb-sound-timer) (the-as uint (-> pp clock frame-counter))) - ) - (none) + (when (>= (- (current-time) (the-as int (-> obj amb-sound-timer))) + (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) + ) + (sound-play "flitter-amb" :position (-> obj root-override2 trans)) + (set! (-> obj amb-sound-timer) (the-as uint (current-time))) ) + (none) ) ;; definition for function metalhead-flitter-fall-and-play-death-anim @@ -663,7 +659,7 @@ ) (set! (-> self root-override2 transv y) 33775.48) (ja :num-func num-func-identity :frame-num 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self root-override2 status) (collide-status on-surface on-ground touch-surface)) (until v1-29 (let ((f0-2 102400.0)) @@ -672,7 +668,7 @@ ) (suspend) (ja :num! (seek! max arg1)) - (set! v1-29 (or (ja-done? 0) (>= (- (-> self clock frame-counter) (-> self state-time)) arg2))) + (set! v1-29 (or (ja-done? 0) (>= (- (current-time) (-> self state-time)) arg2))) ) ) ) @@ -767,9 +763,9 @@ (defstate hostile (metalhead-flitter) :virtual #t :enter (behavior () - (set! (-> self last-change-dir) (the-as uint (-> self clock frame-counter))) + (set! (-> self last-change-dir) (the-as uint (current-time))) (set! (-> self change-dir-time) 0) - (set! (-> self attack-time) (+ (-> self clock frame-counter) (seconds 0.35))) + (set! (-> self attack-time) (+ (current-time) (seconds 0.35))) (let ((t9-0 (-> (method-of-type citizen-enemy hostile) enter))) (if t9-0 (t9-0) @@ -838,7 +834,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -877,7 +873,7 @@ (set! s5-2 (cond ((and gp-0 - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (< (- (current-time) (-> self state-time)) (seconds 1.5)) gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status disable dead ignore grabbed))) ) @@ -1041,7 +1037,7 @@ (t9-0) ) ) - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) (none) ) :trans (behavior () @@ -1049,7 +1045,7 @@ (if gp-0 (set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-11 (-> self focus aware))) (cond ((= v1-11 (enemy-aware enemy-aware-3)) @@ -1066,14 +1062,12 @@ ) ) ) - (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (the-as int (-> self off-screen-timer))) (seconds 0.3)) - ) + (if (and (get-enemy-target self) (>= (- (current-time) (the-as int (-> self off-screen-timer))) (seconds 0.3))) (go-hostile self) ) ) (else - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/metalhead-grunt_REF.gc b/test/decompiler/reference/jak2/levels/city/common/metalhead-grunt_REF.gc index 6de1e46002..a8ffadc8cf 100644 --- a/test/decompiler/reference/jak2/levels/city/common/metalhead-grunt_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/metalhead-grunt_REF.gc @@ -722,7 +722,7 @@ ) ) (let ((a0-1 (metalhead-grunt-method-209 self 13312.0)) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (when (and (>= gp-0 (-> self next-warn-time)) (not (logtest? (-> self draw status) (draw-control-status on-screen))) diff --git a/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc b/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc index 80b5b87b3c..c9f75e8e46 100644 --- a/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc @@ -169,7 +169,7 @@ (vector-rotate*! (-> gp-0 local-accel) (-> s4-0 0) (the-as matrix (-> s4-0 1))) ) (vehicle-method-116 (the-as vehicle s5-0) (the-as (pointer vehicle-controls) (-> gp-0 controls))) - (let ((f30-0 (* 182.04445 (* 0.6 (the float (-> self clock frame-counter))))) + (let ((f30-0 (* 182.04445 (* 0.6 (the float (current-time))))) (s5-1 (-> gp-0 local-accel)) ) (let ((f3-0 @@ -830,7 +830,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (local-vars (sv-16 attack-info)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (set! sv-16 (-> self attack-info)) (let ((v1-4 sv-16)) @@ -889,8 +889,8 @@ (logior! (-> self focus-status) (focus-status dead)) (case arg0 (('melt 'grenade 'explode) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 0.2)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.2)) (suspend) ) ) @@ -1016,8 +1016,8 @@ ) 0 (ja-channel-set! 0) - (let ((s5-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-7) (seconds 1.8)) + (let ((s5-7 (current-time))) + (until (>= (- (current-time) s5-7) (seconds 1.8)) (suspend) ) ) @@ -1049,8 +1049,8 @@ ) ) ) - (let ((s5-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-9) (seconds 0.5)) + (let ((s5-9 (current-time))) + (until (>= (- (current-time) s5-9) (seconds 0.5)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/traffic-engine_REF.gc b/test/decompiler/reference/jak2/levels/city/common/traffic-engine_REF.gc index e39c91024b..e7d3916171 100644 --- a/test/decompiler/reference/jak2/levels/city/common/traffic-engine_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/traffic-engine_REF.gc @@ -1284,89 +1284,87 @@ Process is recycled and moved to reserved, if it deactivates." ;; definition for method 66 of type traffic-engine ;; WARN: Return type mismatch int vs none. (defmethod update-sync-from-frame-counter traffic-engine ((obj traffic-engine)) - (with-pp - (+! (-> obj sync-clock) 1) - (set! (-> obj sync-mask-8) (the-as uint (ash 1 (logand (-> obj sync-clock) 7)))) - (set! (-> obj sync-mask-16) (the-as uint (ash 1 (logand (-> obj sync-clock) 15)))) - (set! (-> obj sync-mask-32) (the-as uint (ash 1 (logand (-> obj sync-clock) 31)))) - (let ((v1-10 (/ (-> pp clock frame-counter) 300))) - (set! (-> obj sync-array 0) (the-as uint 255)) - (let ((a1-12 (mod v1-10 20))) - (set! (-> obj sync-array 1) (the-as uint (cond - ((>= 6 a1-12) - 1 - ) - ((>= 9 a1-12) - 2 - ) - ((>= 16 a1-12) - 4 - ) - (else - 8 - ) + (+! (-> obj sync-clock) 1) + (set! (-> obj sync-mask-8) (the-as uint (ash 1 (logand (-> obj sync-clock) 7)))) + (set! (-> obj sync-mask-16) (the-as uint (ash 1 (logand (-> obj sync-clock) 15)))) + (set! (-> obj sync-mask-32) (the-as uint (ash 1 (logand (-> obj sync-clock) 31)))) + (let ((v1-10 (/ (current-time) 300))) + (set! (-> obj sync-array 0) (the-as uint 255)) + (let ((a1-12 (mod v1-10 20))) + (set! (-> obj sync-array 1) (the-as uint (cond + ((>= 6 a1-12) + 1 + ) + ((>= 9 a1-12) + 2 + ) + ((>= 16 a1-12) + 4 + ) + (else + 8 ) - ) - ) - ) - (let ((a1-15 (mod v1-10 30))) - (set! (-> obj sync-array 2) (the-as uint (cond - ((>= 6 a1-15) - 1 - ) - ((>= 9 a1-15) - 2 - ) - ((>= 16 a1-15) - 4 - ) - ((>= 19 a1-15) - 8 - ) - ((>= 26 a1-15) - 16 - ) - (else - 32 - ) - ) - ) - ) - ) - (let ((v1-11 (mod v1-10 40))) - (set! (-> obj sync-array 3) (the-as uint (cond - ((>= 6 v1-11) - 1 - ) - ((>= 9 v1-11) - 2 - ) - ((>= 16 v1-11) - 4 - ) - ((>= 19 v1-11) - 8 - ) - ((>= 26 v1-11) - 16 - ) - ((>= 29 v1-11) - 32 - ) - ((>= 36 v1-11) - 64 - ) - (else - 128 - ) - ) - ) - ) - ) + ) + ) + ) + ) + (let ((a1-15 (mod v1-10 30))) + (set! (-> obj sync-array 2) (the-as uint (cond + ((>= 6 a1-15) + 1 + ) + ((>= 9 a1-15) + 2 + ) + ((>= 16 a1-15) + 4 + ) + ((>= 19 a1-15) + 8 + ) + ((>= 26 a1-15) + 16 + ) + (else + 32 + ) + ) + ) + ) + ) + (let ((v1-11 (mod v1-10 40))) + (set! (-> obj sync-array 3) (the-as uint (cond + ((>= 6 v1-11) + 1 + ) + ((>= 9 v1-11) + 2 + ) + ((>= 16 v1-11) + 4 + ) + ((>= 19 v1-11) + 8 + ) + ((>= 26 v1-11) + 16 + ) + ((>= 29 v1-11) + 32 + ) + ((>= 36 v1-11) + 64 + ) + (else + 128 + ) + ) + ) + ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 70 of type traffic-engine @@ -1961,21 +1959,19 @@ Process is recycled and moved to reserved, if it deactivates." ;; definition for method 30 of type traffic-engine ;; WARN: Return type mismatch int vs none. (defmethod increase-alert-level traffic-engine ((obj traffic-engine) (arg0 int) (arg1 target)) - (with-pp - (when (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) - (logtest? (-> arg1 mask) (process-mask target)) - ) - (let ((v1-6 (min arg0 (the-as int (-> obj alert-state max-level))))) - (when #t - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) - (set! (-> obj alert-state level) (the-as uint (max (the-as int (-> obj alert-state level)) v1-6))) + (when (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) + (logtest? (-> arg1 mask) (process-mask target)) + ) + (let ((v1-6 (min arg0 (the-as int (-> obj alert-state max-level))))) + (when #t + (set! (-> obj alert-state start-time) (current-time)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) ) + (set! (-> obj alert-state level) (the-as uint (max (the-as int (-> obj alert-state level)) v1-6))) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 31 of type traffic-engine @@ -1991,13 +1987,11 @@ Process is recycled and moved to reserved, if it deactivates." ;; definition for method 32 of type traffic-engine ;; WARN: Return type mismatch int vs none. (defmethod set-alert-level traffic-engine ((obj traffic-engine) (arg0 int)) - (with-pp - (set! (-> obj alert-state level) (the-as uint arg0)) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - 0 - (none) - ) + (set! (-> obj alert-state level) (the-as uint arg0)) + (set! (-> obj alert-state start-time) (current-time)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + 0 + (none) ) ;; definition for method 33 of type traffic-engine @@ -2298,114 +2292,112 @@ Process is recycled and moved to reserved, if it deactivates." (sv-208 int) (sv-216 float) ) - (with-pp - (logclear! (-> target-status flags) (traffic-target-flag visible-now updated)) - (cond - ((= (-> obj sync-mask-16) (ash 1 (logand arg2 15))) - (logior! (-> target-status flags) (traffic-target-flag updated)) - (let ((target-proc (handle->process (-> target-status handle))) - (target-pos (new 'stack-no-clear 'vector)) - ) - (when target-proc - (set! (-> target-pos quad) (-> (get-trans (the-as process-focusable target-proc) 3) quad)) - (cond - ((= (-> (the-as process-focusable target-proc) type) target) - (let ((s1-1 (-> obj alert-state target-status-array))) - (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-now updated)) - (logior! (-> s1-1 0 flags) (traffic-target-flag updated)) - (cond - ((or (logtest? (-> s1-1 0 flags) (traffic-target-flag force-visible)) (traffic-los-clear? los target-pos)) - (logior! (-> s1-1 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) - (set! (-> s1-1 0 last-seen-time) (-> pp clock frame-counter)) - (set! (-> s1-1 0 position quad) (-> target-pos quad)) - (set! (-> s1-1 0 velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) - ) - (else - (if (>= (- (-> pp clock frame-counter) (-> s1-1 0 last-seen-time)) (seconds 2)) - (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-recently)) - ) - ) - ) - (mem-copy! (the-as pointer target-status) (the-as pointer s1-1) 80) - ) - 0 - ) - (else - (logior! (-> target-status flags) (traffic-target-flag visible-now visible-recently visible-ever)) - (set! (-> target-status last-seen-time) (-> pp clock frame-counter)) - (set! (-> target-status position quad) (-> target-pos quad)) - (set! (-> target-status velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) - ) - ) - (set! (-> target-pos quad) (-> target-status position quad)) - (when (not (update-guard-status-spots target-pos)) - ) - (when (update-guard-status-spots target-pos) - (set! guards (the-as (array crimson-guard) (new 'stack 'array crimson-guard 16))) - (set! guard-target-dists (the-as (array float) (new 'stack 'array float 16))) - (set! guard-idx 0) - (dotimes (guard-count (the-as int (-> obj vehicle-tracker-array active-object-count))) - (case (-> obj vehicle-tracker-array active-object-type-list guard-count) - (((traffic-type crimson-guard-1)) - (let ((guard (handle->process (-> obj vehicle-tracker-array active-object-list guard-count)))) - (when (and guard - (not (focus-test? (the-as process-focusable guard) dead inactive)) - (= (-> (the-as crimson-guard guard) traffic-target-status handle) (-> target-status handle)) - ) - (set! (-> guards guard-idx) (the-as crimson-guard guard)) - (set! (-> guard-target-dists guard-idx) - (vector-vector-distance (-> (the-as crimson-guard guard) root-override2 trans) target-pos) - ) - (set! guard-idx (+ guard-idx 1)) - (set! (-> (the-as crimson-guard guard) move-index) -1) + (logclear! (-> target-status flags) (traffic-target-flag visible-now updated)) + (cond + ((= (-> obj sync-mask-16) (ash 1 (logand arg2 15))) + (logior! (-> target-status flags) (traffic-target-flag updated)) + (let ((target-proc (handle->process (-> target-status handle))) + (target-pos (new 'stack-no-clear 'vector)) + ) + (when target-proc + (set! (-> target-pos quad) (-> (get-trans (the-as process-focusable target-proc) 3) quad)) + (cond + ((= (-> (the-as process-focusable target-proc) type) target) + (let ((s1-1 (-> obj alert-state target-status-array))) + (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-now updated)) + (logior! (-> s1-1 0 flags) (traffic-target-flag updated)) + (cond + ((or (logtest? (-> s1-1 0 flags) (traffic-target-flag force-visible)) (traffic-los-clear? los target-pos)) + (logior! (-> s1-1 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) + (set! (-> s1-1 0 last-seen-time) (current-time)) + (set! (-> s1-1 0 position quad) (-> target-pos quad)) + (set! (-> s1-1 0 velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) + ) + (else + (if (>= (- (current-time) (-> s1-1 0 last-seen-time)) (seconds 2)) + (logclear! (-> s1-1 0 flags) (traffic-target-flag visible-recently)) ) + ) + ) + (mem-copy! (the-as pointer target-status) (the-as pointer s1-1) 80) + ) + 0 + ) + (else + (logior! (-> target-status flags) (traffic-target-flag visible-now visible-recently visible-ever)) + (set! (-> target-status last-seen-time) (current-time)) + (set! (-> target-status position quad) (-> target-pos quad)) + (set! (-> target-status velocity quad) (-> (get-transv (the-as process-focusable target-proc)) quad)) + ) + ) + (set! (-> target-pos quad) (-> target-status position quad)) + (when (not (update-guard-status-spots target-pos)) + ) + (when (update-guard-status-spots target-pos) + (set! guards (the-as (array crimson-guard) (new 'stack 'array crimson-guard 16))) + (set! guard-target-dists (the-as (array float) (new 'stack 'array float 16))) + (set! guard-idx 0) + (dotimes (guard-count (the-as int (-> obj vehicle-tracker-array active-object-count))) + (case (-> obj vehicle-tracker-array active-object-type-list guard-count) + (((traffic-type crimson-guard-1)) + (let ((guard (handle->process (-> obj vehicle-tracker-array active-object-list guard-count)))) + (when (and guard + (not (focus-test? (the-as process-focusable guard) dead inactive)) + (= (-> (the-as crimson-guard guard) traffic-target-status handle) (-> target-status handle)) + ) + (set! (-> guards guard-idx) (the-as crimson-guard guard)) + (set! (-> guard-target-dists guard-idx) + (vector-vector-distance (-> (the-as crimson-guard guard) root-override2 trans) target-pos) + ) + (set! guard-idx (+ guard-idx 1)) + (set! (-> (the-as crimson-guard guard) move-index) -1) ) ) - ) + ) ) - (let ((a0-35 #t)) - (while a0-35 - (set! a0-35 #f) - (dotimes (v1-77 (+ guard-idx -1)) - (when (< (-> guard-target-dists (+ v1-77 1)) (-> guard-target-dists v1-77)) - (let ((a0-38 (-> guards v1-77)) - (f0-2 (-> guard-target-dists v1-77)) - ) - (set! (-> guards v1-77) (-> guards (+ v1-77 1))) - (set! (-> guards (+ v1-77 1)) a0-38) - (set! (-> guard-target-dists v1-77) (-> guard-target-dists (+ v1-77 1))) - (set! (-> guard-target-dists (+ v1-77 1)) f0-2) - ) - (set! a0-35 #t) + ) + (let ((a0-35 #t)) + (while a0-35 + (set! a0-35 #f) + (dotimes (v1-77 (+ guard-idx -1)) + (when (< (-> guard-target-dists (+ v1-77 1)) (-> guard-target-dists v1-77)) + (let ((a0-38 (-> guards v1-77)) + (f0-2 (-> guard-target-dists v1-77)) + ) + (set! (-> guards v1-77) (-> guards (+ v1-77 1))) + (set! (-> guards (+ v1-77 1)) a0-38) + (set! (-> guard-target-dists v1-77) (-> guard-target-dists (+ v1-77 1))) + (set! (-> guard-target-dists (+ v1-77 1)) f0-2) ) + (set! a0-35 #t) ) ) ) - (dotimes (s4-1 guard-idx) - (let ((crimson-guard (-> (the-as (array crimson-guard) guards) s4-1))) - (when (= (-> crimson-guard move-index) -1) - (set! sv-208 -1) - (set! sv-216 (the-as float (gpr->fpr #x7f800000))) - (dotimes (s2-4 (-> *guard-target-spots* length)) - (when (= (-> *guard-status-spots* s2-4) 1) - (let* ((a0-53 (vector+! (new 'stack-no-clear 'vector) target-pos (-> *guard-target-spots* s2-4))) - (f0-4 (vector-vector-distance a0-53 (-> crimson-guard root-override2 trans))) - ) - (when (or (= sv-208 -1) (< f0-4 sv-216)) - (set! sv-208 s2-4) - (set! sv-216 f0-4) - ) + ) + (dotimes (s4-1 guard-idx) + (let ((crimson-guard (-> (the-as (array crimson-guard) guards) s4-1))) + (when (= (-> crimson-guard move-index) -1) + (set! sv-208 -1) + (set! sv-216 (the-as float (gpr->fpr #x7f800000))) + (dotimes (s2-4 (-> *guard-target-spots* length)) + (when (= (-> *guard-status-spots* s2-4) 1) + (let* ((a0-53 (vector+! (new 'stack-no-clear 'vector) target-pos (-> *guard-target-spots* s2-4))) + (f0-4 (vector-vector-distance a0-53 (-> crimson-guard root-override2 trans))) + ) + (when (or (= sv-208 -1) (< f0-4 sv-216)) + (set! sv-208 s2-4) + (set! sv-216 f0-4) ) ) ) - (cond - ((!= sv-208 -1) - (set! (-> *guard-status-spots* sv-208) 0) - (vector+! (-> crimson-guard move-position) target-pos (-> *guard-target-spots* sv-208)) - ) - (else - (set! (-> crimson-guard move-position quad) (-> target-pos quad)) - ) + ) + (cond + ((!= sv-208 -1) + (set! (-> *guard-status-spots* sv-208) 0) + (vector+! (-> crimson-guard move-position) target-pos (-> *guard-target-spots* sv-208)) + ) + (else + (set! (-> crimson-guard move-position quad) (-> target-pos quad)) ) ) ) @@ -2414,26 +2406,26 @@ Process is recycled and moved to reserved, if it deactivates." ) ) ) - (else - (let ((s5-1 (handle->process (-> target-status handle))) - (s3-3 (new 'stack-no-clear 'vector)) - ) - (when s5-1 - (set! (-> s3-3 quad) (-> (get-trans (the-as process-focusable s5-1) 3) quad)) - (cond - ((= (-> s5-1 type) target) - (mem-copy! (the-as pointer target-status) (the-as pointer (-> obj alert-state target-status-array)) 80) - ) - (else - ) + ) + (else + (let ((s5-1 (handle->process (-> target-status handle))) + (s3-3 (new 'stack-no-clear 'vector)) + ) + (when s5-1 + (set! (-> s3-3 quad) (-> (get-trans (the-as process-focusable s5-1) 3) quad)) + (cond + ((= (-> s5-1 type) target) + (mem-copy! (the-as pointer target-status) (the-as pointer (-> obj alert-state target-status-array)) 80) + ) + (else ) ) ) - (logclear! (-> target-status flags) (traffic-target-flag updated)) ) + (logclear! (-> target-status flags) (traffic-target-flag updated)) ) - target-status ) + target-status ) ;; definition for method 34 of type traffic-engine @@ -2900,191 +2892,186 @@ Process is recycled and moved to reserved, if it deactivates." ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod update-alert-state traffic-engine ((obj traffic-engine)) - (with-pp - (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) *target*) - (set! (-> obj alert-state target-status-array 0 handle) (process->handle *target*)) - ) - (when #t - (mem-copy! - (the-as pointer (-> obj alert-state settings)) - (the-as pointer (-> *alert-level-settings* (-> obj alert-state level))) - 96 - ) - (dotimes (v1-10 6) - (let ((a1-3 (-> obj alert-state settings guard-settings-array v1-10)) - (a0-10 (-> obj alert-state guard-type-info-array v1-10)) - ) - (set! (-> a1-3 inaccuracy) - (fmax 0.0 (fmin 1.0 (* (-> a1-3 inaccuracy) (-> obj alert-state guard-inaccuracy-factor)))) - ) - (when *target* - (when (focus-test? *target* pilot) - (set! (-> a1-3 acquire-delay) (the-as uint (the int (* 0.75 (the float (-> a1-3 acquire-delay)))))) - (set! (-> a1-3 shot-delay) (the-as uint (the int (* 0.6 (the float (-> a1-3 shot-delay)))))) - (set! (-> a1-3 burst-delay) (the-as uint (the int (* 0.8 (the float (-> a1-3 burst-delay)))))) - ) + (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) *target*) + (set! (-> obj alert-state target-status-array 0 handle) (process->handle *target*)) + ) + (when #t + (mem-copy! + (the-as pointer (-> obj alert-state settings)) + (the-as pointer (-> *alert-level-settings* (-> obj alert-state level))) + 96 + ) + (dotimes (v1-10 6) + (let ((a1-3 (-> obj alert-state settings guard-settings-array v1-10)) + (a0-10 (-> obj alert-state guard-type-info-array v1-10)) ) - (set! (-> a0-10 target-count) - (max - (min - (the int (* (the float (-> a1-3 target-count)) (-> obj alert-state guard-target-level))) - (-> a0-10 max-target-count) - ) - (-> a0-10 min-target-count) + (set! (-> a1-3 inaccuracy) + (fmax 0.0 (fmin 1.0 (* (-> a1-3 inaccuracy) (-> obj alert-state guard-inaccuracy-factor)))) + ) + (when *target* + (when (focus-test? *target* pilot) + (set! (-> a1-3 acquire-delay) (the-as uint (the int (* 0.75 (the float (-> a1-3 acquire-delay)))))) + (set! (-> a1-3 shot-delay) (the-as uint (the int (* 0.6 (the float (-> a1-3 shot-delay)))))) + (set! (-> a1-3 burst-delay) (the-as uint (the int (* 0.8 (the float (-> a1-3 burst-delay)))))) + ) + ) + (set! (-> a0-10 target-count) + (max + (min + (the int (* (the float (-> a1-3 target-count)) (-> obj alert-state guard-target-level))) + (-> a0-10 max-target-count) ) + (-> a0-10 min-target-count) ) + ) + ) + ) + ) + (dotimes (v1-13 21) + (let ((a1-8 (-> obj alert-state guard-type-mask-from-object-type v1-13))) + (when (nonzero? a1-8) + (let ((a2-18 0) + (a0-14 0) + ) + (while (nonzero? a1-8) + (if (logtest? a1-8 1) + (+! a0-14 (-> obj alert-state guard-type-info-array a2-18 target-count)) + ) + (+! a2-18 1) + (set! a1-8 (shr a1-8 1)) + ) + (set! (-> obj object-type-info-array v1-13 target-count) a0-14) ) ) ) - (dotimes (v1-13 21) - (let ((a1-8 (-> obj alert-state guard-type-mask-from-object-type v1-13))) - (when (nonzero? a1-8) - (let ((a2-18 0) - (a0-14 0) - ) - (while (nonzero? a1-8) - (if (logtest? a1-8 1) - (+! a0-14 (-> obj alert-state guard-type-info-array a2-18 target-count)) - ) - (+! a2-18 1) - (set! a1-8 (shr a1-8 1)) - ) - (set! (-> obj object-type-info-array v1-13 target-count) a0-14) - ) - ) - ) + ) + (let ((s5-0 #f)) + (when *traffic-alert-level-force* + (set! (-> obj alert-state level) (the-as uint 3)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + (set! (-> obj alert-state start-time) (current-time)) ) - (let ((s5-0 #f)) - (when *traffic-alert-level-force* - (set! (-> obj alert-state level) (the-as uint 3)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - ) - (when (>= (-> obj alert-state level) (the-as uint 1)) - (set! s5-0 #t) - (cond - ((logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - (cond - ((> (guard-count obj) 0) - (set! (-> obj alert-state start-time) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj alert-state start-time)) (seconds 3)) - (set! s5-0 #f) - (set! (-> obj alert-state level) (the-as uint 0)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) + (when (>= (-> obj alert-state level) (the-as uint 1)) + (set! s5-0 #t) + (cond + ((logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + (cond + ((> (guard-count obj) 0) + (set! (-> obj alert-state start-time) (current-time)) + ) + (else + (when (>= (- (current-time) (-> obj alert-state start-time)) (seconds 3)) + (set! s5-0 #f) + (set! (-> obj alert-state level) (the-as uint 0)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) ) ) ) - (else - (let ((v1-39 (+ (- (-> obj alert-state start-time) (-> pp clock frame-counter)) - (the-as time-frame (-> obj alert-state duration)) - ) - ) - ) - (if (and *target* (-> *target* next-state) (= (-> *target* next-state name) 'target-hide)) - (set! v1-39 (- v1-39 (the-as time-frame (* (- (-> pp clock frame-counter) (-> *target* state-time)) 2)))) - ) - (if (> v1-39 0) - 0 - (logior! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) - ) - ) - ) - ) - ) - (cond - (s5-0 - (when (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on))) - (logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (set! (-> *game-info* wanted-flash) (the-as basic #t)) - (if (= (-> *setting-control* user-current music) 'city1) - (set-setting! 'sound-mode #f 0.0 1) - ) - ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (set! (-> s5-1 quad) (-> (target-pos 0) quad)) - (if (or (= (-> *setting-control* user-default music-volume) 0.0) - (!= (-> *setting-control* user-current music) 'city1) - ) - (sound-play "city-alarm" :id (-> obj alert-state alarm-sound-id) :position s5-1) - ) - ) - (if #t - (send-alert-events obj) - ) - (let ((v1-67 0)) - (dotimes (a0-45 21) - (let ((a1-19 (-> obj object-type-info-array a0-45))) - (if #t - (+! v1-67 (-> a1-19 killed-count)) - ) - ) - ) - (if (and (>= v1-67 (the-as int (* (-> obj alert-state level) 8))) - (< (-> obj alert-state level) (-> obj alert-state max-level)) - ) - (set-alert-level obj (the-as int (+ (-> obj alert-state level) 1))) - ) - ) - ) + ) (else - (when (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (logclear! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) - (set! (-> *game-info* wanted-flash) #f) - (remove-setting! 'sound-mode) - (sound-stop (-> obj alert-state alarm-sound-id)) - (send-alert-events obj) - (let ((v1-84 (-> obj alert-state target-status-array))) - (logclear! (-> v1-84 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) - ) - (dotimes (v1-85 21) - (set! (-> obj object-type-info-array v1-85 killed-count) (the-as uint 0)) - 0 - ) + (let ((v1-39 + (+ (- (-> obj alert-state start-time) (current-time)) (the-as time-frame (-> obj alert-state duration))) + ) + ) + (if (and *target* (-> *target* next-state) (= (-> *target* next-state name) 'target-hide)) + (set! v1-39 (- v1-39 (the-as time-frame (* (- (current-time) (-> *target* state-time)) 2)))) + ) + (if (> v1-39 0) + 0 + (logior! (-> obj alert-state flags) (traffic-alert-flag alert-ending)) + ) + ) + ) + ) + ) + (cond + (s5-0 + (when (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on))) + (logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (set! (-> *game-info* wanted-flash) (the-as basic #t)) + (if (= (-> *setting-control* user-current music) 'city1) + (set-setting! 'sound-mode #f 0.0 1) + ) + ) + (let ((s5-1 (new 'stack-no-clear 'vector))) + (set! (-> s5-1 quad) (-> (target-pos 0) quad)) + (if (or (= (-> *setting-control* user-default music-volume) 0.0) + (!= (-> *setting-control* user-current music) 'city1) + ) + (sound-play "city-alarm" :id (-> obj alert-state alarm-sound-id) :position s5-1) + ) + ) + (if #t + (send-alert-events obj) + ) + (let ((v1-67 0)) + (dotimes (a0-45 21) + (let ((a1-19 (-> obj object-type-info-array a0-45))) + (if #t + (+! v1-67 (-> a1-19 killed-count)) + ) + ) + ) + (if (and (>= v1-67 (the-as int (* (-> obj alert-state level) 8))) + (< (-> obj alert-state level) (-> obj alert-state max-level)) + ) + (set-alert-level obj (the-as int (+ (-> obj alert-state level) 1))) + ) + ) + ) + (else + (when (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (logclear! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) + (set! (-> *game-info* wanted-flash) #f) + (remove-setting! 'sound-mode) + (sound-stop (-> obj alert-state alarm-sound-id)) + (send-alert-events obj) + (let ((v1-84 (-> obj alert-state target-status-array))) + (logclear! (-> v1-84 0 flags) (traffic-target-flag visible-now visible-recently visible-ever)) + ) + (dotimes (v1-85 21) + (set! (-> obj object-type-info-array v1-85 killed-count) (the-as uint 0)) + 0 ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 52 of type traffic-engine ;; WARN: Return type mismatch int vs none. (defmethod send-alert-events traffic-engine ((obj traffic-engine)) - (with-pp - (set! (-> obj alert-state notify-time) (-> pp clock frame-counter)) - (cond - ((> (-> obj alert-state level) 0) - (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) - (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending))) - *target* - ) - (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) - (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) - (send-event arg0 'alert-begin *target*) - ) - (none) - ) - ) - ) - ) - (else - (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) - (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) - (send-event arg0 'alert-end) - ) - (none) - ) - ) - ) + (set! (-> obj alert-state notify-time) (current-time)) + (cond + ((> (-> obj alert-state level) 0) + (if (and (logtest? (-> obj alert-state flags) (traffic-alert-flag target-jak)) + (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alert-ending))) + *target* + ) + (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) + (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) + (send-event arg0 'alert-begin *target*) + ) + (none) + ) + ) + ) + ) + (else + (for-all-active-processes obj (lambda ((arg0 process-focusable) (arg1 traffic-object-type-info)) + (if (logtest? (-> arg1 flags) (traffic-type-flags trtflags-0)) + (send-event arg0 'alert-end) + ) + (none) + ) + ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 29 of type traffic-engine diff --git a/test/decompiler/reference/jak2/levels/city/common/transport_REF.gc b/test/decompiler/reference/jak2/levels/city/common/transport_REF.gc index 0a6f53805e..5627ac4408 100644 --- a/test/decompiler/reference/jak2/levels/city/common/transport_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/transport_REF.gc @@ -354,8 +354,8 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-guard-spawn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-guard-spawn-time) (current-time)) (none) ) :code (behavior () @@ -389,7 +389,7 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (set! (-> self last-guard-spawn-time) 0) 0 @@ -434,16 +434,16 @@ gp-0 ) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) ) - (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (-> self clock frame-counter))) + (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (current-time))) (go-virtual leave) ) (when (and (zero? (-> self leave-time)) (nonzero? (-> self max-guard)) (>= (-> self count-guard) (-> self max-guard)) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) (send-event self 'stop-spawning) ) (transport-method-34 self *target*) @@ -468,7 +468,7 @@ :virtual #t :event transport-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (none) ) @@ -506,42 +506,40 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod transport-method-33 transport ((obj transport)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj last-guard-spawn-time)) 0) - (let ((s5-0 (new 'stack 'traffic-object-spawn-params))) - (set! (-> s5-0 object-type) (traffic-type crimson-guard-1)) - (set! (-> s5-0 behavior) (the-as uint 6)) - (set! (-> s5-0 id) (the-as uint 0)) - (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) - (set! (-> s5-0 nav-branch) #f) - (set! (-> s5-0 proc) #f) - (set! (-> s5-0 handle) (process->handle obj)) - (set! (-> s5-0 user-data) (-> obj spawn-side)) - (set! (-> s5-0 flags) (traffic-spawn-flags)) - (set! (-> s5-0 guard-type) (the-as uint 7)) - (vector-reset! (-> s5-0 velocity)) - (set! (-> s5-0 position quad) (-> obj root-override trans quad)) - (set! (-> s5-0 position y) (+ 8192.0 (-> s5-0 position y))) - (quaternion-rotate-local-y! (-> s5-0 rotation) (-> obj root-override quat) 32768.0) - (send-event *traffic-manager* 'activate-object s5-0) - (when (-> s5-0 proc) - (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) - (if (logtest? (-> obj draw status) (draw-control-status on-screen)) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 1))) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 2))) - ) - (+! (-> obj count-guard) 1) - ) - (when (not (-> s5-0 proc)) - (if (logtest? (-> obj draw status) (draw-control-status on-screen)) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 0.1))) - (set! (-> obj last-guard-spawn-time) (+ (-> pp clock frame-counter) (seconds 1))) - ) - ) + (when (>= (- (current-time) (-> obj last-guard-spawn-time)) 0) + (let ((s5-0 (new 'stack 'traffic-object-spawn-params))) + (set! (-> s5-0 object-type) (traffic-type crimson-guard-1)) + (set! (-> s5-0 behavior) (the-as uint 6)) + (set! (-> s5-0 id) (the-as uint 0)) + (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) + (set! (-> s5-0 nav-branch) #f) + (set! (-> s5-0 proc) #f) + (set! (-> s5-0 handle) (process->handle obj)) + (set! (-> s5-0 user-data) (-> obj spawn-side)) + (set! (-> s5-0 flags) (traffic-spawn-flags)) + (set! (-> s5-0 guard-type) (the-as uint 7)) + (vector-reset! (-> s5-0 velocity)) + (set! (-> s5-0 position quad) (-> obj root-override trans quad)) + (set! (-> s5-0 position y) (+ 8192.0 (-> s5-0 position y))) + (quaternion-rotate-local-y! (-> s5-0 rotation) (-> obj root-override quat) 32768.0) + (send-event *traffic-manager* 'activate-object s5-0) + (when (-> s5-0 proc) + (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) + (if (logtest? (-> obj draw status) (draw-control-status on-screen)) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 1))) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 2))) + ) + (+! (-> obj count-guard) 1) + ) + (when (not (-> s5-0 proc)) + (if (logtest? (-> obj draw status) (draw-control-status on-screen)) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 0.1))) + (set! (-> obj last-guard-spawn-time) (+ (current-time) (seconds 1))) + ) ) ) - (none) ) + (none) ) ;; definition for method 34 of type transport @@ -661,7 +659,3 @@ This commonly includes things such as: (go (method-of-object obj come-down)) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-control_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-control_REF.gc index 30dcc80e1a..1f7616e9ae 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-control_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-control_REF.gc @@ -641,7 +641,7 @@ (vector-xz-normalize! s3-0 1.0) (cond ((= arg3 (-> arg0 sample-index)) - (let* ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> arg0 sample-time))))) + (let* ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> arg0 sample-time))))) (f0-3 (acos-rad (vector-dot s3-0 (-> arg0 sample-dir)))) (f28-0 (/ (* arg4 f30-0) f0-3)) ) @@ -653,7 +653,7 @@ ) (else (set! (-> arg0 sample-index) arg3) - (set! (-> arg0 sample-time) (-> self clock frame-counter)) + (set! (-> arg0 sample-time) (current-time)) (set! (-> arg0 sample-dir quad) (-> s3-0 quad)) ) ) @@ -714,7 +714,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-effects_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-effects_REF.gc index 7ffe598908..baed6e3e09 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-effects_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-effects_REF.gc @@ -52,7 +52,7 @@ (f0-22 (+ (-> obj info-override engine-pitch-offset) (* (-> obj info-override engine-pitch-scale) f30-0) (* (-> obj info-override engine-pitch-mod-amp) - (sin (* 109.22667 (the float (- (-> pp clock frame-counter) (-> obj state-time))))) + (sin (* 109.22667 (the float (- (current-time) (-> obj state-time))))) ) f26-0 ) diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-guard_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-guard_REF.gc index 9330dee172..2a93b82ca9 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-guard_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-guard_REF.gc @@ -512,50 +512,42 @@ ;; definition for method 10 of type turret-control ;; WARN: Return type mismatch int vs none. (defmethod turret-control-method-10 turret-control ((obj turret-control) (arg0 vehicle)) - (with-pp - (cond - ((logtest? (-> obj flags) (turret-flag should-shoot)) - (cond - ((logtest? (-> obj flags) (turret-flag firing)) - (cond - ((> (-> obj shot-count) 0) - (if (>= (- (-> pp clock frame-counter) (-> obj shoot-time)) - (the-as time-frame (-> obj guard-settings shot-delay)) - ) - (turret-control-method-17 obj arg0) - ) - ) - (else - (logclear! (-> obj flags) (turret-flag firing)) - (+! (-> obj burst-count) 1) - (turret-control-method-13 obj) - ) + (cond + ((logtest? (-> obj flags) (turret-flag should-shoot)) + (cond + ((logtest? (-> obj flags) (turret-flag firing)) + (cond + ((> (-> obj shot-count) 0) + (if (>= (- (current-time) (-> obj shoot-time)) (the-as time-frame (-> obj guard-settings shot-delay))) + (turret-control-method-17 obj arg0) + ) + ) + (else + (logclear! (-> obj flags) (turret-flag firing)) + (+! (-> obj burst-count) 1) + (turret-control-method-13 obj) ) ) - (else - (when (and (>= (- (-> pp clock frame-counter) (-> obj shoot-time)) - (the-as time-frame (-> obj guard-settings burst-delay)) - ) - (>= (- (-> pp clock frame-counter) (-> obj aim-acquire-time)) - (the-as time-frame (-> obj guard-settings acquire-delay)) - ) - ) - (set! (-> obj shot-count) - (+ (-> obj guard-settings shot-count) (rand-vu-int-count (+ (-> obj guard-settings rand-shot-count) 1))) - ) - (logior! (-> obj flags) (turret-flag firing)) - ) + ) + (else + (when (and (>= (- (current-time) (-> obj shoot-time)) (the-as time-frame (-> obj guard-settings burst-delay))) + (>= (- (current-time) (-> obj aim-acquire-time)) (the-as time-frame (-> obj guard-settings acquire-delay))) + ) + (set! (-> obj shot-count) + (+ (-> obj guard-settings shot-count) (rand-vu-int-count (+ (-> obj guard-settings rand-shot-count) 1))) + ) + (logior! (-> obj flags) (turret-flag firing)) ) ) ) - (else - (set! (-> obj aim-acquire-time) (-> pp clock frame-counter)) - (turret-control-method-14 obj) - ) + ) + (else + (set! (-> obj aim-acquire-time) (current-time)) + (turret-control-method-14 obj) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 11 of type turret-control @@ -574,46 +566,44 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod turret-control-method-17 turret-control ((obj turret-control) (arg0 vehicle)) - (with-pp - (let ((s4-0 (new 'stack-no-clear 'turret-unknown-stack-structure2))) - (set! (-> s4-0 proj-params ent) (-> arg0 entity)) - (set! (-> s4-0 proj-params charge) 1.0) - (set! (-> s4-0 proj-params options) (projectile-options)) - (set! (-> s4-0 proj-params notify-handle) (process->handle arg0)) - (set! (-> s4-0 proj-params owner-handle) (process->handle (handle->process (-> obj owner-handle)))) - (set! (-> s4-0 proj-params ignore-handle) (process->handle arg0)) - (let* ((v1-14 *game-info*) - (a0-16 (+ (-> v1-14 attack-id) 1)) - ) - (set! (-> v1-14 attack-id) a0-16) - (set! (-> s4-0 proj-params attack-id) a0-16) - ) - (set! (-> s4-0 proj-params timeout) (seconds 4)) - (let* ((v1-16 (-> s4-0 mat-1)) - (a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-20 (-> a3-0 quad 0)) - (a1-6 (-> a3-0 quad 1)) - (a2-0 (-> a3-0 quad 2)) - (a3-1 (-> a3-0 trans quad)) - ) - (set! (-> v1-16 quad 0) a0-20) - (set! (-> v1-16 quad 1) a1-6) - (set! (-> v1-16 quad 2) a2-0) - (set! (-> v1-16 trans quad) a3-1) - ) - (dotimes (s3-0 (-> obj info barrel-count)) - (vector-matrix*! (-> s4-0 vec-1) (the-as vector (-> obj info barrel-array s3-0)) (-> s4-0 mat-1)) - (set! (-> s4-0 vec-2 quad) (-> s4-0 mat-1 vector 2 quad)) - (set! (-> s4-0 proj-params pos quad) (-> s4-0 vec-1 quad)) - (vector-float*! (-> s4-0 proj-params vel) (-> s4-0 vec-2) (-> obj info shot-speed)) - (spawn-projectile guard-shot (-> s4-0 proj-params) arg0 *default-dead-pool*) - ) + (let ((s4-0 (new 'stack-no-clear 'turret-unknown-stack-structure2))) + (set! (-> s4-0 proj-params ent) (-> arg0 entity)) + (set! (-> s4-0 proj-params charge) 1.0) + (set! (-> s4-0 proj-params options) (projectile-options)) + (set! (-> s4-0 proj-params notify-handle) (process->handle arg0)) + (set! (-> s4-0 proj-params owner-handle) (process->handle (handle->process (-> obj owner-handle)))) + (set! (-> s4-0 proj-params ignore-handle) (process->handle arg0)) + (let* ((v1-14 *game-info*) + (a0-16 (+ (-> v1-14 attack-id) 1)) + ) + (set! (-> v1-14 attack-id) a0-16) + (set! (-> s4-0 proj-params attack-id) a0-16) + ) + (set! (-> s4-0 proj-params timeout) (seconds 4)) + (let* ((v1-16 (-> s4-0 mat-1)) + (a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-20 (-> a3-0 quad 0)) + (a1-6 (-> a3-0 quad 1)) + (a2-0 (-> a3-0 quad 2)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-16 quad 0) a0-20) + (set! (-> v1-16 quad 1) a1-6) + (set! (-> v1-16 quad 2) a2-0) + (set! (-> v1-16 trans quad) a3-1) + ) + (dotimes (s3-0 (-> obj info barrel-count)) + (vector-matrix*! (-> s4-0 vec-1) (the-as vector (-> obj info barrel-array s3-0)) (-> s4-0 mat-1)) + (set! (-> s4-0 vec-2 quad) (-> s4-0 mat-1 vector 2 quad)) + (set! (-> s4-0 proj-params pos quad) (-> s4-0 vec-1 quad)) + (vector-float*! (-> s4-0 proj-params vel) (-> s4-0 vec-2) (-> obj info shot-speed)) + (spawn-projectile guard-shot (-> s4-0 proj-params) arg0 *default-dead-pool*) ) - (set! (-> obj shoot-time) (-> pp clock frame-counter)) - (+! (-> obj shot-count) -1) - 0 - (none) ) + (set! (-> obj shoot-time) (current-time)) + (+! (-> obj shot-count) -1) + 0 + (none) ) ;; definition for method 16 of type turret-control @@ -871,58 +861,56 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod vehicle-guard-method-150 vehicle-guard ((obj vehicle-guard)) - (with-pp - (cond - ((handle->process (-> obj pursuit-target)) - (let ((v1-3 (new 'stack-no-clear 'vehicle-control-point))) - (set! (-> v1-3 local-pos quad) (-> obj root-override-2 trans quad)) - (let ((v1-4 (traffic-engine-method-49 - (-> obj controller traffic) - (-> v1-3 local-pos) - (-> obj traffic-priority-id) - (the-as traffic-target-status (&-> obj traffic-target-status)) - ) + (cond + ((handle->process (-> obj pursuit-target)) + (let ((v1-3 (new 'stack-no-clear 'vehicle-control-point))) + (set! (-> v1-3 local-pos quad) (-> obj root-override-2 trans quad)) + (let ((v1-4 (traffic-engine-method-49 + (-> obj controller traffic) + (-> v1-3 local-pos) + (-> obj traffic-priority-id) + (the-as traffic-target-status (&-> obj traffic-target-status)) ) - ) - (when (logtest? (-> v1-4 flags) (traffic-target-flag updated)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag target-in-sight))) ) - (when (logtest? (-> v1-4 flags) (traffic-target-flag visible-now)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logior (rigid-body-object-flag target-in-sight) (-> obj flags))) - ) - (set! (-> obj target-in-sight-time) (-> pp clock frame-counter)) - ) ) - (set! (-> obj target-flags) (the-as turret-flag (-> v1-4 flags))) + (when (logtest? (-> v1-4 flags) (traffic-target-flag updated)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag target-in-sight))) + ) + (when (logtest? (-> v1-4 flags) (traffic-target-flag visible-now)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logior (rigid-body-object-flag target-in-sight) (-> obj flags))) + ) + (set! (-> obj target-in-sight-time) (current-time)) + ) ) - ) - (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (if (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) - (vehicle-method-108 obj) - ) + (set! (-> obj target-flags) (the-as turret-flag (-> v1-4 flags))) ) ) - (else - (vehicle-method-109 obj) - ) + (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (if (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) + (vehicle-method-108 obj) + ) + ) + ) + (else + (vehicle-method-109 obj) ) - (let ((v1-22 (if (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags)) - (-> obj draw lod-set lod 1 geo) - (-> obj lod2) - ) - ) - ) - (when (!= v1-22 (-> obj draw lod-set lod 2 geo)) - (set! (-> obj draw lod-set lod 2 geo) (the-as merc-ctrl v1-22)) - (set! (-> obj draw cur-lod) -1) - (lod-set! (-> obj draw) (-> obj draw desired-lod)) - ) - ) - 0 - (none) ) + (let ((v1-22 (if (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags)) + (-> obj draw lod-set lod 1 geo) + (-> obj lod2) + ) + ) + ) + (when (!= v1-22 (-> obj draw lod-set lod 2 geo)) + (set! (-> obj draw lod-set lod 2 geo) (the-as merc-ctrl v1-22)) + (set! (-> obj draw cur-lod) -1) + (lod-set! (-> obj draw) (-> obj draw desired-lod)) + ) + ) + 0 + (none) ) ;; definition for method 155 of type vehicle-guard @@ -1315,94 +1303,88 @@ ;; definition for method 158 of type vehicle-guard ;; WARN: Return type mismatch int vs none. (defmethod vehicle-guard-method-158 vehicle-guard ((obj vehicle-guard)) - (with-pp - (vehicle-guard-method-150 obj) - (let ((s5-0 (new 'stack-no-clear 'vehicle-guard-target-data))) - (vehicle-guard-method-151 obj s5-0) - (let ((a1-1 (-> s5-0 target))) - (when a1-1 - (cond - ((logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) - (vehicle-guard-method-153 obj a1-1) - (speech-control-method-15 *speech-control* obj) - ) - (else - (if (and (>= (- (-> pp clock frame-counter) (-> obj target-in-sight-time)) (seconds 4)) - (< 368640.0 (-> s5-0 dist)) - ) - (vehicle-method-109 obj) - ) - ) + (vehicle-guard-method-150 obj) + (let ((s5-0 (new 'stack-no-clear 'vehicle-guard-target-data))) + (vehicle-guard-method-151 obj s5-0) + (let ((a1-1 (-> s5-0 target))) + (when a1-1 + (cond + ((logtest? (rigid-body-object-flag target-in-sight) (-> obj flags)) + (vehicle-guard-method-153 obj a1-1) + (speech-control-method-15 *speech-control* obj) + ) + (else + (if (and (>= (- (current-time) (-> obj target-in-sight-time)) (seconds 4)) (< 368640.0 (-> s5-0 dist))) + (vehicle-method-109 obj) + ) ) ) ) ) - (if (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (go (method-of-object obj active)) - ) - (rigid-body-object-method-42 obj) - (vehicle-method-122 obj) - 0 - (none) ) + (if (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (go (method-of-object obj active)) + ) + (rigid-body-object-method-42 obj) + (vehicle-method-122 obj) + 0 + (none) ) ;; definition for method 94 of type vehicle-guard ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-94 vehicle-guard ((obj vehicle-guard)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((v1-0 (new 'stack-no-clear 'camera-free-floating-move-info))) - (let* ((a0-1 (-> v1-0 tm)) - (t0-0 (-> obj rbody state matrix)) - (a1-1 (-> t0-0 quad 0)) - (a2-0 (-> t0-0 quad 1)) - (a3-0 (-> t0-0 quad 2)) - (t0-1 (-> t0-0 trans quad)) - ) - (set! (-> a0-1 quad 0) a1-1) - (set! (-> a0-1 quad 1) a2-0) - (set! (-> a0-1 quad 2) a3-0) - (set! (-> a0-1 trans quad) t0-1) - ) - (let ((a0-2 (-> v1-0 rv))) - (let ((a1-3 (-> obj rbody state position))) - (let ((a2-1 (-> v1-0 tm vector 2))) - (let ((a3-2 163840.0)) - (.mov vf7 a3-2) - ) - (.lvf vf5 (&-> a2-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (new 'stack-no-clear 'camera-free-floating-move-info))) + (let* ((a0-1 (-> v1-0 tm)) + (t0-0 (-> obj rbody state matrix)) + (a1-1 (-> t0-0 quad 0)) + (a2-0 (-> t0-0 quad 1)) + (a3-0 (-> t0-0 quad 2)) + (t0-1 (-> t0-0 trans quad)) + ) + (set! (-> a0-1 quad 0) a1-1) + (set! (-> a0-1 quad 1) a2-0) + (set! (-> a0-1 quad 2) a3-0) + (set! (-> a0-1 trans quad) t0-1) + ) + (let ((a0-2 (-> v1-0 rv))) + (let ((a1-3 (-> obj rbody state position))) + (let ((a2-1 (-> v1-0 tm vector 2))) + (let ((a3-2 163840.0)) + (.mov vf7 a3-2) ) - (.lvf vf4 (&-> a1-3 quad)) + (.lvf vf5 (&-> a2-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-2 quad) vf6) + (.lvf vf4 (&-> a1-3 quad)) ) - (vector-reset! (-> v1-0 up)) - (set! (-> obj turret inaccuracy) 0.0) - (turret-control-method-9 (-> obj turret) obj (-> v1-0 rv) (-> v1-0 up)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-2 quad) vf6) ) - (when (cpad-hold? 0 r1) - (when (>= (- (-> pp clock frame-counter) (-> obj turret shoot-time)) (seconds 0.35)) - (set! (-> obj turret owner-handle) (process->handle *target*)) - (turret-control-method-17 (-> obj turret) obj) - (set! (-> obj turret owner-handle) (the-as handle #f)) - ) - ) - ((method-of-type vehicle vehicle-method-94) obj) - 0 - (none) + (vector-reset! (-> v1-0 up)) + (set! (-> obj turret inaccuracy) 0.0) + (turret-control-method-9 (-> obj turret) obj (-> v1-0 rv) (-> v1-0 up)) ) + (when (cpad-hold? 0 r1) + (when (>= (- (current-time) (-> obj turret shoot-time)) (seconds 0.35)) + (set! (-> obj turret owner-handle) (process->handle *target*)) + (turret-control-method-17 (-> obj turret) obj) + (set! (-> obj turret owner-handle) (the-as handle #f)) + ) + ) + ((method-of-type vehicle vehicle-method-94) obj) + 0 + (none) ) ) @@ -1446,10 +1428,9 @@ (go-virtual hostile) ) (speech-control-method-12 *speech-control* self (speech-type speech-type-2)) - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 8)) - (let ((f0-0 409600.0)) - (< (* f0-0 f0-0) (-> self player-dist2)) - ) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 8)) (let ((f0-0 409600.0)) + (< (* f0-0 f0-0) (-> self player-dist2)) + ) ) (logclear! (-> self flags) (rigid-body-object-flag persistent alert)) ) @@ -1480,9 +1461,9 @@ :post (behavior () (vehicle-guard-method-150 self) (when (logtest? (rigid-body-object-flag in-pursuit) (-> self flags)) - (if (or (>= (- (-> self clock frame-counter) (-> self target-in-sight-time)) (seconds 8)) + (if (or (>= (- (current-time) (-> self target-in-sight-time)) (seconds 8)) (and (>= (-> self controller traffic alert-state guards-in-sight-of-target) 2) - (>= (- (-> self clock frame-counter) (-> self target-in-sight-time)) (seconds 0.5)) + (>= (- (current-time) (-> self target-in-sight-time)) (seconds 0.5)) ) ) (vehicle-method-109 self) @@ -1559,7 +1540,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self ai-hook) (method-of-object self vehicle-guard-method-156)) (none) ) @@ -1573,7 +1554,7 @@ (when gp-0 (when (or (< (-> s5-0 attack-range) (-> s5-0 dist)) (not (logtest? (rigid-body-object-flag target-in-sight) (-> self flags))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (>= (- (current-time) (-> self state-time)) (seconds 2)) ) (set! (-> self flags) (the-as rigid-body-object-flag (logclear (-> self flags) (rigid-body-object-flag rammed-target))) diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-states_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-states_REF.gc index 8eb99b0284..a91f31447d 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-states_REF.gc @@ -13,7 +13,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (rigid-body-object-method-39 self) (go-virtual waiting) (none) @@ -57,7 +57,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-139 self) (set! (-> self flags) (logior (rigid-body-object-flag riding ai-driving) (-> self flags))) (vehicle-method-142 self) @@ -82,7 +82,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-140 self) (set! (-> self flags) (the-as rigid-body-object-flag @@ -141,7 +141,7 @@ :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () (set-setting! 'sound-flava #f 31.0 5) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (iterate-prims (-> self root-override-2) (lambda ((arg0 collide-shape-prim)) @@ -206,7 +206,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not *target*) (go-virtual waiting) ) @@ -267,7 +267,7 @@ :event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler) :enter (behavior () (logclear! (-> self flags) (rigid-body-object-flag player-driving)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (vehicle-method-129 self) (set! (-> self crash-level) 3) (vehicle-method-88 self) @@ -278,7 +278,7 @@ ) :trans (behavior () (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (-> self clock seconds-per-frame)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) + (if (and (>= (- (current-time) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) (go-virtual explode) ) (none) @@ -305,13 +305,12 @@ (set! (-> self player-dist2) (vector-vector-distance-squared (-> self root-override-2 trans) (target-pos 0))) (cond ((logtest? (-> self draw status) (draw-control-status on-screen)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) - (let ((f0-2 409600.0)) - (< (* f0-2 f0-2) (-> self camera-dist2)) - ) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 5)) (let ((f0-2 409600.0)) + (< (* f0-2 f0-2) (-> self camera-dist2)) + ) ) (go-virtual die) ) @@ -336,7 +335,7 @@ (vehicle-method-121 self) (set! (-> self rbody state info) (-> self info-override info)) (when (logtest? (-> self flags) (rigid-body-object-flag disturbed)) - (let* ((f0-14 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self disturbed-time))))) + (let* ((f0-14 (* 0.0033333334 (the float (- (current-time) (-> self disturbed-time))))) (f0-17 (* f0-14 f0-14 (-> self camera-dist2))) (f1-5 0.000016276043) (f0-18 (* f0-17 (* f1-5 f1-5))) @@ -490,7 +489,7 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-util_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-util_REF.gc index 37cd6d5285..52593af588 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-util_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-util_REF.gc @@ -163,31 +163,29 @@ ;; definition for method 9 of type vehicle-hud-chooser (defmethod vehicle-hud-chooser-method-9 vehicle-hud-chooser ((obj vehicle-hud-chooser) (arg0 handle) (arg1 float)) - (with-pp - (let ((s3-0 (-> pp clock frame-counter))) - (when (!= s3-0 (-> obj cur time)) - (if (zero? (-> obj cur time)) - (vehicle-hud-requests-method-9 (-> obj cur)) - ) - (mem-copy! (the-as pointer (-> obj last)) (the-as pointer (-> obj cur)) 72) - (set! (-> obj cur time) s3-0) - (vehicle-hud-requests-method-9 (-> obj cur)) - ) + (let ((s3-0 (current-time))) + (when (!= s3-0 (-> obj cur time)) + (if (zero? (-> obj cur time)) + (vehicle-hud-requests-method-9 (-> obj cur)) + ) + (mem-copy! (the-as pointer (-> obj last)) (the-as pointer (-> obj cur)) 72) + (set! (-> obj cur time) s3-0) + (vehicle-hud-requests-method-9 (-> obj cur)) ) - (let ((v1-10 (vehicle-hud-requests-method-11 (-> obj cur)))) - (when (< (-> v1-10 priority) arg1) - (set! (-> v1-10 handle) arg0) - (set! (-> v1-10 priority) arg1) - ) + ) + (let ((v1-10 (vehicle-hud-requests-method-11 (-> obj cur)))) + (when (< (-> v1-10 priority) arg1) + (set! (-> v1-10 handle) arg0) + (set! (-> v1-10 priority) arg1) ) - (let ((s4-1 #f)) - (let ((v1-12 (vehicle-hud-requests-method-10 (-> obj last)))) - (if (and (handle->process arg0) (= (-> v1-12 handle) arg0)) - (set! s4-1 #t) - ) - ) - s4-1 + ) + (let ((s4-1 #f)) + (let ((v1-12 (vehicle-hud-requests-method-10 (-> obj last)))) + (if (and (handle->process arg0) (= (-> v1-12 handle) arg0)) + (set! s4-1 #t) + ) ) + s4-1 ) ) @@ -819,26 +817,24 @@ This commonly includes things such as: ;; definition for method 76 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-76 vehicle ((obj vehicle) (arg0 int) (arg1 uint)) - (with-pp - (when (< (-> obj crash-level) arg0) - (set! (-> obj crash-level) arg0) - (set! (-> obj crash-duration) arg1) - (set! (-> obj crash-time) (-> pp clock frame-counter)) - (set! (-> obj force-scale) 0.0) - (when (>= (-> obj crash-level) 2) - (sound-play "bike-engine-off") - (vehicle-method-83 obj) - ) + (when (< (-> obj crash-level) arg0) + (set! (-> obj crash-level) arg0) + (set! (-> obj crash-duration) arg1) + (set! (-> obj crash-time) (current-time)) + (set! (-> obj force-scale) 0.0) + (when (>= (-> obj crash-level) 2) + (sound-play "bike-engine-off") + (vehicle-method-83 obj) ) - (when (and (>= 0.0 (-> obj hit-points)) (!= (-> obj crash-level) 3)) - (logior! (-> obj flags) (rigid-body-object-flag dead)) - (set! (-> obj crash-level) 3) - (set! (-> obj crash-duration) (the-as uint 1500)) - (set! (-> obj crash-time) (-> pp clock frame-counter)) - ) - 0 - (none) ) + (when (and (>= 0.0 (-> obj hit-points)) (!= (-> obj crash-level) 3)) + (logior! (-> obj flags) (rigid-body-object-flag dead)) + (set! (-> obj crash-level) 3) + (set! (-> obj crash-duration) (the-as uint 1500)) + (set! (-> obj crash-time) (current-time)) + ) + 0 + (none) ) ;; definition for method 77 of type vehicle @@ -852,30 +848,26 @@ This commonly includes things such as: ;; definition for method 78 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-78 vehicle ((obj vehicle) (arg0 int)) - (with-pp - (set! (-> obj flight-level-index-prev) (-> obj flight-level-index)) - (set! (-> obj flight-level-index) arg0) - (set! (-> obj flags) - (logior (rigid-body-object-flag flight-level-transition camera-rapid-track-mode) (-> obj flags)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) - (set! (-> obj transition-time) (-> pp clock frame-counter)) - (vehicle-method-91 obj) - 0 - (none) - ) + (set! (-> obj flight-level-index-prev) (-> obj flight-level-index)) + (set! (-> obj flight-level-index) arg0) + (set! (-> obj flags) + (logior (rigid-body-object-flag flight-level-transition camera-rapid-track-mode) (-> obj flags)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) + (set! (-> obj transition-time) (current-time)) + (vehicle-method-91 obj) + 0 + (none) ) ;; definition for method 79 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-79 vehicle ((obj vehicle)) - (with-pp - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition)) - (set! (-> obj flags) (logior (rigid-body-object-flag flight-level-transition-ending) (-> obj flags))) - (set! (-> obj transition-end-time) (-> pp clock frame-counter)) - 0 - (none) - ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition)) + (set! (-> obj flags) (logior (rigid-body-object-flag flight-level-transition-ending) (-> obj flags))) + (set! (-> obj transition-end-time) (current-time)) + 0 + (none) ) ;; definition for method 131 of type vehicle @@ -1471,74 +1463,72 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-106 vehicle ((obj vehicle)) (local-vars (v1-13 float) (v1-25 float) (v1-30 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (when (>= (- (-> pp clock frame-counter) (-> obj disturbed-time)) (seconds 2)) - (cond - ((logtest? (rigid-body-object-flag ai-driving) (-> obj flags)) - (when (and (not (logtest? (-> obj controller flags) (vehicle-controller-flag off-path))) - (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) - ) - (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-13 vf1) - (let ((f0-1 v1-13) - (f1-0 0.5) - ) - (if (< f0-1 (* f1-0 f1-0)) - (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) - ) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (when (>= (- (current-time) (-> obj disturbed-time)) (seconds 2)) + (cond + ((logtest? (rigid-body-object-flag ai-driving) (-> obj flags)) + (when (and (not (logtest? (-> obj controller flags) (vehicle-controller-flag off-path))) + (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) + ) + (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-13 vf1) + (let ((f0-1 v1-13) + (f1-0 0.5) + ) + (if (< f0-1 (* f1-0 f1-0)) + (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) + ) ) ) - (else - (when (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) - (let* ((f0-3 (-> obj camera-dist2)) - (f1-3 0.000024414063) - (f0-4 (* f0-3 (* f1-3 f1-3))) - ) - (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-25 vf1) - (when (and (< v1-25 f0-4) (begin - (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-30 vf1) - (let ((f1-7 v1-30) - (f2-0 614.4) - ) - (< f1-7 (* f0-4 (* f2-0 f2-0))) - ) + ) + (else + (when (>= (-> obj rbody state matrix vector 1 y) (cos 910.2222)) + (let* ((f0-3 (-> obj camera-dist2)) + (f1-3 0.000024414063) + (f0-4 (* f0-3 (* f1-3 f1-3))) + ) + (.lvf vf1 (&-> (-> obj rbody state ang-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-25 vf1) + (when (and (< v1-25 f0-4) (begin + (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-30 vf1) + (let ((f1-7 v1-30) + (f2-0 614.4) + ) + (< f1-7 (* f0-4 (* f2-0 f2-0))) ) - ) - (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) - (clear-momentum! (-> obj rbody state)) - ) + ) + ) + (logclear! (-> obj flags) (rigid-body-object-flag disturbed)) + (clear-momentum! (-> obj rbody state)) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle_REF.gc index 3a80793642..5d9c248842 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle_REF.gc @@ -452,9 +452,9 @@ (seek! (-> obj force-scale) 1.0 (-> pp clock seconds-per-frame)) ) ((< (-> obj crash-level) 3) - (when (>= (- (-> pp clock frame-counter) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) + (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) - (>= (- (-> pp clock frame-counter) (-> obj crash-time)) (seconds 3)) + (>= (- (current-time) (-> obj crash-time)) (seconds 3)) ) (vehicle-method-77 obj) ) @@ -501,12 +501,8 @@ ) ) (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (if (or (>= (- (-> pp clock frame-counter) (-> obj turbo-boost-time)) - (the-as time-frame (-> obj turbo-boost-duration)) - ) - (and (>= (- (-> pp clock frame-counter) (-> obj turbo-boost-time)) (seconds 0.1)) - (>= (-> obj controls brake) 0.75) - ) + (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) + (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) ) (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) ) @@ -566,15 +562,15 @@ (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) ) (set! (-> obj flags) (logior (rigid-body-object-flag hard-turn) (-> obj flags))) - (set! (-> obj turn-time) (-> pp clock frame-counter)) + (set! (-> obj turn-time) (current-time)) ) (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) - (>= (- (-> pp clock frame-counter) (-> obj turn-time)) (seconds 1)) + (>= (- (current-time) (-> obj turn-time)) (seconds 1)) ) (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) ) (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) - (set! (-> obj air-time) (-> pp clock frame-counter)) + (set! (-> obj air-time) (current-time)) ) (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) (if (or (and (> (-> obj flight-level-index) 0) @@ -585,15 +581,13 @@ ) (vehicle-method-79 obj) ) - (when (and (> (-> obj flight-level-index) 0) - (>= (- (-> pp clock frame-counter) (-> obj transition-time)) (seconds 2)) - ) + (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) (vehicle-method-79 obj) (vehicle-method-83 obj) ) ) (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) - (>= (- (-> pp clock frame-counter) (-> obj transition-end-time)) (seconds 1)) + (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) ) (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) (vehicle-method-92 obj) @@ -637,9 +631,7 @@ ) (cond ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) - (>= (- (-> pp clock frame-counter) (-> obj air-time)) (seconds 0.75)) - ) + (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) (set-setting! 'extra-follow-height 'abs (meters -4) 0) (send-event *camera* 'set-max-angle-offset (-> obj info-override camera-air-max-angle-offset)) ) @@ -1017,25 +1009,23 @@ ;; definition for method 121 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-121 vehicle ((obj vehicle)) - (with-pp - (if (>= (- (-> pp clock frame-counter) (-> obj player-touch-time)) (seconds 0.1)) - (logclear! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-standing-on)) - ) - (when (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) - (detect-riders! (-> obj root-override-2)) - 0 - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching player-driving)) - (logior! (-> obj skel status) (joint-control-status sync-math)) - (logclear! (-> obj skel status) (joint-control-status sync-math)) - ) - (vehicle-method-96 obj) - (let ((a1-0 (-> obj rbody state position))) - (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) + (if (>= (- (current-time) (-> obj player-touch-time)) (seconds 0.1)) + (logclear! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-standing-on)) ) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) + (detect-riders! (-> obj root-override-2)) 0 - (none) ) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching player-driving)) + (logior! (-> obj skel status) (joint-control-status sync-math)) + (logclear! (-> obj skel status) (joint-control-status sync-math)) + ) + (vehicle-method-96 obj) + (let ((a1-0 (-> obj rbody state position))) + (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) + ) + 0 + (none) ) ;; definition for method 37 of type vehicle @@ -1133,106 +1123,104 @@ ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-123 vehicle ((obj vehicle)) (local-vars (v1-4 symbol) (a0-21 int) (a0-23 int)) - (with-pp - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (target-pos 0))) - (b! - (not (logtest? (rigid-body-object-flag traffic-managed) (-> obj flags))) - cfg-3 - :likely-delay (set! v1-4 #f) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root-override-2 trans) (target-pos 0))) + (b! + (not (logtest? (rigid-body-object-flag traffic-managed) (-> obj flags))) + cfg-3 + :likely-delay (set! v1-4 #f) + ) + (set! v1-4 (not (logtest? (-> obj flags) (rigid-body-object-flag persistent)))) + (label cfg-3) + (b! (not v1-4) cfg-20 :delay (empty-form)) + (let ((f0-3 (fmin (-> obj player-dist2) (-> obj camera-dist2)))) + (let ((f1-1 819200.0)) + (b! (>= (* f1-1 f1-1) f0-3) cfg-8) ) - (set! v1-4 (not (logtest? (-> obj flags) (rigid-body-object-flag persistent)))) - (label cfg-3) - (b! (not v1-4) cfg-20 :delay (empty-form)) - (let ((f0-3 (fmin (-> obj player-dist2) (-> obj camera-dist2)))) - (let ((f1-1 819200.0)) - (b! (>= (* f1-1 f1-1) f0-3) cfg-8) - ) - (let ((f1-4 819200.0)) - (if (< (* f1-4 f1-4) f0-3) - (vehicle-method-113 obj) - ) - ) - (b! #t cfg-19 :delay (nop!)) - (label cfg-8) - (let ((f1-7 81920.0)) - (b! (>= (* f1-7 f1-7) f0-3) cfg-18) - ) - (b! (not (logtest? (-> obj draw status) (draw-control-status on-screen))) cfg-11 :delay (nop!)) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (b! #t cfg-17 :delay (nop!)) - (label cfg-11) - (if (or (>= (- (-> pp clock frame-counter) (-> obj state-time)) (seconds 10)) (let ((f1-10 409600.0)) - (< (* f1-10 f1-10) f0-3) - ) - ) + (let ((f1-4 819200.0)) + (if (< (* f1-4 f1-4) f0-3) (vehicle-method-113 obj) ) ) - (label cfg-17) (b! #t cfg-19 :delay (nop!)) - (label cfg-18) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (label cfg-19) - 0 - (label cfg-20) - (check-player-get-on obj) - (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-24 :delay (nop!)) - (if (not (vehicle-method-105 obj)) - (rigid-body-object-method-39 obj) - ) - (b! #t cfg-26 :delay (nop!)) - (label cfg-24) - (if (vehicle-method-105 obj) - (rigid-body-object-method-38 obj) - ) - (label cfg-26) - (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-31 :delay (nop!)) - (vector-reset! (-> obj target-acceleration)) - (when (logtest? (-> obj flags) (rigid-body-object-flag disturbed)) - (if (logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (set! (-> obj disturbed-time) (-> pp clock frame-counter)) - ) + (label cfg-8) + (let ((f1-7 81920.0)) + (b! (>= (* f1-7 f1-7) f0-3) cfg-18) ) - (vehicle-method-121 obj) - (vehicle-method-106 obj) - (b! #t cfg-36 :delay (nop!)) - (label cfg-31) - (let* ((v1-65 (-> *perf-stats* data 20)) - (a0-18 (-> v1-65 ctrl)) - ) - (+! (-> v1-65 count) 1) - (b! (zero? a0-18) cfg-33 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-18) + (b! (not (logtest? (-> obj draw status) (draw-control-status on-screen))) cfg-11 :delay (nop!)) + (set! (-> obj state-time) (current-time)) + (b! #t cfg-17 :delay (nop!)) + (label cfg-11) + (if (or (>= (- (current-time) (-> obj state-time)) (seconds 10)) (let ((f1-10 409600.0)) + (< (* f1-10 f1-10) f0-3) + ) + ) + (vehicle-method-113 obj) + ) + ) + (label cfg-17) + (b! #t cfg-19 :delay (nop!)) + (label cfg-18) + (set! (-> obj state-time) (current-time)) + (label cfg-19) + 0 + (label cfg-20) + (check-player-get-on obj) + (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-24 :delay (nop!)) + (if (not (vehicle-method-105 obj)) + (rigid-body-object-method-39 obj) ) + (b! #t cfg-26 :delay (nop!)) + (label cfg-24) + (if (vehicle-method-105 obj) + (rigid-body-object-method-38 obj) + ) + (label cfg-26) + (b! (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) cfg-31 :delay (nop!)) + (vector-reset! (-> obj target-acceleration)) + (when (logtest? (-> obj flags) (rigid-body-object-flag disturbed)) + (if (logtest? (-> obj flags) (rigid-body-object-flag in-air)) + (set! (-> obj disturbed-time) (current-time)) + ) + ) + (vehicle-method-121 obj) + (vehicle-method-106 obj) + (b! #t cfg-36 :delay (nop!)) + (label cfg-31) + (let* ((v1-65 (-> *perf-stats* data 20)) + (a0-18 (-> v1-65 ctrl)) + ) + (+! (-> v1-65 count) 1) + (b! (zero? a0-18) cfg-33 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-33) - 0 - (vehicle-method-120 obj) - (let ((v1-70 (-> *perf-stats* data 20))) - (b! (zero? (-> v1-70 ctrl)) cfg-35 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-21 pcr0) - (+! (-> v1-70 accum0) a0-21) - (.mfpc a0-23 pcr1) - (+! (-> v1-70 accum1) a0-23) - ) - (label cfg-35) - 0 - (label cfg-36) - 0 - (none) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-18) ) + (.sync.l) + (.sync.p) + (label cfg-33) + 0 + (vehicle-method-120 obj) + (let ((v1-70 (-> *perf-stats* data 20))) + (b! (zero? (-> v1-70 ctrl)) cfg-35 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-21 pcr0) + (+! (-> v1-70 accum0) a0-21) + (.mfpc a0-23 pcr1) + (+! (-> v1-70 accum1) a0-23) + ) + (label cfg-35) + 0 + (label cfg-36) + 0 + (none) ) ;; definition for method 122 of type vehicle @@ -1547,154 +1535,152 @@ ;; INFO: Used lq/sq (defmethod rigid-body-object-method-47 vehicle ((obj vehicle) (arg0 process-drawable) (arg1 attack-info) (arg2 touching-shapes-entry) (arg3 penetrate)) (local-vars (f0-2 float) (sv-96 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'matrix))) - (rigid-body-object-method-49 obj (the-as rigid-body-impact s5-0) arg2) - (cond - ((logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) - (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) - ) - (else - (let ((s0-0 arg0)) - (cond - ((if (type? s0-0 process-focusable) - (the-as process-focusable s0-0) - ) - (set! sv-96 (-> s5-0 vector 2)) - (let ((s0-1 (-> s5-0 vector)) - (v1-7 (get-trans (the-as process-focusable arg0) 3)) - ) - (.lvf vf4 (&-> s0-1 0 quad)) - (.lvf vf5 (&-> v1-7 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (rigid-body-object-method-49 obj (the-as rigid-body-impact s5-0) arg2) + (cond + ((logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) + (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) + ) + (else + (let ((s0-0 arg0)) + (cond + ((if (type? s0-0 process-focusable) + (the-as process-focusable s0-0) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-96 quad) vf6) + (set! sv-96 (-> s5-0 vector 2)) + (let ((s0-1 (-> s5-0 vector)) + (v1-7 (get-trans (the-as process-focusable arg0) 3)) + ) + (.lvf vf4 (&-> s0-1 0 quad)) + (.lvf vf5 (&-> v1-7 quad)) ) - (else - (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) - ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-96 quad) vf6) + ) + (else + (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) ) ) ) ) - 0.0 - 0.0 - (let ((f1-0 (cond - ((= (-> arg1 mode) 'mine) - (set! f0-2 20480.0) - 0.2 - ) - ((or (logtest? (penetrate dark-giant) arg3) - (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (= (-> arg1 mode) 'eco-dark)) - ) - (set! (-> s5-0 vector 2 y) (* 0.1 (-> s5-0 vector 2 y))) - (set! f0-2 (* 409600.0 (-> obj info-override info mass))) - (/ 0.4 (-> obj info-override damage-factor)) - ) - ((or (logtest? (penetrate dark-punch dark-bomb) arg3) - (and (logtest? (penetrate dark-skin) arg3) (logtest? arg3 (penetrate punch spin))) - ) - (set! f0-2 (* 204800.0 (-> obj info-override info mass))) - (/ 0.2 (-> obj info-override damage-factor)) - ) - ((logtest? (penetrate enemy-yellow-shot) arg3) - (set! f0-2 49152.0) - 0.025 - ) - ((logtest? (penetrate jak-yellow-shot) arg3) - (set! f0-2 98304.0) - 0.05 - ) - ((logtest? (penetrate jak-blue-shot) arg3) - (set! f0-2 196608.0) - 0.05 - ) - ((logtest? (penetrate jak-red-shot) arg3) - (set! f0-2 196608.0) - 0.05 - ) - ((logtest? (penetrate jak-dark-shot enemy-dark-shot) arg3) - (set! f0-2 393216.0) - 0.5 - ) - ((or (logtest? (penetrate explode) arg3) - (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (case (-> arg1 mode) - (('explode 'grenade 'melt 'ice) - #t - ) - ) - ) - ) - (set! f0-2 122880.0) - 1.0 - ) - ((logtest? arg3 (penetrate punch)) - (set! f0-2 40960.0) - 0.1 - ) - ((logtest? arg3 (penetrate flop spin)) - (set! f0-2 20480.0) - 0.05 - ) - (else - (set! f0-2 8192.0) - 0.01 - ) + ) + 0.0 + 0.0 + (let ((f1-0 (cond + ((= (-> arg1 mode) 'mine) + (set! f0-2 20480.0) + 0.2 + ) + ((or (logtest? (penetrate dark-giant) arg3) + (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (= (-> arg1 mode) 'eco-dark)) + ) + (set! (-> s5-0 vector 2 y) (* 0.1 (-> s5-0 vector 2 y))) + (set! f0-2 (* 409600.0 (-> obj info-override info mass))) + (/ 0.4 (-> obj info-override damage-factor)) + ) + ((or (logtest? (penetrate dark-punch dark-bomb) arg3) + (and (logtest? (penetrate dark-skin) arg3) (logtest? arg3 (penetrate punch spin))) + ) + (set! f0-2 (* 204800.0 (-> obj info-override info mass))) + (/ 0.2 (-> obj info-override damage-factor)) + ) + ((logtest? (penetrate enemy-yellow-shot) arg3) + (set! f0-2 49152.0) + 0.025 + ) + ((logtest? (penetrate jak-yellow-shot) arg3) + (set! f0-2 98304.0) + 0.05 + ) + ((logtest? (penetrate jak-blue-shot) arg3) + (set! f0-2 196608.0) + 0.05 + ) + ((logtest? (penetrate jak-red-shot) arg3) + (set! f0-2 196608.0) + 0.05 + ) + ((logtest? (penetrate jak-dark-shot enemy-dark-shot) arg3) + (set! f0-2 393216.0) + 0.5 + ) + ((or (logtest? (penetrate explode) arg3) + (and (logtest? (-> arg1 mask) (attack-info-mask mode)) (case (-> arg1 mode) + (('explode 'grenade 'melt 'ice) + #t + ) + ) + ) + ) + (set! f0-2 122880.0) + 1.0 + ) + ((logtest? arg3 (penetrate punch)) + (set! f0-2 40960.0) + 0.1 + ) + ((logtest? arg3 (penetrate flop spin)) + (set! f0-2 20480.0) + 0.05 + ) + (else + (set! f0-2 8192.0) + 0.01 ) ) - ) - (set! (-> s5-0 trans x) f0-2) - (apply-damage obj (* 0.667 f1-0) (the-as rigid-body-impact s5-0)) - ) - (rigid-body-object-method-42 obj) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s5-0 vector 2 quad)) - (vector-normalize! s3-1 1.0) - (vector-float*! s3-1 s3-1 (-> s5-0 trans x)) - (let ((v1-90 (-> obj rbody)) - (a1-11 (-> s5-0 vector)) - (a2-3 s3-1) - ) - (rigid-body-method-18 (-> v1-90 state) (the-as vector a1-11) a2-3) + ) ) - (let ((v1-93 (-> obj rbody)) - (f0-10 1.0) - ) - (rigid-body-method-12 (-> v1-93 state) f0-10) - ) - (rigid-body-method-13 (-> obj rbody state)) - (when #f - (set! (-> *debug-vehicle-work* impact-time) (-> pp clock frame-counter)) - (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) - (let ((v1-103 (-> arg2 head))) - (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-103 prim1 cprim prim-core world-sphere quad)) - (set! (-> *debug-vehicle-work* prim-sphere2 quad) (-> v1-103 prim2 cprim prim-core world-sphere quad)) - ) - (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (the-as vector (-> s5-0 vector)) - s3-1 - (meters 0.00024414062) - *color-blue* - ) - ) - ) - (rigid-body-object-method-45 obj (the-as rigid-body-impact s5-0)) + (set! (-> s5-0 trans x) f0-2) + (apply-damage obj (* 0.667 f1-0) (the-as rigid-body-impact s5-0)) ) - (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) - (go (method-of-object obj waiting)) + (rigid-body-object-method-42 obj) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s5-0 vector 2 quad)) + (vector-normalize! s3-1 1.0) + (vector-float*! s3-1 s3-1 (-> s5-0 trans x)) + (let ((v1-90 (-> obj rbody)) + (a1-11 (-> s5-0 vector)) + (a2-3 s3-1) + ) + (rigid-body-method-18 (-> v1-90 state) (the-as vector a1-11) a2-3) ) - #t + (let ((v1-93 (-> obj rbody)) + (f0-10 1.0) + ) + (rigid-body-method-12 (-> v1-93 state) f0-10) + ) + (rigid-body-method-13 (-> obj rbody state)) + (when #f + (set! (-> *debug-vehicle-work* impact-time) (current-time)) + (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) + (let ((v1-103 (-> arg2 head))) + (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-103 prim1 cprim prim-core world-sphere quad)) + (set! (-> *debug-vehicle-work* prim-sphere2 quad) (-> v1-103 prim2 cprim prim-core world-sphere quad)) + ) + (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector (-> s5-0 vector)) + s3-1 + (meters 0.00024414062) + *color-blue* + ) + ) + ) + (rigid-body-object-method-45 obj (the-as rigid-body-impact s5-0)) ) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (go (method-of-object obj waiting)) + ) + #t ) ) @@ -1744,8 +1730,8 @@ (set! v1-30 (!= arg0 *target*)) (label cfg-13) (b! (not v1-30) cfg-25 :delay (empty-form)) - (when (>= (- (-> pp clock frame-counter) (-> obj sent-attack-time)) (seconds 0.5)) - (set! (-> obj sent-attack-time) (-> pp clock frame-counter)) + (when (>= (- (current-time) (-> obj sent-attack-time)) (seconds 0.5)) + (set! (-> obj sent-attack-time) (current-time)) (let* ((v1-39 *game-info*) (a0-18 (+ (-> v1-39 attack-id) 1)) ) @@ -1794,7 +1780,7 @@ ) (rigid-body-method-13 (-> obj rbody state)) (when #f - (set! (-> *debug-vehicle-work* impact-time) (-> pp clock frame-counter)) + (set! (-> *debug-vehicle-work* impact-time) (current-time)) (mem-copy! (the-as pointer (-> *debug-vehicle-work* impact)) (the-as pointer s5-0) 64) (let ((v1-73 (-> arg1 head))) (set! (-> *debug-vehicle-work* prim-sphere1 quad) (-> v1-73 prim1 cprim prim-core world-sphere quad)) @@ -1903,7 +1889,7 @@ ) ((= v1-19 'turbo-ring) (set! (-> obj turbo-boost-factor) (the-as float (-> arg3 param 0))) - (set! (-> obj turbo-boost-time) (-> self clock frame-counter)) + (set! (-> obj turbo-boost-time) (current-time)) (set! (-> obj turbo-boost-duration) (the-as uint 75)) (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) diff --git a/test/decompiler/reference/jak2/levels/city/farm/ctyfarm-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/farm/ctyfarm-obs_REF.gc index 3c0e1fe552..51056ccc1f 100644 --- a/test/decompiler/reference/jak2/levels/city/farm/ctyfarm-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/farm/ctyfarm-obs_REF.gc @@ -953,21 +953,19 @@ ;; definition for method 9 of type shaker ;; WARN: Return type mismatch float vs none. (defmethod shaker-method-9 shaker ((obj shaker)) - (with-pp - (let ((s5-0 (- (-> pp clock frame-counter) (-> obj start-time)))) - (set! (-> obj shake) (* (-> obj amplitude) - (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj decay-time)) - (cos (* 65536.0 (/ (the float s5-0) (-> obj freq)))) + (let ((s5-0 (- (current-time) (-> obj start-time)))) + (set! (-> obj shake) (* (-> obj amplitude) + (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj decay-time)) + (cos (* 65536.0 (/ (the float s5-0) (-> obj freq)))) + ) + ) + (set! (-> obj y-shake) (* (-> obj y-amplitude) + (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj y-decay-time)) + (cos (* 65536.0 (/ (the float s5-0) (-> obj y-freq)))) ) - ) - (set! (-> obj y-shake) (* (-> obj y-amplitude) - (lerp-scale 1.0 0.0 (the float s5-0) 0.0 (-> obj y-decay-time)) - (cos (* 65536.0 (/ (the float s5-0) (-> obj y-freq)))) - ) - ) - ) - (none) + ) ) + (none) ) ;; definition for function pu->knocked-type @@ -1068,27 +1066,23 @@ ;; definition for function farm-marrow-callback ;; WARN: Return type mismatch int vs none. (defun farm-marrow-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-marrow (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-marrow (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -1146,7 +1140,7 @@ ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1159,7 +1153,7 @@ ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 450.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 1820.4445) @@ -1172,7 +1166,7 @@ ) (let ((v1-16 (-> self shakers 2))) (set! (-> v1-16 axis quad) (-> gp-4 quad)) - (set! (-> v1-16 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-16 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-16 decay-time) 600.0) (set! (-> v1-16 freq) 150.0) (set! (-> v1-16 amplitude) 1820.4445) @@ -1185,7 +1179,7 @@ ) (let ((v1-19 (-> self shakers 3))) (set! (-> v1-19 axis quad) (-> gp-4 quad)) - (set! (-> v1-19 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-19 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-19 decay-time) 300.0) (set! (-> v1-19 freq) 150.0) (set! (-> v1-19 amplitude) 910.2222) @@ -1200,7 +1194,7 @@ ) (let ((v1-22 (-> self shakers 4))) (set! (-> v1-22 axis quad) (-> gp-4 quad)) - (set! (-> v1-22 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-22 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-22 decay-time) 600.0) (set! (-> v1-22 freq) 150.0) (set! (-> v1-22 amplitude) 910.2222) @@ -1399,27 +1393,23 @@ This commonly includes things such as: ;; definition for function farm-beetree-callback ;; WARN: Return type mismatch int vs none. (defun farm-beetree-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-beetree (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-beetree (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -1477,7 +1467,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1490,7 +1480,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 600.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 364.0889) @@ -1684,27 +1674,23 @@ This commonly includes things such as: ;; definition for function farm-cabbage-callback ;; WARN: Return type mismatch int vs none. (defun farm-cabbage-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-cabbage (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-cabbage (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -1762,7 +1748,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -1775,7 +1761,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 600.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 364.0889) @@ -1971,27 +1957,23 @@ This commonly includes things such as: ;; definition for function farm-small-cabbage-callback ;; WARN: Return type mismatch int vs none. (defun farm-small-cabbage-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-small-cabbage (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-small-cabbage (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -2049,7 +2031,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 910.2222) @@ -2243,27 +2225,23 @@ This commonly includes things such as: ;; definition for function farm-chilirots-callback ;; WARN: Return type mismatch int vs none. (defun farm-chilirots-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((s4-0 (the-as farm-chilirots (-> arg0 param1))) - (s3-0 (the-as int (-> arg0 param2))) - ) - (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - (the-as vector (-> s4-0 shakers s3-0)) - (-> s4-0 shakers s3-0 shake) - ) - ) - (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) - (if (< (the int (-> s4-0 shakers s3-0 decay-time)) - (- (-> pp clock frame-counter) (-> s4-0 shakers s3-0 start-time)) - ) - (set! (-> arg0 param0) #f) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (let ((s4-0 (the-as farm-chilirots (-> arg0 param1))) + (s3-0 (the-as int (-> arg0 param2))) + ) + (quaternion*! (-> arg1 quat) (-> arg1 quat) (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + (the-as vector (-> s4-0 shakers s3-0)) + (-> s4-0 shakers s3-0 shake) + ) + ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (-> s4-0 shakers s3-0 y-shake)) + (if (< (the int (-> s4-0 shakers s3-0 decay-time)) (- (current-time) (-> s4-0 shakers s3-0 start-time))) + (set! (-> arg0 param0) #f) + ) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -2321,7 +2299,7 @@ This commonly includes things such as: ) (let ((v1-10 (-> self shakers))) (set! (-> v1-10 0 axis quad) (-> gp-4 quad)) - (set! (-> v1-10 0 start-time) (-> self clock frame-counter)) + (set! (-> v1-10 0 start-time) (current-time)) (set! (-> v1-10 0 decay-time) 300.0) (set! (-> v1-10 0 freq) 150.0) (set! (-> v1-10 0 amplitude) 1820.4445) @@ -2334,7 +2312,7 @@ This commonly includes things such as: ) (let ((v1-13 (-> self shakers 1))) (set! (-> v1-13 axis quad) (-> gp-4 quad)) - (set! (-> v1-13 start-time) (+ (-> self clock frame-counter) (seconds -0.06))) + (set! (-> v1-13 start-time) (+ (current-time) (seconds -0.06))) (set! (-> v1-13 decay-time) 450.0) (set! (-> v1-13 freq) 150.0) (set! (-> v1-13 amplitude) 1820.4445) @@ -2349,7 +2327,7 @@ This commonly includes things such as: ) (let ((v1-16 (-> self shakers 2))) (set! (-> v1-16 axis quad) (-> gp-4 quad)) - (set! (-> v1-16 start-time) (+ (-> self clock frame-counter) (seconds -0.12))) + (set! (-> v1-16 start-time) (+ (current-time) (seconds -0.12))) (set! (-> v1-16 decay-time) 600.0) (set! (-> v1-16 freq) 150.0) (set! (-> v1-16 amplitude) 1820.4445) @@ -2364,7 +2342,7 @@ This commonly includes things such as: ) (let ((v1-19 (-> self shakers 3))) (set! (-> v1-19 axis quad) (-> gp-4 quad)) - (set! (-> v1-19 start-time) (+ (-> self clock frame-counter) (seconds -0.18))) + (set! (-> v1-19 start-time) (+ (current-time) (seconds -0.18))) (set! (-> v1-19 decay-time) 750.0) (set! (-> v1-19 freq) 150.0) (set! (-> v1-19 amplitude) 1820.4445) diff --git a/test/decompiler/reference/jak2/levels/city/farm/yakow_REF.gc b/test/decompiler/reference/jak2/levels/city/farm/yakow_REF.gc index e4ee75e68f..4347f1ad69 100644 --- a/test/decompiler/reference/jak2/levels/city/farm/yakow_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/farm/yakow_REF.gc @@ -315,7 +315,7 @@ ) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -327,7 +327,7 @@ (defstate active (yakow) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (< (the-as int (-> self focus aware)) 1) (go-virtual idle) ) @@ -452,7 +452,7 @@ (set! (-> v1-0 nav callback-info) *nav-enemy-null-callback-info*) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/test/decompiler/reference/jak2/levels/city/kid_escort/crocesc-states_REF.gc b/test/decompiler/reference/jak2/levels/city/kid_escort/crocesc-states_REF.gc index 182ebb5a56..964b8a1df8 100644 --- a/test/decompiler/reference/jak2/levels/city/kid_escort/crocesc-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kid_escort/crocesc-states_REF.gc @@ -9,7 +9,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -171,7 +171,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -230,7 +230,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -257,12 +257,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (go-idle-or-move self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -299,7 +297,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -329,12 +327,10 @@ (logclear! (-> self bot-flags) (bot-flags bf15)) (go-idle-or-move self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -397,7 +393,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -575,7 +571,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -662,7 +658,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -833,7 +829,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -851,7 +847,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) (none) @@ -878,7 +874,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -961,7 +957,7 @@ 0.0 (until #f (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1010,7 +1006,7 @@ (defstate failed (crocadog-escort) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1029,7 +1025,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (not (logtest? (bot-flags bf19) (-> self bot-flags))) (set! (-> self bot-flags) (logior (bot-flags bf19) (-> self bot-flags))) (fail-mission! self) @@ -1049,7 +1045,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/city/kid_escort/hal4-course_REF.gc b/test/decompiler/reference/jak2/levels/city/kid_escort/hal4-course_REF.gc index 56c28ec0fd..4a69591e76 100644 --- a/test/decompiler/reference/jak2/levels/city/kid_escort/hal4-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kid_escort/hal4-course_REF.gc @@ -125,25 +125,23 @@ (defmethod general-event-handler hal-escort ((obj hal-escort) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('notify) - (case (-> arg3 param 0) - (('arrest) - (set! (-> obj arrestor-handle) (process->handle (the-as process (-> arg3 param 1)))) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj arrestor-time) (the-as time-frame v0-0)) - v0-0 - ) + (case arg2 + (('notify) + (case (-> arg3 param 0) + (('arrest) + (set! (-> obj arrestor-handle) (process->handle (the-as process (-> arg3 param 1)))) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj arrestor-time) (the-as time-frame v0-0)) + v0-0 ) - (else - ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type hal general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -162,50 +160,48 @@ ;; definition for method 235 of type hal-escort (defmethod hal-escort-method-235 hal-escort ((obj hal-escort)) - (with-pp - (let* ((s5-0 (handle->process (-> obj arrestor-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) - ) - (when v1-3 - (cond - ((>= (- (-> pp clock frame-counter) (-> obj arrestor-time)) (seconds 4)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ((focus-test? (the-as process-focusable v1-3) hit) - (when (and (>= (- (-> pp clock frame-counter) (-> obj played-defend-time)) (seconds 6)) - (not (channel-active? obj (the-as uint 0))) - ) - (let ((a1-5 (bot-speech-list-method-9 - (-> obj hal4-course defend-speeches) - obj - (-> obj hal4-course speeches) - (speech-flags) - ) - ) + (let* ((s5-0 (handle->process (-> obj arrestor-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 ) - (when (>= a1-5 0) - (play-speech obj a1-5) - (set! (-> obj played-defend-time) (-> pp clock frame-counter)) + ) + ) + (when v1-3 + (cond + ((>= (- (current-time) (-> obj arrestor-time)) (seconds 4)) + (set! (-> obj arrestor-handle) (the-as handle #f)) + ) + ((focus-test? (the-as process-focusable v1-3) hit) + (when (and (>= (- (current-time) (-> obj played-defend-time)) (seconds 6)) + (not (channel-active? obj (the-as uint 0))) + ) + (let ((a1-5 (bot-speech-list-method-9 + (-> obj hal4-course defend-speeches) + obj + (-> obj hal4-course speeches) + (speech-flags) + ) + ) ) + (when (>= a1-5 0) + (play-speech obj a1-5) + (set! (-> obj played-defend-time) (current-time)) ) ) - (set! (-> obj arrestor-handle) (the-as handle #f)) ) - ) + (set! (-> obj arrestor-handle) (the-as handle #f)) + ) ) ) - (if (and (not (speech-playing? obj 30)) - (nonzero? (-> obj played-defend-time)) - (>= (- (-> pp clock frame-counter) (-> obj played-defend-time)) (seconds 3)) - (not (channel-active? obj (the-as uint 0))) - ) - (play-speech obj 30) - ) - (none) ) + (if (and (not (speech-playing? obj 30)) + (nonzero? (-> obj played-defend-time)) + (>= (- (current-time) (-> obj played-defend-time)) (seconds 3)) + (not (channel-active? obj (the-as uint 0))) + ) + (play-speech obj 30) + ) + (none) ) ;; definition for method 236 of type hal-escort @@ -217,38 +213,36 @@ ;; definition for method 227 of type hal-escort (defmethod hal-escort-method-227 hal-escort ((obj hal-escort)) - (with-pp - (let ((s5-0 *target*)) - (when (focus-test? s5-0 pilot-riding pilot) - (let* ((a0-2 (-> obj actor-group 0 data 1 actor)) - (v1-5 (when a0-2 - (let ((s4-0 (-> a0-2 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (let ((s5-0 *target*)) + (when (focus-test? s5-0 pilot-riding pilot) + (let* ((a0-2 (-> obj actor-group 0 data 1 actor)) + (v1-5 (when a0-2 + (let ((s4-0 (-> a0-2 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - ) - (when (focus-test? (the-as process-focusable v1-5) pilot-riding pilot) - (let* ((v1-12 (-> obj actor-group 0 data 2 actor)) - (a0-5 (when v1-12 - (let ((s4-1 (-> v1-12 extra process))) - (if (type? s4-1 process-focusable) - s4-1 - ) - ) + ) + ) + (when (focus-test? (the-as process-focusable v1-5) pilot-riding pilot) + (let* ((v1-12 (-> obj actor-group 0 data 2 actor)) + (a0-5 (when v1-12 + (let ((s4-1 (-> v1-12 extra process))) + (if (type? s4-1 process-focusable) + s4-1 + ) ) ) - ) - (when (not (focus-test? (the-as process-focusable a0-5) pilot-riding pilot)) - (let ((f0-0 245760.0)) - (and (< (* f0-0 f0-0) - (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-5) 0) (get-trans s5-0 0)) - ) - (>= (-> pp clock frame-counter) (-> obj dont-fail-until)) ) - ) + ) + (when (not (focus-test? (the-as process-focusable a0-5) pilot-riding pilot)) + (let ((f0-0 245760.0)) + (and (< (* f0-0 f0-0) + (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-5) 0) (get-trans s5-0 0)) + ) + (>= (current-time) (-> obj dont-fail-until)) + ) ) ) ) @@ -261,32 +255,30 @@ ;; definition for method 228 of type hal-escort ;; WARN: Return type mismatch object vs symbol. (defmethod hal-escort-method-228 hal-escort ((obj hal-escort)) - (with-pp - (let* ((v1-3 (-> obj actor-group 0 data 1 actor)) - (a0-1 (when v1-3 - (let ((s5-0 (-> v1-3 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((v1-3 (-> obj actor-group 0 data 1 actor)) + (a0-1 (when v1-3 + (let ((s5-0 (-> v1-3 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) ) ) - (s5-1 *target*) - ) - (the-as - symbol - (and a0-1 - (and s5-1 - (let ((f0-0 409600.0)) - (and (< (* f0-0 f0-0) - (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (get-trans s5-1 0)) - ) - (>= (-> pp clock frame-counter) (-> obj dont-fail-until)) - ) - ) + ) + (s5-1 *target*) + ) + (the-as + symbol + (and a0-1 + (and s5-1 + (let ((f0-0 409600.0)) + (and (< (* f0-0 f0-0) + (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (get-trans s5-1 0)) + ) + (>= (current-time) (-> obj dont-fail-until)) + ) ) - ) - ) + ) + ) ) ) ) @@ -396,60 +388,58 @@ ;; definition for method 232 of type hal-escort ;; WARN: Return type mismatch int vs none. (defmethod hal-escort-method-232 hal-escort ((obj hal-escort)) - (with-pp - (let* ((target *target*) - (v1-3 (-> obj actor-group 0 data 1 actor)) - (s5-0 (when v1-3 - (let ((s3-0 (-> v1-3 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((target *target*) + (v1-3 (-> obj actor-group 0 data 1 actor)) + (s5-0 (when v1-3 + (let ((s3-0 (-> v1-3 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - (a0-2 (-> obj actor-group 0 data 2 actor)) - (v1-8 (when a0-2 - (let ((s3-1 (-> a0-2 extra process))) - (if (type? s3-1 process-focusable) - s3-1 - ) - ) + ) + (a0-2 (-> obj actor-group 0 data 2 actor)) + (v1-8 (when a0-2 + (let ((s3-1 (-> a0-2 extra process))) + (if (type? s3-1 process-focusable) + s3-1 + ) ) ) + ) + ) + (when target + (cond + ((not (-> *setting-control* user-current pilot-exit)) + (when (and s5-0 + v1-8 + (not (focus-test? (the-as process-focusable s5-0) pilot-riding)) + (not (focus-test? (the-as process-focusable v1-8) pilot-riding)) + (>= (- (current-time) (-> obj locked-player-time)) (seconds 10)) + ) + (remove-setting! 'pilot-exit) + (set-setting! 'pilot #f 0.0 0) + (apply-settings *setting-control*) ) - (when target - (cond - ((not (-> *setting-control* user-current pilot-exit)) - (when (and s5-0 - v1-8 - (not (focus-test? (the-as process-focusable s5-0) pilot-riding)) - (not (focus-test? (the-as process-focusable v1-8) pilot-riding)) - (>= (- (-> pp clock frame-counter) (-> obj locked-player-time)) (seconds 10)) - ) - (remove-setting! 'pilot-exit) - (set-setting! 'pilot #f 0.0 0) - (apply-settings *setting-control*) - ) + ) + ((focus-test? target pilot-riding) + (when (and (nonzero? (-> target pilot)) + (and (= (handle->process (-> target pilot vehicle)) (handle->process (-> obj vehicle-handle))) + (or (and s5-0 (focus-test? (the-as process-focusable s5-0) pilot)) + (and v1-8 (focus-test? (the-as process-focusable v1-8) pilot)) + ) + ) + ) + (set-setting! 'pilot-exit #f 0.0 0) + (apply-settings *setting-control*) + (set! (-> obj locked-player-time) (current-time)) ) - ((focus-test? target pilot-riding) - (when (and (nonzero? (-> target pilot)) - (and (= (handle->process (-> target pilot vehicle)) (handle->process (-> obj vehicle-handle))) - (or (and s5-0 (focus-test? (the-as process-focusable s5-0) pilot)) - (and v1-8 (focus-test? (the-as process-focusable v1-8) pilot)) - ) - ) - ) - (set-setting! 'pilot-exit #f 0.0 0) - (apply-settings *setting-control*) - (set! (-> obj locked-player-time) (-> pp clock frame-counter)) - ) - ) - ) + ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 231 of type hal-escort @@ -1024,36 +1014,34 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (if (and (not (speech-playing? arg1 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 3) - ) - (when (hal-escort-method-228 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 28 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) + (if (and (not (speech-playing? arg1 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 3) ) - (when (speech-playing? arg1 3) - (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) - (a0-11 (when v1-27 - (let ((s5-0 (-> v1-27 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (when (hal-escort-method-228 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 28 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (when (speech-playing? arg1 3) + (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) + (a0-11 (when v1-27 + (let ((s5-0 (-> v1-27 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) ) ) - ) - (when (and a0-11 (>= (the-as int (send-event a0-11 'query 'waypoint)) 6)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 6 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + ) + ) + (when (and a0-11 (>= (the-as int (send-event a0-11 'query 'waypoint)) 6)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 6 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1219,36 +1207,34 @@ ) :on-update (lambda ((arg0 hal-escort)) (set-traffic-danger! arg0) (hal-escort-method-235 arg0) (none)) :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 10))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip0")) - (let* ((v1-16 (-> arg0 actor-group 0 data 2 actor)) - (s5-1 (when v1-16 - (let ((s4-0 (-> v1-16 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 10))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip0")) + (let* ((v1-16 (-> arg0 actor-group 0 data 2 actor)) + (s5-1 (when v1-16 + (let ((s4-0 (-> v1-16 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-21 (-> arg0 actor-group 0 data 1 actor)) - (s4-1 (when v1-21 - (let ((s3-0 (-> v1-21 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + ) + (v1-21 (-> arg0 actor-group 0 data 1 actor)) + (s4-1 (when v1-21 + (let ((s3-0 (-> v1-21 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - ) - (send-event s5-1 'skip) - (send-event s4-1 'skip) - ) - (init-traffic-params! arg0 #f) - (none) + ) + ) + (send-event s5-1 'skip) + (send-event s4-1 'skip) ) + (init-traffic-params! arg0 #f) + (none) ) :check-too-far #f ) @@ -1271,90 +1257,88 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (hal-escort-method-232 arg1) - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (not (-> *setting-control* user-current pilot-exit))) - (send-event (handle->process (-> arg1 arrow-handle)) 'set-position (-> arg1 hal4-course spots 6)) - (logior! (-> arg1 waypoint-bits) 1) - ) - (if (and (not (speech-playing? arg1 14)) - (not (-> *setting-control* user-current pilot-exit)) - (>= (- (-> pp clock frame-counter) (-> arg1 locked-player-time)) (seconds 1.5)) - ) - (play-speech arg1 14) - ) - (when (vehicle-destroyed? arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 29 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (let* ((v1-45 (-> arg1 actor-group 0 data 1 actor)) - (s5-0 (when v1-45 - (let ((s4-0 (-> v1-45 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - ) - (v1-50 (-> arg1 actor-group 0 data 2 actor)) - (s4-1 (when v1-50 - (let ((s3-0 (-> v1-50 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) + (hal-escort-method-232 arg1) + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (not (-> *setting-control* user-current pilot-exit))) + (send-event (handle->process (-> arg1 arrow-handle)) 'set-position (-> arg1 hal4-course spots 6)) + (logior! (-> arg1 waypoint-bits) 1) + ) + (if (and (not (speech-playing? arg1 14)) + (not (-> *setting-control* user-current pilot-exit)) + (>= (- (current-time) (-> arg1 locked-player-time)) (seconds 1.5)) ) - (let ((s3-1 #f)) - (let* ((s1-0 (handle->process (-> arg1 vehicle-handle))) - (s2-0 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when s2-0 - (let ((s1-1 (get-trans (the-as process-focusable s2-0) 0)) - (s0-0 (-> arg1 hal4-course spots 7)) - ) - (if (and (>= (-> arg1 hal4-course spots 7 center w) (vector-vector-xz-distance s1-1 (the-as vector s0-0))) - (>= 16384.0 (- (-> s1-1 y) (-> s0-0 center y))) - (>= 61440.0 (vector-length (-> (the-as process-focusable s2-0) root-override transv))) - (>= 1.0 (vector-length (-> (the-as process-focusable s2-0) rbody state ang-velocity))) + (play-speech arg1 14) + ) + (when (vehicle-destroyed? arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 29 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (let* ((v1-45 (-> arg1 actor-group 0 data 1 actor)) + (s5-0 (when v1-45 + (let ((s4-0 (-> v1-45 extra process))) + (if (type? s4-0 process-focusable) + s4-0 ) - (set! s3-1 #t) - ) - ) + ) + ) + ) + (v1-50 (-> arg1 actor-group 0 data 2 actor)) + (s4-1 (when v1-50 + (let ((s3-0 (-> v1-50 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (let ((s3-1 #f)) + (let* ((s1-0 (handle->process (-> arg1 vehicle-handle))) + (s2-0 (if (type? s1-0 process-focusable) + s1-0 + ) + ) + ) + (when s2-0 + (let ((s1-1 (get-trans (the-as process-focusable s2-0) 0)) + (s0-0 (-> arg1 hal4-course spots 7)) + ) + (if (and (>= (-> arg1 hal4-course spots 7 center w) (vector-vector-xz-distance s1-1 (the-as vector s0-0))) + (>= 16384.0 (- (-> s1-1 y) (-> s0-0 center y))) + (>= 61440.0 (vector-length (-> (the-as process-focusable s2-0) root-override transv))) + (>= 1.0 (vector-length (-> (the-as process-focusable s2-0) rbody state ang-velocity))) + ) + (set! s3-1 #t) + ) ) ) - (if (focus-test? (the-as process-focusable s5-0) pilot) - (send-event s5-0 'request 'exit-vehicle s3-1 1) - ) - (if (focus-test? (the-as process-focusable s5-0) pilot) - (send-event s4-1 'request 'exit-vehicle s3-1 1) - ) - (if (and (not (speech-playing? arg1 7)) - (not (focus-test? (the-as process-focusable s4-1) pilot-riding)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) - s3-1 - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 7) - ) - ) - (when (and (not (focus-test? (the-as process-focusable s4-1) pilot)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) - (not (focus-test? (the-as process-focusable s5-0) pilot)) - (not (logtest? (bot-flags bf17) (-> (the-as bot s5-0) bot-flags))) - ) - (send-event *target* 'end-mode) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 19 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (focus-test? (the-as process-focusable s5-0) pilot) + (send-event s5-0 'request 'exit-vehicle s3-1 1) + ) + (if (focus-test? (the-as process-focusable s5-0) pilot) + (send-event s4-1 'request 'exit-vehicle s3-1 1) + ) + (if (and (not (speech-playing? arg1 7)) + (not (focus-test? (the-as process-focusable s4-1) pilot-riding)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) + s3-1 + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 7) + ) + ) + (when (and (not (focus-test? (the-as process-focusable s4-1) pilot)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s4-1) bot-flags))) + (not (focus-test? (the-as process-focusable s5-0) pilot)) + (not (logtest? (bot-flags bf17) (-> (the-as bot s5-0) bot-flags))) + ) + (send-event *target* 'end-mode) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 19 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1364,45 +1348,43 @@ (none) ) :on-update (lambda ((arg0 hal-escort)) - (with-pp - (when (and (not (speech-playing? arg0 31)) (not (speech-playing? arg0 32))) - (let ((v1-7 (handle->process (-> arg0 vehicle-handle)))) - (if (and v1-7 - (and (not (logtest? (-> (the-as vehicle v1-7) flags) (rigid-body-object-flag dead))) - (>= (vector-length (-> (the-as vehicle v1-7) root-override-2 transv)) 40960.0) - (not (channel-active? arg0 (the-as uint 0))) - ) - ) - (play-speech arg0 (if (zero? (get-rand-int arg0 2)) - 32 - 31 + (when (and (not (speech-playing? arg0 31)) (not (speech-playing? arg0 32))) + (let ((v1-7 (handle->process (-> arg0 vehicle-handle)))) + (if (and v1-7 + (and (not (logtest? (-> (the-as vehicle v1-7) flags) (rigid-body-object-flag dead))) + (>= (vector-length (-> (the-as vehicle v1-7) root-override-2 transv)) 40960.0) + (not (channel-active? arg0 (the-as uint 0))) + ) + ) + (play-speech arg0 (if (zero? (get-rand-int arg0 2)) + 32 + 31 + ) + ) + ) + ) + ) + (when (and (zero? (-> arg0 locked-player-time)) + (or (not (speech-playing? arg0 33)) (not (speech-playing? arg0 34))) + (>= (- (current-time) (-> arg0 played-get-in-time)) (seconds 6)) + (not (channel-active? arg0 (the-as uint 0))) + ) + (let ((a0-18 (handle->process (-> arg0 vehicle-handle)))) + (when a0-18 + (let ((f0-1 (vector-vector-xz-distance (get-trans (the-as vehicle a0-18) 0) (target-pos 0)))) + (when (and (< 28672.0 f0-1) (< f0-1 184320.0)) + (play-speech arg0 (if (speech-playing? arg0 33) + 34 + 33 ) ) - ) - ) - ) - (when (and (zero? (-> arg0 locked-player-time)) - (or (not (speech-playing? arg0 33)) (not (speech-playing? arg0 34))) - (>= (- (-> pp clock frame-counter) (-> arg0 played-get-in-time)) (seconds 6)) - (not (channel-active? arg0 (the-as uint 0))) - ) - (let ((a0-18 (handle->process (-> arg0 vehicle-handle)))) - (when a0-18 - (let ((f0-1 (vector-vector-xz-distance (get-trans (the-as vehicle a0-18) 0) (target-pos 0)))) - (when (and (< 28672.0 f0-1) (< f0-1 184320.0)) - (play-speech arg0 (if (speech-playing? arg0 33) - 34 - 33 - ) - ) - (set! (-> arg0 played-get-in-time) (-> pp clock frame-counter)) - ) + (set! (-> arg0 played-get-in-time) (current-time)) ) ) ) ) - (none) ) + (none) ) :on-skipping-here #f :check-too-far #f @@ -1420,40 +1402,38 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (if (!= (level-status *level* 'ctyinda) 'active) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) - (let* ((v1-11 (-> arg1 actor-group 0 data 2 actor)) - (s5-1 (when v1-11 - (let ((s4-0 (-> v1-11 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - ) - (v1-16 (-> arg1 actor-group 0 data 1 actor)) - (s4-1 (when v1-16 - (let ((s3-0 (-> v1-16 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) - ) - (send-event s5-1 'hide #f) - (send-event s4-1 'hide #f) - (send-event s5-1 'skip) - (send-event s4-1 'skip) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 19 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (!= (level-status *level* 'ctyinda) 'active) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25)) + (let* ((v1-11 (-> arg1 actor-group 0 data 2 actor)) + (s5-1 (when v1-11 + (let ((s4-0 (-> v1-11 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + ) + (v1-16 (-> arg1 actor-group 0 data 1 actor)) + (s4-1 (when v1-16 + (let ((s3-0 (-> v1-16 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (send-event s5-1 'hide #f) + (send-event s4-1 'hide #f) + (send-event s5-1 'skip) + (send-event s4-1 'skip) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 19 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1463,38 +1443,36 @@ ) :on-update #f :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 15))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (let* ((v1-10 (-> arg0 actor-group 0 data 2 actor)) - (s5-0 (when v1-10 - (let ((s4-0 (-> v1-10 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 15))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (let* ((v1-10 (-> arg0 actor-group 0 data 2 actor)) + (s5-0 (when v1-10 + (let ((s4-0 (-> v1-10 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-15 (-> arg0 actor-group 0 data 1 actor)) - (s4-1 (when v1-15 - (let ((s3-0 (-> v1-15 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) + ) + (v1-15 (-> arg0 actor-group 0 data 1 actor)) + (s4-1 (when v1-15 + (let ((s3-0 (-> v1-15 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) ) ) - ) - (vector-reset! (-> (the-as process-focusable s5-0) root-override transv)) - (vector-reset! (-> (the-as process-focusable s4-1) root-override transv)) - (send-event s5-0 'hide #t) - (send-event s4-1 'hide #t) - ) - (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) - (none) + ) + ) + (vector-reset! (-> (the-as process-focusable s5-0) root-override transv)) + (vector-reset! (-> (the-as process-focusable s4-1) root-override transv)) + (send-event s5-0 'hide #t) + (send-event s4-1 'hide #t) ) + (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) + (none) ) :check-too-far #f ) @@ -1521,47 +1499,45 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) - (with-pp - (when (and (not (speech-playing? arg1 4)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (not (channel-active? arg1 (the-as uint 0))) + (when (and (not (speech-playing? arg1 4)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 15) + (play-speech arg1 4) + ) + (when (hal-escort-method-228 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 31 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) + (s4-0 (when v1-27 + (let ((s5-0 (-> v1-27 extra process))) + (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + ) + (v1-32 (-> arg1 actor-group 0 data 1 actor)) + (s5-1 (when v1-32 + (let ((s3-0 (-> v1-32 extra process))) + (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + ) + ) + (when (and (and s4-0 (>= (the-as int (send-event s4-0 'query 'waypoint)) 25)) + (and s5-1 (>= (the-as int (send-event s5-1 'query 'waypoint)) 25)) ) - (play-speech arg1 15) - (play-speech arg1 4) - ) - (when (hal-escort-method-228 arg1) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 31 #f) + (go-to-waypoint! arg1 25 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (let* ((v1-27 (-> arg1 actor-group 0 data 2 actor)) - (s4-0 (when v1-27 - (let ((s5-0 (-> v1-27 extra process))) - (if (type? s5-0 process-focusable) - s5-0 - ) - ) - ) - ) - (v1-32 (-> arg1 actor-group 0 data 1 actor)) - (s5-1 (when v1-32 - (let ((s3-0 (-> v1-32 extra process))) - (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - ) - ) - (when (and (and s4-0 (>= (the-as int (send-event s4-0 'query 'waypoint)) 25)) - (and s5-1 (>= (the-as int (send-event s5-1 'query 'waypoint)) 25)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 25 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + #t ) ) ) @@ -1577,36 +1553,34 @@ (none) ) :on-skipping-here (lambda ((arg0 hal-escort)) - (with-pp - (set! (-> arg0 dont-fail-until) (+ (-> pp clock frame-counter) (seconds 15))) - (reset-warn-time! arg0) - (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) - (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) - (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) - (let* ((v1-23 (-> arg0 actor-group 0 data 2 actor)) - (s5-1 (when v1-23 - (let ((s4-0 (-> v1-23 extra process))) - (if (type? s4-0 process-focusable) - s4-0 - ) - ) + (set! (-> arg0 dont-fail-until) (+ (current-time) (seconds 15))) + (reset-warn-time! arg0) + (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) + (send-event arg0 'move-trans (-> arg0 hal4-course spots 7)) + (send-event *target* 'continue (get-continue-by-name *game-info* "lkiddoge-skip1")) + (let* ((v1-23 (-> arg0 actor-group 0 data 2 actor)) + (s5-1 (when v1-23 + (let ((s4-0 (-> v1-23 extra process))) + (if (type? s4-0 process-focusable) + s4-0 + ) ) ) - (v1-28 (-> arg0 actor-group 0 data 1 actor)) - (gp-1 (when v1-28 - (let ((s4-1 (-> v1-28 extra process))) - (if (type? s4-1 process-focusable) - s4-1 - ) - ) + ) + (v1-28 (-> arg0 actor-group 0 data 1 actor)) + (gp-1 (when v1-28 + (let ((s4-1 (-> v1-28 extra process))) + (if (type? s4-1 process-focusable) + s4-1 + ) ) ) - ) - (send-event s5-1 'skip) - (send-event gp-1 'skip) - ) - (none) + ) + ) + (send-event s5-1 'skip) + (send-event gp-1 'skip) ) + (none) ) :check-too-far 'hal4-walking-too-far ) @@ -1764,7 +1738,7 @@ ) ) (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) ) (logior! (-> arg1 waypoint-bits) 2) (let ((s5-0 *traffic-manager*)) @@ -1775,7 +1749,7 @@ ) ) (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.2)) ) (let* ((v1-55 (-> arg1 actor-group 0 data 2 actor)) (s5-1 (when v1-55 @@ -1803,7 +1777,7 @@ (send-event s5-1 'request 'waypoint 26) ) ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "dig-knock-down-scaffolding-intro" #t) ) @@ -1905,7 +1879,7 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-escort)) (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) (set! (-> a1-1 num-params) 0) diff --git a/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc-states_REF.gc b/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc-states_REF.gc index a7555c4242..6335f892a2 100644 --- a/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -88,7 +88,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -151,7 +151,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -184,12 +184,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (check-arrest self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -224,7 +222,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -261,12 +259,10 @@ (logclear! (-> self bot-flags) (bot-flags bf15)) (check-arrest self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -327,7 +323,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -480,7 +476,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -567,7 +563,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -726,7 +722,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -751,7 +747,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (if (logtest? (-> self bot-flags) (bot-flags bf15)) (go-virtual move-to-vehicle) (go-virtual traveling) @@ -790,7 +786,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (when (not (nav-enemy-method-163 self)) (if (logtest? (-> self bot-flags) (bot-flags bf15)) (go-virtual move-to-vehicle) @@ -865,7 +861,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -954,7 +950,7 @@ (when (not (logtest? (bot-flags bf19) (-> self bot-flags))) (until #f (until (ja-done? 0) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2.5)) (goto cfg-27) ) (suspend) @@ -979,11 +975,11 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1036,7 +1032,7 @@ (until #f (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -1076,7 +1072,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid-escort) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc4-course_REF.gc b/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc4-course_REF.gc index 31b7fdddad..e83e53e7dc 100644 --- a/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc4-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kid_escort/kidesc4-course_REF.gc @@ -361,15 +361,13 @@ (the-as (function kidesct-wait-spot kid-escort symbol) (lambda ((arg0 object) (arg1 kid-escort)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (let ((v1-4 (-> arg1 spot))) - (set! (-> v1-4 center quad) (-> arg1 root-override2 trans quad)) - (set! (-> v1-4 center w) 20480.0) - ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (let ((v1-4 (-> arg1 spot))) + (set! (-> v1-4 center quad) (-> arg1 root-override2 trans quad)) + (set! (-> v1-4 center w) 20480.0) ) - #f ) + #f ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/market/ctymark-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/market/ctymark-obs_REF.gc index c5d54cd8f1..a1743684da 100644 --- a/test/decompiler/reference/jak2/levels/city/market/ctymark-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/market/ctymark-obs_REF.gc @@ -1099,8 +1099,8 @@ :to self ) (process-entity-status! self (entity-perm-status dead) #t) - (let ((frame (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame) (seconds 5)) + (let ((frame (current-time))) + (until (>= (- (current-time) frame) (seconds 5)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ash4-course_REF.gc b/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ash4-course_REF.gc index 9c4ee1d771..7c27e4ce6d 100644 --- a/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ash4-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ash4-course_REF.gc @@ -341,52 +341,50 @@ :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 ashelin-tanker)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (ashelin-method-250 arg0 #f) - (task-node-close! (game-task-node city-intercept-tanker-battle)) - (remove-setting! 'sound-mode) - (remove-setting! 'music) - (when (not (channel-active? arg0 (the-as uint 0))) - (let ((v1-12 (get-rand-int arg0 3))) - (cond - ((zero? v1-12) - (play-speech arg0 42) - ) - ((= v1-12 1) - (play-speech arg0 43) - ) - (else - (play-speech arg0 44) - ) + (set! (-> arg0 waypoint-time0) (current-time)) + (ashelin-method-250 arg0 #f) + (task-node-close! (game-task-node city-intercept-tanker-battle)) + (remove-setting! 'sound-mode) + (remove-setting! 'music) + (when (not (channel-active? arg0 (the-as uint 0))) + (let ((v1-12 (get-rand-int arg0 3))) + (cond + ((zero? v1-12) + (play-speech arg0 42) + ) + ((= v1-12 1) + (play-speech arg0 43) + ) + (else + (play-speech arg0 44) ) ) ) - (let ((v1-20 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0))) - (set! (-> v1-20 bytes 5) 1) - (set! (-> v1-20 bytes 6) 0) - (set! (-> v1-20 bytes 4) -1) - (set! (-> (the-as asht-wait-spot v1-20) check-done) - (the-as - (function asht-wait-spot ashelin symbol) - (lambda ((arg0 object) (arg1 ashelin-tanker)) - (let ((s5-0 (get-current-task-event (-> arg1 task)))) - (when (and (= (-> s5-0 action) (game-task-action say)) - (not (channel-active? arg1 (the-as uint 0))) - (scene-play arg1 (the-as string (-> s5-0 scene)) #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 7 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + ) + (let ((v1-20 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0))) + (set! (-> v1-20 bytes 5) 1) + (set! (-> v1-20 bytes 6) 0) + (set! (-> v1-20 bytes 4) -1) + (set! (-> (the-as asht-wait-spot v1-20) check-done) + (the-as + (function asht-wait-spot ashelin symbol) + (lambda ((arg0 object) (arg1 ashelin-tanker)) + (let ((s5-0 (get-current-task-event (-> arg1 task)))) + (when (and (= (-> s5-0 action) (game-task-action say)) + (not (channel-active? arg1 (the-as uint 0))) + (scene-play arg1 (the-as string (-> s5-0 scene)) #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 7 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update (lambda ((arg0 ashelin-tanker)) (suppress-traffic arg0) diff --git a/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ctyasha-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ctyasha-obs_REF.gc index f3a565e7ff..954d20ca4b 100644 --- a/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ctyasha-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/market/east/ashelin/ctyasha-obs_REF.gc @@ -1644,7 +1644,7 @@ This commonly includes things such as: (set! (-> a1-5 tlist) *touching-list*) (find-overlapping-shapes (-> self root-override) a1-5) ) - (if (>= (-> self clock frame-counter) (-> self die-time)) + (if (>= (current-time) (-> self die-time)) (go-virtual die-fast) ) (none) @@ -1665,7 +1665,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch object vs none. (defbehavior tanker-deadly-init-by-other tanker-deadly ((arg0 vector) (arg1 int) (arg2 int)) (set! (-> self track-joint) arg1) - (set! (-> self die-time) (+ (-> self clock frame-counter) arg2)) + (set! (-> self die-time) (+ (current-time) arg2)) (let* ((v1-3 *game-info*) (a0-2 (+ (-> v1-3 attack-id) 1)) ) diff --git a/test/decompiler/reference/jak2/levels/city/market/west/brutter_kiosk/meet-brutter_REF.gc b/test/decompiler/reference/jak2/levels/city/market/west/brutter_kiosk/meet-brutter_REF.gc index ae21a002c6..ce30f95581 100644 --- a/test/decompiler/reference/jak2/levels/city/market/west/brutter_kiosk/meet-brutter_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/market/west/brutter_kiosk/meet-brutter_REF.gc @@ -1283,7 +1283,7 @@ (set! (-> self gnd-height) (-> self root-override2 gspot-pos y)) (logior! (-> self flags) (citizen-flag persistent)) (set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-31 (-> self root-override2 root-prim))) (set! (-> v1-31 prim-core collide-as) (collide-spec)) (set! (-> v1-31 prim-core collide-with) (collide-spec)) @@ -1336,14 +1336,14 @@ ) (let ((s5-3 (new 'stack-no-clear 'vector))) (let ((s4-0 (new 'stack-no-clear 'quaternion))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (civilian-method-217 self s5-3)) (let ((s3-0 (handle->process (-> self vehicle)))) (new 'stack-no-clear 'vector) (quaternion-copy! (-> self root-override2 quat) (-> (the-as vehicle s3-0) root-override-2 quat)) (compute-seat-position (the-as vehicle s3-0) (-> self root-override2 trans) (-> self seat)) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual ride) ) (suspend) @@ -1405,7 +1405,7 @@ ) ) (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-15 (-> self nav))) (set! (-> v1-15 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1558,7 +1558,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) (set! (-> v1-6 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1616,7 +1616,7 @@ (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag vulnerable)))) (send-event self 'jump 0 (-> self end-pos)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) (go-virtual wait-at-end) @@ -1656,7 +1656,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) (set! (-> v1-6 target-speed) (* (-> self speed-scale) (-> self speed-run))) @@ -1802,7 +1802,7 @@ :event (the-as (function process int symbol event-message-block object :behavior city-lurker) enemy-event-handler) :enter (behavior () (logclear! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1948,7 +1948,7 @@ (citizen-init! self) (set! (-> self hit-points) 100) (logior! (-> self flags) (citizen-flag persistent)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-8 (-> self root-override2 root-prim))) (set! (-> v1-8 prim-core collide-as) (collide-spec)) (set! (-> v1-8 prim-core collide-with) (collide-spec)) @@ -2509,7 +2509,7 @@ (cond ((= (-> self data-int32 (-> gp-0 index)) -1) (+! (-> self data-int32 (-> gp-0 index)) 1) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 10) (seconds 20)))) + (set! (-> self beep-time) (+ (current-time) (rand-vu-int-range (seconds 10) (seconds 20)))) (let ((v1-14 (-> self data-int32 16))) (cond ((zero? v1-14) @@ -2523,7 +2523,7 @@ ) ) ) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 10) (seconds 20)))) + (set! (-> self beep-time) (+ (current-time) (rand-vu-int-range (seconds 10) (seconds 20)))) (+! (-> self data-int32 16) 1) ) ((= (-> self data-int32 (-> gp-0 index)) 1) @@ -2831,8 +2831,8 @@ (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-lurker :init hud-init-by-other :to self))) (suspend) (send-event *traffic-manager* 'set-target-level #x3f400000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -2857,8 +2857,8 @@ (send-event *traffic-manager* 'decrease-alert-level 0) (send-event *traffic-manager* 'set-alert-duration 9000) (send-event *target* 'end-mode) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (task-node-close! (game-task-node city-meet-brutter-meet-brutter)) @@ -3429,8 +3429,8 @@ (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-lurker :init hud-init-by-other :to self))) (suspend) (send-event *traffic-manager* 'set-target-level #x3f400000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -3452,7 +3452,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (let ((v1-2 0)) (dotimes (a0-0 6) diff --git a/test/decompiler/reference/jak2/levels/city/misc/collection_task/collection-task_REF.gc b/test/decompiler/reference/jak2/levels/city/misc/collection_task/collection-task_REF.gc index c839d9c0fa..eb65898514 100644 --- a/test/decompiler/reference/jak2/levels/city/misc/collection_task/collection-task_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/misc/collection_task/collection-task_REF.gc @@ -337,7 +337,7 @@ (when krew-item (set! (-> self slave 0) (process->handle krew-item)) (set! (-> self time-limit) (the-as time-frame (-> self data-int32 task-count))) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (+! (-> self count) 1) ) ) @@ -378,8 +378,8 @@ (ppointer->handle (process-spawn hud-moneybag :init hud-init-by-other :to *target*)) ) (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 2) @@ -404,8 +404,8 @@ () (send-event *traffic-manager* 'decrease-alert-level 0) (send-event *traffic-manager* 'set-alert-duration 9000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (talker-spawn-func (-> *talker-speech* 88) *entity-pool* (target-pos 0) (the-as region #f)) diff --git a/test/decompiler/reference/jak2/levels/city/misc/delivery/delivery-task_REF.gc b/test/decompiler/reference/jak2/levels/city/misc/delivery/delivery-task_REF.gc index 04ce8e1be2..2c666120cc 100644 --- a/test/decompiler/reference/jak2/levels/city/misc/delivery/delivery-task_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/misc/delivery/delivery-task_REF.gc @@ -548,8 +548,8 @@ This commonly includes things such as: (send-event *target* 'change-mode 'normal) ) (set-setting! 'pilot #f 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) diff --git a/test/decompiler/reference/jak2/levels/city/onin_tent/onin-game_REF.gc b/test/decompiler/reference/jak2/levels/city/onin_tent/onin-game_REF.gc index 17ffff41c5..8693a5f238 100644 --- a/test/decompiler/reference/jak2/levels/city/onin_tent/onin-game_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/onin_tent/onin-game_REF.gc @@ -1962,8 +1962,8 @@ (-> gp-0 ppointer) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.25)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.25)) (suspend) ) ) @@ -2126,7 +2126,7 @@ (defbehavior onin-game-bubble-init onin-game-bubble ((arg0 vector) (arg1 int) (arg2 meters) (arg3 float) (arg4 float)) "TODO - bubble type enum" (sound-play "onin-launch") - (set! (-> self bubble-start-time) (-> self clock frame-counter)) + (set! (-> self bubble-start-time) (current-time)) (set! (-> self bubble-type) arg1) (set! (-> self gravity) arg2) (set! (-> self angle) arg3) @@ -2253,171 +2253,165 @@ (sv-96 meters) (sv-112 float) ) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj game-start-time)) (seconds 2)) - (let ((s5-0 (-> obj game (-> obj wave)))) - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj wave-length))) (-> obj wave-time)) - (let ((s4-0 (-> obj child))) - (while s4-0 - (if (type? (ppointer->process s4-0) onin-game-bubble) - (goto cfg-58) - ) - (set! s4-0 (-> s4-0 0 brother)) - ) - ) - (if (zero? (-> obj wave-delay-time)) - (set! (-> obj wave-delay-time) (-> pp clock frame-counter)) - ) - (if (< (- (-> pp clock frame-counter) (-> obj wave-delay-time)) (the-as time-frame (-> s5-0 wave-delay))) - (goto cfg-58) - ) - (set! (-> obj event-length) (the-as uint 0)) - (+! (-> obj wave) 1) - (set! s5-0 (-> obj game (-> obj wave))) - (when (zero? (-> s5-0 min-count)) - (set! (-> obj wave) (the-as int (-> s5-0 max-count))) - (set! s5-0 (-> obj game (-> obj wave))) - ) - (set! (-> obj wave-time) (-> pp clock frame-counter)) - (set! (-> obj wave-length) - (the-as uint (rand-vu-int-range (the-as int (-> s5-0 min-wave)) (the-as int (-> s5-0 max-wave)))) + (when (>= (- (current-time) (-> obj game-start-time)) (seconds 2)) + (let ((s5-0 (-> obj game (-> obj wave)))) + (when (>= (- (current-time) (the-as int (-> obj wave-length))) (-> obj wave-time)) + (let ((s4-0 (-> obj child))) + (while s4-0 + (if (type? (ppointer->process s4-0) onin-game-bubble) + (goto cfg-58) ) - (set! (-> obj wave-delay-time) 0) - (when (< 1 (-> obj wave)) - (cond - ((< 4 (- (-> obj miss-count) (-> obj wave-start-miss))) - (let ((v0-2 (rand-vu-int-count 5))) - (cond - ((zero? v0-2) - (talker-spawn-func (-> *talker-speech* 148) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 1) - (talker-spawn-func (-> *talker-speech* 153) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 2) - (talker-spawn-func (-> *talker-speech* 154) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 3) - (talker-spawn-func (-> *talker-speech* 157) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-2 4) - (talker-spawn-func (-> *talker-speech* 158) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - ) - ((>= 1 (- (-> obj miss-count) (-> obj wave-start-miss))) - (let ((v0-9 (rand-vu-int-count 7))) - (cond - ((zero? v0-9) - (talker-spawn-func (-> *talker-speech* 141) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 1) - (talker-spawn-func (-> *talker-speech* 142) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 2) - (talker-spawn-func (-> *talker-speech* 143) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 3) - (talker-spawn-func (-> *talker-speech* 150) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 4) - (talker-spawn-func (-> *talker-speech* 156) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 5) - (talker-spawn-func (-> *talker-speech* 159) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v0-9 6) - (talker-spawn-func (-> *talker-speech* 160) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - ) - ) + (set! s4-0 (-> s4-0 0 brother)) ) - (set! (-> obj wave-start-miss) (-> obj miss-count)) ) - (set! v0-18 - (when (>= (- (-> pp clock frame-counter) (-> obj event-time)) (the-as time-frame (-> obj event-length))) - (set! (-> obj event-time) (-> pp clock frame-counter)) - (let ((s4-14 (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) (new 'static 'vector :w 1.0))) - (s3-12 (rand-vu-int-range (the-as int (-> s5-0 min-count)) (the-as int (-> s5-0 max-count)))) + (if (zero? (-> obj wave-delay-time)) + (set! (-> obj wave-delay-time) (current-time)) + ) + (if (< (- (current-time) (-> obj wave-delay-time)) (the-as time-frame (-> s5-0 wave-delay))) + (goto cfg-58) + ) + (set! (-> obj event-length) (the-as uint 0)) + (+! (-> obj wave) 1) + (set! s5-0 (-> obj game (-> obj wave))) + (when (zero? (-> s5-0 min-count)) + (set! (-> obj wave) (the-as int (-> s5-0 max-count))) + (set! s5-0 (-> obj game (-> obj wave))) + ) + (set! (-> obj wave-time) (current-time)) + (set! (-> obj wave-length) + (the-as uint (rand-vu-int-range (the-as int (-> s5-0 min-wave)) (the-as int (-> s5-0 max-wave)))) + ) + (set! (-> obj wave-delay-time) 0) + (when (< 1 (-> obj wave)) + (cond + ((< 4 (- (-> obj miss-count) (-> obj wave-start-miss))) + (let ((v0-2 (rand-vu-int-count 5))) + (cond + ((zero? v0-2) + (talker-spawn-func (-> *talker-speech* 148) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 1) + (talker-spawn-func (-> *talker-speech* 153) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 2) + (talker-spawn-func (-> *talker-speech* 154) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 3) + (talker-spawn-func (-> *talker-speech* 157) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-2 4) + (talker-spawn-func (-> *talker-speech* 158) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + ) + ((>= 1 (- (-> obj miss-count) (-> obj wave-start-miss))) + (let ((v0-9 (rand-vu-int-count 7))) + (cond + ((zero? v0-9) + (talker-spawn-func (-> *talker-speech* 141) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 1) + (talker-spawn-func (-> *talker-speech* 142) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 2) + (talker-spawn-func (-> *talker-speech* 143) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 3) + (talker-spawn-func (-> *talker-speech* 150) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 4) + (talker-spawn-func (-> *talker-speech* 156) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 5) + (talker-spawn-func (-> *talker-speech* 159) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v0-9 6) + (talker-spawn-func (-> *talker-speech* 160) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + ) + ) + ) + (set! (-> obj wave-start-miss) (-> obj miss-count)) + ) + (set! v0-18 + (when (>= (- (current-time) (-> obj event-time)) (the-as time-frame (-> obj event-length))) + (set! (-> obj event-time) (current-time)) + (let ((s4-14 (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) (new 'static 'vector :w 1.0))) + (s3-12 (rand-vu-int-range (the-as int (-> s5-0 min-count)) (the-as int (-> s5-0 max-count)))) + ) + (dotimes (s2-12 s3-12) + (let ((f0-0 (-> obj last-angle))) + (while (< (fabs (- (-> obj last-angle) f0-0)) 819.2) + (set! f0-0 (rand-vu-float-range -1720.32 1720.32)) ) - (dotimes (s2-12 s3-12) - (let ((f0-0 (-> obj last-angle))) - (while (< (fabs (- (-> obj last-angle) f0-0)) 819.2) - (set! f0-0 (rand-vu-float-range -1720.32 1720.32)) - ) - (set! (-> obj last-angle) f0-0) - ) - (let ((s1-0 (get-process *default-dead-pool* onin-game-bubble #x4000))) - (when s1-0 - (let ((t9-31 (method-of-type onin-game-bubble activate))) - (t9-31 - (the-as onin-game-bubble s1-0) - obj - (symbol->string (-> onin-game-bubble symbol)) - (the-as pointer #x70004000) - ) + (set! (-> obj last-angle) f0-0) + ) + (let ((s1-0 (get-process *default-dead-pool* onin-game-bubble #x4000))) + (when s1-0 + (let ((t9-31 (method-of-type onin-game-bubble activate))) + (t9-31 + (the-as onin-game-bubble s1-0) + obj + (symbol->string (-> onin-game-bubble symbol)) + (the-as pointer #x70004000) ) - (let ((s0-0 run-function-in-process)) - (set! sv-32 s1-0) - (set! sv-48 onin-game-bubble-init) - (set! sv-64 s4-14) - (set! sv-80 (rand-vu-int-range 0 3)) - (set! sv-96 (-> s5-0 gravity)) - (set! sv-112 (-> obj last-angle)) - (let ((t2-0 (rand-vu-float-range 4096.0 7372.8))) - ((the-as (function object object object object object object object none) s0-0) - sv-32 - sv-48 - sv-64 - sv-80 - sv-96 - sv-112 - t2-0 - ) - ) - ) - (-> s1-0 ppointer) ) + (let ((s0-0 run-function-in-process)) + (set! sv-32 s1-0) + (set! sv-48 onin-game-bubble-init) + (set! sv-64 s4-14) + (set! sv-80 (rand-vu-int-range 0 3)) + (set! sv-96 (-> s5-0 gravity)) + (set! sv-112 (-> obj last-angle)) + (let ((t2-0 (rand-vu-float-range 4096.0 7372.8))) + ((the-as (function object object object object object object object none) s0-0) + sv-32 + sv-48 + sv-64 + sv-80 + sv-96 + sv-112 + t2-0 + ) + ) + ) + (-> s1-0 ppointer) ) ) ) - (set! v0-18 (rand-vu-int-range (the-as int (-> s5-0 min-event)) (the-as int (-> s5-0 max-event)))) - (set! (-> obj event-length) (the-as uint v0-18)) - v0-18 ) + (set! v0-18 (rand-vu-int-range (the-as int (-> s5-0 min-event)) (the-as int (-> s5-0 max-event)))) + (set! (-> obj event-length) (the-as uint v0-18)) + v0-18 ) - ) + ) ) - (label cfg-58) - (onin-game-method-26 obj) - 0 - (none) ) + (label cfg-58) + (onin-game-method-26 obj) + 0 + (none) ) ;; definition for method 26 of type onin-game ;; WARN: Return type mismatch int vs none. (defmethod onin-game-method-26 onin-game ((obj onin-game)) - (with-pp - (cond - ((>= (-> *game-info* score) (-> obj score)) - (set! (-> *game-info* score) (-> obj score)) - ) - ((and (< (-> *game-info* score) (-> obj score)) - (>= (- (-> pp clock frame-counter) (-> obj score-time)) (seconds 0.1)) - ) - (sound-play "onin-score") - (seek! (-> *game-info* score) (-> obj score) 1.0) - (set! (-> obj score-time) (-> pp clock frame-counter)) - ) - ) - (set! (-> *game-info* miss) (the float (-> obj miss-count))) - 0 - (none) + (cond + ((>= (-> *game-info* score) (-> obj score)) + (set! (-> *game-info* score) (-> obj score)) + ) + ((and (< (-> *game-info* score) (-> obj score)) (>= (- (current-time) (-> obj score-time)) (seconds 0.1))) + (sound-play "onin-score") + (seek! (-> *game-info* score) (-> obj score) 1.0) + (set! (-> obj score-time) (current-time)) + ) ) + (set! (-> *game-info* miss) (the float (-> obj miss-count))) + 0 + (none) ) ;; definition for method 27 of type onin-game @@ -2578,7 +2572,7 @@ (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :to self))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) (set! (-> self hud-miss) (ppointer->handle (process-spawn hud-miss :init hud-init-by-other :to self))) - (set! (-> self game-start-time) (-> self clock frame-counter)) + (set! (-> self game-start-time) (current-time)) (send-event *target* 'draw #f) (set-setting! 'gun #f 0.0 0) (set-setting! 'calm #t 0.0 0) @@ -2728,8 +2722,8 @@ ) :code (behavior ((arg0 symbol)) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -2830,8 +2824,8 @@ (when (and (task-node-closed? (game-task-node city-play-onin-game-resolution)) (not (task-node-closed? (game-task-node city-play-onin-game-skill))) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2856,8 +2850,8 @@ (while (nonzero? (get-status *gui-control* (the-as sound-id s5-1))) (suspend) ) - (let ((s5-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-3) (seconds 2)) + (let ((s5-3 (current-time))) + (until (>= (- (current-time) s5-3) (seconds 2)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/oracle/oracle-training_REF.gc b/test/decompiler/reference/jak2/levels/city/oracle/oracle-training_REF.gc index 0500131b51..2e008af78d 100644 --- a/test/decompiler/reference/jak2/levels/city/oracle/oracle-training_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/oracle/oracle-training_REF.gc @@ -210,7 +210,7 @@ (add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0) ) (send-event *target* 'get-notify self) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/port/mines/portrun_REF.gc b/test/decompiler/reference/jak2/levels/city/port/mines/portrun_REF.gc index 3d560eec1b..472fb7e541 100644 --- a/test/decompiler/reference/jak2/levels/city/port/mines/portrun_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/port/mines/portrun_REF.gc @@ -239,11 +239,11 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 30)) + (set! (-> self state-time) (current-time)) + (while (or (< (- (current-time) (-> self state-time)) (seconds 30)) (let ((a0-3 (level-get-target-inside *level*))) (when (not (and a0-3 (logtest? (-> a0-3 info level-flags) 1))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #t ) ) @@ -943,16 +943,14 @@ (t9-1 sin-rad) (f1-0 -3.1415925) (f2-0 6.283185) - (f3-1 (the float (+ (-> pp clock frame-counter) (the-as time-frame (-> obj time-skew))))) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) ) (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) ) (let ((s5-0 (-> obj info))) (cond ((zero? (-> obj info type)) - (let* ((f0-8 - (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (-> pp clock frame-counter))) (-> s5-0 speed))) - ) + (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) ) (if (< 1.0 f0-9) @@ -997,14 +995,13 @@ (set! (-> s3-0 y) (-> s5-0 pos1-y)) (set! (-> s3-0 z) (-> s5-0 pos1-z)) (set! (-> s3-0 w) 1.0) - (let ((v1-35 (vector-rotate-around-y! - (new 'stack-no-clear 'vector) - *x-vector* - (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) - (* 0.60681486 (-> s5-0 speed) (the float (-> pp clock frame-counter))) - ) - ) - ) + (let ((v1-35 + (vector-rotate-around-y! + (new 'stack-no-clear 'vector) + *x-vector* + (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) + ) + ) ) (let ((a0-8 (-> s5-0 pos2-x))) (.mov vf7 a0-8) @@ -1039,14 +1036,14 @@ (defstate die (ctyport-mine) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self beep-time) 0) 0 (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 3)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 3)) (suspend) ) ) @@ -1055,15 +1052,13 @@ ) :post (behavior () (cond - ((and (-> self beep) (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + ((and (-> self beep) (< (- (current-time) (-> self state-time)) (seconds 1))) (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (-> self clock seconds-per-frame))) - (when (< (-> self beep-time) (-> self clock frame-counter)) + (when (< (-> self beep-time) (current-time)) (sound-play "cargo-beep") (set-vector! (-> self beep-color) 1.0 1.0 1.0 1.0) (set! (-> self beep-time) - (+ (-> self clock frame-counter) - (the int (* 0.2 (the float (- (seconds 1) (- (-> self clock frame-counter) (-> self state-time)))))) - ) + (+ (current-time) (the int (* 0.2 (the float (- (seconds 1) (- (current-time) (-> self state-time))))))) ) ) (set! (-> self draw color-emissive quad) (-> self beep-color quad)) @@ -1312,19 +1307,18 @@ (defstate idle (ctyport-spy) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.3)) (+! (-> self trans-y) (* (-> self root transv y) (-> self clock seconds-per-frame))) (+! (-> self root transv y) (* -8.0 (-> self clock seconds-per-frame) (-> self root transv y))) (set! (-> self root trans y) (+ (-> self trans-y) - (* 1024.0 - (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - ) + (* 1024.0 (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) + (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (current-time))))))) + ) ) ) ) @@ -1333,13 +1327,9 @@ (s4-0 gp-0) (s3-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s3-0 x) - (* 182.04445 (* 5.0 (sin (* 182.04445 (* 0.33333334 (the float (-> self clock frame-counter))))))) - ) + (set! (-> s3-0 x) (* 182.04445 (* 5.0 (sin (* 182.04445 (* 0.33333334 (the float (current-time)))))))) (set! (-> s3-0 y) - (* 182.04445 - (* 5.0 (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter)))))))) - ) + (* 182.04445 (* 5.0 (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))))) ) (set! (-> s3-0 z) 0.0) (set! (-> s3-0 w) 1.0) @@ -1619,10 +1609,9 @@ :trans (behavior () (set! (-> self root-override trans y) (+ (-> self trans-y) - (* 1024.0 - (+ (sin (* 182.04445 (* 150.0 (+ 10.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (-> self clock frame-counter))))))) - ) + (* 1024.0 (+ (sin (* 182.04445 (* 150.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) + (cos (* 182.04445 (* -80.0 (- 40.0 (* 0.0033333334 (the float (current-time))))))) + ) ) ) ) @@ -1654,8 +1643,8 @@ (defstate die (ctyport-cargo) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1944,7 +1933,7 @@ ) (cond ((and (= (-> self count) (-> self max-count)) (zero? (-> self data-int32 22))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ((and (or (and (zero? (-> self data-int32 20)) (= (-> self count) (+ (-> self max-count) -1))) (= (-> self data-int32 22) 1) @@ -1955,7 +1944,7 @@ (set! (-> self data-int32 20) 1) (+! (-> self data-int32 22) 1) (set! (-> self time-limit) (seconds 135)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-cargo :init hud-init-by-other :to self))) ) ) @@ -2030,8 +2019,8 @@ (lambda :behavior task-manager () (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 1) @@ -2047,7 +2036,7 @@ TASK_MANAGER_FAIL_HOOK (lambda :behavior task-manager () - (when (< (- (-> self time-limit) (- (-> self clock frame-counter) (-> self start-time))) 0) + (when (< (- (-> self time-limit) (- (current-time) (-> self start-time))) 0) (let ((gp-0 #f)) (dotimes (s5-0 (-> self max-count)) (when (zero? (-> self data-int32 s5-0)) @@ -2068,8 +2057,8 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -2085,8 +2074,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (task-node-close! (game-task-node city-port-run-post-win)) diff --git a/test/decompiler/reference/jak2/levels/city/port/race/errol-chal_REF.gc b/test/decompiler/reference/jak2/levels/city/port/race/errol-chal_REF.gc index 95e34b688d..8ba91abac7 100644 --- a/test/decompiler/reference/jak2/levels/city/port/race/errol-chal_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/port/race/errol-chal_REF.gc @@ -884,7 +884,7 @@ (when (< f0-5 (* f1-0 f1-0)) (when (or (and (< f30-0 0.0) (>= f28-0 0.0)) (and (< f28-0 0.0) (>= f30-0 0.0))) (send-event proc 'turbo-ring (-> self boost)) - (set! (-> self touch-time) (-> self clock frame-counter)) + (set! (-> self touch-time) (current-time)) (process-spawn part-tracker :init part-tracker-init @@ -916,7 +916,7 @@ :code (the-as (function none :behavior turbo-ring) sleep-code) :post (behavior () (if (and (-> self player-got) - (>= (- (-> self clock frame-counter) (-> self touch-time)) (seconds 3)) + (>= (- (current-time) (-> self touch-time)) (seconds 3)) (or (not *target*) (or (< 204800.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) (focus-test? *target* teleporting) @@ -936,13 +936,13 @@ (defstate die (turbo-ring) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (-> self root-override root-prim))) (set! (-> v1-3 prim-core collide-as) (collide-spec)) (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -977,26 +977,24 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod turbo-ring-method-23 turbo-ring ((obj turbo-ring)) - (with-pp - (let ((s5-0 (-> obj mat))) - (let ((s4-0 (new 'stack-no-clear 'quaternion))) - (quaternion-rotate-local-y! s4-0 (-> obj root-override quat) 16384.0) - (quaternion->matrix s5-0 s4-0) - ) - (set! (-> s5-0 trans quad) (-> obj root-override trans quad)) - (set! (-> obj plane quad) (-> s5-0 vector 0 quad)) + (let ((s5-0 (-> obj mat))) + (let ((s4-0 (new 'stack-no-clear 'quaternion))) + (quaternion-rotate-local-y! s4-0 (-> obj root-override quat) 16384.0) + (quaternion->matrix s5-0 s4-0) ) - (set! (-> obj plane w) (- (vector-dot (-> obj plane) (-> obj root-override trans)))) - (update-transforms (-> obj root-override)) - (set! (-> obj player-got) #f) - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1058) obj)) - (if (not (-> obj persistent)) - (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 15) (the-as int #f) (the-as vector #t) 0)) - ) - (set! (-> obj touch-time) (-> pp clock frame-counter)) - 0 - (none) + (set! (-> s5-0 trans quad) (-> obj root-override trans quad)) + (set! (-> obj plane quad) (-> s5-0 vector 0 quad)) ) + (set! (-> obj plane w) (- (vector-dot (-> obj plane) (-> obj root-override trans)))) + (update-transforms (-> obj root-override)) + (set! (-> obj player-got) #f) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1058) obj)) + (if (not (-> obj persistent)) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 15) (the-as int #f) (the-as vector #t) 0)) + ) + (set! (-> obj touch-time) (current-time)) + 0 + (none) ) ;; definition for function turbo-ring-init-by-other @@ -1374,7 +1372,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> *race-state* flags) 1)) (let ((f0-0 (-> self begin-pos w))) (if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0))) @@ -1583,7 +1581,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (while (not (logtest? (-> *race-state* flags) 1)) (let ((f0-0 (-> self begin-pos w))) (if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0))) diff --git a/test/decompiler/reference/jak2/levels/city/side_missions/ctywide-bbush_REF.gc b/test/decompiler/reference/jak2/levels/city/side_missions/ctywide-bbush_REF.gc index 4da5400b4e..3ede56fdd3 100644 --- a/test/decompiler/reference/jak2/levels/city/side_missions/ctywide-bbush_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/side_missions/ctywide-bbush_REF.gc @@ -399,7 +399,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) (-> self clock frame-counter)) + (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) (current-time)) ) ) (else @@ -1547,7 +1547,7 @@ ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (+! (-> self sub-state) 1) ) ) @@ -1570,7 +1570,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (none) @@ -1791,7 +1791,7 @@ (none) ) :trans (behavior () - (let ((f30-0 (+ (* 0.0033333334 (the float (-> self clock frame-counter))) (* 0.1 (the float (-> self pid)))))) + (let ((f30-0 (+ (* 0.0033333334 (the float (current-time))) (* 0.1 (the float (-> self pid)))))) (when (< (-> self beep-time) f30-0) (sound-play "homeing-beep") (set! (-> self beep-time) (+ 1.0 f30-0)) @@ -2772,7 +2772,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (-> gp-0 time)) ) (none) @@ -2817,7 +2817,7 @@ This commonly includes things such as: *game-info* (game-task-node city-burning-bush-collection-1-resolution) TASK_MANAGER_CODE_HOOK - (lambda :behavior task-manager () (set! (-> self state-time) (-> self clock frame-counter)) (none)) + (lambda :behavior task-manager () (set! (-> self state-time) (current-time)) (none)) ) ;; failed to figure out what this is: @@ -3057,7 +3057,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self time-limit) (the-as time-frame (the int (+ 300.0 (-> *burning-bush-get-on-info* (-> self info index) time)))) ) @@ -3093,8 +3093,8 @@ This commonly includes things such as: ) (send-event *camera* 'teleport-to-transformq gp-0) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 3)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 3)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kid-states_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kid-states_REF.gc index 70f9b7265b..a78003cd01 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kid-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kid-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -83,7 +83,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -247,7 +247,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -324,7 +324,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -354,12 +354,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (kid-method-232 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -394,7 +392,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -419,7 +417,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -455,7 +453,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -536,7 +534,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kid) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -609,7 +607,7 @@ (ja-channel-push! 1 (seconds 0.1)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 16) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 16)) frames num-frames) -1))) @@ -617,7 +615,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (>= (- (current-time) (-> self state-time)) (seconds 4)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc index 7fd00f2c0f..f9ca2c6f8f 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc @@ -180,173 +180,169 @@ (defmethod general-event-handler kid ((obj kid) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('arrest) - (let* ((s4-0 (handle->process (-> obj arrestor-handle))) - (v1-4 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (when (or (not v1-4) - (= v1-4 arg0) - (and (!= v1-4 arg0) (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.1))) - ) - (set! (-> obj arrestor-handle) (process->handle arg0)) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - 0 - ) + (case arg2 + (('arrest) + (let* ((s4-0 (handle->process (-> obj arrestor-handle))) + (v1-4 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (when (or (not v1-4) + (= v1-4 arg0) + (and (!= v1-4 arg0) (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.1))) + ) + (set! (-> obj arrestor-handle) (process->handle arg0)) + (set! (-> obj arrest-attempt-time) (current-time)) + 0 ) - #t ) - (('instant-arrest) - (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) - (let ((v1-18 (the-as object (-> arg3 param 0)))) - (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - (let ((a1-8 (new 'stack-no-clear 'vector))) - (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) - (set! (-> a1-8 y) 0.0) - (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) - ) + #t + ) + (('instant-arrest) + (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) + (let ((v1-18 (the-as object (-> arg3 param 0)))) + (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) + (set! (-> obj arrest-attempt-time) (current-time)) + (let ((a1-8 (new 'stack-no-clear 'vector))) + (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) + (set! (-> a1-8 y) 0.0) + (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) ) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (send-event (handle->process (-> obj master-handle)) 'notify 'arrest #f) - (go (method-of-object obj arrested)) ) - (('attack) - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - #f - ) - (else - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (send-event (handle->process (-> obj master-handle)) 'notify 'arrest #f) + (go (method-of-object obj arrested)) + ) + (('attack) + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) + #f + ) + (else + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) ;; definition for method 97 of type kid (defmethod enemy-method-97 kid ((obj kid)) - (with-pp - (let* ((s4-0 (handle->process (-> obj attacker-handle))) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - (s3-0 (handle->process (-> obj arrestor-handle))) - (s4-1 (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((s4-0 (handle->process (-> obj attacker-handle))) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + (s3-0 (handle->process (-> obj arrestor-handle))) + (s4-1 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when s5-0 + (cond + ((= (-> s5-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s5-0 - (cond - ((= (-> s5-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (when s4-1 - (when (or (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.5)) - (focus-test? (the-as process-focusable s4-1) dead hit) - ) - (set! s4-1 (the-as process #f)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ) - (let ((v1-34 (-> obj focus-mode)) - (s3-1 (the-as process #f)) - ) - (cond - ((zero? v1-34) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (let ((s5-1 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-1 process-focusable) - s5-1 - ) - ) - ) - (if s3-1 - (empty) - (set! s3-1 *target*) - ) - ) - ) - ) - ((= v1-34 1) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - (else - (let ((s5-2 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-2 process-focusable) - s5-2 - ) - ) - ) - (cond - (s3-1 - (empty) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (set! s3-1 *target*) - ) - ) - ) - ) - ) - ) - (cond - (s3-1 - (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + (when s4-1 + (when (or (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.5)) + (focus-test? (the-as process-focusable s4-1) dead hit) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s3-1 + (set! s4-1 (the-as process #f)) + (set! (-> obj arrestor-handle) (the-as handle #f)) ) ) + (let ((v1-34 (-> obj focus-mode)) + (s3-1 (the-as process #f)) + ) + (cond + ((zero? v1-34) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (let ((s5-1 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-1 process-focusable) + s5-1 + ) + ) + ) + (if s3-1 + (empty) + (set! s3-1 *target*) + ) + ) + ) + ) + ((= v1-34 1) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + (else + (let ((s5-2 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-2 process-focusable) + s5-2 + ) + ) + ) + (cond + (s3-1 + (empty) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (set! s3-1 *target*) + ) + ) + ) + ) + ) + ) + (cond + (s3-1 + (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s3-1 + ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kor-states_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kor-states_REF.gc index 8022a0bc0f..f99f232319 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kor-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kor-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -83,7 +83,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -258,7 +258,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -335,7 +335,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -365,12 +365,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (kor-method-232 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -405,7 +403,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -430,7 +428,7 @@ ) (go-virtual arrested) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -466,7 +464,7 @@ (go-virtual arrested) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (not (nav-enemy-method-163 self)) (go-virtual traveling) ) @@ -547,7 +545,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior kor) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -596,7 +594,7 @@ (ja-channel-push! 1 (seconds 0.25)) (cond ((and (not (logtest? (bot-flags bf20) (-> self bot-flags))) - (< (- (-> self clock frame-counter) (-> self arrest-attempt-time)) (seconds 0.8)) + (< (- (current-time) (-> self arrest-attempt-time)) (seconds 0.8)) ) (ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))) @@ -635,7 +633,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 18) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 18)) frames num-frames) -1))) @@ -643,7 +641,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc index cdad783426..aa7bcc750d 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc @@ -201,168 +201,164 @@ (defmethod general-event-handler kor ((obj kor) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('arrest) - (let* ((s4-0 (handle->process (-> obj arrestor-handle))) - (v1-4 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (when (or (not v1-4) - (= v1-4 arg0) - (and (!= v1-4 arg0) (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.1))) - ) - (set! (-> obj arrestor-handle) (process->handle arg0)) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - 0 - ) + (case arg2 + (('arrest) + (let* ((s4-0 (handle->process (-> obj arrestor-handle))) + (v1-4 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (when (or (not v1-4) + (= v1-4 arg0) + (and (!= v1-4 arg0) (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.1))) + ) + (set! (-> obj arrestor-handle) (process->handle arg0)) + (set! (-> obj arrest-attempt-time) (current-time)) + 0 ) - #t ) - (('instant-arrest) - (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) - (let ((v1-18 (the-as object (-> arg3 param 0)))) - (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) - (set! (-> obj arrest-attempt-time) (-> pp clock frame-counter)) - (let ((a1-8 (new 'stack-no-clear 'vector))) - (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) - (set! (-> a1-8 y) 0.0) - (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) - ) + #t + ) + (('instant-arrest) + (set! (-> obj bot-flags) (logior (bot-flags bf20) (-> obj bot-flags))) + (let ((v1-18 (the-as object (-> arg3 param 0)))) + (set! (-> obj arrestor-handle) (process->handle (the-as process v1-18))) + (set! (-> obj arrest-attempt-time) (current-time)) + (let ((a1-8 (new 'stack-no-clear 'vector))) + (vector-! a1-8 (-> (the-as process-drawable v1-18) root trans) (-> obj root-override2 trans)) + (set! (-> a1-8 y) 0.0) + (forward-up->quaternion (-> obj root-override2 quat) a1-8 *up-vector*) ) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (go (method-of-object obj arrested)) ) - (else - ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (go (method-of-object obj arrested)) + ) + (else + ((method-of-type bot general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) ;; definition for method 97 of type kor (defmethod enemy-method-97 kor ((obj kor)) - (with-pp - (let* ((s4-0 (handle->process (-> obj attacker-handle))) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - (s3-0 (handle->process (-> obj arrestor-handle))) - (s4-1 (if (type? s3-0 process-focusable) - s3-0 - ) - ) + (let* ((s4-0 (handle->process (-> obj attacker-handle))) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + (s3-0 (handle->process (-> obj arrestor-handle))) + (s4-1 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when s5-0 + (cond + ((= (-> s5-0 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when s5-0 - (cond - ((= (-> s5-0 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! s5-0 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! s5-0 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (when s4-1 - (when (or (>= (- (-> pp clock frame-counter) (-> obj arrest-attempt-time)) (seconds 0.5)) - (focus-test? (the-as process-focusable s4-1) dead hit) - ) - (set! s4-1 (the-as process #f)) - (set! (-> obj arrestor-handle) (the-as handle #f)) - ) - ) - (let ((v1-34 (-> obj focus-mode)) - (s3-1 (the-as process #f)) - ) - (cond - ((zero? v1-34) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (let ((s5-1 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-1 process-focusable) - s5-1 - ) - ) - ) - (if s3-1 - (empty) - (set! s3-1 *target*) - ) - ) - ) - ) - ((= v1-34 1) - (cond - (s4-1 - (set! s3-1 s4-1) - ) - (s5-0 - (set! s3-1 s5-0) - ) - (else - (let ((s5-2 (handle->process (-> obj poi-handle)))) - (set! s3-1 (if (type? s5-2 process-focusable) - s5-2 - ) - ) - ) - (cond - (s3-1 - (empty) - ) - ((begin (set! s3-1 (select-focus! obj)) s3-1) - (empty) - ) - (else - (set! s3-1 *target*) - ) - ) - ) - ) - ) - ) - (cond - (s3-1 - (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + (when s4-1 + (when (or (>= (- (current-time) (-> obj arrest-attempt-time)) (seconds 0.5)) + (focus-test? (the-as process-focusable s4-1) dead hit) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s3-1 + (set! s4-1 (the-as process #f)) + (set! (-> obj arrestor-handle) (the-as handle #f)) ) ) + (let ((v1-34 (-> obj focus-mode)) + (s3-1 (the-as process #f)) + ) + (cond + ((zero? v1-34) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (let ((s5-1 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-1 process-focusable) + s5-1 + ) + ) + ) + (if s3-1 + (empty) + (set! s3-1 *target*) + ) + ) + ) + ) + ((= v1-34 1) + (cond + (s4-1 + (set! s3-1 s4-1) + ) + (s5-0 + (set! s3-1 s5-0) + ) + (else + (let ((s5-2 (handle->process (-> obj poi-handle)))) + (set! s3-1 (if (type? s5-2 process-focusable) + s5-2 + ) + ) + ) + (cond + (s3-1 + (empty) + ) + ((begin (set! s3-1 (select-focus! obj)) s3-1) + (empty) + ) + (else + (set! s3-1 *target*) + ) + ) + ) + ) + ) + ) + (cond + (s3-1 + (try-update-focus (-> obj focus) (the-as process-focusable s3-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> s3-1 type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s3-1 + ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/slums/neon-baron-part_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/neon-baron-part_REF.gc index f49f70e233..6f6726eb22 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/neon-baron-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/neon-baron-part_REF.gc @@ -3407,16 +3407,16 @@ 600 (dotimes (gp-0 19) (let ((s5-0 (-> *neon-baron-flashing-acc* (* gp-0 2)))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-0)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-0)) (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) (let ((s5-1 (-> *neon-baron-flashing-acc* (+ (* gp-0 2) 1)))) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-1)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-1)) (suspend) ) ) @@ -3424,28 +3424,28 @@ ) ((zero? v1-2) (dotimes (gp-1 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) ((= v1-2 1) (dotimes (gp-2 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 8) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 9) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) ) @@ -3454,16 +3454,16 @@ 600 (dotimes (gp-3 19) (let ((s5-2 (-> *neon-baron-flashing-acc* (* gp-3 2)))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-2)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-2)) (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) (let ((s5-3 (-> *neon-baron-flashing-acc* (+ (* gp-3 2) 1)))) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame s5-3)) + (until (>= (- (current-time) (-> self state-time)) (the-as time-frame s5-3)) (suspend) ) ) @@ -3471,28 +3471,28 @@ ) ((= v1-2 8) (dotimes (gp-4 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) ((= v1-2 9) (dotimes (gp-5 3) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 3) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) 2) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) ) @@ -3576,8 +3576,8 @@ (set! (-> self flags) 1) (let ((gp-11 (rand-vu-int-range 3 6))) (dotimes (s5-9 gp-11) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/ai/bot-states_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/bot-states_REF.gc index 5fb7498522..a9b08c7d06 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/bot-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/bot-states_REF.gc @@ -91,7 +91,7 @@ (bot-method-191 self) (when (zero? (-> self hit-points)) (set! (-> self hit-points) 1) - (set! (-> self fated-time) (-> self clock frame-counter)) + (set! (-> self fated-time) (current-time)) ) (logclear! (-> self bot-flags) (bot-flags bf11)) (let ((t9-2 (-> (method-of-type nav-enemy knocked) enter))) @@ -120,7 +120,7 @@ (t9-0) ) ) - (when (and (logtest? (-> self bot-flags) (bot-flags bf12)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (-> self bot-flags) (bot-flags bf12)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf12)) (play-attacked-speech self) ) @@ -219,7 +219,7 @@ :trans (behavior () ((-> (method-of-type bot die-falling) trans)) (if (channel-active? self (the-as uint 0)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -235,7 +235,7 @@ ) (until (ja-done? 0) (when (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (cleanup-for-death self) diff --git a/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc index aaf45e0574..61cf3bfe26 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc @@ -329,7 +329,7 @@ (cond ((attacked-by-player? obj (the-as process-focusable s5-0)) (set! (-> obj attacker-handle) (process->handle s5-0)) - (set! (-> obj attacker-time) (-> self clock frame-counter)) + (set! (-> obj attacker-time) (current-time)) ) (else (logclear! (-> obj bot-flags) (bot-flags attacked)) @@ -346,7 +346,7 @@ (reset-attacker! obj) ) (set! (-> obj attacker-handle) (process->handle s5-0)) - (set! (-> obj attacker-time) (-> self clock frame-counter)) + (set! (-> obj attacker-time) (current-time)) ) ) ) @@ -448,133 +448,129 @@ ;; definition for method 129 of type bot (defmethod enemy-method-129 bot ((obj bot)) (local-vars (s5-1 process)) - (with-pp - (let ((s5-0 (-> obj focus))) - (cond - ((logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags)) - (set! s5-1 (handle->process (-> s5-0 handle))) - ) - (else - (enemy-method-97 obj) - (set! s5-1 (handle->process (-> s5-0 handle))) - ) + (let ((s5-0 (-> obj focus))) + (cond + ((logtest? (enemy-flag actor-pause-backup) (-> obj enemy-flags)) + (set! s5-1 (handle->process (-> s5-0 handle))) + ) + (else + (enemy-method-97 obj) + (set! s5-1 (handle->process (-> s5-0 handle))) ) ) - (let ((s4-0 #f)) - (when (or (logtest? (bot-flags bf18) (-> obj bot-flags)) - (and s5-1 (attacked-by-player? obj (the-as process-focusable s5-1))) - ) - (set! (-> obj danger-time) (-> pp clock frame-counter)) - (set! s4-0 #t) - ) - (when (nonzero? (-> obj swivel-joint-mod)) - (if (and s4-0 s5-1 (logtest? (-> obj bot-flags) (bot-flags bf11))) - (bot-method-222 obj (get-trans (the-as process-focusable s5-1) 3)) - (bot-method-221 obj) - ) - ) - ) - (none) ) + (let ((s4-0 #f)) + (when (or (logtest? (bot-flags bf18) (-> obj bot-flags)) + (and s5-1 (attacked-by-player? obj (the-as process-focusable s5-1))) + ) + (set! (-> obj danger-time) (current-time)) + (set! s4-0 #t) + ) + (when (nonzero? (-> obj swivel-joint-mod)) + (if (and s4-0 s5-1 (logtest? (-> obj bot-flags) (bot-flags bf11))) + (bot-method-222 obj (get-trans (the-as process-focusable s5-1) 3)) + (bot-method-221 obj) + ) + ) + ) + (none) ) ;; definition for method 97 of type bot (defmethod enemy-method-97 bot ((obj bot)) - (with-pp - (let* ((s5-0 (handle->process (-> obj attacker-handle))) - (v1-3 (if (type? s5-0 process-focusable) - s5-0 - ) - ) + (let* ((s5-0 (handle->process (-> obj attacker-handle))) + (v1-3 (if (type? s5-0 process-focusable) + s5-0 + ) + ) + ) + (when v1-3 + (cond + ((= (-> v1-3 type) target) + (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (>= (- (current-time) (-> obj attacker-time)) (seconds 1.5)) + ) + (if (logtest? (-> obj bot-flags) (bot-flags attacked)) + (reset-attacker! obj) + ) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) - (when v1-3 - (cond - ((= (-> v1-3 type) target) - (when (or (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 1.5)) - ) - (if (logtest? (-> obj bot-flags) (bot-flags attacked)) - (reset-attacker! obj) - ) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> obj attacker-time)) (seconds 6)) - (set! v1-3 (the-as process #f)) - (set! (-> obj attacker-handle) (the-as handle #f)) - ) + ) + (else + (when (>= (- (current-time) (-> obj attacker-time)) (seconds 6)) + (set! v1-3 (the-as process #f)) + (set! (-> obj attacker-handle) (the-as handle #f)) ) ) ) - (let ((a0-21 (-> obj focus-mode)) - (s5-1 (the-as process #f)) - ) - (cond - ((zero? a0-21) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (let ((s4-0 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (if s5-1 - (empty) - (set! s5-1 *target*) - ) - ) - ) - ) - ((= a0-21 1) - (cond - (v1-3 - (set! s5-1 v1-3) - ) - (else - (let ((s4-1 (handle->process (-> obj poi-handle)))) - (set! s5-1 (if (type? s4-1 process-focusable) - s4-1 - ) - ) - ) - (cond - (s5-1 - (empty) - ) - ((begin (set! s5-1 (select-focus! obj)) s5-1) - (empty) - ) - (else - (set! s5-1 *target*) - ) - ) - ) - ) - ) + ) + (let ((a0-21 (-> obj focus-mode)) + (s5-1 (the-as process #f)) ) - (cond - (s5-1 - (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) - (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) + (cond + ((zero? a0-21) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) + ) + (else + (let ((s4-0 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (if s5-1 + (empty) + (set! s5-1 *target*) + ) + ) + ) + ) + ((= a0-21 1) + (cond + (v1-3 + (set! s5-1 v1-3) + ) + (else + (let ((s4-1 (handle->process (-> obj poi-handle)))) + (set! s5-1 (if (type? s4-1 process-focusable) + s4-1 + ) + ) + ) + (cond + (s5-1 + (empty) + ) + ((begin (set! s5-1 (select-focus! obj)) s5-1) + (empty) ) - ) - (else - (clear-focused (-> obj focus)) - (logclear! (-> obj bot-flags) (bot-flags attacked)) - ) - ) - s5-1 + (else + (set! s5-1 *target*) + ) + ) + ) + ) + ) ) + (cond + (s5-1 + (try-update-focus (-> obj focus) (the-as process-focusable s5-1) obj) + (if (and (logtest? (-> obj bot-flags) (bot-flags attacked)) (!= (-> (the-as process-focusable s5-1) type) target)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + (else + (clear-focused (-> obj focus)) + (logclear! (-> obj bot-flags) (bot-flags attacked)) + ) + ) + s5-1 ) ) ) @@ -761,205 +757,203 @@ "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" (local-vars (v0-0 none)) - (with-pp - (let ((v1-0 arg2)) - (the-as - object - (cond - ((= v1-0 'track) - #f - ) - ((= v1-0 'combo) - #f - ) - ((= v1-0 'query) - (case (-> arg3 param 0) - (('waypoint) - (-> obj waypoint waypoint-id) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'track) + #f + ) + ((= v1-0 'combo) + #f + ) + ((= v1-0 'query) + (case (-> arg3 param 0) + (('waypoint) + (-> obj waypoint waypoint-id) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - ((= v1-0 'request) - (case (-> arg3 param 0) - (('waypoint) - (set! (-> obj waypoint-request) (the-as int (-> arg3 param 1))) - #t + ) + ((= v1-0 'request) + (case (-> arg3 param 0) + (('waypoint) + (set! (-> obj waypoint-request) (the-as int (-> arg3 param 1))) + #t + ) + (('health-meter) + (cond + ((-> arg3 param 1) + (set! v0-0 (the-as none (logior (-> obj bot-flags) (bot-flags bf06)))) + (set! (-> obj bot-flags) (the-as bot-flags v0-0)) + ) + (else + (set! v0-0 (the-as none (logclear (-> obj bot-flags) (bot-flags bf06)))) + (set! (-> obj bot-flags) (the-as bot-flags v0-0)) + ) ) - (('health-meter) + v0-0 + ) + (('too-far-fail) + (when (not (logtest? (-> obj bot-flags) (bot-flags too-far-fail bf09))) + (logior! (-> obj bot-flags) (bot-flags bf09)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag check-water)) + (logclear! (-> obj mask) (process-mask collectable)) + (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (go (method-of-object obj failed)) + ) + ) + (('move-to-vehicle) + (let ((a0-19 (-> arg3 param 2))) (cond - ((-> arg3 param 1) - (set! v0-0 (the-as none (logior (-> obj bot-flags) (bot-flags bf06)))) - (set! (-> obj bot-flags) (the-as bot-flags v0-0)) - ) - (else - (set! v0-0 (the-as none (logclear (-> obj bot-flags) (bot-flags bf06)))) - (set! (-> obj bot-flags) (the-as bot-flags v0-0)) - ) - ) - v0-0 - ) - (('too-far-fail) - (when (not (logtest? (-> obj bot-flags) (bot-flags too-far-fail bf09))) - (logior! (-> obj bot-flags) (bot-flags bf09)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag check-water)) - (logclear! (-> obj mask) (process-mask collectable)) - (logclear! (-> obj enemy-flags) (enemy-flag look-at-move-dest)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (go (method-of-object obj failed)) - ) - ) - (('move-to-vehicle) - (let ((a0-19 (-> arg3 param 2))) - (cond - ((>= (the-as int a0-19) 0) - (let ((v1-29 (the-as object (-> arg3 param 1)))) - (cond - ((focus-test? obj pilot) - (if (= (-> obj vehicle-seat-index) a0-19) - (= (the-as uint v1-29) (handle->process (-> obj vehicle-handle))) - ) - ) - (else - (set! (-> obj vehicle-seat-index) (the-as int a0-19)) - (set! (-> obj vehicle-handle) (process->handle (the-as uint v1-29))) - (logior! (-> obj bot-flags) (bot-flags bf15)) - #t - ) + ((>= (the-as int a0-19) 0) + (let ((v1-29 (the-as object (-> arg3 param 1)))) + (cond + ((focus-test? obj pilot) + (if (= (-> obj vehicle-seat-index) a0-19) + (= (the-as uint v1-29) (handle->process (-> obj vehicle-handle))) + ) + ) + (else + (set! (-> obj vehicle-seat-index) (the-as int a0-19)) + (set! (-> obj vehicle-handle) (process->handle (the-as uint v1-29))) + (logior! (-> obj bot-flags) (bot-flags bf15)) + #t ) ) ) - (else - (when (not (focus-test? obj pilot)) - (set! (-> obj vehicle-seat-index) -1) - (set! (-> obj vehicle-handle) (the-as handle #f)) - (logclear! (-> obj bot-flags) (bot-flags bf15)) - #t - ) - ) - ) - ) - ) - (('exit-vehicle) - (when (focus-test? obj pilot) - (let ((v1-43 (-> arg3 param 1)) - (s5-1 (-> arg3 param 2)) - ) - (cond - (v1-43 - (set! (-> obj bot-flags) (logior (bot-flags bf16) (-> obj bot-flags))) - (when (and (>= (the-as int s5-1) 0) (!= s5-1 (-> obj nav-mesh-index))) - (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor (the-as int s5-1)) obj) - (set! (-> obj nav-mesh-index) (the-as int s5-1)) - ) - ) - (else - (logclear! (-> obj bot-flags) (bot-flags bf16)) - ) - ) - ) - #t - ) - ) - (('slave-id) - (set! (-> obj slave-id) (the-as int (-> arg3 param 1))) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - ((= v1-0 'notify) - (case (-> arg3 param 0) - (('attack) - (let ((s5-2 (-> arg3 param 1))) - (when (if (type? s5-2 process-focusable) - s5-2 - ) - (logior! (-> obj enemy-flags) (enemy-flag look-at-focus)) - (set! (-> obj hit-focus-time) (-> pp clock frame-counter)) - ) - ) - #t - ) - (('mission-failed) - (logior! (-> obj bot-flags) (bot-flags bf09)) - (logclear! (-> obj bot-flags) (bot-flags bf06)) - #t - ) - (('follow-dir) - (set! (-> obj follow-dir quad) (-> (the-as vector (-> arg3 param 1)) quad)) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - ((= v1-0 'set-task) - (let ((a1-11 (/ (the-as int (-> arg3 param 0)) 8))) - (logior! (-> obj bot-task-bits) (ash 1 a1-11)) - ) - #t - ) - ((= v1-0 'clear-task) - (let ((a1-13 (/ (the-as int (-> arg3 param 0)) 8))) - (logclear! (-> obj bot-task-bits) (ash 1 a1-13)) - ) - #t - ) - ((= v1-0 'skip) - (skip-waypoint obj) - ) - ((= v1-0 'change-mode) - (when (= (-> arg3 param 0) 'grab) - (set! v0-0 (the-as none (alive? obj))) - (if (and (the-as symbol v0-0) (-> arg3 param 1)) - (logior! (-> obj focus-status) (focus-status grabbed)) ) - v0-0 - ) - ) - ((= v1-0 'end-mode) - (when (focus-test? obj grabbed) - (logclear! (-> obj focus-status) (focus-status grabbed)) - #t - ) - ) - ((= v1-0 'hide) - (cond - ((-> arg3 param 0) - (go (method-of-object obj hidden)) + (else + (when (not (focus-test? obj pilot)) + (set! (-> obj vehicle-seat-index) -1) + (set! (-> obj vehicle-handle) (the-as handle #f)) + (logclear! (-> obj bot-flags) (bot-flags bf15)) + #t + ) + ) + ) ) - (else - (if (and (-> obj next-state) (= (-> obj next-state name) 'hidden)) - (react-to-focus obj) - ) - ) + ) + (('exit-vehicle) + (when (focus-test? obj pilot) + (let ((v1-43 (-> arg3 param 1)) + (s5-1 (-> arg3 param 2)) + ) + (cond + (v1-43 + (set! (-> obj bot-flags) (logior (bot-flags bf16) (-> obj bot-flags))) + (when (and (>= (the-as int s5-1) 0) (!= s5-1 (-> obj nav-mesh-index))) + (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor (the-as int s5-1)) obj) + (set! (-> obj nav-mesh-index) (the-as int s5-1)) + ) + ) + (else + (logclear! (-> obj bot-flags) (bot-flags bf16)) + ) + ) + ) + #t + ) + ) + (('slave-id) + (set! (-> obj slave-id) (the-as int (-> arg3 param 1))) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - ((= v1-0 'draw) - (cond - ((-> arg3 param 0) - (set! v0-0 (the-as none (logclear (-> obj draw status) (draw-control-status no-draw)))) - (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + ((= v1-0 'notify) + (case (-> arg3 param 0) + (('attack) + (let ((s5-2 (-> arg3 param 1))) + (when (if (type? s5-2 process-focusable) + s5-2 + ) + (logior! (-> obj enemy-flags) (enemy-flag look-at-focus)) + (set! (-> obj hit-focus-time) (current-time)) + ) ) - (else - (set! v0-0 (the-as none (logior (-> obj draw status) (draw-control-status no-draw)))) - (set! (-> obj draw status) (the-as draw-control-status v0-0)) - ) + #t + ) + (('mission-failed) + (logior! (-> obj bot-flags) (bot-flags bf09)) + (logclear! (-> obj bot-flags) (bot-flags bf06)) + #t + ) + (('follow-dir) + (set! (-> obj follow-dir quad) (-> (the-as vector (-> arg3 param 1)) quad)) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + ) + ) + ((= v1-0 'set-task) + (let ((a1-11 (/ (the-as int (-> arg3 param 0)) 8))) + (logior! (-> obj bot-task-bits) (ash 1 a1-11)) + ) + #t + ) + ((= v1-0 'clear-task) + (let ((a1-13 (/ (the-as int (-> arg3 param 0)) 8))) + (logclear! (-> obj bot-task-bits) (ash 1 a1-13)) + ) + #t + ) + ((= v1-0 'skip) + (skip-waypoint obj) + ) + ((= v1-0 'change-mode) + (when (= (-> arg3 param 0) 'grab) + (set! v0-0 (the-as none (alive? obj))) + (if (and (the-as symbol v0-0) (-> arg3 param 1)) + (logior! (-> obj focus-status) (focus-status grabbed)) + ) v0-0 ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ((= v1-0 'end-mode) + (when (focus-test? obj grabbed) + (logclear! (-> obj focus-status) (focus-status grabbed)) + #t + ) + ) + ((= v1-0 'hide) + (cond + ((-> arg3 param 0) + (go (method-of-object obj hidden)) ) + (else + (if (and (-> obj next-state) (= (-> obj next-state name) 'hidden)) + (react-to-focus obj) + ) + ) + ) + ) + ((= v1-0 'draw) + (cond + ((-> arg3 param 0) + (set! v0-0 (the-as none (logclear (-> obj draw status) (draw-control-status no-draw)))) + (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + (else + (set! v0-0 (the-as none (logior (-> obj draw status) (draw-control-status no-draw)))) + (set! (-> obj draw status) (the-as draw-control-status v0-0)) + ) + ) + v0-0 + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1118,75 +1112,69 @@ (defmethod bot-check-too-far bot ((obj bot)) "Call the current [[bot-waypoint]]'s `check-too-far` function if available, otherwise use the default `course` one. If the player is too far, play a warning speech." - (with-pp - (let ((result 0)) - (let ((too-far-check (-> obj delay-too-far-check))) - (cond - ((> too-far-check 0) - (set! (-> obj delay-too-far-check) (+ too-far-check -1)) - ) - ((and (zero? too-far-check) *target* (not (logtest? (-> obj focus-status) (focus-status grabbed)))) - (let ((check-too-far-func (the-as object (-> obj waypoint check-too-far)))) - (if (not (the-as symbol check-too-far-func)) - (set! check-too-far-func (-> obj course default-check-too-far)) - ) - (when (the-as symbol check-too-far-func) - (cond - ((logtest? (the-as int check-too-far-func) 1) - (set! result ((the-as (function bot int) (-> (the-as symbol check-too-far-func) value)) obj)) - ) - ((= (rtype-of (the-as symbol check-too-far-func)) function) - (set! result ((the-as (function bot int) check-too-far-func) obj)) - ) - ) + (let ((result 0)) + (let ((too-far-check (-> obj delay-too-far-check))) + (cond + ((> too-far-check 0) + (set! (-> obj delay-too-far-check) (+ too-far-check -1)) + ) + ((and (zero? too-far-check) *target* (not (logtest? (-> obj focus-status) (focus-status grabbed)))) + (let ((check-too-far-func (the-as object (-> obj waypoint check-too-far)))) + (if (not (the-as symbol check-too-far-func)) + (set! check-too-far-func (-> obj course default-check-too-far)) + ) + (when (the-as symbol check-too-far-func) + (cond + ((logtest? (the-as int check-too-far-func) 1) + (set! result ((the-as (function bot int) (-> (the-as symbol check-too-far-func) value)) obj)) + ) + ((= (rtype-of (the-as symbol check-too-far-func)) function) + (set! result ((the-as (function bot int) check-too-far-func) obj)) + ) ) ) - (if (and (= result 1) - (nonzero? (-> obj started-warning-time)) - (>= (- (-> pp clock frame-counter) (-> obj started-warning-time)) - (the-as time-frame (-> obj warn-to-fail-timeout)) - ) - ) - (set! result 2) - ) - (case result - ((1) - (if (zero? (-> obj started-warning-time)) - (set! (-> obj started-warning-time) (-> pp clock frame-counter)) - ) - (if (and (>= (-> pp clock frame-counter) (-> obj next-too-far-warn-time)) (play-too-far-warn-speech obj)) - (set! (-> obj next-too-far-warn-time) - (+ (-> pp clock frame-counter) - (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) - ) - ) - ) - ) - ) ) - ) + (if (and (= result 1) + (nonzero? (-> obj started-warning-time)) + (>= (- (current-time) (-> obj started-warning-time)) (the-as time-frame (-> obj warn-to-fail-timeout))) + ) + (set! result 2) + ) + (case result + ((1) + (if (zero? (-> obj started-warning-time)) + (set! (-> obj started-warning-time) (current-time)) + ) + (if (and (>= (current-time) (-> obj next-too-far-warn-time)) (play-too-far-warn-speech obj)) + (set! (-> obj next-too-far-warn-time) + (+ (current-time) + (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) + ) + ) + ) + ) + ) + ) ) - (when (zero? result) - (set! (-> obj started-warning-time) 0) - 0 - ) - (= result 2) ) + (when (zero? result) + (set! (-> obj started-warning-time) 0) + 0 + ) + (= result 2) ) ) ;; definition for method 212 of type bot ;; WARN: Return type mismatch time-frame vs none. (defmethod reset-warn-time! bot ((obj bot)) - (with-pp - (set! (-> obj started-warning-time) 0) - (set! (-> obj next-too-far-warn-time) - (+ (-> pp clock frame-counter) - (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) - ) - ) - (none) - ) + (set! (-> obj started-warning-time) 0) + (set! (-> obj next-too-far-warn-time) + (+ (current-time) + (get-rand-int-range obj (the-as int (-> obj warn-min-delay)) (the-as int (-> obj warn-max-delay))) + ) + ) + (none) ) ;; definition for method 55 of type bot @@ -1423,44 +1411,42 @@ If the player is too far, play a warning speech." ;; definition for method 213 of type bot (defmethod go-to-waypoint! bot ((obj bot) (id int) (skipped? symbol)) "Start moving to the given [[bot-waypoint]]." - (with-pp - (let* ((course (-> obj course)) - (waypoint-count (-> course waypoints length)) - ) - (dotimes (i waypoint-count) - (let ((waypoint (-> course waypoints i))) - (when (= (-> waypoint waypoint-id) id) - (set! (-> obj waypoint) waypoint) - (set! (-> obj waypoint-bits) (the-as uint 0)) - (set! (-> obj waypoint-time0) (-> pp clock frame-counter)) - (set! (-> obj too-far-warn-dist) (-> obj too-far-warn-dist-default)) - (set! (-> obj too-far-fail-dist-delta) (-> obj too-far-fail-dist-delta-default)) - (let ((mesh-idx (-> waypoint nav-mesh-index))) - (when (and (>= mesh-idx 0) (!= (-> obj nav-mesh-index) mesh-idx)) - (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor mesh-idx) obj) - (set! (-> obj nav-mesh-index) mesh-idx) - ) + (let* ((course (-> obj course)) + (waypoint-count (-> course waypoints length)) + ) + (dotimes (i waypoint-count) + (let ((waypoint (-> course waypoints i))) + (when (= (-> waypoint waypoint-id) id) + (set! (-> obj waypoint) waypoint) + (set! (-> obj waypoint-bits) (the-as uint 0)) + (set! (-> obj waypoint-time0) (current-time)) + (set! (-> obj too-far-warn-dist) (-> obj too-far-warn-dist-default)) + (set! (-> obj too-far-fail-dist-delta) (-> obj too-far-fail-dist-delta-default)) + (let ((mesh-idx (-> waypoint nav-mesh-index))) + (when (and (>= mesh-idx 0) (!= (-> obj nav-mesh-index) mesh-idx)) + (change-to (nav-mesh-from-res-tag (-> obj entity) 'nav-mesh-actor mesh-idx) obj) + (set! (-> obj nav-mesh-index) mesh-idx) ) - (when skipped? - (let ((on-skip (-> waypoint on-skipping-here))) - (when on-skip - (process-entity-status! obj (entity-perm-status no-kill) #t) - (on-skip obj) - ) - ) - ) - (let ((on-set (-> waypoint on-set))) - (if on-set - (on-set obj) - ) - ) - (return #f) ) + (when skipped? + (let ((on-skip (-> waypoint on-skipping-here))) + (when on-skip + (process-entity-status! obj (entity-perm-status no-kill) #t) + (on-skip obj) + ) + ) + ) + (let ((on-set (-> waypoint on-set))) + (if on-set + (on-set obj) + ) + ) + (return #f) ) ) ) - (go process-drawable-art-error "bad waypoint id") ) + (go process-drawable-art-error "bad waypoint id") ) ;; definition for method 215 of type bot @@ -1593,88 +1579,86 @@ If the player is too far, play a warning speech." ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod bot-method-223 bot ((obj bot) (arg0 symbol)) - (with-pp - (let ((focus (-> obj focus-info)) - (timer (-> pp clock frame-counter)) - (focus-proc (handle->process (-> obj focus handle))) - ) - (when (or (!= timer (-> focus update-time)) (!= focus-proc (-> focus fproc))) - (set! (-> focus update-time) timer) - (set! (-> focus fproc) (the-as process-focusable focus-proc)) - (set! (-> focus los) 0) - (when focus-proc - (set! (-> focus pos quad) (-> (get-trans (the-as process-focusable focus-proc) 0) quad)) - (set! (-> focus bullseye quad) (-> (get-trans (the-as process-focusable focus-proc) 3) quad)) - (vector-z-quaternion! (-> focus my-facing-xz-dir) (-> obj root-override2 quat)) - (set! (-> focus my-facing-xz-dir y) 0.0) - (vector-normalize! (-> focus my-facing-xz-dir) 1.0) - (set! (-> focus my-facing-ry) (atan (-> focus my-facing-xz-dir x) (-> focus my-facing-xz-dir z))) - (vector-! (-> focus bullseye-xz-dir) (-> focus bullseye) (-> obj root-override2 trans)) - (let ((v1-11 (-> focus bullseye-xz-dir))) - (set! (-> focus bullseye-xz-dist) (sqrtf (+ (* (-> v1-11 x) (-> v1-11 x)) (* (-> v1-11 z) (-> v1-11 z))))) - ) - (set! (-> focus bullseye-xz-dir y) 0.0) - (vector-normalize! (-> focus bullseye-xz-dir) 1.0) - (set! (-> focus bullseye-ry) (atan (-> focus bullseye-xz-dir x) (-> focus bullseye-xz-dir z))) - (set! (-> focus ry-diff) (deg- (-> focus bullseye-ry) (-> focus my-facing-ry))) - ) + (let ((focus (-> obj focus-info)) + (timer (current-time)) + (focus-proc (handle->process (-> obj focus handle))) ) - (when (and arg0 focus-proc (zero? (-> focus los))) - (let ((cquery (new 'stack-no-clear 'collide-query))) - (set! (-> cquery start-pos quad) (-> obj root-override2 trans quad)) - (set! (-> cquery start-pos y) (+ 8192.0 (-> cquery start-pos y))) - (vector-! (-> cquery move-dist) (-> focus bullseye) (-> cquery start-pos)) - (let ((f0-19 (fmax 1.0 (+ -1638.4 (vector-length (-> cquery move-dist)))))) - (cond - ((< f0-19 (-> focus max-los-dist)) - (vector-normalize! (-> cquery move-dist) f0-19) - (let ((v1-23 cquery)) - (set! (-> v1-23 radius) 2048.0) - (set! (-> v1-23 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher)) - (set! (-> v1-23 ignore-process0) obj) - (set! (-> v1-23 ignore-process1) #f) - (set! (-> v1-23 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-23 action-mask) (collide-action solid)) - ) - (cond - ((>= (fill-and-probe-using-line-sphere *collide-cache* cquery) 0.0) - (set! (-> focus los) 3) - 0 - ) - (else - (let ((s3-3 1)) - (when (not (logtest? (-> obj bot-flags) (bot-flags attacked))) - (let ((a0-31 *target*)) - (when a0-31 - (vector+! (-> cquery move-dist) (-> cquery move-dist) (-> cquery start-pos)) - (if (>= 16384.0 (vector-segment-distance-point! - (get-trans a0-31 3) - (-> cquery start-pos) - (-> cquery move-dist) - (the-as vector #f) - ) - ) - (set! s3-3 4) - ) - ) + (when (or (!= timer (-> focus update-time)) (!= focus-proc (-> focus fproc))) + (set! (-> focus update-time) timer) + (set! (-> focus fproc) (the-as process-focusable focus-proc)) + (set! (-> focus los) 0) + (when focus-proc + (set! (-> focus pos quad) (-> (get-trans (the-as process-focusable focus-proc) 0) quad)) + (set! (-> focus bullseye quad) (-> (get-trans (the-as process-focusable focus-proc) 3) quad)) + (vector-z-quaternion! (-> focus my-facing-xz-dir) (-> obj root-override2 quat)) + (set! (-> focus my-facing-xz-dir y) 0.0) + (vector-normalize! (-> focus my-facing-xz-dir) 1.0) + (set! (-> focus my-facing-ry) (atan (-> focus my-facing-xz-dir x) (-> focus my-facing-xz-dir z))) + (vector-! (-> focus bullseye-xz-dir) (-> focus bullseye) (-> obj root-override2 trans)) + (let ((v1-11 (-> focus bullseye-xz-dir))) + (set! (-> focus bullseye-xz-dist) (sqrtf (+ (* (-> v1-11 x) (-> v1-11 x)) (* (-> v1-11 z) (-> v1-11 z))))) + ) + (set! (-> focus bullseye-xz-dir y) 0.0) + (vector-normalize! (-> focus bullseye-xz-dir) 1.0) + (set! (-> focus bullseye-ry) (atan (-> focus bullseye-xz-dir x) (-> focus bullseye-xz-dir z))) + (set! (-> focus ry-diff) (deg- (-> focus bullseye-ry) (-> focus my-facing-ry))) + ) + ) + (when (and arg0 focus-proc (zero? (-> focus los))) + (let ((cquery (new 'stack-no-clear 'collide-query))) + (set! (-> cquery start-pos quad) (-> obj root-override2 trans quad)) + (set! (-> cquery start-pos y) (+ 8192.0 (-> cquery start-pos y))) + (vector-! (-> cquery move-dist) (-> focus bullseye) (-> cquery start-pos)) + (let ((f0-19 (fmax 1.0 (+ -1638.4 (vector-length (-> cquery move-dist)))))) + (cond + ((< f0-19 (-> focus max-los-dist)) + (vector-normalize! (-> cquery move-dist) f0-19) + (let ((v1-23 cquery)) + (set! (-> v1-23 radius) 2048.0) + (set! (-> v1-23 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher)) + (set! (-> v1-23 ignore-process0) obj) + (set! (-> v1-23 ignore-process1) #f) + (set! (-> v1-23 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-23 action-mask) (collide-action solid)) + ) + (cond + ((>= (fill-and-probe-using-line-sphere *collide-cache* cquery) 0.0) + (set! (-> focus los) 3) + 0 + ) + (else + (let ((s3-3 1)) + (when (not (logtest? (-> obj bot-flags) (bot-flags attacked))) + (let ((a0-31 *target*)) + (when a0-31 + (vector+! (-> cquery move-dist) (-> cquery move-dist) (-> cquery start-pos)) + (if (>= 16384.0 (vector-segment-distance-point! + (get-trans a0-31 3) + (-> cquery start-pos) + (-> cquery move-dist) + (the-as vector #f) + ) + ) + (set! s3-3 4) + ) ) ) - (set! (-> focus los) s3-3) ) + (set! (-> focus los) s3-3) ) ) ) - (else - (set! (-> focus los) 2) - ) + ) + (else + (set! (-> focus los) 2) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 182 of type bot @@ -1938,78 +1922,72 @@ If the player is too far, play a warning speech." ;; definition for method 191 of type bot ;; WARN: Return type mismatch focus-status vs none. (defmethod bot-method-191 bot ((obj bot)) - (with-pp - (logior! (-> obj bot-flags) (bot-flags bf02)) - (set! (-> obj hit-invuln-starting-time) (-> pp clock frame-counter)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active)) - (if (nonzero? (-> obj hit-invuln-ignore-me-delay)) - (logior! (-> obj focus-status) (focus-status ignore)) - ) - (if (nonzero? (-> obj hit-invuln-focus-disable-delay)) - (logior! (-> obj focus-status) (focus-status disable)) - ) - (none) - ) + (logior! (-> obj bot-flags) (bot-flags bf02)) + (set! (-> obj hit-invuln-starting-time) (current-time)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-active)) + (if (nonzero? (-> obj hit-invuln-ignore-me-delay)) + (logior! (-> obj focus-status) (focus-status ignore)) + ) + (if (nonzero? (-> obj hit-invuln-focus-disable-delay)) + (logior! (-> obj focus-status) (focus-status disable)) + ) + (none) ) ;; definition for method 192 of type bot ;; WARN: Return type mismatch bot-flags vs none. (defmethod bot-method-192 bot ((obj bot)) (local-vars (a2-7 enemy-flag)) - (with-pp - (let ((a1-0 (-> obj hit-invuln-starting-time)) - (v1-0 #t) - ) - (if (not (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active))) - (set! v1-0 (cond - ((>= (- (-> pp clock frame-counter) a1-0) (seconds 0.6)) - (let ((a2-6 (-> obj enemy-flags))) - (if (logtest? a2-6 (enemy-flag checking-water)) - (set! a2-7 (logior a2-6 (enemy-flag enable-on-active))) - (set! a2-7 (logclear a2-6 (enemy-flag enable-on-active))) - ) - ) - (set! (-> obj enemy-flags) a2-7) - v1-0 + (let ((a1-0 (-> obj hit-invuln-starting-time)) + (v1-0 #t) + ) + (if (not (logtest? (-> obj enemy-flags) (enemy-flag enable-on-active))) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (seconds 0.6)) + (let ((a2-6 (-> obj enemy-flags))) + (if (logtest? a2-6 (enemy-flag checking-water)) + (set! a2-7 (logior a2-6 (enemy-flag enable-on-active))) + (set! a2-7 (logclear a2-6 (enemy-flag enable-on-active))) + ) ) - (else - #f - ) + (set! (-> obj enemy-flags) a2-7) + v1-0 + ) + (else + #f ) - ) - ) - (if (focus-test? obj ignore) - (set! v1-0 - (cond - ((>= (- (-> pp clock frame-counter) a1-0) (the-as time-frame (-> obj hit-invuln-ignore-me-delay))) - (logclear! (-> obj focus-status) (focus-status ignore)) - v1-0 - ) - (else - #f - ) - ) - ) - ) - (if (focus-test? obj disable) - (set! v1-0 - (cond - ((>= (- (-> pp clock frame-counter) a1-0) (the-as time-frame (-> obj hit-invuln-focus-disable-delay))) - (logclear! (-> obj focus-status) (focus-status disable)) - v1-0 - ) - (else - #f - ) - ) - ) - ) - (if v1-0 - (logclear! (-> obj bot-flags) (bot-flags bf02)) - ) - ) - (none) + ) + ) + ) + (if (focus-test? obj ignore) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (the-as time-frame (-> obj hit-invuln-ignore-me-delay))) + (logclear! (-> obj focus-status) (focus-status ignore)) + v1-0 + ) + (else + #f + ) + ) + ) + ) + (if (focus-test? obj disable) + (set! v1-0 (cond + ((>= (- (current-time) a1-0) (the-as time-frame (-> obj hit-invuln-focus-disable-delay))) + (logclear! (-> obj focus-status) (focus-status disable)) + v1-0 + ) + (else + #f + ) + ) + ) + ) + (if v1-0 + (logclear! (-> obj bot-flags) (bot-flags bf02)) + ) ) + (none) ) ;; definition for method 216 of type bot diff --git a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc index 2157027afd..53fd32dba8 100644 --- a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc @@ -221,7 +221,7 @@ (local-vars (a0-12 entity-actor)) (let* ((tgt (target-pos 0)) (f30-0 (check-crossing-distance obj tgt #t)) - (s5-0 (>= (-> obj latch-open-time) (-> self clock frame-counter))) + (s5-0 (>= (-> obj latch-open-time) (current-time))) ) (the-as symbol @@ -234,7 +234,7 @@ (if (and (not (-> obj were-behind?)) (and (< f30-0 0.0) (-> obj inner?))) (set! (-> obj were-behind?) #t) ) - (and (< (-> obj latch-closed-time) (-> self clock frame-counter)) + (and (< (-> obj latch-closed-time) (current-time)) (or (not (and *target* (focus-test? *target* pilot teleporting))) (< f30-0 -409.6)) (or (and (< f30-0 (-> obj open-distance)) (or (not (-> obj were-behind?)) (< f30-0 20480.0)) @@ -373,8 +373,8 @@ ) ) (cond - ((and gp-0 (>= (- (-> self clock frame-counter) (-> obj spool-sound-time)) (seconds 2))) - (set! (-> obj spool-sound-time) (-> self clock frame-counter)) + ((and gp-0 (>= (- (current-time) (-> obj spool-sound-time)) (seconds 2))) + (set! (-> obj spool-sound-time) (current-time)) (add-process *gui-control* obj @@ -413,10 +413,10 @@ object (case event-type (('close) - (set! (-> self latch-closed-time) (+ (-> self clock frame-counter) (if (>= arg1 1) - (the-as int (-> event param 0)) - 3000 - ) + (set! (-> self latch-closed-time) (+ (current-time) (if (>= arg1 1) + (the-as int (-> event param 0)) + 3000 + ) ) ) (if (and (>= arg1 2) (and (= (-> event param 1) #t) (not (want-cross-airlock? self)))) @@ -425,10 +425,10 @@ (and (-> self next-state) (= (-> self next-state name) 'open)) ) (('open) - (set! (-> self latch-open-time) (+ (-> self clock frame-counter) (if (>= arg1 1) - (the-as int (-> event param 0)) - 3000 - ) + (set! (-> self latch-open-time) (+ (current-time) (if (>= arg1 1) + (the-as int (-> event param 0)) + 3000 + ) ) ) (if (and (>= arg1 2) (and (= (-> event param 1) #t) (want-cross-airlock? self) (destination-loaded? self #f))) @@ -1600,7 +1600,3 @@ This commonly includes things such as: (go (method-of-object obj close) #t) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/battle_REF.gc b/test/decompiler/reference/jak2/levels/common/battle_REF.gc index b4c18b593c..fde1794b26 100644 --- a/test/decompiler/reference/jak2/levels/common/battle_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/battle_REF.gc @@ -1254,64 +1254,62 @@ ;; definition for method 39 of type battle ;; INFO: Used lq/sq (defmethod battle-method-39 battle ((obj battle) (arg0 battle-spawner) (arg1 symbol)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'quaternion)) - (s2-0 (-> arg0 intro-path)) - ) - (cond - (s2-0 - (let ((s1-0 0)) - (when arg1 - (set! s1-0 (-> arg0 ready-index)) - (set! s1-0 (cond - ((>= s1-0 0) - (empty) - s1-0 - ) - (else - (-> arg0 attack-index) - ) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'quaternion)) + (s2-0 (-> arg0 intro-path)) + ) + (cond + (s2-0 + (let ((s1-0 0)) + (when arg1 + (set! s1-0 (-> arg0 ready-index)) + (set! s1-0 (cond + ((>= s1-0 0) + (empty) + s1-0 + ) + (else + (-> arg0 attack-index) ) - ) - ) - (set! (-> arg0 creature-index) s1-0) - (get-point-in-path! s2-0 s3-0 (the float s1-0) 'exact) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (displacement-between-two-points-normalized! s2-0 s0-0 (the float s1-0)) - (set! (-> s0-0 y) 0.0) - (vector-normalize! s0-0 1.0) - (forward-up->quaternion s4-0 s0-0 *up-vector*) - ) + ) + ) ) - ) - (else - (set! (-> arg0 creature-index) 0) - (let ((v1-7 (-> arg0 entity))) - (set! (-> s3-0 quad) (-> v1-7 extra trans quad)) - (quaternion-copy! s4-0 (-> v1-7 quat)) + (set! (-> arg0 creature-index) s1-0) + (get-point-in-path! s2-0 s3-0 (the float s1-0) 'exact) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (displacement-between-two-points-normalized! s2-0 s0-0 (the float s1-0)) + (set! (-> s0-0 y) 0.0) + (vector-normalize! s0-0 1.0) + (forward-up->quaternion s4-0 s0-0 *up-vector*) ) ) ) - (let ((s1-1 (new 'stack-no-clear 'transformq)) - (s2-1 (!= s2-0 #f)) - (s0-1 (battle-method-41 obj arg0)) - ) - (set! (-> s1-1 trans quad) (-> s3-0 quad)) - (quaternion-copy! (-> s1-1 quat) s4-0) - (set! (-> s1-1 scale x) (the-as float (-> arg0 entity))) - (set! (-> s1-1 scale y) (the-as float #t)) - (set! (-> s1-1 scale z) (the-as float s2-1)) - (let ((v0-7 (battle-method-38 obj s0-1 s1-1))) - (when (handle->process v0-7) - (set! (-> arg0 creature) v0-7) - (set! (-> arg0 mode) (the-as uint 1)) - (set! (-> arg0 last-spawn-time) (-> pp clock frame-counter)) - ) - v0-7 + (else + (set! (-> arg0 creature-index) 0) + (let ((v1-7 (-> arg0 entity))) + (set! (-> s3-0 quad) (-> v1-7 extra trans quad)) + (quaternion-copy! s4-0 (-> v1-7 quat)) ) ) ) + (let ((s1-1 (new 'stack-no-clear 'transformq)) + (s2-1 (!= s2-0 #f)) + (s0-1 (battle-method-41 obj arg0)) + ) + (set! (-> s1-1 trans quad) (-> s3-0 quad)) + (quaternion-copy! (-> s1-1 quat) s4-0) + (set! (-> s1-1 scale x) (the-as float (-> arg0 entity))) + (set! (-> s1-1 scale y) (the-as float #t)) + (set! (-> s1-1 scale z) (the-as float s2-1)) + (let ((v0-7 (battle-method-38 obj s0-1 s1-1))) + (when (handle->process v0-7) + (set! (-> arg0 creature) v0-7) + (set! (-> arg0 mode) (the-as uint 1)) + (set! (-> arg0 last-spawn-time) (current-time)) + ) + v0-7 + ) + ) ) ) @@ -1347,10 +1345,10 @@ (let ((v1-5 (-> arg0 noticed-attack-time))) (cond ((zero? v1-5) - (set! (-> arg0 noticed-attack-time) (-> self clock frame-counter)) + (set! (-> arg0 noticed-attack-time) (current-time)) ) (else - (if (>= (- (-> self clock frame-counter) v1-5) (the-as time-frame (-> arg0 notice-attack-delay))) + (if (>= (- (current-time) v1-5) (the-as time-frame (-> arg0 notice-attack-delay))) (logior! (-> arg0 flags) 1) ) ) @@ -1561,7 +1559,7 @@ :virtual #t :event battle-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self on-notice))) (if gp-0 (script-eval (the-as pair gp-0) :vector (-> self root trans)) @@ -1614,77 +1612,75 @@ ;; definition for method 50 of type battle (defmethod battle-method-50 battle ((obj battle)) - (with-pp - (let ((s5-0 (battle-method-52 obj)) - (v1-2 (battle-method-49 obj)) - (a1-0 (-> obj child)) - (a0-3 0) - ) - (while a1-0 - (+! a0-3 1) - (set! a1-0 (-> a1-0 0 brother)) - (nop!) - (nop!) + (let ((s5-0 (battle-method-52 obj)) + (v1-2 (battle-method-49 obj)) + (a1-0 (-> obj child)) + (a0-3 0) ) - (set! (-> obj stat-child-count) (the-as uint a0-3)) - (let ((a0-4 (+ v1-2 a0-3)) - (v1-4 (-> obj max-count)) + (while a1-0 + (+! a0-3 1) + (set! a1-0 (-> a1-0 0 brother)) + (nop!) + (nop!) + ) + (set! (-> obj stat-child-count) (the-as uint a0-3)) + (let ((a0-4 (+ v1-2 a0-3)) + (v1-4 (-> obj max-count)) + ) + (when (zero? a0-4) + (if (or (logtest? (-> obj flags) 4) (>= (-> obj die-count) v1-4)) + (return #t) ) - (when (zero? a0-4) - (if (or (logtest? (-> obj flags) 4) (>= (-> obj die-count) v1-4)) - (return #t) + ) + (set! (-> obj flags) (logand -9 (-> obj flags))) + (cond + ((and (> s5-0 0) (>= s5-0 (the-as int (- v1-4 (-> obj die-count))))) + (let ((a1-14 (-> obj jammed-starting-time))) + (cond + ((zero? (-> obj jammed-starting-time)) + (set! (-> obj jammed-starting-time) (current-time)) ) + (else + (if (>= (- (current-time) a1-14) (seconds 3.5)) + (logior! (-> obj flags) 8) + ) + ) + ) + ) + ) + (else + (set! (-> obj jammed-starting-time) 0) + 0 ) - (set! (-> obj flags) (logand -9 (-> obj flags))) - (cond - ((and (> s5-0 0) (>= s5-0 (the-as int (- v1-4 (-> obj die-count))))) - (let ((a1-14 (-> obj jammed-starting-time))) + ) + (cond + ((and (not (logtest? (-> obj flags) 4)) + (> (-> obj spawners length) 0) + (< a0-4 (the-as int (-> obj info desired-alive-count))) + (< (-> obj count) v1-4) + ) + (when (>= (- (current-time) (-> obj cant-spawn-time)) (the-as time-frame (-> obj next-spawn-delay))) + (let ((a1-29 (battle-method-36 obj))) (cond - ((zero? (-> obj jammed-starting-time)) - (set! (-> obj jammed-starting-time) (-> pp clock frame-counter)) - ) + (a1-29 + (battle-method-39 obj a1-29 #f) + (set! (-> obj next-spawn-delay) (the-as uint (battle-method-35 obj))) + (set! (-> obj cant-spawn-time) (current-time)) + ) (else - (if (>= (- (-> pp clock frame-counter) a1-14) (seconds 3.5)) - (logior! (-> obj flags) 8) - ) + (set! (-> obj cant-spawn-time) (current-time)) ) ) ) ) - (else - (set! (-> obj jammed-starting-time) 0) - 0 - ) - ) - (cond - ((and (not (logtest? (-> obj flags) 4)) - (> (-> obj spawners length) 0) - (< a0-4 (the-as int (-> obj info desired-alive-count))) - (< (-> obj count) v1-4) - ) - (when (>= (- (-> pp clock frame-counter) (-> obj cant-spawn-time)) (the-as time-frame (-> obj next-spawn-delay))) - (let ((a1-29 (battle-method-36 obj))) - (cond - (a1-29 - (battle-method-39 obj a1-29 #f) - (set! (-> obj next-spawn-delay) (the-as uint (battle-method-35 obj))) - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) - (else - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) - ) - ) - ) - ) - (else - (set! (-> obj cant-spawn-time) (-> pp clock frame-counter)) - ) + ) + (else + (set! (-> obj cant-spawn-time) (current-time)) ) ) ) - #f ) + #f ) ;; failed to figure out what this is: @@ -1692,7 +1688,7 @@ :virtual #t :event battle-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self flags) 2) (set! (-> self flags) (logand -9 (-> self flags))) (set! (-> self jammed-starting-time) 0) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc index 0ef9ced1ee..ffe69e2b1e 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc @@ -1148,8 +1148,8 @@ :virtual #t :code (behavior () (until #f - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.067)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1.067)) (amphibian-method-187 self) (suspend) ) @@ -1209,7 +1209,7 @@ 0 (nav-enemy-method-165 self) (ja-no-eval :num! (loop!)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.067)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1.067)) (amphibian-method-187 self) (suspend) ) @@ -1807,7 +1807,7 @@ :event (the-as (function process int symbol event-message-block object :behavior amphibian) enemy-event-handler) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 self)) (set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*) @@ -1834,7 +1834,7 @@ (let ((v1-0 (-> self tongue-mode))) (cond ((zero? v1-0) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (set! (-> self tongue-mode) (the-as uint 1)) (sound-play "tongue-attack") ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/baby_spider/tomb-baby-spider_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/baby_spider/tomb-baby-spider_REF.gc index ea2704aff9..3da31985b1 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/baby_spider/tomb-baby-spider_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/baby_spider/tomb-baby-spider_REF.gc @@ -482,7 +482,7 @@ 0 ) (ja-channel-push! 1 (seconds 0.2)) - (let ((gp-3 (-> self clock frame-counter)) + (let ((gp-3 (current-time)) (s5-1 (the int (* 300.0 (rand-vu-float-range 0.6 1.2)))) (f30-2 1.0) ) @@ -490,7 +490,7 @@ :num! (loop! f30-2) :frame-num 0.0 ) - (until (>= (- (-> self clock frame-counter) gp-3) s5-1) + (until (>= (- (current-time) gp-3) s5-1) (suspend) (ja :num! (loop! f30-2)) ) @@ -827,7 +827,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/bombots/bombbot_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/bombots/bombbot_REF.gc index 0f1be49362..43f5cb7b66 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/bombots/bombbot_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/bombots/bombbot_REF.gc @@ -788,7 +788,6 @@ ) ;; definition for method 3 of type ik-setup -;; INFO: this function exists in multiple non-identical object files (defmethod inspect ik-setup ((obj ik-setup)) (when (not obj) (set! obj obj) @@ -977,7 +976,7 @@ (let ((f30-0 0.4)) (vector-normalize! s2-0 1.0) (let ((s1-0 (-> obj feet s4-0))) - (let* ((f0-10 (+ (* 0.0033333334 (the float (mod (-> pp clock frame-counter) 300))) (-> s1-0 offset))) + (let* ((f0-10 (+ (* 0.0033333334 (the float (mod (current-time) 300))) (-> s1-0 offset))) (f28-0 (- f0-10 (* (the float (the int (/ f0-10 1.0))) 1.0))) (s0-0 (new 'stack-no-clear 'vector)) ) @@ -2008,14 +2007,14 @@ (init-vf0-vector) (when (>= (the int (* 30.0 (-> self shield-hit-points))) (-> self hit-points)) ) - (when (< (the-as time-frame (-> self next-target)) (-> self clock frame-counter)) + (when (< (the-as time-frame (-> self next-target)) (current-time)) (let ((a1-0 (new 'stack-no-clear 'vector))) (set! (-> a1-0 quad) (-> self root-override2 trans quad)) (set! (-> a1-0 w) 122880.0) (bombbot-method-181 self a1-0) ) - (set! (-> self next-target) (the-as uint (+ (-> self clock frame-counter) (seconds 2)))) - (set! (-> self start-target) (the-as uint (-> self clock frame-counter))) + (set! (-> self next-target) (the-as uint (+ (current-time) (seconds 2)))) + (set! (-> self start-target) (the-as uint (current-time))) ) (let ((gp-0 (handle->process (-> self focus handle)))) (let ((f30-0 1.0)) @@ -2031,7 +2030,7 @@ (let ((a1-6 (-> self target-pos))) (let ((v1-34 (-> self start-target-pos))) (let ((a0-14 (-> self start-target-vel))) - (let ((a2-8 (* 0.0033333334 (the float (- (-> self clock frame-counter) (the-as int (-> self start-target))))))) + (let ((a2-8 (* 0.0033333334 (the float (- (current-time) (the-as int (-> self start-target))))))) (.mov vf7 a2-8) ) (.lvf vf5 (&-> a0-14 quad)) @@ -2044,7 +2043,7 @@ (.svf (&-> a1-6 quad) vf6) ) (cond - ((< (the-as time-frame (+ (-> self next-target) -300)) (-> self clock frame-counter)) + ((< (the-as time-frame (+ (-> self next-target) -300)) (current-time)) (bombbot-method-182 self) ) (else @@ -2096,7 +2095,7 @@ ) ) (if (= (vector-length (-> self root-override2 transv)) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> self last-head-roty-speed) (-> self head-roty-speed)) (set! (-> self head-roty-speed) (vector-y-angle (-> self node-list data 4 bone transform vector 2))) @@ -2229,7 +2228,7 @@ ) (set! (-> self explosing) #f) (set! (-> self beep-time) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -2239,28 +2238,26 @@ ) ) 0 - (if (>= (- (-> self clock frame-counter) (-> self state-time)) 0) + (if (>= (- (current-time) (-> self state-time)) 0) (seek! (-> self legs-strength 0) 0.8 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.8)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.8)) (seek! (-> self legs-strength 3) 0.4 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.6)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1.6)) (seek! (-> self legs-strength 1) 0.0 (* 10.0 (-> self clock seconds-per-frame))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2.4)) (seek! (-> self legs-strength 2) 0.5 (* 10.0 (-> self clock seconds-per-frame))) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2.8)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2.8)) (sound-play "bb-explode") (go-virtual explode) ) - (when (< (-> self beep-time) (-> self clock frame-counter)) + (when (< (-> self beep-time) (current-time)) (sound-play "bb-beep") (set! (-> self beep-time) - (+ (-> self clock frame-counter) - (the int (* 0.2 (the float (- (seconds 2.8) (- (-> self clock frame-counter) (-> self state-time)))))) - ) + (+ (current-time) (the int (* 0.2 (the float (- (seconds 2.8) (- (current-time) (-> self state-time))))))) ) ) (none) @@ -2295,7 +2292,7 @@ (set! (-> self minimap) #f) ) (set! (-> self explosing) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack 'joint-exploder-tuning (the-as uint 1)))) (set! (-> gp-0 fountain-rand-transv-lo quad) (-> self root-override2 trans quad)) (set! (-> gp-0 duration) (seconds 3)) @@ -3354,7 +3351,7 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (talker-spawn-func (-> *talker-speech* 117) *entity-pool* (target-pos 0) (the-as region #f)) (none) ) @@ -3376,8 +3373,8 @@ ((= (level-status *level* 'ctysluma) 'active) (set-setting! 'entity-name "camera-236" 0.0 0) (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (add-process *gui-control* self (gui-channel sig) (gui-action play) "bbotxplo" -99.0 0) @@ -3393,8 +3390,8 @@ ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 0.3)) (suspend) ) (setup @@ -3404,7 +3401,7 @@ (-> self clock seconds-per-frame) (bucket-id tex-all-map) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (set-setting! 'interp-time 'abs 0.0 0) @@ -3505,7 +3502,7 @@ TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/bouncer_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/bouncer_REF.gc index 48c02d93b6..c7575c4782 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/bouncer_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/bouncer_REF.gc @@ -152,7 +152,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('touch) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else @@ -161,10 +161,10 @@ ) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self smush) 0.0) (until #f - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (ja :num! (seek! 0.0 0.1)) (ja :num! (seek! (lerp-scale diff --git a/test/decompiler/reference/jak2/levels/common/enemy/fodder/fodder_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/fodder/fodder_REF.gc index 2083a33c90..126bd8a4ba 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/fodder/fodder_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/fodder/fodder_REF.gc @@ -322,52 +322,50 @@ ;; definition for method 180 of type fodder (defmethod fodder-method-180 fodder ((obj fodder)) "@TODO no idea, never seems to do anything because the actor-group-count is always 0" - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj look-at-other-time)) (seconds 0.25)) - (dotimes (group-idx (-> obj actor-group-count)) - (let ((group (-> obj actor-group group-idx))) - (dotimes (actor-idx (-> group length)) - (let* ((actor-proc (-> group data actor-idx actor extra process)) - (fodder-proc (if (type? actor-proc fodder) - (the-as fodder actor-proc) - ) - ) - ) - (when (and fodder-proc - (!= fodder-proc obj) - (>= (- (-> pp clock frame-counter) (-> fodder-proc look-at-other-time)) (seconds 0.25)) - ) - (let* ((dir-to-other-fodder - (vector-! (new 'stack-no-clear 'vector) (-> fodder-proc root-override2 trans) (-> obj root-override2 trans)) - ) - (dir-length (vector-length dir-to-other-fodder)) + (when (>= (- (current-time) (-> obj look-at-other-time)) (seconds 0.25)) + (dotimes (group-idx (-> obj actor-group-count)) + (let ((group (-> obj actor-group group-idx))) + (dotimes (actor-idx (-> group length)) + (let* ((actor-proc (-> group data actor-idx actor extra process)) + (fodder-proc (if (type? actor-proc fodder) + (the-as fodder actor-proc) + ) + ) + ) + (when (and fodder-proc + (!= fodder-proc obj) + (>= (- (current-time) (-> fodder-proc look-at-other-time)) (seconds 0.25)) ) - (when (< dir-length 8192.0) - (vector-float*! dir-to-other-fodder dir-to-other-fodder (/ 1.0 dir-length)) - (let ((f30-0 (vector-dot - dir-to-other-fodder - (-> (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat)) vector 2) - ) + (let* ((dir-to-other-fodder + (vector-! (new 'stack-no-clear 'vector) (-> fodder-proc root-override2 trans) (-> obj root-override2 trans)) + ) + (dir-length (vector-length dir-to-other-fodder)) + ) + (when (< dir-length 8192.0) + (vector-float*! dir-to-other-fodder dir-to-other-fodder (/ 1.0 dir-length)) + (let ((f30-0 (vector-dot + dir-to-other-fodder + (-> (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat)) vector 2) ) - ) - (when (< (cos 14563.556) f30-0) - (let ((channel (ja-channel-float! (the-as art-joint-anim (-> obj draw art-group data 15)) 0.0 0.0 0.0))) - (when channel - (set! (-> obj skel interp-select 0) #xe00010) - (set! (-> obj skel interp-select 1) 0) - (set! (-> channel param 0) 1.0) - (set! (-> channel param 1) 1.0) - (set! (-> channel param 2) 1.0) - (set! (-> channel num-func) num-func-interp1-play!) - ) - ) - (set! (-> obj look-at-other-time) (-> pp clock frame-counter)) - (set! (-> obj look-at-other) (process->handle fodder-proc)) - (set! (-> obj neck-away-from) #f) - (set! (-> fodder-proc look-at-other-time) (-> pp clock frame-counter)) - (set! (-> fodder-proc look-at-other) (process->handle obj)) - (set! (-> fodder-proc neck-away-from) #t) + ) ) + (when (< (cos 14563.556) f30-0) + (let ((channel (ja-channel-float! (the-as art-joint-anim (-> obj draw art-group data 15)) 0.0 0.0 0.0))) + (when channel + (set! (-> obj skel interp-select 0) #xe00010) + (set! (-> obj skel interp-select 1) 0) + (set! (-> channel param 0) 1.0) + (set! (-> channel param 1) 1.0) + (set! (-> channel param 2) 1.0) + (set! (-> channel num-func) num-func-interp1-play!) + ) + ) + (set! (-> obj look-at-other-time) (current-time)) + (set! (-> obj look-at-other) (process->handle fodder-proc)) + (set! (-> obj neck-away-from) #f) + (set! (-> fodder-proc look-at-other-time) (current-time)) + (set! (-> fodder-proc look-at-other) (process->handle obj)) + (set! (-> fodder-proc neck-away-from) #t) ) ) ) @@ -376,8 +374,8 @@ ) ) ) - #f ) + #f ) ) @@ -387,50 +385,48 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((parent-method (method-of-type nav-enemy track-target!))) - (parent-method obj) - ) - (let ((proc (the-as process-drawable #f))) - (cond - ((and (< (- (-> pp clock frame-counter) (-> obj look-at-other-time)) (seconds 0.5)) - (begin - (let ((other-proc (handle->process (-> obj look-at-other)))) - (set! proc (if (type? other-proc process-drawable) - (the-as process-drawable other-proc) - ) - ) - ) - proc + (let ((parent-method (method-of-type nav-enemy track-target!))) + (parent-method obj) + ) + (let ((proc (the-as process-drawable #f))) + (cond + ((and (< (- (current-time) (-> obj look-at-other-time)) (seconds 0.5)) + (begin + (let ((other-proc (handle->process (-> obj look-at-other)))) + (set! proc (if (type? other-proc process-drawable) + (the-as process-drawable other-proc) + ) + ) ) + proc ) - (let ((s5-1 (vector<-cspace! (new 'static 'vector) (-> proc node-list data 5)))) - (look-at-position! obj s5-1) - (cond - ((zero? (-> obj neck)) - ) - ((-> obj neck-away-from) - (let ((s4-0 (new 'static 'vector))) - (let ((v1-11 (vector<-cspace! (new 'static 'vector) (-> obj node-list data 5)))) - (vector-! s4-0 v1-11 s5-1) - (vector+! s4-0 s4-0 v1-11) - ) - (target-set! (-> obj neck) s4-0) + ) + (let ((s5-1 (vector<-cspace! (new 'static 'vector) (-> proc node-list data 5)))) + (look-at-position! obj s5-1) + (cond + ((zero? (-> obj neck)) + ) + ((-> obj neck-away-from) + (let ((s4-0 (new 'static 'vector))) + (let ((v1-11 (vector<-cspace! (new 'static 'vector) (-> obj node-list data 5)))) + (vector-! s4-0 v1-11 s5-1) + (vector+! s4-0 s4-0 v1-11) ) + (target-set! (-> obj neck) s4-0) ) - (else - (target-set! (-> obj neck) s5-1) - ) + ) + (else + (target-set! (-> obj neck) s5-1) ) ) ) - ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) - (look-at-position! obj (the-as vector #f)) - ) - ) + ) + ((logtest? (-> obj enemy-flags) (enemy-flag lock-focus)) + (look-at-position! obj (the-as vector #f)) + ) ) - (none) ) + (none) ) ;; failed to figure out what this is: @@ -486,7 +482,7 @@ (set! (-> _self nav callback-info) *nav-enemy-null-callback-info*) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until (not #f) (ja-no-eval :num! (loop!)) (ja-channel-push! 1 (seconds 0.25)) @@ -594,7 +590,7 @@ ) (goto cfg-22) ) - (set! s5-0 (- (the-as time-frame s5-0) (- (-> self clock frame-counter) (-> self clock old-frame-counter)))) + (set! s5-0 (- (the-as time-frame s5-0) (- (current-time) (-> self clock old-frame-counter)))) (when (<= s5-0 0) (set! s5-0 (rand-vu-int-range 75 150)) (set! s4-0 (not s4-0)) @@ -733,7 +729,7 @@ (set! (-> v1-22 turning-acceleration) 0.0) ) 0 - (set! (-> self slow-timer) (-> self clock frame-counter)) + (set! (-> self slow-timer) (current-time)) (ja-channel-push! 1 (seconds 0.08)) (ja :group! (-> self draw art-group data (-> self enemy-info-override idle-anim))) (ja :num-func num-func-identity :frame-num 0.0) @@ -753,9 +749,9 @@ ) (when (and (nonzero? (-> self slow-timer)) (zero? (-> self fast-timer)) - (>= (- (-> self clock frame-counter) (-> self slow-timer)) (seconds 0.35)) + (>= (- (current-time) (-> self slow-timer)) (seconds 0.35)) ) - (set! (-> self fast-timer) (-> self clock frame-counter)) + (set! (-> self fast-timer) (current-time)) (ja-channel-push! 1 (seconds 0.02)) (let ((v1-55 (-> self attack-type))) (cond @@ -814,7 +810,7 @@ ) ) (cond - ((>= (- (-> self clock frame-counter) (-> self fast-timer)) v1-82) + ((>= (- (current-time) (-> self fast-timer)) v1-82) (set! (-> self slow-timer) 0) (set! (-> self fast-timer) 0) (let ((v1-83 (-> self nav))) @@ -858,9 +854,7 @@ ) (when (zero? (-> self attack-type)) (let ((f0-20 20480.0)) - (when (and (< f30-0 (* f0-20 f0-20)) - (>= (- (-> self clock frame-counter) (-> self look-at-other-time)) (seconds 0.125)) - ) + (when (and (< f30-0 (* f0-20 f0-20)) (>= (- (current-time) (-> self look-at-other-time)) (seconds 0.125))) (let ((v1-117 (ja-channel-float! (the-as art-joint-anim fodder-snap-ja) 0.0 0.0 0.0))) (when v1-117 (set! (-> self skel interp-select 0) #xe00010) @@ -871,7 +865,7 @@ (set! (-> v1-117 num-func) num-func-interp1-play!) ) ) - (set! (-> self look-at-other-time) (-> self clock frame-counter)) + (set! (-> self look-at-other-time) (current-time)) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc index 2e389e4043..a2d5024963 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc @@ -1199,7 +1199,7 @@ (defstate stare (crimson-guard-level) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((gp-0 (-> self focus aware))) (cond ((>= 1 (the-as int gp-0)) @@ -1697,7 +1697,7 @@ :virtual #t :enter (behavior () (talker-spawn-func (-> *talker-speech* 10) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-4 (logior (-> self enemy-flags) (enemy-flag use-notice-distance)))) (set! (-> self enemy-flags) (logclear v1-4 (enemy-flag called-dying))) ) @@ -1787,7 +1787,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (logtest? (-> self flags) 4) (go-virtual gun-shoot) ) @@ -1800,7 +1800,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -1880,7 +1880,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self reaction-time) (the-as time-frame (the int (* 300.0 (get-rand-float-range self 0.5 1.5))))) (none) ) @@ -1890,7 +1890,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (>= 2 (the-as int gp-0)) (not (get-enemy-target self))) (go-stare self) @@ -1951,7 +1951,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-156 self) (none) ) @@ -1961,7 +1961,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -1995,7 +1995,7 @@ ) (if (and (< (-> self target-self-xz-dist) 327680.0) (crimson-guard-level-method-193 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (rand-vu-float-range 1.0 8.0)))) + (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (rand-vu-float-range 1.0 8.0)))) ) (go-virtual gun-shoot) ) @@ -2034,7 +2034,7 @@ ) :enter (behavior () ((-> (method-of-type nav-enemy hostile) enter)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-156 self) (none) ) @@ -2044,7 +2044,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((or (< (the-as int gp-0) 2) (not (get-enemy-target self))) (go-stare self) @@ -2074,9 +2074,9 @@ ) (else (if (or (and (logtest? (-> self nav state flags) (nav-state-flag at-target)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (>= (- (current-time) (-> self state-time)) (seconds 1)) ) (go-virtual grenade-attack) ) @@ -2132,10 +2132,10 @@ (set! (-> a0-9 velocity quad) (-> v1-12 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (the-as int (current-time))) (set! (-> self miss-amount) 0.0) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (set! (-> self reaction-time) (the-as time-frame (the int (* 300.0 (get-rand-float-range self 3.0 5.0))))) (none) @@ -2148,7 +2148,7 @@ :trans (behavior () (crimson-guard-level-method-200 self) (let ((v1-2 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (cond ((< (the-as int v1-2) 2) (go-stare self) @@ -2182,7 +2182,7 @@ ) ) (until #f - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (or (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (< 10922.667 (fabs (-> self target-y-angle))) ) (goto cfg-13) @@ -2256,14 +2256,14 @@ (set! (-> a0-8 velocity quad) (-> v1-13 quad)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-time-see-target) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self last-time-see-target) (the-as int (current-time))) (crimson-guard-level-method-200 self) (if (logtest? (-> self flags) 4) (set! (-> self miss-amount) 16384.0) (set! (-> self miss-amount) (lerp-scale 0.0 16384.0 (-> self target-self-dist) 40960.0 122880.0)) ) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self joint-enable) #t) (none) ) @@ -2315,7 +2315,7 @@ (set! (-> self start-target-vel quad) (-> (the-as process-drawable v1-31) root transv quad)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (label cfg-10) (when (crimson-guard-level-method-194 self) (when (or (not (logtest? (-> self flags) 256)) (and (logtest? (-> self flags) 256) (-> self trigger))) @@ -2323,7 +2323,7 @@ (goto cfg-23) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (set! v1-48 #f) (goto cfg-23) ) @@ -2331,7 +2331,7 @@ (b! (not #f) cfg-10 :delay (set! v1-48 #f)) (label cfg-23) (when v1-48 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 3)) (until #f (ja-channel-push! 1 (seconds 0.1)) @@ -2369,8 +2369,8 @@ (suspend) ) (when (logtest? (-> self flags) 4) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 1)) (suspend) ) ) @@ -2994,8 +2994,8 @@ (suspend) (ja :num! (seek! (ja-aframe 12.0 0))) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (the int (* 900.0 (you-suck-scale *game-info* #f)))) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (the int (* 900.0 (you-suck-scale *game-info* #f)))) (ja-no-eval :group! (-> self draw art-group data 37) :num! (seek! (ja-aframe 12.0 0)) :frame-num (ja-aframe 12.0 0) @@ -3064,8 +3064,8 @@ ) 0 (set! (-> self miss-amount) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self next-shot) (the-as int (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self next-shot) (the-as int (current-time))) (set! (-> self lazer-sound) (new 'static 'sound-id)) 0 (none) @@ -3108,9 +3108,7 @@ ) :trans (behavior () (crimson-guard-level-method-200 self) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (< 32768.0 (-> self target-self-xz-dist)) - ) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 1)) (< 32768.0 (-> self target-self-xz-dist))) (go-hostile self) ) (none) @@ -3125,7 +3123,7 @@ ) (until #f (let ((gp-2 #t)) - (while (or (< 5461.3335 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (-> self clock frame-counter))) + (while (or (< 5461.3335 (fabs (-> self target-y-angle))) (>= (-> self next-shot) (current-time))) (when gp-2 (ja-channel-push! 1 (seconds 0.1)) (set! gp-2 #f) @@ -3191,7 +3189,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (let ((v1-124 (-> (the-as collide-shape-prim-group (-> self root-override2 root-prim)) child 2))) (logior! (-> v1-124 prim-core action) (collide-action deadly)) ) @@ -3220,12 +3218,12 @@ ) (set! (-> v1-127 state mode) (the-as lightning-mode a0-38)) ) - (let ((gp-4 (-> self clock frame-counter)) + (let ((gp-4 (current-time)) (s5-1 150) (f30-0 1.0) ) (ja-no-eval :group! (-> self draw art-group data 22) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-4) s5-1) + (until (>= (- (current-time) gp-4) s5-1) (crimson-guard-level-method-198 self) (suspend) (ja :num! (loop! f30-0)) @@ -3264,7 +3262,7 @@ ) ) (else - (set! (-> self next-shot) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (set! (-> self next-shot) (the-as int (+ (current-time) (seconds 1)))) (suspend) 0 ) @@ -3301,7 +3299,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -3369,7 +3367,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -4383,7 +4381,7 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self nav flags) (nav-control-flag output-sphere-hash)) (nav-enemy-method-166 self) (let ((v1-7 (-> self nav))) @@ -4460,18 +4458,15 @@ (while (not (-> self already-shot)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-set! 1) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 150) (f30-0 2.0) ) (ja-no-eval :group! (-> self draw art-group data 6) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) - (crimson-guard-level-method-201 - self - (* 0.006666667 (the float (- (-> self clock frame-counter) (-> self state-time)))) - ) + (until (>= (- (current-time) gp-0) s5-0) + (crimson-guard-level-method-201 self (* 0.006666667 (the float (- (current-time) (-> self state-time))))) (suspend) (ja :num! (loop! f30-0)) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/guards/guard-conversation_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/guards/guard-conversation_REF.gc index 54e03a8641..be374102f8 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/guards/guard-conversation_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/guards/guard-conversation_REF.gc @@ -357,9 +357,9 @@ ) ) ) - (set! (-> self last-playing-time) (-> self clock frame-counter)) + (set! (-> self last-playing-time) (current-time)) ) - (if (and (-> self triggered?) (>= (- (-> self clock frame-counter) (-> self last-playing-time)) (seconds 6))) + (if (and (-> self triggered?) (>= (- (current-time) (-> self last-playing-time)) (seconds 6))) (guard-conversation-method-24 self) ) (none) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc index f9d5b71380..72c2cd4ee1 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc @@ -132,8 +132,8 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-guard-spawn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-guard-spawn-time) (current-time)) (none) ) :code (behavior () @@ -167,7 +167,7 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (set! (-> self last-guard-spawn-time) 0) 0 @@ -212,16 +212,16 @@ gp-0 ) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) ) - (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (-> self clock frame-counter))) + (if (and (nonzero? (-> self leave-time)) (< (-> self leave-time) (current-time))) (go-virtual leave) ) (when (and (zero? (-> self leave-time)) (nonzero? (-> self max-guard)) (>= (-> self count-guard) (-> self max-guard)) ) - (set! (-> self leave-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self leave-time) (+ (current-time) (seconds 3))) (send-event self 'stop-spawning) ) (transport-level-method-34 self) @@ -245,7 +245,7 @@ :virtual #t :event transport-level-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override transv y) 0.0) (none) ) @@ -282,43 +282,41 @@ ;; definition for method 33 of type transport-level ;; INFO: Used lq/sq (defmethod transport-level-method-33 transport-level ((obj transport-level)) - (with-pp - (let ((v1-0 0)) - (dotimes (a0-1 8) - (if (handle->process (-> obj guards a0-1)) - (+! v1-0 1) + (let ((v1-0 0)) + (dotimes (a0-1 8) + (if (handle->process (-> obj guards a0-1)) + (+! v1-0 1) + ) + ) + (when (zero? (-> obj count-guard)) + (set! (-> obj last-guard-spawn-time) 0) + 0 + ) + (when (and (>= (- (current-time) (-> obj last-guard-spawn-time)) (-> obj spawn-time)) + (< v1-0 (the-as int (-> obj num-wanted-guards))) + ) + (let ((s5-0 (new 'stack-no-clear 'crimson-guard-level-params))) + (set! (-> s5-0 transport-side) (-> obj spawn-side)) + (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) + (set! (-> s5-0 pos quad) (-> obj root-override trans quad)) + (set! (-> s5-0 pos y) (+ 8192.0 (-> s5-0 pos y))) + (quaternion-rotate-local-y! (-> s5-0 quat) (-> obj root-override quat) 32768.0) + (set! (-> s5-0 handle) (the-as uint (process->handle obj))) + (set! (-> s5-0 weapon) 1) + (dotimes (s4-0 (the-as int (-> obj num-wanted-guards))) + (when (not (handle->process (-> obj guards s4-0))) + (set! (-> obj guards s4-0) (ppointer->handle (process-spawn crimson-guard-level s5-0 :to obj))) + #t + (goto cfg-38) ) - ) - (when (zero? (-> obj count-guard)) - (set! (-> obj last-guard-spawn-time) 0) - 0 - ) - (when (and (>= (- (-> pp clock frame-counter) (-> obj last-guard-spawn-time)) (-> obj spawn-time)) - (< v1-0 (the-as int (-> obj num-wanted-guards))) - ) - (let ((s5-0 (new 'stack-no-clear 'crimson-guard-level-params))) - (set! (-> s5-0 transport-side) (-> obj spawn-side)) - (set! (-> s5-0 nav-mesh) (-> obj nav-mesh)) - (set! (-> s5-0 pos quad) (-> obj root-override trans quad)) - (set! (-> s5-0 pos y) (+ 8192.0 (-> s5-0 pos y))) - (quaternion-rotate-local-y! (-> s5-0 quat) (-> obj root-override quat) 32768.0) - (set! (-> s5-0 handle) (the-as uint (process->handle obj))) - (set! (-> s5-0 weapon) 1) - (dotimes (s4-0 (the-as int (-> obj num-wanted-guards))) - (when (not (handle->process (-> obj guards s4-0))) - (set! (-> obj guards s4-0) (ppointer->handle (process-spawn crimson-guard-level s5-0 :to obj))) - #t - (goto cfg-38) - ) - ) - (label cfg-38) - (when (-> s5-0 proc) - (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) - (set! (-> obj last-guard-spawn-time) (-> pp clock frame-counter)) - (let ((v0-0 (+ (-> obj count-guard) 1))) - (set! (-> obj count-guard) v0-0) - v0-0 - ) + ) + (label cfg-38) + (when (-> s5-0 proc) + (set! (-> obj spawn-side) (- 1 (the-as int (-> obj spawn-side)))) + (set! (-> obj last-guard-spawn-time) (current-time)) + (let ((v0-0 (+ (-> obj count-guard) 1))) + (set! (-> obj count-guard) v0-0) + v0-0 ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc index c2a0478a15..28fe5de81c 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc @@ -727,7 +727,7 @@ 0 (set! (-> self speed-y) 0.0) (set! (-> self accel-y) 0.0) - (set! (-> self next-jump-time) (the-as int (+ (-> self clock frame-counter) (get-rand-int-range self 0 120)))) + (set! (-> self next-jump-time) (the-as int (+ (current-time) (get-rand-int-range self 0 120)))) (set! (-> self step-num) 0) (set! (-> self best-score) -2.0) (none) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc index 5d9f375e03..31de6eeb79 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc @@ -681,9 +681,7 @@ (t9-0) ) ) - (set! (-> self last-fire-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 2.0 3.0)))) - ) + (set! (-> self last-fire-time) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 2.0 3.0))))) (go-virtual ambush-fly) (none) ) @@ -766,7 +764,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (let ((f0-1 (vector-vector-distance-squared (-> self root-override2 trans) (-> self focus-pos))) (f1-0 122880.0) @@ -780,7 +778,7 @@ (none) ) :exit (behavior () - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (none) ) @@ -845,7 +843,7 @@ ) ) (talker-spawn-func (-> *talker-speech* 10) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -883,11 +881,11 @@ enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 4)) (go-hostile self) ) (none) @@ -965,14 +963,14 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (set! (-> self shots-fired) 0) 0 (none) ) :exit (behavior () - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (none) ) @@ -1113,8 +1111,8 @@ 0 (set! (-> self hit-points) 0) (do-effect (-> self skel effect) 'death-default 0.0 -1) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1357,35 +1355,33 @@ ;; definition for method 162 of type crimson-guard-hover ;; WARN: Return type mismatch object vs symbol. (defmethod crimson-guard-hover-method-162 crimson-guard-hover ((obj crimson-guard-hover) (arg0 process-focusable)) - (with-pp - (let* ((v1-1 (vector+! (new 'stack-no-clear 'vector) (-> obj root-override2 trans) (-> obj root-override2 transv))) - (s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 (-> obj focus-pos))) - (f30-0 (vector-length s5-1)) - (a0-4 (if arg0 - arg0 - (handle->process (-> obj focus handle)) - ) - ) - ) - (the-as - symbol - (when a0-4 - (let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable a0-4) 0))) - (s5-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s5-1 1.0)) - ) - (and (< 0.0 (vector-dot s4-1 s5-2)) - (and (>= (- (-> pp clock frame-counter) (-> obj last-fire-time)) - (the int (* 300.0 (rand-vu-float-range (-> obj attack-wait-min) (-> obj attack-wait-max)))) - ) - (get-enemy-target obj) - (< f30-0 225280.0) - (and (< (fabs (vector-x-angle s5-2)) 3640.889) - (enemy-method-95 obj (-> obj focus-pos) 5461.3335) - (check-los? (-> obj los) (seconds 0.4)) - ) - ) - ) - ) + (let* ((v1-1 (vector+! (new 'stack-no-clear 'vector) (-> obj root-override2 trans) (-> obj root-override2 transv))) + (s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 (-> obj focus-pos))) + (f30-0 (vector-length s5-1)) + (a0-4 (if arg0 + arg0 + (handle->process (-> obj focus handle)) + ) + ) + ) + (the-as + symbol + (when a0-4 + (let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable a0-4) 0))) + (s5-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s5-1 1.0)) + ) + (and (< 0.0 (vector-dot s4-1 s5-2)) + (and (>= (- (current-time) (-> obj last-fire-time)) + (the int (* 300.0 (rand-vu-float-range (-> obj attack-wait-min) (-> obj attack-wait-max)))) + ) + (get-enemy-target obj) + (< f30-0 225280.0) + (and (< (fabs (vector-x-angle s5-2)) 3640.889) + (enemy-method-95 obj (-> obj focus-pos) 5461.3335) + (check-los? (-> obj los) (seconds 0.4)) + ) + ) + ) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc index 34b9d5c1d6..31a5834df9 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc @@ -429,7 +429,7 @@ ) ) ) - (let* ((v1-30 (+ (-> pp clock frame-counter) (the-as time-frame (-> obj sync-off)))) + (let* ((v1-30 (+ (current-time) (the-as time-frame (-> obj sync-off)))) (f0-5 (+ (-> arg0 x) (* 614.4 (cos (* 54.613335 (the float (mod v1-30 1200))))))) ) (set! (-> arg0 x) f0-5) @@ -488,13 +488,13 @@ ;; definition for function flamer-flit-post (defbehavior flamer-flit-post flamer () - (when (>= (- (-> self clock frame-counter) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) + (when (>= (- (current-time) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) (set! (-> self flit-angle) (the float (sar (shl (the int (+ (-> self flit-angle) (* 182.04445 (rand-vu-float-range 160.0 200.0)))) 48) 48) ) ) - (set! (-> self flit-timer) (-> self clock frame-counter)) + (set! (-> self flit-timer) (current-time)) ) (flamer-attack-post) (none) @@ -793,7 +793,7 @@ ) ) ) - (let ((v1-16 (+ (-> pp clock frame-counter) (the-as time-frame (-> obj sync-off))))) + (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) (seek! (-> obj root-override2 trans y) (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) @@ -869,9 +869,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) - (flamer-method-183 self) - ) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (flamer-method-183 self)) (if (logtest? (enemy-option ambush) (-> self fact-info-override enemy-options)) (go-virtual ambush) (go-virtual active) @@ -961,7 +959,7 @@ (vector-reset! (-> self fly-dir)) (sound-play "flamer-ambush") (quaternion-copy! (-> self root-override2 quat) (-> self init-quat)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -973,7 +971,7 @@ (logior! (-> self mask) (process-mask actor-pause)) (logior! (-> self enemy-flags) (enemy-flag notice)) (set! (-> self flit-joint twist-min-y) (the-as float #t)) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) :trans (behavior () @@ -1066,7 +1064,7 @@ (set! (-> v1-3 enemy-flags) (the-as enemy-flag (logclear (-> v1-3 enemy-flags) (enemy-flag enemy-flag37)))) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1100,9 +1098,9 @@ :code (the-as (function none :behavior flamer) flamer-fly-code) :post (behavior () (flamer-method-187 self) - (when (>= (- (-> self clock frame-counter) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) + (when (>= (- (current-time) (-> self flit-timer)) (rand-vu-int-range (seconds 1.2) (seconds 3))) (set! (-> self flit-angle) (* 182.04445 (rand-vu-float-range 0.0 360.0))) - (set! (-> self flit-timer) (-> self clock frame-counter)) + (set! (-> self flit-timer) (current-time)) ) (vector-seek! (-> self root-override2 trans) (-> self base-pos) (* 16384.0 (-> self clock seconds-per-frame))) (flamer-method-184 self) @@ -1144,7 +1142,7 @@ ) (flamer-method-189 self) (set! (-> self ground-mode) 0) - (set! (-> self flit-timer) (+ (-> self clock frame-counter) (seconds -3))) + (set! (-> self flit-timer) (+ (current-time) (seconds -3))) (none) ) :trans (behavior () @@ -1163,9 +1161,7 @@ ) (let ((gp-1 (get-enemy-target self))) (if (and gp-1 - (>= (- (-> self clock frame-counter) (-> self last-fire-time)) - (the int (* 300.0 (rand-vu-float-range 3.0 6.0))) - ) + (>= (- (current-time) (-> self last-fire-time)) (the int (* 300.0 (rand-vu-float-range 3.0 6.0)))) (< (vector-vector-distance (get-trans gp-1 3) (-> self root-override2 trans)) 245760.0) ) (go-virtual attack) @@ -1226,7 +1222,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1253,7 +1249,7 @@ ) ) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (go-virtual hostile) (none) ) @@ -1383,7 +1379,7 @@ ) (when (and (nonzero? (-> self hit-points)) (zero? (-> self fated-time)) - (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (or (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (and (< (-> self root-override2 trans y) (+ 18432.0 (-> self root-override2 gspot-pos y))) (< (-> self root-override2 transv y) 0.0) ) @@ -1647,7 +1643,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy-battle_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy-battle_REF.gc index 992b1161a1..06cb438c54 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy-battle_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy-battle_REF.gc @@ -161,11 +161,9 @@ a0-0 ) ) - (when (and (logtest? (-> gp-0 flags) 2) - (>= (- (-> self clock frame-counter) (-> self formation-timer)) (seconds 0.2)) - ) + (when (and (logtest? (-> gp-0 flags) 2) (>= (- (current-time) (-> self formation-timer)) (seconds 0.2))) (hover-formation-control-method-11 gp-0) - (set! (-> self formation-timer) (-> self clock frame-counter)) + (set! (-> self formation-timer) (current-time)) ) ) ) @@ -223,8 +221,8 @@ (('wait) ) ) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (-> gp-0 s5-0 time)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (-> gp-0 s5-0 time)) (suspend) ) ) @@ -233,8 +231,8 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -314,41 +312,39 @@ (defmethod hover-enemy-manager-init! hover-enemy-manager ((obj hover-enemy-manager) (arg0 (array hover-enemy-battle-command))) "Initialize this [[hover-enemy-manager]]." (local-vars (sv-16 res-tag)) - (with-pp - (set! (-> obj command-table) arg0) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! sv-16 (new 'static 'res-tag)) - (let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16)))) - (cond - ((and v1-5 (nonzero? (-> sv-16 elt-count))) - (set! (-> obj actor-group) (the-as (pointer actor-group) v1-5)) - (set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count))) - ) - (else - (set! (-> obj actor-group) (the-as (pointer actor-group) #f)) - (set! (-> obj actor-group-count) 0) - 0 - ) + (set! (-> obj command-table) arg0) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! sv-16 (new 'static 'res-tag)) + (let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16)))) + (cond + ((and v1-5 (nonzero? (-> sv-16 elt-count))) + (set! (-> obj actor-group) (the-as (pointer actor-group) v1-5)) + (set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count))) + ) + (else + (set! (-> obj actor-group) (the-as (pointer actor-group) #f)) + (set! (-> obj actor-group-count) 0) + 0 ) ) - (set! (-> obj total-to-spawn) 0) - (set! (-> obj num-spawned) 0) - (when (-> obj command-table) - (let ((v1-13 (-> obj command-table))) - (dotimes (a0-6 (-> v1-13 length)) - (if (= (-> v1-13 a0-6 command) 'spawn) - (+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length)) - ) - ) - ) - ) - (set! (-> obj formation) #f) - (set! (-> obj formation-timer) (-> pp clock frame-counter)) - (set! (-> obj alive-count) 0) - 0 - (none) ) + (set! (-> obj total-to-spawn) 0) + (set! (-> obj num-spawned) 0) + (when (-> obj command-table) + (let ((v1-13 (-> obj command-table))) + (dotimes (a0-6 (-> v1-13 length)) + (if (= (-> v1-13 a0-6 command) 'spawn) + (+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length)) + ) + ) + ) + ) + (set! (-> obj formation) #f) + (set! (-> obj formation-timer) (current-time)) + (set! (-> obj alive-count) 0) + 0 + (none) ) ;; definition for function hover-enemy-manager-init-by-other @@ -365,7 +361,3 @@ (defun hover-manager-spawn ((arg0 turret) (arg1 entity-actor) (arg2 (array hover-enemy-battle-command))) (the-as process (ppointer->process (process-spawn hover-enemy-manager arg1 arg2 :to arg0))) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc index 8e201a26e6..8be9d57e87 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc @@ -474,7 +474,7 @@ (if (logtest? (-> self path flags) (path-control-flag not-found)) (go process-drawable-art-error "no path") ) - (set! (-> self scale-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self scale-timer) (the-as uint (current-time))) (cond ((not (logtest? (-> self fact-info-override enemy-options) (enemy-option user0))) (logclear! (-> self enemy-flags) (enemy-flag enable-on-active)) @@ -530,7 +530,7 @@ ) (hover-enemy-method-144 self) (hover-nav-control-method-18 (-> self hover) (-> self path) -1 -1) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -561,7 +561,7 @@ :post (behavior () (local-vars (v1-19 enemy-flag)) (when (not (logtest? (-> self fact-info-override enemy-options) (enemy-option user0))) - (let ((f0-1 (the float (- (-> self clock frame-counter) (the-as int (-> self scale-timer))))) + (let ((f0-1 (the float (- (current-time) (the-as int (-> self scale-timer))))) (f1-0 1200.0) ) (when (< f0-1 f1-0) @@ -671,7 +671,7 @@ ) (if (and (nonzero? (-> self hit-points)) (zero? (-> self fated-time)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (< (-> self root-override2 trans y) (- (-> self knocked-start-level) (-> self knocked-fall-dist))) ) (go-virtual knocked-recover) @@ -742,14 +742,14 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('touch 'touched 'attack) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (go-virtual flying-death-explode) ) ) ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dispose! self) (stop-looking-at-target! self) (set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags))) @@ -801,14 +801,14 @@ (set! (-> self hover speed) 0.2) (set! (-> self flying-death-spin) 0.0) (enemy-method-103 self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (or (logtest? (-> self root-override2 status) (collide-status touch-surface touch-wall touch-ceiling touch-actor impact-surface touch-background) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (>= (- (current-time) (-> self state-time)) (seconds 4)) ) (go-virtual flying-death-explode) ) @@ -1109,7 +1109,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc index d64008c87b..a2feb5fcc3 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc @@ -680,10 +680,10 @@ (set-anchor-proc (-> self formation) (process->handle *target*)) (hover-formation-control-method-14 (-> self formation)) (when (and (logtest? (-> self formation flags) 2) - (>= (- (-> self clock frame-counter) (the-as int (-> self formation-timer))) (seconds 0.2)) + (>= (- (current-time) (the-as int (-> self formation-timer))) (seconds 0.2)) ) (hover-formation-control-method-11 (-> self formation)) - (set! (-> self formation-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self formation-timer) (the-as uint (current-time))) ) (if (not (logtest? (-> self path flags) (path-control-flag not-found))) (debug-draw (-> self path)) @@ -720,51 +720,49 @@ This commonly includes things such as: - loading the skeleton group / bones - sounds" (local-vars (sv-32 structure)) - (with-pp - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (let* ((s5-0 (method-of-type hover-formation-control new)) - (s4-0 'process) - (s3-0 hover-formation-control) - (s2-0 obj) - (v0-1 (entity-actor-lookup (-> obj entity) 'alt-actor 0)) - (s1-0 (if v0-1 - v0-1 - (-> obj entity) - ) - ) - (s0-0 (res-lump-float (-> obj entity) 'notice-dist :default 225280.0)) - ) - (let ((t9-3 (method-of-type res-lump get-property-struct)) - (a0-5 (-> obj entity)) - (a1-4 'trans-offset) - (a2-3 'interp) - (a3-2 -1000000000.0) - (t0-2 (new 'stack-no-clear 'vector)) - ) - (set! (-> t0-2 x) 0.0) - (set! (-> t0-2 y) 20480.0) - (set! (-> t0-2 z) 61440.0) - (set! (-> t0-2 w) 1.0) - (set! sv-32 (t9-3 a0-5 a1-4 a2-3 a3-2 t0-2 (the-as (pointer res-tag) #f) *res-static-buf*)) - ) - (let ((t2-4 (res-lump-float (-> obj entity) 'rotoffset :default 5461.3335)) - (t3-0 #f) - ) - (set! (-> obj formation) (s5-0 s4-0 s3-0 s2-0 s1-0 s0-0 (the-as vector sv-32) t2-4 (the-as handle t3-0))) - ) - ) - (set! (-> obj formation-timer) (the-as uint (-> pp clock frame-counter))) - (logclear! (-> obj mask) (process-mask actor-pause)) - (let ((t9-6 process-entity-status!) - (a0-9 obj) - (a1-7 8) - (a2-6 #t) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (let* ((s5-0 (method-of-type hover-formation-control new)) + (s4-0 'process) + (s3-0 hover-formation-control) + (s2-0 obj) + (v0-1 (entity-actor-lookup (-> obj entity) 'alt-actor 0)) + (s1-0 (if v0-1 + v0-1 + (-> obj entity) + ) + ) + (s0-0 (res-lump-float (-> obj entity) 'notice-dist :default 225280.0)) + ) + (let ((t9-3 (method-of-type res-lump get-property-struct)) + (a0-5 (-> obj entity)) + (a1-4 'trans-offset) + (a2-3 'interp) + (a3-2 -1000000000.0) + (t0-2 (new 'stack-no-clear 'vector)) ) - (t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6) - (hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6)) + (set! (-> t0-2 x) 0.0) + (set! (-> t0-2 y) 20480.0) + (set! (-> t0-2 z) 61440.0) + (set! (-> t0-2 w) 1.0) + (set! sv-32 (t9-3 a0-5 a1-4 a2-3 a3-2 t0-2 (the-as (pointer res-tag) #f) *res-static-buf*)) + ) + (let ((t2-4 (res-lump-float (-> obj entity) 'rotoffset :default 5461.3335)) + (t3-0 #f) + ) + (set! (-> obj formation) (s5-0 s4-0 s3-0 s2-0 s1-0 s0-0 (the-as vector sv-32) t2-4 (the-as handle t3-0))) ) - (go (method-of-object obj idle)) - (none) ) + (set! (-> obj formation-timer) (the-as uint (current-time))) + (logclear! (-> obj mask) (process-mask actor-pause)) + (let ((t9-6 process-entity-status!) + (a0-9 obj) + (a1-7 8) + (a2-6 #t) + ) + (t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6) + (hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6)) + ) + (go (method-of-object obj idle)) + (none) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc index ccac14e1a8..e1a1fdc440 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc @@ -875,7 +875,7 @@ (while v1-0 (let ((a0-2 (-> v1-0 next))) (set! (-> (the-as hover-nav-sphere v1-0) timer) - (- (-> (the-as hover-nav-sphere v1-0) timer) (- (-> pp clock frame-counter) (-> pp clock old-frame-counter))) + (- (-> (the-as hover-nav-sphere v1-0) timer) (- (current-time) (-> pp clock old-frame-counter))) ) (when (<= (-> (the-as hover-nav-sphere v1-0) timer) 0) (let ((a1-4 v1-0)) @@ -1367,48 +1367,46 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod hover-nav-control-method-24 hover-nav-control ((obj hover-nav-control)) - (with-pp - (when (not (logtest? (-> obj flags) 1)) - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (-> obj params) - (let ((v1-5 (hover-nav-control-method-17 obj)) - (s4-0 (-> obj root transv)) - ) - (when (< 0.0 (vector-length s4-0)) - (set! (-> s5-0 start-pos quad) (-> v1-5 world-sphere quad)) - (set! (-> s5-0 move-dist quad) (-> s4-0 quad)) - (let ((f0-1 (vector-length (-> s5-0 move-dist)))) - (if (< 40960.0 f0-1) - (vector-float*! (-> s5-0 move-dist) (-> s5-0 move-dist) (/ 40960.0 f0-1)) - ) - ) - (let ((a0-14 s5-0)) - (set! (-> a0-14 radius) (-> v1-5 world-sphere w)) - (set! (-> a0-14 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> a0-14 ignore-process0) (-> obj root process)) - (set! (-> a0-14 ignore-process1) #f) - (set! (-> a0-14 ignore-pat) (-> obj root pat-ignore-mask)) - (set! (-> a0-14 action-mask) (collide-action solid)) - ) - (let ((f0-4 (fill-and-probe-using-line-sphere *collide-cache* s5-0))) - (cond - ((>= f0-4 0.0) - (set! (-> obj los-obstruction-distance) (* f0-4 (vector-length s4-0))) - (logior! (-> obj flags) 2) - ) - (else - (set! (-> obj los-last-clear-time) (-> pp clock frame-counter)) - (set! (-> obj flags) (logand -3 (-> obj flags))) - ) + (when (not (logtest? (-> obj flags) 1)) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (-> obj params) + (let ((v1-5 (hover-nav-control-method-17 obj)) + (s4-0 (-> obj root transv)) + ) + (when (< 0.0 (vector-length s4-0)) + (set! (-> s5-0 start-pos quad) (-> v1-5 world-sphere quad)) + (set! (-> s5-0 move-dist quad) (-> s4-0 quad)) + (let ((f0-1 (vector-length (-> s5-0 move-dist)))) + (if (< 40960.0 f0-1) + (vector-float*! (-> s5-0 move-dist) (-> s5-0 move-dist) (/ 40960.0 f0-1)) + ) + ) + (let ((a0-14 s5-0)) + (set! (-> a0-14 radius) (-> v1-5 world-sphere w)) + (set! (-> a0-14 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> a0-14 ignore-process0) (-> obj root process)) + (set! (-> a0-14 ignore-process1) #f) + (set! (-> a0-14 ignore-pat) (-> obj root pat-ignore-mask)) + (set! (-> a0-14 action-mask) (collide-action solid)) + ) + (let ((f0-4 (fill-and-probe-using-line-sphere *collide-cache* s5-0))) + (cond + ((>= f0-4 0.0) + (set! (-> obj los-obstruction-distance) (* f0-4 (vector-length s4-0))) + (logior! (-> obj flags) 2) + ) + (else + (set! (-> obj los-last-clear-time) (current-time)) + (set! (-> obj flags) (logand -3 (-> obj flags))) ) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 11 of type hover-nav-control @@ -1434,21 +1432,19 @@ (when (not (logtest? (-> obj flags) 1)) (cond ((and arg0 (and (< (vector-vector-distance arg0 (-> obj root trans)) 40960.0) - (>= (-> obj los-last-clear-time) (+ (-> pp clock frame-counter) (seconds -0.2))) + (>= (-> obj los-last-clear-time) (+ (current-time) (seconds -0.2))) ) ) (if (not (and (-> obj path-info curr-segment) (< (-> obj path-info curr-u) 1.0))) (hover-nav-control-method-21 obj) ) ) - ((or (>= (- (-> pp clock frame-counter) (-> obj los-last-clear-time)) (seconds 1)) - (not (-> obj path-info curr-segment)) - ) + ((or (>= (- (current-time) (-> obj los-last-clear-time)) (seconds 1)) (not (-> obj path-info curr-segment))) (hover-nav-control-method-21 obj) (when arg0 (let ((s4-0 (new 'stack-no-clear 'vector))) (set! (-> s4-0 quad) (-> obj root transv quad)) - (if (>= (- (-> pp clock frame-counter) (-> obj los-last-clear-time)) (seconds 1)) + (if (>= (- (current-time) (-> obj los-last-clear-time)) (seconds 1)) (vector-normalize! s4-0 (fmin (vector-length s4-0) (-> obj los-obstruction-distance))) ) (hover-nav-control-method-28 @@ -1816,39 +1812,33 @@ ;; definition for method 0 of type hover-nav-control ;; INFO: Used lq/sq (defmethod new hover-nav-control ((allocation symbol) (type-to-make type) (arg0 process) (arg1 collide-shape-moving) (arg2 hover-nav-params)) - (with-pp - (let ((s5-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) - (set! (-> s5-0 root) arg1) - (set! (-> s5-0 root reaction) hover-bounce-reaction) - (set! (-> s5-0 nav) *nav-network*) - (set! (-> s5-0 path-info segment-list) #f) - (set! (-> s5-0 path-info tail-segment) #f) - (set! (-> s5-0 path-info curr-segment) #f) - (set! (-> s5-0 path-info curr-u) 0.0) - (set! (-> s5-0 flags) (the-as uint 0)) - (set! (-> s5-0 params) arg2) - (set! *hover-nav-time-offset* (+ *hover-nav-time-offset* 1)) - (vector-reset! (-> s5-0 dest-pos)) - (set! (-> s5-0 dest-vel quad) (the-as uint128 0)) - (set! (-> s5-0 dest-move-dir quad) (the-as uint128 0)) - (set! (-> s5-0 dest-offset quad) (the-as uint128 0)) - (set! (-> s5-0 nav-collide-impulse quad) (the-as uint128 0)) - (vector-z-quaternion! (-> s5-0 move-dir) (-> s5-0 root quat)) - (set! (-> s5-0 nav-collide-impulse-len) 0.0) - (set! (-> s5-0 speed) 0.0) - (set! (-> s5-0 target-speed) 0.0) - (set! (-> s5-0 target-acceleration) 0.0) - (set! (-> s5-0 speed-dest) 0.0) - (set! (-> s5-0 curr-dest-pt) -1) - (set! (-> s5-0 los-obstruction-distance) 0.0) - (set! (-> s5-0 los-last-clear-time) (-> pp clock frame-counter)) - (hover-nav-control-method-14 s5-0 1.0 1.0) - (nav-network-method-25 (-> s5-0 nav) arg0 (the-as collide-prim-core #f)) - s5-0 - ) + (let ((s5-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> s5-0 root) arg1) + (set! (-> s5-0 root reaction) hover-bounce-reaction) + (set! (-> s5-0 nav) *nav-network*) + (set! (-> s5-0 path-info segment-list) #f) + (set! (-> s5-0 path-info tail-segment) #f) + (set! (-> s5-0 path-info curr-segment) #f) + (set! (-> s5-0 path-info curr-u) 0.0) + (set! (-> s5-0 flags) (the-as uint 0)) + (set! (-> s5-0 params) arg2) + (set! *hover-nav-time-offset* (+ *hover-nav-time-offset* 1)) + (vector-reset! (-> s5-0 dest-pos)) + (set! (-> s5-0 dest-vel quad) (the-as uint128 0)) + (set! (-> s5-0 dest-move-dir quad) (the-as uint128 0)) + (set! (-> s5-0 dest-offset quad) (the-as uint128 0)) + (set! (-> s5-0 nav-collide-impulse quad) (the-as uint128 0)) + (vector-z-quaternion! (-> s5-0 move-dir) (-> s5-0 root quat)) + (set! (-> s5-0 nav-collide-impulse-len) 0.0) + (set! (-> s5-0 speed) 0.0) + (set! (-> s5-0 target-speed) 0.0) + (set! (-> s5-0 target-acceleration) 0.0) + (set! (-> s5-0 speed-dest) 0.0) + (set! (-> s5-0 curr-dest-pt) -1) + (set! (-> s5-0 los-obstruction-distance) 0.0) + (set! (-> s5-0 los-last-clear-time) (current-time)) + (hover-nav-control-method-14 s5-0 1.0 1.0) + (nav-network-method-25 (-> s5-0 nav) arg0 (the-as collide-prim-core #f)) + s5-0 ) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc index 38493f646a..d3b2d7fb82 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc @@ -625,7 +625,7 @@ ((the-as (function none) t9-0)) ) ) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -639,7 +639,7 @@ ((the-as (function none) t9-0)) ) ) - (set! (-> self last-fire-time) (+ (-> self clock frame-counter) (seconds -1.5))) + (set! (-> self last-fire-time) (+ (current-time) (seconds -1.5))) (none) ) ) @@ -672,7 +672,7 @@ ) (hover-enemy-method-146 self) (hover-nav-control-method-18 (-> self hover) (-> self path) -1 6) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self bridge-index) 0) (logclear! (-> self enemy-flags) (enemy-flag enable-on-active checking-water)) (logclear! (-> self mask) (process-mask collectable)) @@ -819,7 +819,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (none) ) @@ -840,7 +840,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (go-virtual shoot-bridge-hostile) (none) @@ -896,7 +896,7 @@ (the-as vector #t) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -939,7 +939,7 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self last-fire-time)) + (if (and (>= (- (current-time) (-> self last-fire-time)) (the int (* 300.0 (rand-vu-float-range (-> self attack-wait-min) (-> self attack-wait-max)))) ) (get-enemy-target self) @@ -983,7 +983,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-min)) (none) ) @@ -1004,7 +1004,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-fire-time) (-> self clock frame-counter)) + (set! (-> self last-fire-time) (current-time)) (set! (-> self restart-fly-anims) #t) (go-hostile self) (none) @@ -1161,8 +1161,8 @@ 0 (set! (-> self hit-points) 0) (do-effect (-> self skel effect) 'death-default 0.0 -1) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_bearer/centurion_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_bearer/centurion_REF.gc index 340d606d0d..d9b072071e 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_bearer/centurion_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_bearer/centurion_REF.gc @@ -570,7 +570,7 @@ (talker-spawn-func (-> *talker-speech* 58) *entity-pool* (target-pos 0) (the-as region #f)) ) (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) 255.0) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) 'back ) ) @@ -1261,7 +1261,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-165 self) (set! (-> self joint-enable) #t) (set! (-> self can-shoot?) (the-as basic #t)) @@ -1317,14 +1317,14 @@ (else (when (-> self can-shoot?) (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (+ 60.0 (* 0.0036621094 f30-0)))) + (>= (- (current-time) (-> self state-time)) (the int (+ 60.0 (* 0.0036621094 f30-0)))) (check-los? (-> self los) 0) ) (go-virtual fire) ) ) (if (skip-check-los? (-> self los) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -1432,7 +1432,7 @@ ) ) ) - (+ (-> self clock frame-counter) (seconds 3)) + (+ (current-time) (seconds 3)) ) #f ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_brown/metalmonk_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_brown/metalmonk_REF.gc index 9dd2be5c8e..0879834144 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_brown/metalmonk_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_brown/metalmonk_REF.gc @@ -316,116 +316,112 @@ ;; definition for method 181 of type metalmonk ;; WARN: Return type mismatch int vs none. (defmethod metalmonk-method-181 metalmonk ((obj metalmonk) (arg0 float) (arg1 float)) - (with-pp - (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) - ) - (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-7 (= v1-7 (-> obj draw art-group data 13)))) - ) - ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-13 (-> obj skel root-channel 0))) - (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 13))) - ) - (let ((s4-1 (-> obj skel root-channel 0))) - (set! (-> s4-1 num-func) num-func-identity) - (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) - (set! (-> obj high-time) (-> pp clock frame-counter)) + (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) ) - (let ((v1-22 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) + (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-7 (= v1-7 (-> obj draw art-group data 13)))) + ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-13 (-> obj skel root-channel 0))) + (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (let ((s4-1 (-> obj skel root-channel 0))) + (set! (-> s4-1 num-func) num-func-identity) + (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) + ) + (set! (-> obj high-time) (current-time)) + ) + (let ((v1-22 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 12)) (= v1-22 (-> obj draw art-group data 13))))) + (let ((v1-28 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (and (and v1-28 (= v1-28 (-> obj draw art-group data 13))) + (< (ja-frame-num 0) 3.0) + (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (current-time) (-> obj high-time)) (seconds 1))) ) - ) - ) - (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 12)) (= v1-22 (-> obj draw art-group data 13))))) - (let ((v1-28 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (and (and v1-28 (= v1-28 (-> obj draw art-group data 13))) - (< (ja-frame-num 0) 3.0) - (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (-> pp clock frame-counter) (-> obj high-time)) (seconds 1))) - ) - ) ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-41 (-> obj skel root-channel 0))) - (set! (-> v1-41 frame-group) (the-as art-joint-anim (-> obj draw art-group data 12))) - ) - (let ((gp-1 (-> obj skel root-channel 0))) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-41 (-> obj skel root-channel 0))) + (set! (-> v1-41 frame-group) (the-as art-joint-anim (-> obj draw art-group data 12))) + ) + (let ((gp-1 (-> obj skel root-channel 0))) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 182 of type metalmonk ;; WARN: Return type mismatch int vs none. (defmethod metalmonk-method-182 metalmonk ((obj metalmonk) (arg0 float) (arg1 float)) - (with-pp - (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) - ) - (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-7 (= v1-7 (-> obj draw art-group data 9)))) - ) - ) - (ja-channel-push! 1 (seconds 0.16)) - (let ((v1-13 (-> obj skel root-channel 0))) - (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 9))) - ) - (let ((s4-1 (-> obj skel root-channel 0))) - (set! (-> s4-1 num-func) num-func-identity) - (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) - (set! (-> obj high-time) (-> pp clock frame-counter)) + (let ((f28-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (f30-1 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))) ) - (let ((v1-22 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) + (when (and (< f28-0 (cos (* 182.04445 arg0))) (let ((v1-7 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-7 (= v1-7 (-> obj draw art-group data 9)))) + ) + ) + (ja-channel-push! 1 (seconds 0.16)) + (let ((v1-13 (-> obj skel root-channel 0))) + (set! (-> v1-13 frame-group) (the-as art-joint-anim (-> obj draw art-group data 9))) + ) + (let ((s4-1 (-> obj skel root-channel 0))) + (set! (-> s4-1 num-func) num-func-identity) + (set! (-> s4-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) + ) + (set! (-> obj high-time) (current-time)) + ) + (let ((v1-22 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 8)) (= v1-22 (-> obj draw art-group data 9))))) + (let ((v1-28 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (and (and v1-28 (= v1-28 (-> obj draw art-group data 9))) + (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (current-time) (-> obj high-time)) (seconds 1))) ) - ) - ) - (when (or (not (and v1-22 (or (= v1-22 (-> obj draw art-group data 8)) (= v1-22 (-> obj draw art-group data 9))))) - (let ((v1-28 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (and (and v1-28 (= v1-28 (-> obj draw art-group data 9))) - (and (< (cos (* 182.04445 arg1)) f28-0) (>= (- (-> pp clock frame-counter) (-> obj high-time)) (seconds 1))) - ) - ) ) - (ja-channel-push! 1 (seconds 0.5)) - (let ((v1-39 (-> obj skel root-channel 0))) - (set! (-> v1-39 frame-group) (the-as art-joint-anim (-> obj draw art-group data 8))) - ) - (let ((gp-1 (-> obj skel root-channel 0))) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) - ) + ) + (ja-channel-push! 1 (seconds 0.5)) + (let ((v1-39 (-> obj skel root-channel 0))) + (set! (-> v1-39 frame-group) (the-as art-joint-anim (-> obj draw art-group data 8))) + ) + (let ((gp-1 (-> obj skel root-channel 0))) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (* f30-1 (the float (ja-num-frames 0)))) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 55 of type metalmonk @@ -688,7 +684,7 @@ ) ) (let ((gp-0 (handle->process (-> self focus handle)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (and gp-0 (or (and (< (vector-vector-xz-distance (get-trans (the-as process-focusable gp-0) 0) (-> self root-override2 trans)) 20480.0 @@ -896,7 +892,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -906,7 +902,7 @@ ) ) (let ((a0-1 (handle->process (-> self focus handle)))) - (if (and a0-1 (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (if (and a0-1 (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (let ((f0-0 (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (-> self root-override2 trans) @@ -1350,7 +1346,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_slinger/grenadier_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_slinger/grenadier_REF.gc index 4e59cce2dd..def057fb39 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/metalhead_slinger/grenadier_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/metalhead_slinger/grenadier_REF.gc @@ -320,45 +320,43 @@ (defmethod general-event-handler grenadier ((obj grenadier) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('hit-knocked) - (when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4)) - (if (and (< (- (-> pp clock frame-counter) (-> obj suppress-knockaside-timer)) (seconds 0.6)) - (and (-> obj next-state) (= (-> obj next-state name) 'attack)) - (nonzero? (-> obj hit-points)) - ) - (return #t) - ) - (logior! (-> obj status-flags) 1) - (set! (-> obj suppress-knockaside-timer) (-> pp clock frame-counter)) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('notify) - (cond - ((and (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) - (let ((v1-23 (new 'stack-no-clear 'event-message-block))) - (set! (-> v1-23 from) (process->ppointer arg0)) - (set! (-> v1-23 num-params) arg1) - (set! (-> v1-23 message) 'victory) - (set! (-> v1-23 param 0) (-> arg3 param 0)) - (set! (-> v1-23 param 1) (-> arg3 param 1)) - (set! (-> v1-23 param 2) (-> arg3 param 2)) - (set! (-> v1-23 param 3) (-> arg3 param 3)) - (set! (-> v1-23 param 4) (-> arg3 param 4)) - (set! (-> v1-23 param 5) (-> arg3 param 5)) - (send-event-function obj v1-23) - ) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + (case arg2 + (('hit-knocked) + (when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4)) + (if (and (< (- (current-time) (-> obj suppress-knockaside-timer)) (seconds 0.6)) + (and (-> obj next-state) (= (-> obj next-state name) 'attack)) + (nonzero? (-> obj hit-points)) + ) + (return #t) ) + (logior! (-> obj status-flags) 1) + (set! (-> obj suppress-knockaside-timer) (current-time)) + ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (cond + ((and (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) + (let ((v1-23 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-23 from) (process->ppointer arg0)) + (set! (-> v1-23 num-params) arg1) + (set! (-> v1-23 message) 'victory) + (set! (-> v1-23 param 0) (-> arg3 param 0)) + (set! (-> v1-23 param 1) (-> arg3 param 1)) + (set! (-> v1-23 param 2) (-> arg3 param 2)) + (set! (-> v1-23 param 3) (-> arg3 param 3)) + (set! (-> v1-23 param 4) (-> arg3 param 4)) + (set! (-> v1-23 param 5) (-> arg3 param 5)) + (send-event-function obj v1-23) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -611,7 +609,7 @@ ) ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (rand-vu-int-range (seconds 3) (seconds 9))) + (when (or (>= (- (current-time) (-> self state-time)) (rand-vu-int-range (seconds 3) (seconds 9))) (>= 8192.0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self bank final-pos))) ) (if (and (handle->process (-> self focus handle)) @@ -678,7 +676,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grenadier) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -691,7 +689,7 @@ ) :trans (behavior () (let ((f0-0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-pos)))) - (if (or (>= 12288.0 f0-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 6))) + (if (or (>= 12288.0 f0-0) (>= (- (current-time) (-> self state-time)) (seconds 6))) (go-hostile self) ) ) @@ -730,7 +728,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior grenadier) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc index 95bd1884ad..fb93746156 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc @@ -306,78 +306,76 @@ (defmethod general-event-handler spyder ((obj spyder) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (when (zero? (-> obj hit-points)) - (case (-> obj incoming knocked-type) - (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - 0 - ) - ) + (case arg2 + (('hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (when (zero? (-> obj hit-points)) + (case (-> obj incoming knocked-type) + (((knocked-type knocked-type-4) (knocked-type knocked-type-6)) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) + 0 + ) ) - (go (method-of-object obj knocked)) ) - (('attack) - (if (type? (-> arg0 parent 0) enemy) - (logior! (-> obj status-flags) 2) - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('notify) - (cond - ((= (-> arg3 param 0) 'attack) - (cond - ((= (-> arg3 param 1) (handle->process (-> obj focus handle))) - (let ((a1-6 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-6 from) (process->ppointer arg0)) - (set! (-> a1-6 num-params) arg1) - (set! (-> a1-6 message) 'victory) - (set! (-> a1-6 param 0) (-> arg3 param 0)) - (set! (-> a1-6 param 1) (-> arg3 param 1)) - (set! (-> a1-6 param 2) (-> arg3 param 2)) - (set! (-> a1-6 param 3) (-> arg3 param 3)) - (set! (-> a1-6 param 4) (-> arg3 param 4)) - (set! (-> a1-6 param 5) (-> arg3 param 5)) - (send-event-function obj a1-6) - ) + (go (method-of-object obj knocked)) + ) + (('attack) + (if (type? (-> arg0 parent 0) enemy) + (logior! (-> obj status-flags) 2) + ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('notify) + (cond + ((= (-> arg3 param 0) 'attack) + (cond + ((= (-> arg3 param 1) (handle->process (-> obj focus handle))) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) (process->ppointer arg0)) + (set! (-> a1-6 num-params) arg1) + (set! (-> a1-6 message) 'victory) + (set! (-> a1-6 param 0) (-> arg3 param 0)) + (set! (-> a1-6 param 1) (-> arg3 param 1)) + (set! (-> a1-6 param 2) (-> arg3 param 2)) + (set! (-> a1-6 param 3) (-> arg3 param 3)) + (set! (-> a1-6 param 4) (-> arg3 param 4)) + (set! (-> a1-6 param 5) (-> arg3 param 5)) + (send-event-function obj a1-6) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - (('uncloak) - (when (!= (-> obj dest-fade) 128.0) - (set! (-> obj shock-effect-end) (+ (-> pp clock frame-counter) (seconds 1))) - (set! (-> obj dest-fade) 128.0) - (sound-play "spyder-uncloak") - ) - (send-event obj 'cue-chase) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + ) + ) + (('uncloak) + (when (!= (-> obj dest-fade) 128.0) + (set! (-> obj shock-effect-end) (+ (current-time) (seconds 1))) + (set! (-> obj dest-fade) 128.0) + (sound-play "spyder-uncloak") + ) + (send-event obj 'cue-chase) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -408,9 +406,9 @@ (if (< 245760.0 (vector-vector-distance (-> obj root-override2 trans) (camera-pos))) (setup-masks (-> obj draw) 0 16) ) - (when (< (-> pp clock frame-counter) (-> obj shock-effect-end)) - (when (>= (- (-> pp clock frame-counter) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (-> pp clock frame-counter)) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) (process-drawable-shock-skel-effect obj (-> *lightning-spec-id-table* 5) @@ -791,7 +789,7 @@ ) ) (when (!= (-> self dest-fade) 128.0) - (set! (-> self shock-effect-end) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self shock-effect-end) (+ (current-time) (seconds 1))) (set! (-> self dest-fade) 128.0) ) (none) @@ -951,7 +949,7 @@ (look-at-target! self (enemy-flag death-start)) (set! (-> self status-flags) (logand -3 (-> self status-flags))) (when (!= (-> self dest-fade) 128.0) - (set! (-> self shock-effect-end) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self shock-effect-end) (+ (current-time) (seconds 1))) (set! (-> self dest-fade) 128.0) (sound-play "spyder-uncloak") ) @@ -1017,7 +1015,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior spyder) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1030,7 +1028,7 @@ ) :trans (behavior () (let ((f0-0 (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest)))) - (if (or (>= 4096.0 f0-0) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 6))) + (if (or (>= 4096.0 f0-0) (>= (- (current-time) (-> self state-time)) (seconds 6))) (go-hostile self) ) ) @@ -1186,8 +1184,8 @@ (set! (-> self fire-info 0 quad) (-> s3-0 quad)) (set! (-> self fire-info 1 quad) (-> s2-1 quad)) ) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 0.2)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 0.2)) (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (-> self clock seconds-per-frame))) (ja :num! (loop!)) (let ((a0-27 (-> self skel root-channel 1))) diff --git a/test/decompiler/reference/jak2/levels/common/entities/com-elevator_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/com-elevator_REF.gc index 23d5c5557a..770a6e5eae 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/com-elevator_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/com-elevator_REF.gc @@ -152,8 +152,8 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -323,8 +323,8 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc index d219de1d69..46070ded25 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc @@ -139,7 +139,7 @@ object (case event-type (('touched) - (when (+ (-> self clock frame-counter) (seconds -2)) + (when (+ (current-time) (seconds -2)) (let* ((s3-0 proc) (proc-draw (if (type? s3-0 process-drawable) (the-as process-drawable s3-0) @@ -173,7 +173,7 @@ (send-event-function proc evt) ) ) - (let ((frame-count (-> self clock frame-counter))) + (let ((frame-count (current-time))) (set! (-> self no-overlap-timer) (the-as uint frame-count)) frame-count ) diff --git a/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc index 6aed9b6269..8637c703fa 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc @@ -464,7 +464,7 @@ (none) ) :trans (behavior () - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (< 2 (the-as int (-> self focus aware))) (-> *setting-control* user-current gun-buoy) ) @@ -707,7 +707,7 @@ (defstate stare-down (gun-buoy) :virtual #t :enter (behavior () - (set! (-> self stare-down-timer) (-> self clock frame-counter)) + (set! (-> self stare-down-timer) (current-time)) (none) ) :trans (behavior () @@ -718,7 +718,7 @@ ) ((or (< (the-as int v1-0) 2) (not (-> *setting-control* user-current gun-buoy)) - (>= (- (-> self clock frame-counter) (-> self stare-down-timer)) (seconds 6)) + (>= (- (current-time) (-> self stare-down-timer)) (seconds 6)) ) (go-virtual exit-ambush) ) @@ -783,7 +783,7 @@ ) ) ) - (set! (-> self warning-timer) (-> self clock frame-counter)) + (set! (-> self warning-timer) (current-time)) (set! (-> self warning-id) (sound-play "buoy-alarm")) (none) ) @@ -796,7 +796,7 @@ ) :trans (behavior () (let ((gp-0 (-> self focus aware))) - (when (>= (- (-> self clock frame-counter) (-> self warning-timer)) (-> self warning-interval)) + (when (>= (- (current-time) (-> self warning-timer)) (-> self warning-interval)) (cond ((>= (the-as int gp-0) 3) (logior! (-> self flags) 2) @@ -859,7 +859,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (let ((v1-3 (-> self focus aware))) (cond ((= v1-3 (enemy-aware enemy-aware-2)) @@ -922,8 +922,8 @@ (gun-buoy-method-183 self a1-1) ) ) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.75)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.75)) (suspend) ) ) @@ -958,8 +958,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) @@ -1055,7 +1055,7 @@ ) ) 0 - (let ((v1-30 (-> pp clock frame-counter)) + (let ((v1-30 (current-time)) (f0-18 4.83) ) (set! (-> obj y-bob) diff --git a/test/decompiler/reference/jak2/levels/common/entities/sew-gunturret_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/sew-gunturret_REF.gc index ecf3220a3e..e121dc8abb 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/sew-gunturret_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/sew-gunturret_REF.gc @@ -789,7 +789,7 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) @@ -800,14 +800,14 @@ :code (behavior () (set-aim-at-default! self) (until #f - (-> self clock frame-counter) - (until (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (current-time) + (until (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) (suspend) ) (update-collision! self) (sound-play "sew-gun-lock") - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 0.75)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 0.75)) (aim-turret! self #t) (suspend) ) @@ -817,14 +817,14 @@ (fire-sound? #t) ) (sound-play "gturret") - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.125)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.125)) (cond ((not (-> self can-shoot)) ) - ((>= (- (-> self clock frame-counter) (the-as time-frame frames)) (seconds 0.05)) + ((>= (- (current-time) (the-as time-frame frames)) (seconds 0.05)) (fire-turret! self fire-sound?) - (set! frames (the-as int (-> self clock frame-counter))) + (set! frames (the-as int (current-time))) (set! fire-sound? (not fire-sound?)) ) (else @@ -839,8 +839,8 @@ (set! (-> self flash-state) #f) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data (-> self params idle-anim))) - (let ((_frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) _frame-counter) (seconds 0.5)) + (let ((_frame-counter (current-time))) + (until (>= (- (current-time) _frame-counter) (seconds 0.5)) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 0))) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 1))) (spawn-with-cspace (-> self smoke-part) (-> self node-list data (-> self params hole-joints 2))) @@ -880,7 +880,7 @@ @TODO - unsure if there is a pattern for the events and this should have a more specific name" (with-pp (if (and (= event-type 'notify) (< 1 arg2) (= (-> event param 0) 'attack) (= (-> event param 1) *target*)) - (set! (-> obj last-hit-time) (-> pp clock frame-counter)) + (set! (-> obj last-hit-time) (current-time)) ) (case event-type (('start) @@ -958,15 +958,15 @@ (let ((vec (new 'stack-no-clear 'vector))) (set! (-> vec quad) (-> self root-override2 trans quad)) (set! (-> vec y) (+ 10240.0 (-> vec y))) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 2)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 2)) (spawn (-> self part) vec) (suspend) ) ) ) - (let ((_frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) _frame-counter) (seconds 1)) + (let ((_frame-counter (current-time))) + (until (>= (- (current-time) _frame-counter) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/entities/spydroid_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/spydroid_REF.gc index 25a36e7435..facf2bb34a 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/spydroid_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/spydroid_REF.gc @@ -911,7 +911,7 @@ (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -920,7 +920,7 @@ (t9-0) ) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (< (- (current-time) (-> self state-time)) (seconds 2)) (spawn (-> self explode-part) (-> self root-override2 trans)) ) (none) @@ -962,8 +962,8 @@ ) (suspend) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1122,7 +1122,7 @@ ) ) (let ((a0-1 (handle->process (-> self focus handle)))) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (and a0-1 (let ((f0-0 (vector-vector-xz-distance-squared (get-trans (the-as process-focusable a0-1) 0) (-> self root-override2 trans) diff --git a/test/decompiler/reference/jak2/levels/common/flitter_REF.gc b/test/decompiler/reference/jak2/levels/common/flitter_REF.gc index f82fa32ca3..e625551387 100644 --- a/test/decompiler/reference/jak2/levels/common/flitter_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/flitter_REF.gc @@ -738,8 +738,8 @@ (-> gp-0 ppointer) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.6)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.6)) (suspend) ) ) @@ -760,8 +760,8 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -789,7 +789,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (-> self root-override2))) (vector-reset! (-> gp-0 transv)) (set! (-> gp-0 transv y) (* 4096.0 (get-rand-float-range self 34.0 38.0))) @@ -904,88 +904,84 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod flitter-method-180 flitter ((obj flitter)) - (with-pp - (let* ((s5-0 (handle->process (-> obj focus handle))) - (s3-0 (if (type? s5-0 process-focusable) - (the-as process-focusable s5-0) - ) - ) + (let* ((s5-0 (handle->process (-> obj focus handle))) + (s3-0 (if (type? s5-0 process-focusable) + (the-as process-focusable s5-0) + ) + ) + ) + (when s3-0 + (let* ((s5-1 (get-trans s3-0 0)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) + (f30-0 (vector-length s4-1)) + ) + (cond + ((enemy-method-99 obj s3-0) + (go-flee obj) ) - (when s3-0 - (let* ((s5-1 (get-trans s3-0 0)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> obj root-override2 trans))) - (f30-0 (vector-length s4-1)) - ) - (cond - ((enemy-method-99 obj s3-0) - (go-flee obj) - ) - ((and (< f30-0 32768.0) (not (flitter-method-182 obj s3-0))) - (go (method-of-object obj circling)) - ) - ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> s4-1 quad)) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) - (vector-normalize! s5-2 f30-0) - (if (>= (vector-dot s3-1 s5-2) 0.98) - (go (method-of-object obj attack)) - ) - ) - ) - ) - ((< f30-0 32768.0) - (set! (-> obj target-pos quad) (-> s5-1 quad)) - ) - ((or (>= (- (-> pp clock frame-counter) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) - (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) - ) - (set! (-> obj last-change-dir) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) - (s2-0 (new 'stack-no-clear 'vector)) + ((and (< f30-0 32768.0) (not (flitter-method-182 obj s3-0))) + (go (method-of-object obj circling)) + ) + ((< f30-0 (-> obj enemy-info-override notice-nav-radius)) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> s4-1 quad)) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> obj root-override2 transv quad)) + (vector-normalize! s5-2 f30-0) + (if (>= (vector-dot s3-1 s5-2) 0.98) + (go (method-of-object obj attack)) ) - (if (-> obj heading) - (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) - (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) - ) - (set! (-> obj heading) (the-as basic (not (-> obj heading)))) - (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) - (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) - ) - (vector-normalize! s3-2 f28-1) - (vector+! s3-2 s3-2 s4-2) - ) - (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) - (vector+! s2-0 s5-1 s3-2) - (set! (-> obj target-pos quad) (-> s2-0 quad)) ) ) - ) + ) + ((< f30-0 32768.0) + (set! (-> obj target-pos quad) (-> s5-1 quad)) + ) + ((or (>= (- (current-time) (the-as int (-> obj last-change-dir))) (-> obj change-dir-time)) + (< (vector-vector-distance-squared (-> obj root-override2 trans) (-> obj target-pos)) 0.1) + ) + (set! (-> obj last-change-dir) (the-as uint (current-time))) + (set! (-> obj change-dir-time) (rand-vu-int-range (seconds 0.5) (seconds 0.7))) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (f0-9 (* 0.5 f30-0 (tan (-> obj move-angle)))) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (if (-> obj heading) + (set-vector! s3-2 (-> s4-1 z) (-> s4-1 y) (- (-> s4-1 x)) 1.0) + (set-vector! s3-2 (- (-> s4-1 z)) (-> s4-1 y) (-> s4-1 x) 1.0) + ) + (set! (-> obj heading) (the-as basic (not (-> obj heading)))) + (let ((f28-1 (rand-vu-float-range (* 0.75 f0-9) f0-9)) + (s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-1 (* -0.6 f30-0))) + ) + (vector-normalize! s3-2 f28-1) + (vector+! s3-2 s3-2 s4-2) + ) + (clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2) + (vector+! s2-0 s5-1 s3-2) + (set! (-> obj target-pos quad) (-> s2-0 quad)) + ) + ) ) - 0 ) + 0 ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 181 of type flitter ;; WARN: Return type mismatch time-frame vs none. (defmethod flitter-method-181 flitter ((obj flitter)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (the-as int (-> obj amb-sound-timer))) - (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) - ) - (sound-play "flitter-amb" :position (-> obj root-override2 trans)) - (set! (-> obj amb-sound-timer) (the-as uint (-> pp clock frame-counter))) - ) - (none) + (when (>= (- (current-time) (the-as int (-> obj amb-sound-timer))) + (the int (* 300.0 (rand-vu-float-range 1.5 3.0))) + ) + (sound-play "flitter-amb" :position (-> obj root-override2 trans)) + (set! (-> obj amb-sound-timer) (the-as uint (current-time))) ) + (none) ) ;; definition for function flitter-fall-and-play-death-anim @@ -1002,7 +998,7 @@ ) (set! (-> self root-override2 transv y) 33775.48) (ja :num-func num-func-identity :frame-num 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self root-override2 status) (collide-status on-surface on-ground touch-surface)) (until v1-29 (let ((f0-2 102400.0)) @@ -1011,7 +1007,7 @@ ) (suspend) (ja :num! (seek! max arg1)) - (set! v1-29 (or (ja-done? 0) (>= (- (-> self clock frame-counter) (-> self state-time)) arg2))) + (set! v1-29 (or (ja-done? 0) (>= (- (current-time) (-> self state-time)) arg2))) ) ) ) @@ -1107,7 +1103,7 @@ (t9-0) ) ) - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) (none) ) :trans (behavior () @@ -1115,7 +1111,7 @@ (if gp-0 (set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad)) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-11 (-> self focus aware))) (cond ((= v1-11 (enemy-aware enemy-aware-3)) @@ -1132,14 +1128,12 @@ ) ) ) - (if (and (get-enemy-target self) - (>= (- (-> self clock frame-counter) (the-as int (-> self off-screen-timer))) (seconds 0.3)) - ) + (if (and (get-enemy-target self) (>= (- (current-time) (the-as int (-> self off-screen-timer))) (seconds 0.3))) (go-hostile self) ) ) (else - (set! (-> self off-screen-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self off-screen-timer) (the-as uint (current-time))) ) ) ) @@ -1190,9 +1184,9 @@ (defstate hostile (flitter) :virtual #t :enter (behavior () - (set! (-> self last-change-dir) (the-as uint (-> self clock frame-counter))) + (set! (-> self last-change-dir) (the-as uint (current-time))) (set! (-> self change-dir-time) 0) - (set! (-> self attack-time) (+ (-> self clock frame-counter) (seconds 0.35))) + (set! (-> self attack-time) (+ (current-time) (seconds 0.35))) (let ((t9-0 (-> (method-of-type nav-enemy hostile) enter))) (if t9-0 (t9-0) @@ -1258,7 +1252,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior flitter) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1295,7 +1289,7 @@ ) (set! s5-2 (cond ((and gp-0 - (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (< (- (current-time) (-> self state-time)) (seconds 1.5)) gp-0 (not (logtest? (-> gp-0 focus-status) (focus-status disable dead ignore grabbed))) ) diff --git a/test/decompiler/reference/jak2/levels/common/grunt_REF.gc b/test/decompiler/reference/jak2/levels/common/grunt_REF.gc index f995088232..78aae3eadb 100644 --- a/test/decompiler/reference/jak2/levels/common/grunt_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/grunt_REF.gc @@ -526,8 +526,8 @@ (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -852,7 +852,7 @@ ) ) (let ((a0-1 (grunt-method-184 self 13312.0)) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (when (and (>= gp-0 (-> self next-warn-time)) (not (logtest? (-> self draw status) (draw-control-status on-screen))) diff --git a/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc b/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc index 13b683a082..89d9630144 100644 --- a/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc @@ -850,9 +850,9 @@ (vector-float*! (-> a2-0 transv) (-> a2-0 transv) 0.2) ) (when (and (logtest? v1-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (set! (-> obj played-bounce-time) (-> self clock frame-counter)) + (set! (-> obj played-bounce-time) (current-time)) (sound-play "grenade-bounce") ) ) diff --git a/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc b/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc index f2774db8d8..3409d673a4 100644 --- a/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc @@ -600,204 +600,200 @@ ;; definition for method 11 of type race-state ;; WARN: Return type mismatch int vs none. (defmethod race-state-method-11 race-state ((obj race-state)) - (with-pp - (set! (-> obj current-time) (the-as uint (-> pp clock frame-counter))) - (let ((v1-2 (-> obj state))) - (cond - ((zero? v1-2) - (let ((v1-3 (the-as object #t))) - (when (not (logtest? (-> obj flags) 4)) - (dotimes (s5-0 (-> obj racer-count)) - (let ((a0-7 (-> obj racer-array s5-0))) - (set! v1-3 (and v1-3 (send-event (handle->process (-> a0-7 racer)) 'test-ready))) - ) + (set! (-> obj current-time) (the-as uint (current-time))) + (let ((v1-2 (-> obj state))) + (cond + ((zero? v1-2) + (let ((v1-3 (the-as object #t))) + (when (not (logtest? (-> obj flags) 4)) + (dotimes (s5-0 (-> obj racer-count)) + (let ((a0-7 (-> obj racer-array s5-0))) + (set! v1-3 (and v1-3 (send-event (handle->process (-> a0-7 racer)) 'test-ready))) ) ) - (when (and v1-3 (not (logtest? (-> obj info flags) 1))) - (race-state-method-15 obj) - (set! v1-3 (handle->process (-> obj race-signal))) - ) - (when v1-3 - (race-state-method-18 obj) - (set! (-> obj state) (the-as uint (if (or (logtest? (-> obj flags) 2) (logtest? (-> obj info flags) 1)) - 5 - 1 - ) - ) - ) - ) + ) + (when (and v1-3 (not (logtest? (-> obj info flags) 1))) + (race-state-method-15 obj) + (set! v1-3 (handle->process (-> obj race-signal))) + ) + (when v1-3 + (race-state-method-18 obj) + (set! (-> obj state) (the-as uint (if (or (logtest? (-> obj flags) 2) (logtest? (-> obj info flags) 1)) + 5 + 1 + ) + ) + ) ) ) - ((= v1-2 1) - (let* ((f30-0 (* 0.0033333334 (the float (- (-> obj current-time) (-> obj countdown-start-time))))) - (s4-0 (handle->process (-> obj racer-array (-> obj i-player) racer))) - (s5-1 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (cond - ((< f30-0 1.0) - (when s5-1 - (cubic-curve-method-10 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-1) root-override trans) - f30-0 - ) - (cubic-curve-method-11 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-1) root-override transv) - f30-0 - ) - (when (< 0.4 f30-0) - (when (-> obj info start-camera) - (set-setting! 'entity-name (-> obj info start-camera) 0.0 0) - (if (logtest? (-> obj info flags) 64) - (talker-spawn-func (-> *talker-speech* 377) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-2 1) + (let* ((f30-0 (* 0.0033333334 (the float (- (-> obj current-time) (-> obj countdown-start-time))))) + (s4-0 (handle->process (-> obj racer-array (-> obj i-player) racer))) + (s5-1 (if (type? s4-0 process-focusable) + s4-0 ) ) - ) - ) ) - (else - (set! (-> obj state) (the-as uint 2)) - ) - ) - ) - ) - ((= v1-2 2) - (let* ((s4-2 (handle->process (-> obj racer-array (-> obj i-player) racer))) - (s5-3 (if (type? s4-2 process-focusable) - s4-2 - ) - ) - ) - (when s5-3 - (cubic-curve-method-10 - (-> obj player-intro-curve) - (-> (the-as process-focusable s5-3) root-override trans) - 1.0 - ) - (vector-reset! (-> (the-as process-focusable s5-3) root-override transv)) - ) - ) - (let ((a0-48 (-> obj info hatch-actor-name))) - (when a0-48 - (let ((a0-49 (process-by-name a0-48 *active-pool*))) - (send-event a0-49 'close) - ) - ) - ) - (set! (-> obj countdown-start-time) (-> obj current-time)) - (set! (-> obj state) (the-as uint (if (-> obj info countdown-scene) - 3 - 5 - ) - ) - ) - ) - ((= v1-2 3) - (when (>= (the-as uint (- (-> pp clock frame-counter) (the-as int (-> obj countdown-start-time)))) - (the-as uint 300) - ) - (set! (-> obj state) (the-as uint 4)) - (set! (-> obj scene-player) - (ppointer->handle (process-spawn scene-player :init scene-player-init (-> obj info countdown-scene) #t #f)) - ) - ) - ) - ((= v1-2 4) (cond - ((handle->process (-> obj scene-player)) - (let ((s5-5 (-> obj info))) - (dotimes (s4-3 (-> s5-5 racer-count)) - (let ((v1-95 (-> obj racer-array s4-3))) - (if (logtest? (-> s5-5 racer-array s4-3 flags) 1) - (send-event (handle->process (-> v1-95 racer)) 'hide) + ((< f30-0 1.0) + (when s5-1 + (cubic-curve-method-10 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-1) root-override trans) + f30-0 + ) + (cubic-curve-method-11 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-1) root-override transv) + f30-0 + ) + (when (< 0.4 f30-0) + (when (-> obj info start-camera) + (set-setting! 'entity-name (-> obj info start-camera) 0.0 0) + (if (logtest? (-> obj info flags) 64) + (talker-spawn-func (-> *talker-speech* 377) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) ) ) (else - (let ((s5-6 (-> obj info))) - (dotimes (s4-4 (-> s5-6 racer-count)) - (let ((v1-105 (-> obj racer-array s4-4))) - (if (logtest? (-> s5-6 racer-array s4-4 flags) 1) - (send-event (handle->process (-> v1-105 racer)) 'unhide) - ) - ) - ) - ) - (set! (-> obj state) (the-as uint 5)) + (set! (-> obj state) (the-as uint 2)) ) ) ) - ((= v1-2 5) - (set! (-> obj i-countdown) 4) - (set! (-> obj state) (the-as uint 6)) - (set! (-> obj countdown-start-time) (-> obj current-time)) - (remove-setting! 'entity-name) + ) + ((= v1-2 2) + (let* ((s4-2 (handle->process (-> obj racer-array (-> obj i-player) racer))) + (s5-3 (if (type? s4-2 process-focusable) + s4-2 + ) + ) + ) + (when s5-3 + (cubic-curve-method-10 + (-> obj player-intro-curve) + (-> (the-as process-focusable s5-3) root-override trans) + 1.0 + ) + (vector-reset! (-> (the-as process-focusable s5-3) root-override transv)) + ) ) - ((= v1-2 6) - (let ((f0-3 3.0)) - (if (logtest? (-> obj info flags) 1) - (set! f0-3 0.2) - ) - (let ((v1-127 (+ (the int (* 300.0 f0-3)) (- (-> obj countdown-start-time) (-> obj current-time))))) - (cond - ((>= v1-127 (the int (* 225.0 f0-3))) - ) - ((>= v1-127 (the int (* 150.0 f0-3))) - (when (!= (-> obj i-countdown) 3) - (set! (-> obj i-countdown) 3) - (send-event (handle->process (-> obj race-signal)) 'count-3) - ) - ) - ((>= v1-127 (the int (* 75.0 f0-3))) - (when (!= (-> obj i-countdown) 2) - (set! (-> obj i-countdown) 2) - (send-event (handle->process (-> obj race-signal)) 'count-2) - ) - ) - ((< (the int (* 0.0 f0-3)) v1-127) - (when (!= (-> obj i-countdown) 1) - (set! (-> obj i-countdown) 1) - (send-event (handle->process (-> obj race-signal)) 'count-1) - ) - ) - (else - (set! (-> obj i-countdown) 0) - (set! (-> obj state) (the-as uint 7)) - (begin-race obj) - ) - ) + (let ((a0-48 (-> obj info hatch-actor-name))) + (when a0-48 + (let ((a0-49 (process-by-name a0-48 *active-pool*))) + (send-event a0-49 'close) ) ) - (race-state-method-14 obj) ) - ((= v1-2 7) - (race-state-method-14 obj) - (race-state-method-12 obj) + (set! (-> obj countdown-start-time) (-> obj current-time)) + (set! (-> obj state) (the-as uint (if (-> obj info countdown-scene) + 3 + 5 + ) + ) + ) + ) + ((= v1-2 3) + (when (>= (the-as uint (- (current-time) (the-as int (-> obj countdown-start-time)))) (the-as uint 300)) + (set! (-> obj state) (the-as uint 4)) + (set! (-> obj scene-player) + (ppointer->handle (process-spawn scene-player :init scene-player-init (-> obj info countdown-scene) #t #f)) + ) ) - ((= v1-2 8) - ) - (else - ) - ) - ) - (dotimes (s5-7 (-> obj info turbo-pad-count)) - (let ((s4-5 (-> obj info turbo-pad-array s5-7))) - (if (not (handle->process (-> s4-5 handle))) - (set! (-> s4-5 handle) - (process->handle (turbo-pickup-spawn (handle->process (-> obj manager)) (-> s4-5 position))) - ) + ) + ((= v1-2 4) + (cond + ((handle->process (-> obj scene-player)) + (let ((s5-5 (-> obj info))) + (dotimes (s4-3 (-> s5-5 racer-count)) + (let ((v1-95 (-> obj racer-array s4-3))) + (if (logtest? (-> s5-5 racer-array s4-3 flags) 1) + (send-event (handle->process (-> v1-95 racer)) 'hide) + ) + ) + ) ) + ) + (else + (let ((s5-6 (-> obj info))) + (dotimes (s4-4 (-> s5-6 racer-count)) + (let ((v1-105 (-> obj racer-array s4-4))) + (if (logtest? (-> s5-6 racer-array s4-4 flags) 1) + (send-event (handle->process (-> v1-105 racer)) 'unhide) + ) + ) + ) + ) + (set! (-> obj state) (the-as uint 5)) + ) + ) + ) + ((= v1-2 5) + (set! (-> obj i-countdown) 4) + (set! (-> obj state) (the-as uint 6)) + (set! (-> obj countdown-start-time) (-> obj current-time)) + (remove-setting! 'entity-name) + ) + ((= v1-2 6) + (let ((f0-3 3.0)) + (if (logtest? (-> obj info flags) 1) + (set! f0-3 0.2) + ) + (let ((v1-127 (+ (the int (* 300.0 f0-3)) (- (-> obj countdown-start-time) (-> obj current-time))))) + (cond + ((>= v1-127 (the int (* 225.0 f0-3))) + ) + ((>= v1-127 (the int (* 150.0 f0-3))) + (when (!= (-> obj i-countdown) 3) + (set! (-> obj i-countdown) 3) + (send-event (handle->process (-> obj race-signal)) 'count-3) + ) + ) + ((>= v1-127 (the int (* 75.0 f0-3))) + (when (!= (-> obj i-countdown) 2) + (set! (-> obj i-countdown) 2) + (send-event (handle->process (-> obj race-signal)) 'count-2) + ) + ) + ((< (the int (* 0.0 f0-3)) v1-127) + (when (!= (-> obj i-countdown) 1) + (set! (-> obj i-countdown) 1) + (send-event (handle->process (-> obj race-signal)) 'count-1) + ) + ) + (else + (set! (-> obj i-countdown) 0) + (set! (-> obj state) (the-as uint 7)) + (begin-race obj) + ) + ) + ) + ) + (race-state-method-14 obj) + ) + ((= v1-2 7) + (race-state-method-14 obj) + (race-state-method-12 obj) + ) + ((= v1-2 8) + ) + (else ) ) - 0 - (none) ) + (dotimes (s5-7 (-> obj info turbo-pad-count)) + (let ((s4-5 (-> obj info turbo-pad-array s5-7))) + (if (not (handle->process (-> s4-5 handle))) + (set! (-> s4-5 handle) + (process->handle (turbo-pickup-spawn (handle->process (-> obj manager)) (-> s4-5 position))) + ) + ) + ) + ) + 0 + (none) ) ;; definition for method 15 of type race-state @@ -1482,10 +1478,10 @@ (when (logtest? (-> gp-0 flags) 1) (cond ((logtest? (-> gp-0 flags) 64) - (set! (-> self player-on-track-time) (-> self clock frame-counter)) + (set! (-> self player-on-track-time) (current-time)) ) (else - (when (>= (- (-> self clock frame-counter) (-> self player-on-track-time)) (seconds 1)) + (when (>= (- (current-time) (-> self player-on-track-time)) (seconds 1)) (let ((v1-16 (handle->process (-> gp-0 racer)))) (when v1-16 (when (logtest? (-> (the-as vehicle-racer v1-16) flags) (rigid-body-object-flag on-ground)) @@ -1559,7 +1555,7 @@ (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) (process-spawn hud-race-final-stats :init hud-init-by-other :to self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (when (logtest? (-> self race-state info flags) 4) (send-event (ppointer->process (-> self parent)) 'complete) (sleep-code) @@ -1568,7 +1564,7 @@ (cond ((logtest? (-> self race-state info flags) 8) (race-manager-method-25 self) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (cond ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) @@ -1585,7 +1581,7 @@ ) (else (race-manager-method-24 self) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (when (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) (send-event (ppointer->process (-> self parent)) 'complete) @@ -1620,11 +1616,11 @@ (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) (process-spawn hud-race-final-stats :init hud-init-by-other :to self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (race-manager-method-25 self) (-> self race-state info) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (cond ((logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) (race-manager-method-27 self) @@ -1657,7 +1653,7 @@ (send-event (handle->process (-> self race-state hud-timer)) 'force-hide) (send-event (handle->process (-> self race-state hud-lap-counter)) 'force-hide) (send-event (handle->process (-> self race-state hud-turbo-counter)) 'force-hide) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/common/races/race-obs_REF.gc b/test/decompiler/reference/jak2/levels/common/races/race-obs_REF.gc index e2dc794a86..1faecdb0ca 100644 --- a/test/decompiler/reference/jak2/levels/common/races/race-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/races/race-obs_REF.gc @@ -147,7 +147,7 @@ (+! (-> obj y-offset) (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (-> pp clock seconds-per-frame)))) ) - (let ((f30-0 (* 0.0033333334 (the float (- (-> pp clock frame-counter) (-> obj bob-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) ) @@ -316,7 +316,7 @@ (-> v1-8 trans) ) ) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (until #f (suspend) ) @@ -324,7 +324,7 @@ (none) ) :post (behavior () - (let ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> self start-time)))))) (cubic-curve-method-10 (-> self curve) (-> self pos) f30-0) (if (< 1.0 f30-0) (go-virtual die) @@ -351,8 +351,8 @@ :code (behavior () (until #f (ja :num-func num-func-identity :frame-num (ja-aframe 0.0 0)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -362,8 +362,8 @@ (ja :num! (seek! (ja-aframe 2.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 196) 600 #f #f self 5 :to self) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 0.5)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 0.5)) (suspend) ) ) @@ -373,8 +373,8 @@ (ja :num! (seek! (ja-aframe 4.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 195) 300 #f #f self 7 :to self) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 0.5)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 0.5)) (suspend) ) ) @@ -384,14 +384,14 @@ (ja :num! (seek! (ja-aframe 6.0 0))) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 194) 300 #f #f self 9 :to self) - (let ((gp-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-13) (seconds 0.5)) + (let ((gp-13 (current-time))) + (until (>= (- (current-time) gp-13) (seconds 0.5)) (suspend) ) ) (process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 197) 300 #f #f self 10 :to self) - (let ((gp-15 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-15) (seconds 0.5)) + (let ((gp-15 (current-time))) + (until (>= (- (current-time) gp-15) (seconds 0.5)) (suspend) ) ) @@ -422,7 +422,7 @@ (the-as skeleton-group (art-group-get-by-name *level* "skel-race-signal" (the-as (pointer uint32) #f))) (the-as pair 0) ) - (set! (-> self bob-time) (-> self clock frame-counter)) + (set! (-> self bob-time) (current-time)) (set! (-> self banner) (the-as handle #f)) (set! (-> self draw shadow-mask) (the-as uint 30)) (set! (-> self draw shadow-values) (the-as uint #x22220)) @@ -836,7 +836,7 @@ (defstate die (turbo-pickup) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) (when gp-0 (let ((t9-1 (method-of-type part-tracker activate))) @@ -877,7 +877,7 @@ (set! (-> v1-11 prim-core collide-with) (collide-spec)) ) 0 - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (none) @@ -927,7 +927,3 @@ (the-as turbo-pickup gp-0) ) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/races/vehicle-racer_REF.gc b/test/decompiler/reference/jak2/levels/common/races/vehicle-racer_REF.gc index 65dc35f87a..c799d9f516 100644 --- a/test/decompiler/reference/jak2/levels/common/races/vehicle-racer_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/races/vehicle-racer_REF.gc @@ -317,20 +317,18 @@ ;; definition for method 66 of type vehicle-racer ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-66 vehicle-racer ((obj vehicle-racer)) - (with-pp - (when (and (not (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags))) (> (-> obj turbo-pickup-count) 0)) - (+! (-> obj turbo-pickup-count) -1) - (set! (-> obj turbo-boost-time) (-> pp clock frame-counter)) - (set! (-> obj turbo-boost-factor) 1.0) - (set! (-> obj turbo-boost-duration) (the-as uint 150)) - (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (sound-play "turbo-boost") - ) - ) - 0 - (none) + (when (and (not (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags))) (> (-> obj turbo-pickup-count) 0)) + (+! (-> obj turbo-pickup-count) -1) + (set! (-> obj turbo-boost-time) (current-time)) + (set! (-> obj turbo-boost-factor) 1.0) + (set! (-> obj turbo-boost-duration) (the-as uint 150)) + (set! (-> obj flags) (logior (rigid-body-object-flag turbo-boost) (-> obj flags))) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (sound-play "turbo-boost") + ) ) + 0 + (none) ) ;; definition for method 136 of type vehicle-racer @@ -487,7 +485,7 @@ ) ) (select-path-randomly-from-mask obj (-> v1-37 shortcuts)) - (set! (-> obj shortcut-time) (-> self clock frame-counter)) + (set! (-> obj shortcut-time) (current-time)) (set! (-> obj shortcut-speed-factor) 1.0) ) (else @@ -935,23 +933,21 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod vehicle-racer-method-152 vehicle-racer ((obj vehicle-racer)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'matrix3))) - (set! (-> s5-0 vector 0 quad) (-> obj rbody state position quad)) - (set! (-> obj camera-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (target-pos 0))) - ) - (if (>= (- (-> pp clock frame-counter) (-> obj shortcut-time)) (seconds 5)) - (set! (-> obj shortcut-speed-factor) 0.0) - ) - (vehicle-racer-method-154 obj) - (if (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (physics-post obj) - (vehicle-racer-method-151 obj) - ) - 0 - (none) + (let ((s5-0 (new 'stack-no-clear 'matrix3))) + (set! (-> s5-0 vector 0 quad) (-> obj rbody state position quad)) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (the-as vector (-> s5-0 vector)) (target-pos 0))) ) + (if (>= (- (current-time) (-> obj shortcut-time)) (seconds 5)) + (set! (-> obj shortcut-speed-factor) 0.0) + ) + (vehicle-racer-method-154 obj) + (if (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (physics-post obj) + (vehicle-racer-method-151 obj) + ) + 0 + (none) ) ;; definition for method 155 of type vehicle-racer @@ -1003,7 +999,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (logior (rigid-body-object-flag ignition) (-> self flags))) (set! (-> self controls throttle) 0.0) (set! (-> self controls brake) 0.0) @@ -1068,7 +1064,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self damage-factor) (-> self info-override damage-factor)) (vehicle-method-143 self) (set! (-> self flags) (logior (rigid-body-object-flag ignition) (-> self flags))) @@ -1098,7 +1094,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (logior (rigid-body-object-flag riding ignition) (-> self flags))) (set! (-> self controls throttle) 0.0) (set! (-> self controls brake) 0.0) @@ -1143,7 +1139,7 @@ vehicle-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self flags) (the-as rigid-body-object-flag (logior (rigid-body-object-flag persistent riding nav-spheres) (-> self flags)) diff --git a/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc b/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc index 8c73e51079..657d02ae67 100644 --- a/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc @@ -575,7 +575,7 @@ ) :code (behavior () (remove-setting! 'allow-progress) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (update-transforms (-> self root-override)) (until #f (handle-notice self) @@ -597,14 +597,14 @@ (or (= v1-30 'target-warp-in) (= v1-30 'target-warp-out)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) #f ) (else #t ) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (>= (- (current-time) (-> self state-time)) (seconds 0.1)) ) (if (and (cpad-pressed? 0 triangle) (process-grab? *target* #f)) (go-virtual use (-> self continue)) @@ -689,7 +689,7 @@ (kill-current-talker (the-as symbol '()) '() 'exit) (set-setting! 'mode-name 'cam-fixed 0.0 0) (set-setting! 'interp-time 'abs 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (when (not arg0) (process-release? *target*) @@ -731,7 +731,7 @@ ) ) (label cfg-21) - (or v1-38 (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))) + (or v1-38 (< (- (current-time) (-> self state-time)) (seconds 2))) ) (update! (-> self sound)) (suspend) @@ -742,8 +742,8 @@ (set-blackout-frames (seconds 0.05)) ) (start 'play arg0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -890,7 +890,7 @@ This commonly includes things such as: ) ) :enter (behavior ((arg0 vector) (arg1 vector) (arg2 target)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (set! (-> self control mod-surface) *warp-jump-mods*) (set! (-> self control unknown-vector37 quad) (-> arg0 quad)) @@ -954,7 +954,7 @@ This commonly includes things such as: (set! (-> v1-20 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self trans-hook) (lambda :behavior target () @@ -980,7 +980,7 @@ This commonly includes things such as: (set! (-> gp-1 y) 0.0) (send-event *target* 'sidekick #f) (when (and (or (< (vector-dot gp-1 (-> self control transv)) 0.0) (-> self control unknown-spool-anim00)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> self clock seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) @@ -1074,8 +1074,8 @@ This commonly includes things such as: (ja-channel-set! 0) (vector-reset! (-> self control transv)) (move-to-point! (-> self control) (-> self control unknown-vector37)) - (let ((s5-1 (-> self clock frame-counter))) - (while (or (< (- (-> self clock frame-counter) s5-1) (seconds 1)) + (let ((s5-1 (current-time))) + (while (or (< (- (current-time) s5-1) (seconds 1)) (< 81920.0 (vector-vector-distance (camera-pos) (-> self control trans))) ) (suspend) @@ -1083,7 +1083,7 @@ This commonly includes things such as: ) (set-heading-vec! (-> self control) (-> self control transv)) (rot->dir-targ! (-> self control)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self post-hook) target-no-stick-post) (ja-channel-set! 1) (send-event @@ -1308,11 +1308,10 @@ This commonly includes things such as: ((the-as (function none) t9-0)) ) ) - (set! (-> self root-override trans y) - (+ (-> self base-pos y) - (* 696.32 (cos (* 66.19798 (the float (mod (-> self clock frame-counter) 990))))) - (* 450.56 (cos (* 42.25403 (the float (mod (-> self clock frame-counter) 1551))))) - ) + (set! (-> self root-override trans y) (+ (-> self base-pos y) + (* 696.32 (cos (* 66.19798 (the float (mod (current-time) 990))))) + (* 450.56 (cos (* 42.25403 (the float (mod (current-time) 1551))))) + ) ) (spawn-with-cspace (-> self part-exhaust-left) (-> self node-list data 5)) (spawn-with-cspace (-> self part-exhaust-right) (-> self node-list data 6)) @@ -1335,7 +1334,7 @@ This commonly includes things such as: :virtual #t :code (behavior ((arg0 continue-point)) (kill-current-talker (the-as symbol '()) '() 'exit) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause)) (when (not arg0) (process-release? *target*) diff --git a/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc b/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc index cec9b672c2..8b16c39a3a 100644 --- a/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc @@ -497,20 +497,17 @@ ;; definition for function demo-wait-for-press (defun demo-wait-for-press ((arg0 time-frame) (arg1 time-frame) (arg2 symbol)) - (with-pp - (let ((s4-0 (-> pp clock frame-counter)) - (s3-0 #f) - ) - (while (not (or (>= (- (-> pp clock frame-counter) s4-0) arg1) (and (>= (- (-> pp clock frame-counter) s4-0) arg0) s3-0)) - ) - (if (cpad-pressed? 0 triangle) - (set! s3-0 #t) - ) - (suspend) + (let ((s4-0 (current-time)) + (s3-0 #f) ) + (while (not (or (>= (- (current-time) s4-0) arg1) (and (>= (- (current-time) s4-0) arg0) s3-0))) + (if (cpad-pressed? 0 triangle) + (set! s3-0 #t) + ) + (suspend) ) - #f ) + #f ) ;; definition for function demo-menu @@ -674,63 +671,63 @@ ) (cond ((zero? (scf-get-territory)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.38)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.38)) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 3)) (set-vector! (-> self sprite-pos) -512.0 40.0 0.0 1.0) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (set! (-> self sprite-pos x) - (lerp-scale -512.0 0.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-4)))) 0.0 1.0) + (lerp-scale -512.0 0.0 (sin (* 218.45334 (the float (- (current-time) gp-4)))) 0.0 1.0) ) (suspend) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 2)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 2)) (suspend) ) ) - (let ((gp-6 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 0.25)) + (let ((gp-6 (current-time))) + (until (>= (- (current-time) gp-6) (seconds 0.25)) (set! (-> self sprite-pos x) - (lerp-scale 0.0 512.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-6)))) 0.0 1.0) + (lerp-scale 0.0 512.0 (sin (* 218.45334 (the float (- (current-time) gp-6)))) 0.0 1.0) ) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 1)) (set-vector! (-> self sprite-pos) 30.0 -240.0 0.0 1.0) - (let ((gp-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-7) (seconds 0.25)) + (let ((gp-7 (current-time))) + (until (>= (- (current-time) gp-7) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale -240.0 270.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-7)))) 0.0 1.0) + (lerp-scale -240.0 270.0 (sin (* 218.45334 (the float (- (current-time) gp-7)))) 0.0 1.0) ) (suspend) ) ) - (let ((gp-8 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-8) (seconds 2)) + (let ((gp-8 (current-time))) + (until (>= (- (current-time) gp-8) (seconds 2)) (suspend) ) ) - (let ((gp-9 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-9) (seconds 0.25)) + (let ((gp-9 (current-time))) + (until (>= (- (current-time) gp-9) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 270.0 720.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-9)))) 0.0 1.0) + (lerp-scale 270.0 720.0 (sin (* 218.45334 (the float (- (current-time) gp-9)))) 0.0 1.0) ) (suspend) ) ) (set! (-> self sprite-draw) (the-as uint 2)) (set-vector! (-> self sprite-pos) 20.0 40.0 0.0 1.0) - (let ((gp-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-10) (seconds 0.25)) + (let ((gp-10 (current-time))) + (until (>= (- (current-time) gp-10) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 720.0 20.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-10)))) 0.0 1.0) + (lerp-scale 720.0 20.0 (sin (* 218.45334 (the float (- (current-time) gp-10)))) 0.0 1.0) ) (suspend) ) @@ -744,70 +741,70 @@ (set! (-> a1-21 0) 'demo) (want-levels *load-state* a1-21) ) - (let ((gp-11 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-11) (seconds 2)) + (let ((gp-11 (current-time))) + (until (>= (- (current-time) gp-11) (seconds 2)) (suspend) ) ) - (let ((gp-12 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-12) (seconds 0.25)) + (let ((gp-12 (current-time))) + (until (>= (- (current-time) gp-12) (seconds 0.25)) (set! (-> self sprite-pos y) - (lerp-scale 20.0 -720.0 (sin (* 218.45334 (the float (- (-> self clock frame-counter) gp-12)))) 0.0 1.0) + (lerp-scale 20.0 -720.0 (sin (* 218.45334 (the float (- (current-time) gp-12)))) 0.0 1.0) ) (suspend) ) ) ) (else - (let ((gp-13 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-13) (seconds 0.38)) + (let ((gp-13 (current-time))) + (until (>= (- (current-time) gp-13) (seconds 0.38)) (suspend) ) ) - (let ((gp-14 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-14) (seconds 2)) + (let ((gp-14 (current-time))) + (until (>= (- (current-time) gp-14) (seconds 2)) (suspend) ) ) - (let ((gp-15 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-15) (seconds 0.25)) + (let ((gp-15 (current-time))) + (until (>= (- (current-time) gp-15) (seconds 0.25)) (suspend) ) ) - (let ((gp-16 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-16) (seconds 0.25)) + (let ((gp-16 (current-time))) + (until (>= (- (current-time) gp-16) (seconds 0.25)) (suspend) ) ) - (let ((gp-17 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-17) (seconds 2)) + (let ((gp-17 (current-time))) + (until (>= (- (current-time) gp-17) (seconds 2)) (suspend) ) ) - (let ((gp-18 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-18) (seconds 0.25)) + (let ((gp-18 (current-time))) + (until (>= (- (current-time) gp-18) (seconds 0.25)) (suspend) ) ) - (let ((gp-19 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-19) (seconds 0.25)) + (let ((gp-19 (current-time))) + (until (>= (- (current-time) gp-19) (seconds 0.25)) (suspend) ) ) - (let ((gp-20 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-20) (seconds 2)) + (let ((gp-20 (current-time))) + (until (>= (- (current-time) gp-20) (seconds 2)) (suspend) ) ) - (let ((gp-21 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-21) (seconds 0.25)) + (let ((gp-21 (current-time))) + (until (>= (- (current-time) gp-21) (seconds 0.25)) (suspend) ) ) ) ) - (let ((gp-22 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-22) (seconds 3)) + (let ((gp-22 (current-time))) + (until (>= (- (current-time) gp-22) (seconds 3)) (suspend) ) ) @@ -824,9 +821,9 @@ (set! (-> *setting-control* user-default allow-timeout) #t) (let ((gp-24 (demo-menu))) (script-eval '(fadeout (seconds (new 'static 'bfloat :data 0.3)))) - (let ((s5-8 (-> self clock frame-counter))) + (let ((s5-8 (current-time))) (while (or (!= (-> *setting-control* user-current bg-a) (-> *setting-control* user-target bg-a)) - (< (- (-> self clock frame-counter) s5-8) (seconds 0.3)) + (< (- (current-time) s5-8) (seconds 0.3)) ) (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc index c559cc1bfd..6227670e29 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc @@ -1360,83 +1360,81 @@ This commonly includes things such as: ;; definition for method 24 of type dig-digger ;; WARN: Return type mismatch int vs none. (defmethod dig-digger-method-24 dig-digger ((obj dig-digger)) - (with-pp - (set! (-> obj vertical target x) 0.0) - (set! (-> obj vertical target z) 0.0) - (let ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (the-as vector (-> obj vertical)) 1.0)) - (s5-0 0) - ) - (dotimes (s3-0 24) - (let* ((s2-0 (-> obj tethers s3-0)) - (s1-0 (handle->process (-> s2-0 handle))) + (set! (-> obj vertical target x) 0.0) + (set! (-> obj vertical target z) 0.0) + (let ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (the-as vector (-> obj vertical)) 1.0)) + (s5-0 0) + ) + (dotimes (s3-0 24) + (let* ((s2-0 (-> obj tethers s3-0)) + (s1-0 (handle->process (-> s2-0 handle))) + ) + (cond + (s1-0 + (let ((v1-10 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj tethers s3-0 rp))))) + (send-event s1-0 'set-pos v1-10 (-> obj root trans) s4-0) + ) + (cond + ((send-event s1-0 'broken?) + (+! (-> obj vertical target x) (-> s2-0 broken-x)) + (+! (-> obj vertical target z) (-> s2-0 broken-z)) ) - (cond - (s1-0 - (let ((v1-10 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj tethers s3-0 rp))))) - (send-event s1-0 'set-pos v1-10 (-> obj root trans) s4-0) - ) - (cond - ((send-event s1-0 'broken?) - (+! (-> obj vertical target x) (-> s2-0 broken-x)) - (+! (-> obj vertical target z) (-> s2-0 broken-z)) - ) - (else - (+! s5-0 1) - ) + (else + (+! s5-0 1) ) ) - (else - (+! (-> obj vertical target x) (-> s2-0 broken-x)) - (+! (-> obj vertical target z) (-> s2-0 broken-z)) - ) + ) + (else + (+! (-> obj vertical target x) (-> s2-0 broken-x)) + (+! (-> obj vertical target z) (-> s2-0 broken-z)) ) ) ) - (set! (-> *game-info* counter) (the float s5-0)) - (when (and (= s5-0 24) - (>= (- (-> pp clock frame-counter) (-> obj speech-time)) (seconds 20)) - *target* - (and (>= 409600.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) - (not (logtest? (focus-status teleporting) (-> *target* focus-status))) - ) - ) - (let ((v1-37 (logand (-> obj speech-count) 1))) - (cond - ((zero? v1-37) - (talker-spawn-func (-> *talker-speech* 191) *entity-pool* (target-pos 0) (the-as region #f)) - (if (and *target* (not (logtest? (focus-status board) (-> *target* focus-status)))) - (talker-spawn-func (-> *talker-speech* 115) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ((= v1-37 1) - (talker-spawn-func (-> *talker-speech* 192) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ) - ) - (set! (-> obj speech-time) (-> pp clock frame-counter)) - (+! (-> obj speech-count) 1) - ) - (cond - ((zero? s5-0) - (send-event (handle->process (-> obj hud-counter)) 'hide-and-die) - (set! (-> obj hud-counter) (the-as handle #f)) - (when (= (-> obj movie-handle) #f) - (set! (-> obj movie-handle) - (ppointer->handle (process-spawn scene-player :init scene-player-init "dig-digger-explode" #t #f)) - ) - (if (handle->process (-> obj movie-handle)) - (cleanup-for-death obj) - ) - ) - ) - ((>= 4 s5-0) - (script-eval '(want-anim "dig-digger-explode")) - ) - ) ) - 0 - (none) + (set! (-> *game-info* counter) (the float s5-0)) + (when (and (= s5-0 24) + (>= (- (current-time) (-> obj speech-time)) (seconds 20)) + *target* + (and (>= 409600.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) + (not (logtest? (focus-status teleporting) (-> *target* focus-status))) + ) + ) + (let ((v1-37 (logand (-> obj speech-count) 1))) + (cond + ((zero? v1-37) + (talker-spawn-func (-> *talker-speech* 191) *entity-pool* (target-pos 0) (the-as region #f)) + (if (and *target* (not (logtest? (focus-status board) (-> *target* focus-status)))) + (talker-spawn-func (-> *talker-speech* 115) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ((= v1-37 1) + (talker-spawn-func (-> *talker-speech* 192) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + ) + (set! (-> obj speech-time) (current-time)) + (+! (-> obj speech-count) 1) + ) + (cond + ((zero? s5-0) + (send-event (handle->process (-> obj hud-counter)) 'hide-and-die) + (set! (-> obj hud-counter) (the-as handle #f)) + (when (= (-> obj movie-handle) #f) + (set! (-> obj movie-handle) + (ppointer->handle (process-spawn scene-player :init scene-player-init "dig-digger-explode" #t #f)) + ) + (if (handle->process (-> obj movie-handle)) + (cleanup-for-death obj) + ) + ) + ) + ((>= 4 s5-0) + (script-eval '(want-anim "dig-digger-explode")) + ) + ) ) + 0 + (none) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc index 83147b21d3..1154ca8c88 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc @@ -126,98 +126,96 @@ ;; definition for method 37 of type dig-sinking-plat (defmethod rigid-body-object-method-37 dig-sinking-plat ((obj dig-sinking-plat)) - (with-pp - (when (not (logtest? (-> obj path flags) (path-control-flag not-found))) - (set! (-> obj prev-pos) (-> obj path-pos)) - (set! (-> obj path-pos) (get-norm! (-> obj sync) 0)) - (when (< (-> obj path-pos) (-> obj prev-pos)) - (let ((a0-2 (-> obj skel root-channel 0))) - (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) - (set! (-> a0-2 param 0) - (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) frames num-frames) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-seek!) - ) - (let ((a0-3 (-> obj skel root-channel 0))) - (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1))) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) - ) - ) - (let ((f30-0 (/ 300.0 (the float (-> obj sync period))))) - (let* ((f0-12 (/ 1.0 (- 1.0 (* 2.0 f30-0)))) - (f0-13 (* (fmax 0.0 (- (-> obj path-pos) f30-0)) f0-12)) - ) - (get-point-at-percent-along-path! (-> obj path) (-> obj anchor-point) f0-13 'interp) - ) - (cond - ((< (-> obj path-pos) f30-0) - (set! (-> obj float-height-offset) (* -8192.0 (/ (- f30-0 (-> obj path-pos)) f30-0))) - ) - ((< (- 1.0 (* 2.0 f30-0)) (-> obj path-pos)) - (cond - ((< (- 1.0 f30-0) (-> obj path-pos)) - (set! (-> obj float-height-offset) (* -8192.0 (/ (- (-> obj path-pos) (- 1.0 f30-0)) f30-0))) - (let ((a0-5 (-> obj skel root-channel 0))) - (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group frames num-frames) -1))) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) - ) + (when (not (logtest? (-> obj path flags) (path-control-flag not-found))) + (set! (-> obj prev-pos) (-> obj path-pos)) + (set! (-> obj path-pos) (get-norm! (-> obj sync) 0)) + (when (< (-> obj path-pos) (-> obj prev-pos)) + (let ((a0-2 (-> obj skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) frames num-frames) -1)) ) - (else - (when (-> obj once) - (let ((a0-6 (-> obj skel root-channel 0))) - (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3))) - (set! (-> a0-6 param 0) - (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1)) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-seek!) - ) - (set! (-> obj once) #f) - ) - (let ((a0-7 (-> obj skel root-channel 0))) - (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group frames num-frames) -1))) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-seek!) + ) + (let ((a0-3 (-> obj skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((f30-0 (/ 300.0 (the float (-> obj sync period))))) + (let* ((f0-12 (/ 1.0 (- 1.0 (* 2.0 f30-0)))) + (f0-13 (* (fmax 0.0 (- (-> obj path-pos) f30-0)) f0-12)) + ) + (get-point-at-percent-along-path! (-> obj path) (-> obj anchor-point) f0-13 'interp) + ) + (cond + ((< (-> obj path-pos) f30-0) + (set! (-> obj float-height-offset) (* -8192.0 (/ (- f30-0 (-> obj path-pos)) f30-0))) + ) + ((< (- 1.0 (* 2.0 f30-0)) (-> obj path-pos)) + (cond + ((< (- 1.0 f30-0) (-> obj path-pos)) + (set! (-> obj float-height-offset) (* -8192.0 (/ (- (-> obj path-pos) (- 1.0 f30-0)) f30-0))) + (let ((a0-5 (-> obj skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group frames num-frames) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (else + (when (-> obj once) + (let ((a0-6 (-> obj skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1)) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-seek!) ) + (set! (-> obj once) #f) + ) + (let ((a0-7 (-> obj skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group frames num-frames) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) ) ) ) - (else - (set! (-> obj float-height-offset) 0.0) - ) + ) + (else + (set! (-> obj float-height-offset) 0.0) ) ) ) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-ridden-time)) (seconds 0.5)) - (when (nonzero? (-> obj bubbling-sound-id)) - (let ((v1-84 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-84 command) (sound-command set-param)) - (set! (-> v1-84 id) (the-as sound-id (-> obj bubbling-sound-id))) - (set! (-> v1-84 params volume) -4) - (set! (-> v1-84 auto-time) 120) - (set! (-> v1-84 auto-from) 2) - (set! (-> v1-84 params mask) (the-as uint 17)) - (-> v1-84 id) - ) - (set! (-> obj bubbling-sound-id) (the-as uint 0)) - 0 - ) - ) - (else - (if (zero? (-> obj bubbling-sound-id)) - (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-sink"))) - ) - ) - ) - ((method-of-type rigid-body-platform rigid-body-object-method-37) obj) - (none) ) + (cond + ((>= (- (current-time) (-> obj last-ridden-time)) (seconds 0.5)) + (when (nonzero? (-> obj bubbling-sound-id)) + (let ((v1-84 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-84 command) (sound-command set-param)) + (set! (-> v1-84 id) (the-as sound-id (-> obj bubbling-sound-id))) + (set! (-> v1-84 params volume) -4) + (set! (-> v1-84 auto-time) 120) + (set! (-> v1-84 auto-from) 2) + (set! (-> v1-84 params mask) (the-as uint 17)) + (-> v1-84 id) + ) + (set! (-> obj bubbling-sound-id) (the-as uint 0)) + 0 + ) + ) + (else + (if (zero? (-> obj bubbling-sound-id)) + (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-sink"))) + ) + ) + ) + ((method-of-type rigid-body-platform rigid-body-object-method-37) obj) + (none) ) ;; definition for method 56 of type dig-sinking-plat @@ -264,7 +262,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self last-ridden-time) (-> self clock frame-counter)) + (set! (-> self last-ridden-time) (current-time)) ) ) (the-as object (rigid-body-object-event-handler proc arg1 event-type event)) @@ -644,8 +642,8 @@ ) (s5-0 (add-process *gui-control* self (gui-channel jak) (gui-action queue) t0-0 -99.0 0)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.15)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.15)) (suspend) ) (until v1-12 @@ -655,8 +653,8 @@ (while (!= (get-status *gui-control* s5-0) (gui-status ready)) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (set-setting! 'entity-name "camera-249" 0.0 0) @@ -671,20 +669,20 @@ (the-as process #f) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((f30-0 (+ (-> (&-> *dig-log-heights* 0 data (- (-> self total-buttons) (-> self pressed-count))) 0) (-> self base-y)) ) - (s5-1 (-> self clock frame-counter)) + (s5-1 (current-time)) ) (until (>= (-> self root trans y) f30-0) (set! (-> self root trans y) (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (-> self clock seconds-per-frame)) 0.25 40.96) ) - (when (>= (-> self clock frame-counter) s5-1) + (when (>= (current-time) s5-1) (activate! *camera-smush-control* (rand-vu-float-range 614.4 1433.6) @@ -694,7 +692,7 @@ 0.95 (-> *display* camera-clock) ) - (set! s5-1 (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 0.05) (seconds 0.15)))) + (set! s5-1 (+ (current-time) (rand-vu-int-range (seconds 0.05) (seconds 0.15)))) ) (let ((a1-10 (new 'stack-no-clear 'vector))) (set! (-> a1-10 quad) (-> self root trans quad)) @@ -704,8 +702,8 @@ (suspend) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (if (= (-> gp-0 cam-ret-mode) 'instant) @@ -714,22 +712,22 @@ (set-setting! 'string-startup-vector 'abs (-> gp-0 cam-ret-dir) 0) (remove-setting! 'entity-name) (when (!= (-> gp-0 cam-ret-mode) 'instant) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (suspend) ) (remove-setting! 'string-startup-vector) (until (process-release? *target*) (suspend) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 4)) (suspend) ) (go-virtual idle) diff --git a/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc index 5a63b5e478..8269822346 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc @@ -509,8 +509,8 @@ ) :code (behavior () (let ((f30-0 (rand-vu-float-range 0.22 0.27))) - (set! (-> self wait-time) (+ (-> self clock frame-counter) (the int (rand-vu-float-range 0.0 450.0)))) - (while (< (-> self clock frame-counter) (-> self wait-time)) + (set! (-> self wait-time) (+ (current-time) (the int (rand-vu-float-range 0.0 450.0)))) + (while (< (current-time) (-> self wait-time)) (suspend) ) (ja-no-eval :group! (-> self draw art-group data 3) @@ -528,8 +528,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -548,8 +548,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -569,8 +569,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.5)) (suspend) ) ) @@ -589,8 +589,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) @@ -609,8 +609,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 0.125)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 0.125)) (suspend) ) ) @@ -630,8 +630,8 @@ :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) frames num-frames) -1))) :frame-num 0.0 ) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 0.05)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 0.05)) (suspend) ) ) @@ -1053,8 +1053,8 @@ ) ) (suspend) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc index b156240984..5191e2b282 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc @@ -289,38 +289,38 @@ :virtual #t :trans (the-as (function none :behavior dig-spikey-step) rider-trans) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (the int (-> self cycle-offset))) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (the int (-> self cycle-offset))) (suspend) ) ) (until #f - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (the int (-> self cycle-time))) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (the int (-> self cycle-time))) (suspend) ) ) (activate! (-> self smush) -1.0 60 225 1.0 1.0 (-> self clock)) (sound-play "spikey-shake" :position (-> self root trans)) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (set! (-> self shudder-angle) (* 364.0889 (update! (-> self smush)))) (suspend) ) ) (set! (-> self shudder-angle) 0.0) (set-zero! (-> self smush)) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.25)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.25)) (suspend) ) ) (sound-play "spikey-turn" :position (-> self root trans)) (let* ((f0-7 1.0) (f30-1 (* 65536.0 f0-7)) - (gp-6 (-> self clock frame-counter)) + (gp-6 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-6) (seconds 1)) + (until (>= (- (current-time) gp-6) (seconds 1)) (set! (-> self rot-angle) (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) ) @@ -494,8 +494,8 @@ This commonly includes things such as: ) (sound-play "spikey-break") (suspend) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) @@ -662,9 +662,9 @@ This commonly includes things such as: ) ) (the-as sound-id (when (and (logtest? s5-0 (collide-status impact-surface)) - (>= (- (-> self clock frame-counter) (-> obj played-bounce-time)) (seconds 0.3)) + (>= (- (current-time) (-> obj played-bounce-time)) (seconds 0.3)) ) - (let ((v0-7 (-> self clock frame-counter))) + (let ((v0-7 (current-time))) (set! (-> obj played-bounce-time) v0-7) v0-7 ) @@ -771,8 +771,8 @@ This commonly includes things such as: :virtual #t :code (behavior () (sound-play "spikey-door") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.1)) (suspend) ) ) @@ -1544,34 +1544,32 @@ This commonly includes things such as: ;; definition for method 37 of type dig-tipping-rock ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-37 dig-tipping-rock ((obj dig-tipping-rock)) - (with-pp - (let ((t9-0 (method-of-type rigid-body-platform rigid-body-object-method-37))) - (t9-0 obj) - ) - (cond - ((>= (- (-> pp clock frame-counter) (-> obj last-ridden-time)) (seconds 0.5)) - (when (nonzero? (-> obj bubbling-sound-id)) - (let ((v1-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-5 command) (sound-command set-param)) - (set! (-> v1-5 id) (the-as sound-id (-> obj bubbling-sound-id))) - (set! (-> v1-5 params volume) -4) - (set! (-> v1-5 auto-time) 120) - (set! (-> v1-5 auto-from) 2) - (set! (-> v1-5 params mask) (the-as uint 17)) - (-> v1-5 id) - ) - (set! (-> obj bubbling-sound-id) (the-as uint 0)) - 0 - ) - ) - (else - (if (zero? (-> obj bubbling-sound-id)) - (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-tip"))) - ) - ) - ) - (none) + (let ((t9-0 (method-of-type rigid-body-platform rigid-body-object-method-37))) + (t9-0 obj) ) + (cond + ((>= (- (current-time) (-> obj last-ridden-time)) (seconds 0.5)) + (when (nonzero? (-> obj bubbling-sound-id)) + (let ((v1-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-5 command) (sound-command set-param)) + (set! (-> v1-5 id) (the-as sound-id (-> obj bubbling-sound-id))) + (set! (-> v1-5 params volume) -4) + (set! (-> v1-5 auto-time) 120) + (set! (-> v1-5 auto-from) 2) + (set! (-> v1-5 params mask) (the-as uint 17)) + (-> v1-5 id) + ) + (set! (-> obj bubbling-sound-id) (the-as uint 0)) + 0 + ) + ) + (else + (if (zero? (-> obj bubbling-sound-id)) + (set! (-> obj bubbling-sound-id) (the-as uint (sound-play "lava-plat-tip"))) + ) + ) + ) + (none) ) ;; failed to figure out what this is: @@ -1580,7 +1578,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (set! (-> self last-ridden-time) (-> self clock frame-counter)) + (set! (-> self last-ridden-time) (current-time)) ) ) (the-as object (rigid-body-object-event-handler proc arg1 event-type event)) diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-baron_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-baron_REF.gc index 22c3b8f548..a84f67de93 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-baron_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-baron_REF.gc @@ -1399,9 +1399,7 @@ This commonly includes things such as: ) ) (set! (-> self root-override trans y) - (+ (-> self current-y-position) - (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (-> self clock frame-counter))))))) - ) + (+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time)))))))) ) (drill-barons-ship-method-22 self) (transform-post) @@ -1523,9 +1521,7 @@ This commonly includes things such as: ) ) (set! (-> self root-override trans y) - (+ (-> self current-y-position) - (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (-> self clock frame-counter))))))) - ) + (+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time)))))))) ) (drill-barons-ship-method-22 self) (+! (-> self x-offset-angle) (* 0.7 (-> self clock time-adjust-ratio))) @@ -1541,9 +1537,9 @@ This commonly includes things such as: (quaternion-rotate-local-x! (-> obj root-override quat) (-> obj init-quat) - (* 182.04445 (sin (* 36.40889 (the float (-> pp clock frame-counter))))) + (* 182.04445 (sin (* 36.40889 (the float (current-time))))) ) - (let ((f30-2 (* 182.04445 (* 5.0 (sin (* 45.511112 (the float (-> pp clock frame-counter)))))))) + (let ((f30-2 (* 182.04445 (* 5.0 (sin (* 45.511112 (the float (current-time)))))))) (when (!= (-> obj rock-angle) 0.0) (+! f30-2 (* 182.04445 (* 20.0 (if (= (-> obj pass) 1) @@ -1567,10 +1563,10 @@ This commonly includes things such as: (quaternion-rotate-local-z! (-> obj root-override quat) (-> obj root-override quat) f30-2) ) (set! (-> obj root-override trans z) - (+ (* 4096.0 (* 30.0 (cos (* 45.511112 (the float (-> pp clock frame-counter)))))) (if (= (-> obj pass) 1) - -1433600.0 - -1433600.0 - ) + (+ (* 4096.0 (* 30.0 (cos (* 45.511112 (the float (current-time)))))) (if (= (-> obj pass) 1) + -1433600.0 + -1433600.0 + ) ) ) (if *target* @@ -1594,59 +1590,57 @@ This commonly includes things such as: ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod drill-barons-ship-turret-method-24 drill-barons-ship-turret ((obj drill-barons-ship-turret)) - (with-pp - (vector<-cspace! - (-> obj root-override trans) - (-> (the-as drill-barons-ship (-> obj parent 0)) node-list data (-> obj info joint-idx)) - ) - (let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> obj info init-y-angle)))) - (quaternion*! - (-> obj root-override quat) - (-> (the-as drill-barons-ship (-> obj parent 0)) root-override quat) - a2-1 - ) - ) - (when (-> obj jmod) - (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (target-pos 0) (-> obj root-override trans))) - (s3-0 (quaternion->matrix (new-stack-matrix0) (-> obj root-override quat))) - ) - (vector-normalize! s5-1 1.0) - (let* ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 1) 1.0)) - (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 2) 1.0)) - (a0-13 (vector-normalize! (vector-flatten! (new 'stack-no-clear 'vector) s5-1 s4-0) 1.0)) - (f30-0 (vector-y-angle a0-13)) - (f0-1 (vector-y-angle s3-1)) - (f0-5 (fmax - (fmin (+ (deg-diff f0-1 f30-0) (* 182.04445 (-> obj error-y-angle))) (-> obj info twist-y-max)) - (- (-> obj info twist-y-max)) - ) - ) - ) - (quaternion-axis-angle! (the-as quaternion (-> obj jmod twist)) 0.0 1.0 0.0 f0-5) - ) - ) - (if (-> obj jmod-left) - (quaternion-axis-angle! - (the-as quaternion (-> obj jmod-left twist)) - 0.0 - 0.0 - 1.0 - (* 182.04445 (* -3.0 (the float (-> pp clock frame-counter)))) - ) - ) - (if (-> obj jmod-right) - (quaternion-axis-angle! - (the-as quaternion (-> obj jmod-right twist)) - 0.0 - 0.0 - 1.0 - (* 182.04445 (* 3.0 (the float (-> pp clock frame-counter)))) - ) - ) - ) - 0 - (none) + (vector<-cspace! + (-> obj root-override trans) + (-> (the-as drill-barons-ship (-> obj parent 0)) node-list data (-> obj info joint-idx)) ) + (let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> obj info init-y-angle)))) + (quaternion*! + (-> obj root-override quat) + (-> (the-as drill-barons-ship (-> obj parent 0)) root-override quat) + a2-1 + ) + ) + (when (-> obj jmod) + (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (target-pos 0) (-> obj root-override trans))) + (s3-0 (quaternion->matrix (new-stack-matrix0) (-> obj root-override quat))) + ) + (vector-normalize! s5-1 1.0) + (let* ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 1) 1.0)) + (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 2) 1.0)) + (a0-13 (vector-normalize! (vector-flatten! (new 'stack-no-clear 'vector) s5-1 s4-0) 1.0)) + (f30-0 (vector-y-angle a0-13)) + (f0-1 (vector-y-angle s3-1)) + (f0-5 (fmax + (fmin (+ (deg-diff f0-1 f30-0) (* 182.04445 (-> obj error-y-angle))) (-> obj info twist-y-max)) + (- (-> obj info twist-y-max)) + ) + ) + ) + (quaternion-axis-angle! (the-as quaternion (-> obj jmod twist)) 0.0 1.0 0.0 f0-5) + ) + ) + (if (-> obj jmod-left) + (quaternion-axis-angle! + (the-as quaternion (-> obj jmod-left twist)) + 0.0 + 0.0 + 1.0 + (* 182.04445 (* -3.0 (the float (current-time)))) + ) + ) + (if (-> obj jmod-right) + (quaternion-axis-angle! + (the-as quaternion (-> obj jmod-right twist)) + 0.0 + 0.0 + 1.0 + (* 182.04445 (* 3.0 (the float (current-time)))) + ) + ) + ) + 0 + (none) ) ;; failed to figure out what this is: @@ -1658,7 +1652,7 @@ This commonly includes things such as: (set! (-> v1-1 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -1930,7 +1924,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self shot-timer) (-> self clock frame-counter)) + (set! (-> self shot-timer) (current-time)) (set! (-> self shot-counter) 0) (set! (-> self error-y-angle) (if (< 25.0 (rand-vu-float-range 0.0 50.0)) -15.0 @@ -2055,7 +2049,7 @@ This commonly includes things such as: ) (go-virtual idle) ) - (when (and (= (-> self anim-frame) 1.0) (>= (- (-> self clock frame-counter) (-> self shot-timer)) (seconds 0.2))) + (when (and (= (-> self anim-frame) 1.0) (>= (- (current-time) (-> self shot-timer)) (seconds 0.2))) (let ((gp-0 (new 'stack-no-clear 'projectile-init-by-other-params))) (cond ((-> self jmod) @@ -2142,7 +2136,7 @@ This commonly includes things such as: ) (sound-play "ship-gun1-fire") (+! (-> self shot-counter) 1) - (set! (-> self shot-timer) (-> self clock frame-counter)) + (set! (-> self shot-timer) (current-time)) (seek! (-> self error-y-angle) (-> self error-y-angle-dest) (-> self clock time-adjust-ratio)) (if (= (-> self error-y-angle) (-> self error-y-angle-dest)) (set! (-> self info next-to-shoot) #f) diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-mech-master_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-mech-master_REF.gc index a54e0ae1de..ed17750e91 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-mech-master_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-mech-master_REF.gc @@ -144,7 +144,7 @@ (set! (-> *game-info* counter) (the float (-> self cpanel-count))) (spawn-hud-panel self #t) (when (= (-> self cpanel-count) 9) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 3))) + (set! (-> self next-warn-time) (+ (current-time) (seconds 3))) (task-node-close! (game-task-node drill-mech-started-smashing)) ) (if (and (zero? (-> self cpanel-count)) (-> self next-state) (= (-> self next-state name) 'idle)) @@ -177,11 +177,8 @@ :virtual #t :event drill-mech-master-event-handler :trans (behavior () - (when (and (< (-> self cpanel-count) 10) - (< 1 (-> self cpanel-count)) - (>= (-> self clock frame-counter) (-> self next-warn-time)) - ) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 10))) + (when (and (< (-> self cpanel-count) 10) (< 1 (-> self cpanel-count)) (>= (current-time) (-> self next-warn-time))) + (set! (-> self next-warn-time) (+ (current-time) (seconds 10))) (talker-spawn-func (-> *talker-speech* 182) *entity-pool* (target-pos 0) (the-as region #f)) ) (none) @@ -194,16 +191,16 @@ :virtual #t :event drill-mech-master-event-handler :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (task-node-close! (game-task-node drill-mech-smash-consoles)) (set! (-> self alarm-sound-id) (sound-play "drill-alarm")) (persist-with-delay *setting-control* 'ignore-target (seconds 8) 'ignore-target #t 0.0 0) (set-setting! 'music 'danger10 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (talker-spawn-func (-> *talker-speech* 183) *entity-pool* (target-pos 0) (the-as region #f)) @@ -223,10 +220,10 @@ :virtual #t :event drill-mech-master-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-continue! *game-info* "drill-escape" #f) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 1))) - (set! (-> self started-timer-time) (-> self clock frame-counter)) + (set! (-> self next-warn-time) (+ (current-time) (seconds 1))) + (set! (-> self started-timer-time) (current-time)) (set! (-> self exited?) #f) (none) ) @@ -234,10 +231,7 @@ (if (and (-> self exited?) (process-grab? *target* #f)) (go-virtual victory) ) - (let ((gp-0 - (the-as int (- (-> self total-countdown-time) (- (-> self clock frame-counter) (-> self started-timer-time)))) - ) - ) + (let ((gp-0 (the-as int (- (-> self total-countdown-time) (- (current-time) (-> self started-timer-time)))))) (if (< (the-as time-frame gp-0) 0) (set! gp-0 0) ) @@ -250,8 +244,8 @@ (if (zero? gp-0) (go-virtual failed) ) - (when (>= (-> self clock frame-counter) (-> self next-warn-time)) - (set! (-> self next-warn-time) (+ (-> self clock frame-counter) (seconds 25))) + (when (>= (current-time) (-> self next-warn-time)) + (set! (-> self next-warn-time) (+ (current-time) (seconds 25))) (cond ((>= 9000 gp-0) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv029" -99.0 0) @@ -279,7 +273,7 @@ :virtual #t :event drill-mech-master-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-setting! 'allow-pause #f 0.0 0) (set-setting! 'allow-progress #f 0.0 0) (none) @@ -292,7 +286,7 @@ ) :trans (behavior () (when (and (not (-> self killed-jak?)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.225)) + (>= (- (current-time) (-> self state-time)) (seconds 0.225)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) (set! (-> a1-0 num-params) 2) @@ -344,8 +338,8 @@ (set! (-> s4-0 trans w) 1.0) (spawn-with-matrix (-> self part-doom) s4-0) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (when (and (not gp-1) (>= 2 s5-1) (= (get-status *gui-control* (-> self explosion-sound-id)) (gui-status ready))) (set! gp-1 #t) (set-action! diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc index 3c069d90a7..23cb0ffe9f 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc @@ -968,8 +968,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -1615,9 +1615,9 @@ This commonly includes things such as: ) (if (-> self ridden?) (set! (-> self ridden?) #f) - (set! (-> self not-ridden-timer) (-> self clock frame-counter)) + (set! (-> self not-ridden-timer) (current-time)) ) - (if (>= (- (-> self clock frame-counter) (-> self not-ridden-timer)) (seconds 0.4)) + (if (>= (- (current-time) (-> self not-ridden-timer)) (seconds 0.4)) (go-virtual swing-down) ) (none) @@ -1641,7 +1641,7 @@ This commonly includes things such as: (t9-0) ) ) - (if (>= (- (-> self clock frame-counter) (-> self not-ridden-timer)) (seconds 2)) + (if (>= (- (current-time) (-> self not-ridden-timer)) (seconds 2)) (send-event self 'trigger) ) (none) @@ -1657,12 +1657,10 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defmethod set-flipped-state drill-drop-plat ((obj drill-drop-plat)) "Set the state of the platform." - (with-pp - (set! (-> obj not-ridden-timer) (-> pp clock frame-counter)) - (go (method-of-object obj up)) - 0 - (none) - ) + (set! (-> obj not-ridden-timer) (current-time)) + (go (method-of-object obj up)) + 0 + (none) ) ;; definition for method 31 of type drill-drop-plat diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc index eaf171318b..fc2d2bff08 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc @@ -129,7 +129,7 @@ and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 24 120 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (logclear! (-> obj mask) (process-mask sleep)) (logclear! (-> obj mask) (process-mask sleep-code)) @@ -184,7 +184,7 @@ and translate the platform via the `smush` (defstate falling (drill-plat-falling) :virtual #t :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.4)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.4)) (logclear! (-> self root-override root-prim prim-core action) (collide-action rideable)) ) (drill-plat-falling-trans) @@ -821,7 +821,7 @@ For example for an elevator pre-compute the distance between the first and last ) (when gp-0 (when (or (focus-test? (the-as process-focusable gp-0) mech) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -865,7 +865,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> a1-10 param 1) (the-as uint v1-32)) ) (when (send-event-function gp-0 a1-10) - (let ((v0-0 (-> self clock frame-counter))) + (let ((v0-0 (current-time))) (set! (-> self no-collision-timer) v0-0) v0-0 ) @@ -1250,21 +1250,19 @@ This commonly includes things such as: ;; definition for method 40 of type drill-switch (defmethod set-switch-color drill-switch ((obj drill-switch) (arg0 symbol)) "Set the switch color based on its state." - (with-pp - (when (or arg0 (not (logtest? (-> pp clock frame-counter) 64))) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (vector<-cspace+vector! s4-0 (-> obj node-list data 4) (new 'static 'vector :y 6963.2 :w 1.0)) - (spawn - (if arg0 - (-> obj green-part) - (-> obj part) - ) - s4-0 - ) + (when (or arg0 (not (logtest? (current-time) 64))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (vector<-cspace+vector! s4-0 (-> obj node-list data 4) (new 'static 'vector :y 6963.2 :w 1.0)) + (spawn + (if arg0 + (-> obj green-part) + (-> obj part) + ) + s4-0 ) ) - (none) ) + (none) ) ;; definition for method 34 of type drill-switch @@ -1423,7 +1421,7 @@ This commonly includes things such as: (sleep-code) ) (else - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) + (until (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (-> self timeout)))) (suspend) ) (send-event! self (-> self event-going-up)) @@ -1652,11 +1650,11 @@ This commonly includes things such as: (defstate drill-laser-idle (drill-laser) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (let* ((f0-2 (+ (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time)))) + (let* ((f0-2 (+ (* 0.0033333334 (the float (- (current-time) (-> self state-time)))) (* (-> self offset) (+ (-> self speed) (-> self pause))) ) ) diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-panel_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-panel_REF.gc index 0f238f7c58..9340490607 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-panel_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-panel_REF.gc @@ -531,98 +531,92 @@ ;; definition for method 31 of type drill-control-panel (defmethod spawn-shock-part drill-control-panel ((obj drill-control-panel)) "Spawn shock particles." - (with-pp - (let ((v1-0 (-> obj id))) - (cond - ((or (zero? v1-0) (= v1-0 1)) - (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -4.0 4.0))) - (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -2.0 2.0))) - (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range 1.0 3.0))) - (when (= (-> obj id) 1) - (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) 8192.0) - (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) 8192.0) - (when (>= (-> pp clock frame-counter) (-> obj next-warn-time)) - (set! (-> obj next-warn-time) - (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 1.0 2.0)))) - ) - (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) -4096.0) - (set! (-> *part-id-table* 1851 init-specs 24 initial-valuef) (* 182.04445 (rand-vu-float-range -45.0 45.0))) - (set! (-> *part-id-table* 1851 init-specs 25 initial-valuef) (* 182.04445 (rand-vu-float-range 0.0 45.0))) - (set! (-> *part-id-table* 1851 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -3.0 3.0))) - (set! (-> *part-id-table* 1851 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - ) + (let ((v1-0 (-> obj id))) + (cond + ((or (zero? v1-0) (= v1-0 1)) + (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -4.0 4.0))) + (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -2.0 2.0))) + (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range 1.0 3.0))) + (when (= (-> obj id) 1) + (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) 8192.0) + (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) 8192.0) + (when (>= (current-time) (-> obj next-warn-time)) + (set! (-> obj next-warn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 1.0 2.0))))) + (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) -4096.0) + (set! (-> *part-id-table* 1851 init-specs 24 initial-valuef) (* 182.04445 (rand-vu-float-range -45.0 45.0))) + (set! (-> *part-id-table* 1851 init-specs 25 initial-valuef) (* 182.04445 (rand-vu-float-range 0.0 45.0))) + (set! (-> *part-id-table* 1851 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -3.0 3.0))) + (set! (-> *part-id-table* 1851 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) ) - (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 18)) ) - (else - (case (-> obj id) - ((3 5 7 8) - (if (zero? (rand-vu-int-count 2)) - (process-drawable-shock-effect - obj - (new 'static 'lightning-spec - :name #f - :flags (lightning-spec-flags lsf0) - :start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - :end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - :fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5) - :fade-start-factor 0.2 - :texture (new 'static 'texture-id :index #x83 :page #xc) - :reduction 0.42 - :num-points 16 - :box-size 16384.0 - :merge-factor 0.5 - :merge-count 2 - :radius 2048.0 - :duration 30.0 - :sound (static-sound-spec "shock" :volume 50.0) - ) - lightning-probe-callback - (-> *part-id-table* 166) - 12 - 0 - 12288.0 + (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 18)) + ) + (else + (case (-> obj id) + ((3 5 7 8) + (if (zero? (rand-vu-int-count 2)) + (process-drawable-shock-effect + obj + (new 'static 'lightning-spec + :name #f + :flags (lightning-spec-flags lsf0) + :start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + :end-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + :fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5) + :fade-start-factor 0.2 + :texture (new 'static 'texture-id :index #x83 :page #xc) + :reduction 0.42 + :num-points 16 + :box-size 16384.0 + :merge-factor 0.5 + :merge-count 2 + :radius 2048.0 + :duration 30.0 + :sound (static-sound-spec "shock" :volume 50.0) ) + lightning-probe-callback + (-> *part-id-table* 166) + 12 + 0 + 12288.0 ) - ) - (else - 0 - ) + ) + ) + (else + 0 ) - (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -0.5 3.0))) - (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 -1.25))) - (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) -6144.0) - (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) -6144.0) - (when (>= (-> pp clock frame-counter) (-> obj next-warn-time)) - (set! (-> obj next-warn-time) - (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 1.5 3.0)))) - ) - (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) 4096.0) - (set! (-> *part-id-table* 1879 init-specs 23 initial-valuef) (* 182.04445 (rand-vu-float-range -30.0 30.0))) - (set! (-> *part-id-table* 1879 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.5 1.5))) - (set! (-> *part-id-table* 1879 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) - ) - (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 12)) ) + (set! (-> *part-id-table* 1852 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) + (set! (-> *part-id-table* 1852 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -0.5 3.0))) + (set! (-> *part-id-table* 1852 init-specs 4 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 -1.25))) + (set! (-> *part-id-table* 1870 init-specs 3 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1869 init-specs 3 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1871 init-specs 2 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1872 init-specs 2 initial-valuef) -6144.0) + (set! (-> *part-id-table* 1873 init-specs 2 initial-valuef) -6144.0) + (when (>= (current-time) (-> obj next-warn-time)) + (set! (-> obj next-warn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 1.5 3.0))))) + (set! (-> *part-id-table* 1851 init-specs 4 initial-valuef) 4096.0) + (set! (-> *part-id-table* 1879 init-specs 23 initial-valuef) (* 182.04445 (rand-vu-float-range -30.0 30.0))) + (set! (-> *part-id-table* 1879 init-specs 2 initial-valuef) (* 4096.0 (rand-vu-float-range -1.5 1.5))) + (set! (-> *part-id-table* 1879 init-specs 3 initial-valuef) (* 4096.0 (rand-vu-float-range -1.0 3.0))) + ) + (spawn-with-cspace (-> obj debris-part) (-> obj node-list data 12)) ) ) - (none) ) + (none) ) ;; failed to figure out what this is: (defstate hit (drill-control-panel) :virtual #t :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self next-warn-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self next-warn-time) (current-time)) (process-entity-status! self (entity-perm-status bit-12) #t) (set! (-> self draw force-lod) 0) (logior! (-> self focus-status) (focus-status disable dead ignore)) @@ -633,7 +627,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1)) (spawn-shock-part self) ) (none) diff --git a/test/decompiler/reference/jak2/levels/drill_platform/ginsu_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/ginsu_REF.gc index 8ecb8ebe8a..42408ae512 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/ginsu_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/ginsu_REF.gc @@ -420,61 +420,59 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (ginsu-method-180 obj) - (let ((t9-1 (method-of-type nav-enemy track-target!))) - (t9-1 obj) - ) - (cond - ((not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) - (or (= v1-6 'idle) - (= v1-6 'active) - (= v1-6 'dormant) - (= v1-6 'ambush) - (= v1-6 'knocked) - (= v1-6 'idle) - (= v1-6 'dormant) - (= v1-6 'die) - (= v1-6 'die-falling) - ) - ) - ) - ) - (sound-play "ginsu-loop" :id (the-as sound-id (-> obj blade-sound)) :position (-> obj root-override2 trans)) - (set! (-> obj blade-sound-playing) #t) - ) - ((-> obj blade-sound-playing) - (sound-stop (the-as sound-id (-> obj blade-sound))) - (set! (-> obj blade-sound-playing) #f) - ) - ) - (cond - ((and (not (and (-> obj next-state) (let ((v1-17 (-> obj next-state name))) - (or (= v1-17 'idle) - (= v1-17 'active) - (= v1-17 'dormant) - (= v1-17 'ambush) - (= v1-17 'knocked) - (= v1-17 'idle) - (= v1-17 'dormant) - (= v1-17 'die) - (= v1-17 'die-falling) - ) - ) - ) - ) - (< (- (-> pp clock frame-counter) (-> obj grind-timer)) 0) - ) - (sound-play "ginsu-grind" :id (the-as sound-id (-> obj grind-sound)) :position (-> obj root-override2 trans)) - (set! (-> obj grind-sound-playing) #t) - ) - ((-> obj grind-sound-playing) - (sound-stop (the-as sound-id (-> obj grind-sound))) - (set! (-> obj grind-sound-playing) #f) - ) - ) - (none) + (ginsu-method-180 obj) + (let ((t9-1 (method-of-type nav-enemy track-target!))) + (t9-1 obj) ) + (cond + ((not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name))) + (or (= v1-6 'idle) + (= v1-6 'active) + (= v1-6 'dormant) + (= v1-6 'ambush) + (= v1-6 'knocked) + (= v1-6 'idle) + (= v1-6 'dormant) + (= v1-6 'die) + (= v1-6 'die-falling) + ) + ) + ) + ) + (sound-play "ginsu-loop" :id (the-as sound-id (-> obj blade-sound)) :position (-> obj root-override2 trans)) + (set! (-> obj blade-sound-playing) #t) + ) + ((-> obj blade-sound-playing) + (sound-stop (the-as sound-id (-> obj blade-sound))) + (set! (-> obj blade-sound-playing) #f) + ) + ) + (cond + ((and (not (and (-> obj next-state) (let ((v1-17 (-> obj next-state name))) + (or (= v1-17 'idle) + (= v1-17 'active) + (= v1-17 'dormant) + (= v1-17 'ambush) + (= v1-17 'knocked) + (= v1-17 'idle) + (= v1-17 'dormant) + (= v1-17 'die) + (= v1-17 'die-falling) + ) + ) + ) + ) + (< (- (current-time) (-> obj grind-timer)) 0) + ) + (sound-play "ginsu-grind" :id (the-as sound-id (-> obj grind-sound)) :position (-> obj root-override2 trans)) + (set! (-> obj grind-sound-playing) #t) + ) + ((-> obj grind-sound-playing) + (sound-stop (the-as sound-id (-> obj grind-sound))) + (set! (-> obj grind-sound-playing) #f) + ) + ) + (none) ) ;; definition for method 182 of type ginsu @@ -608,7 +606,7 @@ (vector-float*! s5-1 s5-1 0.5) (spawn (-> obj part) s5-1) ) - (set! v0-1 (+ (-> pp clock frame-counter) (seconds 0.125))) + (set! v0-1 (+ (current-time) (seconds 0.125))) (set! (-> obj grind-timer) (the-as time-frame v0-1)) v0-1 ) @@ -691,8 +689,8 @@ (set! (-> self enemy-flags) (the-as enemy-flag (logxor (shl 256 32) (the-as int (-> self enemy-flags))))) ) (set! (-> self enemy-flags) (the-as enemy-flag (logclear (-> self enemy-flags) (enemy-flag enemy-flag41)))) - (set! (-> self starting-time) (-> self clock frame-counter)) - (set! (-> self spiral-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) + (set! (-> self spiral-time) (current-time)) (set! (-> self desired-distance) (vector-length (ginsu-method-181 self (new 'stack-no-clear 'vector)))) (none) ) @@ -725,7 +723,7 @@ 0.0 (set! (-> s5-0 y) 0.0) (let* ((f0-3 (vector-normalize-ret-len! s5-0 1.0)) - (f1-1 (- 1.0 (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self spiral-time)))))) + (f1-1 (- 1.0 (* 0.0016666667 (the float (- (current-time) (-> self spiral-time)))))) (f2-3 (fmax 12288.0 (* 102400.0 f1-1))) (f0-4 (- f0-3 (fmin (fmax 12288.0 (* 122880.0 f1-1)) (fmax f2-3 (-> self desired-distance))))) (f30-0 (fmin 8192.0 (fmax -8192.0 f0-4))) @@ -766,7 +764,7 @@ (set! (-> v1-4 target-speed) 8192.0) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-push! 1 (seconds 0.2)) (ja :group! ginsu-idle-ja :num! min) (none) @@ -792,7 +790,7 @@ (if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (go-virtual circling) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.75)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.75)) (go-virtual attack) ) (ja :num! (loop!)) @@ -841,7 +839,7 @@ (set! (-> v1-10 target-speed) 49152.0) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja :group! ginsu-attack-ja :num! min) (none) ) diff --git a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc index 8a67554336..6d743b1bc7 100644 --- a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc @@ -173,7 +173,7 @@ This commonly includes things such as: ) ) (when (and (nonzero? (-> self focus-disable-timer)) - (< (the-as time-frame (-> self focus-disable-timer)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self focus-disable-timer)) (current-time)) ) (logclear! (-> self focus-status) (focus-status disable)) (set! (-> self focus-disable-timer) (the-as uint 0)) @@ -309,7 +309,7 @@ This commonly includes things such as: (sound-play "samos-impact") (set! (-> self falling?) (the-as basic #t)) (logior! (-> self focus-status) (focus-status disable)) - (set! (-> self focus-disable-timer) (the-as uint (+ (-> self clock frame-counter) (seconds 3.5)))) + (set! (-> self focus-disable-timer) (the-as uint (+ (current-time) (seconds 3.5)))) (none) ) :code (behavior () @@ -423,8 +423,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -695,9 +695,9 @@ This commonly includes things such as: TASK_MANAGER_CODE_HOOK (lambda :behavior task-manager () - (set! (-> self start-time) (-> self clock frame-counter)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (set! (-> self start-time) (current-time)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) @@ -769,8 +769,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-0) (seconds 15)) + (let ((s3-0 (current-time))) + (until (>= (- (current-time) s3-0) (seconds 15)) (suspend) ) ) @@ -807,8 +807,8 @@ This commonly includes things such as: ) ) (dotimes (s3-1 3) - (let ((s2-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-0) (seconds 10)) + (let ((s2-0 (current-time))) + (until (>= (- (current-time) s2-0) (seconds 10)) (suspend) ) ) @@ -844,8 +844,8 @@ This commonly includes things such as: ) ) ) - (let ((s2-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-1) (seconds 10)) + (let ((s2-1 (current-time))) + (until (>= (- (current-time) s2-1) (seconds 10)) (suspend) ) ) @@ -882,8 +882,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-2) (seconds 10)) + (let ((s3-2 (current-time))) + (until (>= (- (current-time) s3-2) (seconds 10)) (suspend) ) ) @@ -919,8 +919,8 @@ This commonly includes things such as: ) ) ) - (let ((s3-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-3) (seconds 10)) + (let ((s3-3 (current-time))) + (until (>= (- (current-time) s3-3) (seconds 10)) (suspend) ) ) @@ -933,8 +933,8 @@ This commonly includes things such as: (goto cfg-74) ) ) - (let ((s2-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s2-2) (seconds 1)) + (let ((s2-2 (current-time))) + (until (>= (- (current-time) s2-2) (seconds 1)) (suspend) ) ) @@ -1012,23 +1012,23 @@ This commonly includes things such as: ) ) ) - (let ((s3-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-5) (seconds 1)) + (let ((s3-5 (current-time))) + (until (>= (- (current-time) s3-5) (seconds 1)) (suspend) ) ) ) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.5)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.5)) (suspend) ) ) (set-setting! 'entity-name "camera-260" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (process-grab? *target* #f) - (let ((s4-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-2) (seconds 0.5)) + (let ((s4-2 (current-time))) + (until (>= (- (current-time) s4-2) (seconds 0.5)) (suspend) ) ) @@ -1038,8 +1038,8 @@ This commonly includes things such as: ) 'leave ) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) (seconds 0.2)) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) (seconds 0.2)) (suspend) ) ) @@ -1050,16 +1050,16 @@ This commonly includes things such as: 'leave ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 3)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 3)) (suspend) ) ) (remove-setting! 'entity-name) (remove-setting! 'process-mask) (process-release? *target*) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 3)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 3)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/forest/lifeseed/protect_REF.gc b/test/decompiler/reference/jak2/levels/forest/lifeseed/protect_REF.gc index 655be73934..b68cb2e229 100644 --- a/test/decompiler/reference/jak2/levels/forest/lifeseed/protect_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/lifeseed/protect_REF.gc @@ -480,9 +480,7 @@ This commonly includes things such as: (let ((f0-7 (vector-vector-xz-distance (target-pos 0) (-> s5-1 t-pos)))) (cond ((and (< f0-7 327680.0) (< 204800.0 f0-7)) - (when (and (not (handle->process (-> self slave gp-1))) - (< (the int (-> self data-float gp-1)) (-> self clock frame-counter)) - ) + (when (and (not (handle->process (-> self slave gp-1))) (< (the int (-> self data-float gp-1)) (current-time))) (let ((s4-2 (new 'stack-no-clear 'transport-params))) (let ((s3-2 (new 'stack-no-clear 'vector))) (set! (-> s3-2 quad) (-> s5-1 t-pos quad)) @@ -531,7 +529,7 @@ This commonly includes things such as: s5-4 ) ) - (set! (-> self data-float gp-1) (the float (+ (-> self clock frame-counter) (seconds 20)))) + (set! (-> self data-float gp-1) (the float (+ (current-time) (seconds 20)))) ) ) ) @@ -576,8 +574,8 @@ This commonly includes things such as: (lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'leave) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 2)) (suspend) ) (talker-spawn-func (-> *talker-speech* 185) *entity-pool* (target-pos 0) (the-as region #f)) diff --git a/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc b/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc index 6a529a772d..297d921280 100644 --- a/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc @@ -216,32 +216,30 @@ ;; WARN: Return type mismatch int vs none. (defmethod track-how-long-aimed-at! pegasus ((obj pegasus)) "Updates `targetted-timer` with the `frame-counter` while Jak is aiming at the [[pegasus]]" - (with-pp - (let ((target *target*)) - (when (and target (-> target gun active?)) - (let ((inaccuracy-dir (new 'stack-no-clear 'vector)) - (inaccuracy-vec (new 'stack-no-clear 'vector)) + (let ((target *target*)) + (when (and target (-> target gun active?)) + (let ((inaccuracy-dir (new 'stack-no-clear 'vector)) + (inaccuracy-vec (new 'stack-no-clear 'vector)) + ) + (vector-! inaccuracy-dir (-> obj root-override2 trans) (-> target gun fire-point)) + (vector+float*! + inaccuracy-vec + (-> target gun fire-point) + (-> target gun fire-dir-out) + (vector-length inaccuracy-dir) + ) + (let ((inaccuracy-mag (vector-vector-distance-squared inaccuracy-vec (-> obj root-override2 trans))) + (threshold 20480.0) + ) + (if (< inaccuracy-mag (* threshold threshold)) + (set! (-> obj targetted-timer) (current-time)) ) - (vector-! inaccuracy-dir (-> obj root-override2 trans) (-> target gun fire-point)) - (vector+float*! - inaccuracy-vec - (-> target gun fire-point) - (-> target gun fire-dir-out) - (vector-length inaccuracy-dir) - ) - (let ((inaccuracy-mag (vector-vector-distance-squared inaccuracy-vec (-> obj root-override2 trans))) - (threshold 20480.0) - ) - (if (< inaccuracy-mag (* threshold threshold)) - (set! (-> obj targetted-timer) (-> pp clock frame-counter)) - ) - ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 57 of type pegasus @@ -250,53 +248,49 @@ "Checks a variety of criteria to determine the level of awareness the enemy is of the target. Sets `aware` and related fields as well! For pegasus, it will call [[enemy::57]] only if the [[pegasus]] has been targetted for more than 5 [[seconds]] @returns the value from [[enemy::57]], otherwise [[enemy-aware::4]]" - (with-pp - (the-as enemy-aware (if (>= (- (-> pp clock frame-counter) (-> obj targetted-timer)) (seconds 5)) - (the-as int ((method-of-type enemy update-target-awareness!) obj proc focus)) - 4 - ) - ) - ) + (the-as enemy-aware (if (>= (- (current-time) (-> obj targetted-timer)) (seconds 5)) + (the-as int ((method-of-type enemy update-target-awareness!) obj proc focus)) + 4 + ) + ) ) ;; definition for method 74 of type pegasus (defmethod general-event-handler pegasus ((obj pegasus) (proc process) (arg2 int) (event-type symbol) (event event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case event-type - (('track) - #f - ) - (('hit 'hit-knocked) - (cond - ((zero? (-> obj hit-points)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action proc) - (send-event proc 'get-attack-count 1) - (kill-prefer-falling obj) - ) - (else - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj targetted-timer) (the-as time-frame v0-0)) - v0-0 - ) + (case event-type + (('track) + #f + ) + (('hit 'hit-knocked) + (cond + ((zero? (-> obj hit-points)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action proc) + (send-event proc 'get-attack-count 1) + (kill-prefer-falling obj) + ) + (else + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj targetted-timer) (the-as time-frame v0-0)) + v0-0 ) ) ) - (else - ((method-of-type enemy general-event-handler) obj proc arg2 event-type event) - ) + ) + (else + ((method-of-type enemy general-event-handler) obj proc arg2 event-type event) ) ) ) @@ -307,20 +301,18 @@ For pegasus, it will call [[enemy::57]] only if the [[pegasus]] has been targett This is why the scouts are technically killable by other means @returns the amount of damage taken from an attack. Also updates the `targetted-timer`. @see [[*pegasus-enemy-info*]]" - (with-pp - (let ((hitpoints 1)) - (let ((attack-info (the-as attack-info (-> arg1 param 1)))) - (case (-> arg1 message) - (('attack) - (if (and (logtest? (-> attack-info mask) (attack-info-mask mode)) (= (-> attack-info mode) 'board)) - (set! hitpoints (-> obj hit-points)) - ) - ) - ) + (let ((hitpoints 1)) + (let ((attack-info (the-as attack-info (-> arg1 param 1)))) + (case (-> arg1 message) + (('attack) + (if (and (logtest? (-> attack-info mask) (attack-info-mask mode)) (= (-> attack-info mode) 'board)) + (set! hitpoints (-> obj hit-points)) + ) + ) ) - (set! (-> obj targetted-timer) (-> pp clock frame-counter)) - hitpoints ) + (set! (-> obj targetted-timer) (current-time)) + hitpoints ) ) @@ -604,7 +596,7 @@ There are many fail-safes here if something goes wrong to try to keep the pegasu @param explicit-y-vel Normally `0.0` but this value is used when the pegasus needs to switch direction @param adjust-y-offset? Normally [[#f]] which forces the movement to reflect the result of the collison query - the [[pegasus]] will stay close to the ground. [[#t]] ignores this" (+! (-> self curve-position) - (/ (the float (* (- (-> self clock frame-counter) (-> self clock old-frame-counter)) (the int (-> self speed)))) + (/ (the float (* (- (current-time) (-> self clock old-frame-counter)) (the int (-> self speed)))) (total-distance (-> self path-info (-> self current-path) path-data)) ) ) @@ -706,7 +698,7 @@ This function also is what causes the pegasus to flip around (interpolant (- 1.0 (fmax 0.0 (fmin 1.0 dist-from-target)))) (interpolated-speed (lerp min-speed max-speed interpolant)) ) - (if (< (- (-> self clock frame-counter) (-> self targetted-timer)) (seconds 5)) + (if (< (- (current-time) (-> self targetted-timer)) (seconds 5)) (set! interpolated-speed (fmax 163840.0 interpolated-speed)) ) (let ((movement-speed (* 0.0033333334 interpolated-speed))) @@ -877,7 +869,7 @@ The faster it's moving the fast it flaps it's wings, etc (defstate stare (pegasus) :virtual #t :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((awareness (-> self focus aware))) (cond ((and (>= 1 (the-as int awareness)) @@ -925,10 +917,7 @@ The faster it's moving the fast it flaps it's wings, etc "Handles the flying animations and sounds @TODO - cleanup a bit more" (let ((anim-speed (pegasus-calc-anim-speed))) - (let ((gp-0 - (and (-> self can-run) (< (the-as time-frame (-> self ambient-possible)) (-> self clock frame-counter))) - ) - ) + (let ((gp-0 (and (-> self can-run) (< (the-as time-frame (-> self ambient-possible)) (current-time))))) (let* ((min-dist (lerp-scale 61440.0 32768.0 (the float arg0) 0.0 3000.0)) (min-speed (lerp-scale 122880.0 81920.0 (the float arg0) 0.0 3000.0)) (s4-0 (pegasus-calc-speed min-dist 122880.0 min-speed 49152.0)) @@ -1001,7 +990,7 @@ The faster it's moving the fast it flaps it's wings, etc ((let ((v1-72 (ja-group))) (and v1-72 (= v1-72 pegasus-run-ja)) ) - (if (or (not (-> self can-run)) (< (the-as time-frame (-> self ambient-expire)) (-> self clock frame-counter))) + (if (or (not (-> self can-run)) (< (the-as time-frame (-> self ambient-expire)) (current-time))) (ja :group! pegasus-run-to-fly-ja) ) (ja :num-func num-func-identity :frame-num 0.0) @@ -1010,7 +999,7 @@ The faster it's moving the fast it flaps it's wings, etc (ja-channel-push! 1 (seconds 0.125)) (ja :group! pegasus-fly-to-run-ja) (ja :num-func num-func-identity :frame-num 0.0) - (let* ((s5-4 (-> self clock frame-counter)) + (let* ((s5-4 (current-time)) (f30-1 300.0) (f28-1 2.0) (f26-0 3.0) @@ -1091,8 +1080,8 @@ The faster it's moving the fast it flaps it's wings, etc (func) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self far-time) (current-time)) (set-setting! 'sound-mode #f 0.0 1) (none) ) @@ -1117,24 +1106,22 @@ The faster it's moving the fast it flaps it's wings, etc (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (set! (-> self state-time) - (the-as time-frame (max (+ (-> self clock frame-counter) (seconds -10)) (-> self state-time))) - ) + (set! (-> self state-time) (the-as time-frame (max (+ (current-time) (seconds -10)) (-> self state-time)))) ) (else - (+! (-> self state-time) (* 10 (- (-> self clock frame-counter) (-> self far-time)))) - (if (>= (-> self state-time) (-> self clock frame-counter)) + (+! (-> self state-time) (* 10 (- (current-time) (-> self far-time)))) + (if (>= (-> self state-time) (current-time)) (go-virtual flee) ) ) ) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) (none) ) :code (behavior () (until #f (set! (-> self y-offset-desired) 0.0) - (pegasus-fly-code (the-as int (- (-> self clock frame-counter) (-> self state-time)))) + (pegasus-fly-code (the-as int (- (current-time) (-> self state-time)))) (suspend) ) #f @@ -1153,7 +1140,7 @@ The faster it's moving the fast it flaps it's wings, etc ) ) (set! (-> self near-timer) 3000) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) (set-setting! 'sound-mode #f 0.0 1) (none) ) @@ -1180,16 +1167,15 @@ The faster it's moving the fast it flaps it's wings, etc (not (logtest? (focus-status teleporting) (-> *target* focus-status))) ) ) - (set! (-> self near-timer) (- (the-as time-frame (-> self near-timer)) - (- (-> self clock frame-counter) (-> self clock old-frame-counter)) - ) + (set! (-> self near-timer) + (- (the-as time-frame (-> self near-timer)) (- (current-time) (-> self clock old-frame-counter))) ) (if (<= (-> self near-timer) 0) (go pegasus-tired) ) - (set! (-> self far-time) (-> self clock frame-counter)) + (set! (-> self far-time) (current-time)) ) - (if (>= (- (-> self clock frame-counter) (-> self far-time)) (seconds 3)) + (if (>= (- (current-time) (-> self far-time)) (seconds 3)) (set! (-> self near-timer) (the-as int (-> self timeout))) ) (none) @@ -1526,7 +1512,7 @@ The faster it's moving the fast it flaps it's wings, etc (lambda :behavior task-manager () (local-vars (data int)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-pegasus :init hud-init-by-other :to self))) (while (> (-> self data-int32 0) 0) (set! data (-> self data-int32 1)) diff --git a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc index badb085a80..56620b56c7 100644 --- a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc @@ -468,23 +468,21 @@ (defmethod general-event-handler predator ((obj predator) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('attack) - (set! (-> obj shock-effect-end) (the-as uint (+ (-> pp clock frame-counter) (seconds 1)))) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + (case arg2 + (('attack) + (set! (-> obj shock-effect-end) (the-as uint (+ (current-time) (seconds 1)))) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('death-end) + (when (nonzero? (-> obj ambient-sound-id)) + (sound-stop (-> obj ambient-sound-id)) + (set! (-> obj ambient-sound-id) (new 'static 'sound-id)) + 0 ) - (('death-end) - (when (nonzero? (-> obj ambient-sound-id)) - (sound-stop (-> obj ambient-sound-id)) - (set! (-> obj ambient-sound-id) (new 'static 'sound-id)) - 0 - ) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -918,9 +916,9 @@ (if (< 245760.0 (vector-vector-distance (-> obj root-override2 trans) (camera-pos))) (setup-masks (-> obj draw) 0 8) ) - (when (< (-> pp clock frame-counter) (the-as time-frame (-> obj shock-effect-end))) - (when (>= (- (-> pp clock frame-counter) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (-> pp clock frame-counter)) + (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) (process-drawable-shock-skel-effect obj (-> *lightning-spec-id-table* 18) @@ -1135,14 +1133,14 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior predator) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) ) 0 (set! (-> self next-change) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) ) (none) ) @@ -1168,7 +1166,7 @@ ) ) ) - (if (< (the-as time-frame (-> self next-change)) (-> self clock frame-counter)) + (if (< (the-as time-frame (-> self next-change)) (current-time)) (go-virtual hide) ) (none) @@ -1212,7 +1210,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior predator) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) @@ -1238,7 +1236,7 @@ ) (go-virtual hostile) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (check-los? (-> self los) 0) (not (logtest? (-> self draw status) (draw-control-status on-screen))) ) @@ -1255,7 +1253,7 @@ (set! (-> a0-12 target-post quad) (-> v1-30 quad)) ) 0 - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (logtest? (-> self nav state flags) (nav-state-flag at-target)) ) (go-virtual hidden) @@ -1293,9 +1291,9 @@ ) ) (set! (-> self want-stop) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self next-change) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 4.0 8.0))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 4.0 8.0))))) ) (if (zero? (get-rand-int self 3)) (sound-play "pred-talk") @@ -1308,7 +1306,7 @@ (t9-0) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 5)) (go-virtual hide) ) (let ((gp-0 (handle->process (-> self focus handle)))) @@ -1316,7 +1314,7 @@ (go-virtual active) ) (when (get-enemy-target self) - (when (and gp-0 (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time))) + (when (and gp-0 (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (let ((f0-0 (vector-vector-xz-distance (get-trans (the-as process-focusable gp-0) 0) (-> self root-override2 trans)) ) diff --git a/test/decompiler/reference/jak2/levels/forest/wren_REF.gc b/test/decompiler/reference/jak2/levels/forest/wren_REF.gc index 280ddd32ce..17e1d1cd86 100644 --- a/test/decompiler/reference/jak2/levels/forest/wren_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/wren_REF.gc @@ -214,13 +214,13 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (defstate peck (wren) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self peck-timer) (the-as uint (the int (* 300.0 (rand-vu-float-range 1.4 4.3))))) (set! (-> self flags) (logand -7 (-> self flags))) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self peck-timer))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self peck-timer))) (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans)))) (if (< (fabs (deg-diff (quaternion-y-angle (-> self root quat)) (vector-y-angle gp-1))) 728.1778) (go-virtual hunt) @@ -262,23 +262,23 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (set! v1-33 v1-33) (cmove-#f-zero v1-34 v1-33 v1-33) ) - (let ((gp-1 (-> self clock frame-counter)) + (let ((gp-1 (current-time)) (s5-1 (the int (* 300.0 (rand-vu-float-range 0.1 0.6)))) (f30-1 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-1) s5-1) + (until (>= (- (current-time) gp-1) s5-1) (suspend) (ja :num! (loop! f30-1)) ) ) (logior! (-> self flags) 1) - (let ((gp-2 (-> self clock frame-counter)) + (let ((gp-2 (current-time)) (s5-2 (the int (* 300.0 (rand-vu-float-range 0.2 1.5)))) (f30-3 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-3) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-2) s5-2) + (until (>= (- (current-time) gp-2) s5-2) (suspend) (ja :num! (loop! f30-3)) ) @@ -319,12 +319,12 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 240) (f30-0 2.0) ) (ja-no-eval :group! wren-takeoff-ja :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-0)) ) @@ -421,7 +421,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" :trans (behavior () (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans)))) (when (< (fabs (deg-diff (quaternion-y-angle (-> self root quat)) (vector-y-angle gp-1))) 728.1778) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self peck-timer))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self peck-timer))) (set! (-> self fly-index) (logand (+ (-> self fly-index) 1) 1)) (go-virtual fly) ) @@ -432,23 +432,23 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" :code (behavior () (set! (-> self flags) (logand -2 (-> self flags))) (ja-channel-push! 1 (seconds 0.2)) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (* 300.0 (rand-vu-float-range 4.2 16.8)))) (f30-1 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-1)) ) ) (logior! (-> self flags) 1) - (let ((gp-1 (-> self clock frame-counter)) + (let ((gp-1 (current-time)) (s5-1 600) (f30-2 1.0) ) (ja-no-eval :group! wren-idle-ja :num! (loop! f30-2) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-1) s5-1) + (until (>= (- (current-time) gp-1) s5-1) (suspend) (ja :num! (loop! f30-2)) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpa-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpa-obs_REF.gc index ae86921b46..098d03416a 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpa-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpa-obs_REF.gc @@ -70,16 +70,16 @@ :virtual #t :event (-> (method-of-type fort-elec-switch idle) event) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 16)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 16)) (suspend) ) ) (until (logtest? (-> self draw status) (draw-control-status on-screen)) (suspend) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.4)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.4)) (suspend) ) ) @@ -162,8 +162,8 @@ ) ) (sound-play "elec-switch") - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -198,8 +198,8 @@ ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.75)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.75)) (suspend) ) ) @@ -218,8 +218,8 @@ ) ) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 1.5)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 1.5)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpb-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpb-obs_REF.gc index 2603b3c710..ed62bcb8e8 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpb-obs_REF.gc @@ -335,7 +335,7 @@ This commonly includes things such as: (none) ) :trans (behavior () - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn fort-plat-shuttle-plat 0 :to self) (set! (-> self next-spawn-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -346,24 +346,22 @@ This commonly includes things such as: ;; definition for method 22 of type fort-plat-shuttle (defmethod fort-plat-shuttle-method-22 fort-plat-shuttle ((obj fort-plat-shuttle)) - (with-pp - (let* ((f28-0 (total-distance (-> obj path))) - (s5-0 (-> obj sync)) - (f26-0 81.92) - (a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0))) - (v1-6 (-> s5-0 period)) - (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) - (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) - ) - (while (>= 1.0 f30-0) - (if (>= f30-0 0.0) - (process-spawn fort-plat-shuttle-plat f30-0 :to obj) - ) - (+! f30-0 f28-1) - ) + (let* ((f28-0 (total-distance (-> obj path))) + (s5-0 (-> obj sync)) + (f26-0 81.92) + (a0-3 (- (current-time) (get-timeframe-offset! s5-0 0))) + (v1-6 (-> s5-0 period)) + (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) + (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) + ) + (while (>= 1.0 f30-0) + (if (>= f30-0 0.0) + (process-spawn fort-plat-shuttle-plat f30-0 :to obj) + ) + (+! f30-0 f28-1) ) - #f ) + #f ) ;; definition for method 11 of type fort-plat-shuttle diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpc-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpc-obs_REF.gc index 1320d45312..bc2315def4 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpc-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fordumpc-obs_REF.gc @@ -155,8 +155,8 @@ ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 0.5)) (suspend) ) ) @@ -403,8 +403,8 @@ This commonly includes things such as: (-> gp-2 ppointer) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) @@ -605,8 +605,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 8)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 8)) (suspend) ) ) @@ -614,15 +614,15 @@ This commonly includes things such as: (suspend) ) (when (= (-> self bomb-count) 4) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.4)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.4)) (suspend) ) ) (add-process *gui-control* self (gui-channel daxter) (gui-action play) "ds017" -99.0 0) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 20)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 20)) (suspend) ) ) @@ -630,14 +630,14 @@ This commonly includes things such as: (add-process *gui-control* self (gui-channel daxter) (gui-action play) "ds018" -99.0 0) ) (while (> (-> self bomb-count) 0) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 0.2)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 0.2)) (suspend) ) ) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.8)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.8)) (suspend) ) ) @@ -687,8 +687,8 @@ This commonly includes things such as: ) ) (set-fordumpc-light-flag! #t) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -698,8 +698,8 @@ This commonly includes things such as: (set-setting! 'entity-name "camera-182" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (task-node-close! (game-task-node fortress-dump-missile)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.75)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.75)) (suspend) ) ) @@ -733,8 +733,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1.5)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1.5)) (suspend) ) ) @@ -760,8 +760,8 @@ This commonly includes things such as: (set! (-> *game-info* timer) 0) (set! (-> self hud) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) ) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.4)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.4)) (suspend) ) ) @@ -770,8 +770,8 @@ This commonly includes things such as: ) (dotimes (gp-5 10) (set! (-> *game-info* timer) (the-as time-frame (- 3000 (the int (* 300.0 (the float gp-5)))))) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) (seconds 1)) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) (seconds 1)) (suspend) ) ) @@ -826,8 +826,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.4)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.4)) (suspend) ) ) @@ -998,13 +998,13 @@ This commonly includes things such as: (set! (-> s5-3 trans w) 1.0) (spawn-with-matrix (-> self part-doom) s5-3) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 10)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 10)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc index 0077e7382f..37207252b3 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc @@ -170,7 +170,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('trigger) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (go-virtual active) ) (('die) @@ -248,7 +248,7 @@ ) :code (behavior () (until #f - (when (and (not (paused?)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + (when (and (not (paused?)) (>= (- (current-time) (-> self state-time)) (seconds 1))) (seek! (-> self anim-frame) 0.0 (* 0.2 (-> self clock time-adjust-ratio))) (seek! (-> self transition) 1.0 (* 0.01 (-> self clock time-adjust-ratio))) ) @@ -304,8 +304,8 @@ (defstate die (fort-roboscreen) :virtual #t :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (seek! (-> self transition) 0.0 (-> self clock seconds-per-frame)) (set-roboscreen-alpha! (-> self transition)) (suspend) @@ -589,7 +589,7 @@ (none) ) :post (behavior () - (when (< (-> self ring-timer) (-> self clock frame-counter)) + (when (< (-> self ring-timer) (current-time)) (let ((v1-2 (rand-vu-int-range 0 7))) (dotimes (a0-3 3) (if (logand (ash 1 a0-3) v1-2) @@ -597,9 +597,7 @@ ) ) ) - (set! (-> self ring-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.6 1.8)))) - ) + (set! (-> self ring-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.6 1.8))))) ) (fort-robotank-reticle-post) (none) @@ -1416,19 +1414,19 @@ :virtual #t :event robotank-turret-handler :enter (behavior () - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) (none) ) :trans (behavior () (if (logtest? (-> self flags) 16) - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) ) (let ((gp-0 *target*)) (if (and (if (type? gp-0 process-focusable) gp-0 ) (or (not (logtest? (-> self flags) 512)) (check-los? (-> self los) 0)) - (>= (- (-> self clock frame-counter) (-> self gun-timer)) (seconds 1)) + (>= (- (current-time) (-> self gun-timer)) (seconds 1)) ) (go-virtual fire) ) @@ -1495,8 +1493,8 @@ (logior! (-> self flags) 8) (set! (-> self firing-sight-pos quad) (-> self sight-pos quad)) (send-event (handle->process (-> self reticle)) 'lock) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) @@ -1534,9 +1532,9 @@ ) ) (let ((f30-0 (rand-vu-float-range 0.05 0.43)) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) (the int (* 300.0 f30-0))) + (until (>= (- (current-time) s4-2) (the int (* 300.0 f30-0))) (suspend) ) ) @@ -1556,9 +1554,9 @@ 2.11 ) ) - (gp-3 (-> self clock frame-counter)) + (gp-3 (current-time)) ) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 f30-1))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 f30-1))) (suspend) ) ) @@ -1575,8 +1573,8 @@ :code (behavior () (send-event (handle->process (-> self reticle)) 'die) (send-event (handle->process (-> self screen)) 'die) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1687,7 +1685,7 @@ (set! (-> self aim-pos 0 quad) (-> self root-override trans quad)) (set! (-> self aim-pos-2 quad) (-> self root-override trans quad)) (set! (-> self aim-pos-1 quad) (-> self root-override trans quad)) - (set! (-> self gun-timer) (-> self clock frame-counter)) + (set! (-> self gun-timer) (current-time)) (set! (-> self flags) (the-as uint 0)) (set! (-> self fov-mult) 1.0) (set! (-> self shot-range) 204800.0) diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank_REF.gc index 9cfe22b165..25e1edb8f5 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank_REF.gc @@ -424,7 +424,7 @@ ;; WARN: Return type mismatch int vs none. (defbehavior fort-robotank-post fort-robotank () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -496,11 +496,11 @@ ) (let* ((f0-35 30.0) (f1-7 65536.0) - (f2-1 (the float (-> self clock frame-counter))) + (f2-1 (the float (current-time))) (f0-36 (/ (* f1-7 (- f2-1 (* (the float (the int (/ f2-1 f0-35))) f0-35))) f0-35)) (f28-1 (sin f0-36)) (f30-2 (* 300.0 (/ 1.0 (-> self engine-vibe-rate)))) - (f0-39 (the float (-> self clock frame-counter))) + (f0-39 (the float (current-time))) (f24-0 (/ (- f0-39 (* (the float (the int (/ f0-39 f30-2))) f30-2)) f30-2)) (f28-2 (* f28-1 (sin (* 65536.0 f24-0)))) ) @@ -509,7 +509,7 @@ (f26-0 0.0) ) (when (and (or (< f0-44 f24-0) (< f24-0 f1-16)) - (>= (- (-> self clock frame-counter) (-> self buzz-timer)) (the int (* 0.5 f30-2))) + (>= (- (current-time) (-> self buzz-timer)) (the int (* 0.5 f30-2))) ) (let* ((gp-2 *target*) (a0-43 (if (type? gp-2 process-focusable) @@ -535,7 +535,7 @@ (the int (* 255.0 (* 0.49 f26-0))) (the-as time-frame (max 45 (the int (* 0.25 f30-2)))) ) - (set! (-> self buzz-timer) (-> self clock frame-counter)) + (set! (-> self buzz-timer) (current-time)) ) ) (quaternion-axis-angle! @@ -672,7 +672,7 @@ (set! (-> a1-19 param 1) (the-as uint v1-40)) ) (the-as object (when (send-event-function s5-0 a1-19) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-45 (-> self root-override root-prim))) (set! (-> v1-45 prim-core collide-as) (collide-spec)) (set! (-> v1-45 prim-core collide-with) (collide-spec)) @@ -946,8 +946,8 @@ ) :code (behavior () (set! (-> self flags) (logand -5 (-> self flags))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.1)) (suspend) ) ) @@ -1087,8 +1087,8 @@ (remove-setting! 'process-mask) (remove-setting! 'target-height) (send-event (handle->process (-> self turret)) 'die) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc index b4a73f2bd1..acbd3be5fc 100644 --- a/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc @@ -84,7 +84,7 @@ (none) ) :post (behavior () - (when (< (-> self sound-time) (-> self clock frame-counter)) + (when (< (-> self sound-time) (current-time)) (sound-stop (-> self sound-id)) (set! (-> self sound-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -122,7 +122,7 @@ ) :code (the-as (function none :behavior fort-lift-plat) sleep-code) :post (behavior () - (when (< (-> self sound-time) (-> self clock frame-counter)) + (when (< (-> self sound-time) (current-time)) (sound-stop (-> self sound-id)) (set! (-> self sound-time) (get-timeframe-offset! (-> self sync) 0)) ) @@ -326,11 +326,11 @@ otherwise, [[plat::34]] (defstate pause (fort-claw) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual idle) ) (none) @@ -378,8 +378,8 @@ This commonly includes things such as: () (until #f (sound-play "fortress-alarm") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc b/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc index 457aa04e72..38eabfee61 100644 --- a/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc @@ -679,66 +679,64 @@ ;; definition for method 141 of type fort-turret ;; INFO: Used lq/sq (defmethod fort-turret-method-141 fort-turret ((obj fort-turret)) - (with-pp - (let* ((s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) - (v1-3 - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj node-list data 12 bone transform vector 2) 1.0) - ) - (s4-1 (vector-float*! (new 'stack-no-clear 'vector) v1-3 163840.0)) + (let* ((s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) + (v1-3 + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj node-list data 12 bone transform vector 2) 1.0) ) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) - (set! (-> s3-0 move-dist quad) (-> s4-1 quad)) - (let ((v1-6 s3-0)) - (set! (-> v1-6 radius) 409.6) - (set! (-> v1-6 collide-with) - (collide-spec backgnd jak crate obstacle hit-by-player-list hit-by-others-list player-list pusher) - ) - (set! (-> v1-6 ignore-process0) obj) - (set! (-> v1-6 ignore-process1) #f) - (set! (-> v1-6 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-6 action-mask) (collide-action solid)) - ) - (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (cond - ((>= f30-0 0.0) - (set! (-> obj beam-intersect) (the-as basic 'wall)) - (when (-> s3-0 best-other-tri collide-ptr) - (let* ((s3-1 (-> s3-0 best-other-tri collide-ptr)) - (a0-14 (if (type? s3-1 collide-shape-prim) - (the-as collide-shape-prim s3-1) - ) - ) - ) - (when a0-14 - (when (= (-> a0-14 cshape process type) target) - (set! (-> obj target-timeout) (the-as uint (-> pp clock frame-counter))) - (set! (-> obj beam-intersect) (the-as basic 'target)) - ) + (s4-1 (vector-float*! (new 'stack-no-clear 'vector) v1-3 163840.0)) + ) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) + (set! (-> s3-0 move-dist quad) (-> s4-1 quad)) + (let ((v1-6 s3-0)) + (set! (-> v1-6 radius) 409.6) + (set! (-> v1-6 collide-with) + (collide-spec backgnd jak crate obstacle hit-by-player-list hit-by-others-list player-list pusher) + ) + (set! (-> v1-6 ignore-process0) obj) + (set! (-> v1-6 ignore-process1) #f) + (set! (-> v1-6 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-6 action-mask) (collide-action solid)) + ) + (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (cond + ((>= f30-0 0.0) + (set! (-> obj beam-intersect) (the-as basic 'wall)) + (when (-> s3-0 best-other-tri collide-ptr) + (let* ((s3-1 (-> s3-0 best-other-tri collide-ptr)) + (a0-14 (if (type? s3-1 collide-shape-prim) + (the-as collide-shape-prim s3-1) + ) + ) + ) + (when a0-14 + (when (= (-> a0-14 cshape process type) target) + (set! (-> obj target-timeout) (the-as uint (current-time))) + (set! (-> obj beam-intersect) (the-as basic 'target)) ) ) ) - (vector-float*! s4-1 s4-1 f30-0) - (let ((s3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 s4-1)) - (a0-21 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 10))) - (v1-23 (-> obj gun-shadow-jm twist-max)) - ) - (set! (-> v1-23 z) - (+ 2.0 (* 0.00024414062 (vector-length (vector-! (new 'stack-no-clear 'vector) s3-3 a0-21)))) - ) - (if (= (-> obj beam-intersect) 'wall) - (set! (-> v1-23 z) (+ -5.0 (-> v1-23 z))) - ) - ) ) - (else - (set! (-> obj beam-intersect) (the-as basic 'nothing)) - ) + (vector-float*! s4-1 s4-1 f30-0) + (let ((s3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 s4-1)) + (a0-21 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 10))) + (v1-23 (-> obj gun-shadow-jm twist-max)) + ) + (set! (-> v1-23 z) + (+ 2.0 (* 0.00024414062 (vector-length (vector-! (new 'stack-no-clear 'vector) s3-3 a0-21)))) + ) + (if (= (-> obj beam-intersect) 'wall) + (set! (-> v1-23 z) (+ -5.0 (-> v1-23 z))) + ) + ) + ) + (else + (set! (-> obj beam-intersect) (the-as basic 'nothing)) ) ) ) - (vector+! (-> obj target-bullseye) s5-0 s4-1) ) + (vector+! (-> obj target-bullseye) s5-0 s4-1) ) ) @@ -800,15 +798,15 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) ) (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (fort-turret-method-141 self) - (if (or (>= (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (< (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (or (>= (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (< (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual hostile) ) @@ -825,8 +823,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -849,8 +847,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((s4-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.33)) + (let ((s4-1 (current-time))) + (until (>= (- (current-time) s4-1) (seconds 0.33)) (suspend) ) ) @@ -861,8 +859,8 @@ ) ) (set! (-> self flash-state) #f) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1.5)) (suspend) ) ) @@ -885,14 +883,14 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior fort-turret) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) @@ -901,8 +899,8 @@ (set! (-> self desired-twist) (* 8192.0 (cos (get-scaled-val! (-> self sync) 32768.0 0)))) (fort-turret-method-140 self 0.1 91.022224) (fort-turret-method-141 self) - (if (and (< (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (and (< (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual attack) ) @@ -934,15 +932,15 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (>= 2 (the-as int (-> self focus aware))) (go-stare self) ) ) (set! (-> self root-override2 penetrated-by) (get-penetrate-info self)) (fort-turret-method-141 self) - (if (and (< (- (-> self clock frame-counter) (the-as int (-> self target-timeout))) (seconds 0.5)) - (>= (- (-> self clock frame-counter) (-> self last-hit-time)) (seconds 2)) + (if (and (< (- (current-time) (the-as int (-> self target-timeout))) (seconds 0.5)) + (>= (- (current-time) (-> self last-hit-time)) (seconds 2)) ) (go-virtual attack) ) @@ -963,37 +961,35 @@ (defmethod general-event-handler fort-turret ((obj fort-turret) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (if (and (= arg2 'notify) (< 1 arg1) (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) - (set! (-> obj last-hit-time) (-> pp clock frame-counter)) + (if (and (= arg2 'notify) (< 1 arg1) (= (-> arg3 param 0) 'attack) (= (-> arg3 param 1) *target*)) + (set! (-> obj last-hit-time) (current-time)) + ) + (case arg2 + (('start) + (let ((v0-0 (the-as object #t))) + (set! (-> obj can-shoot) (the-as symbol v0-0)) + v0-0 + ) + ) + (('stop) + (set! (-> obj can-shoot) #f) + #f + ) + (('attack) + (cond + ((= (-> arg0 type) target) + #f ) - (case arg2 - (('start) - (let ((v0-0 (the-as object #t))) - (set! (-> obj can-shoot) (the-as symbol v0-0)) - v0-0 + ((-> obj invincible) + #f + ) + (else + ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) - (('stop) - (set! (-> obj can-shoot) #f) - #f - ) - (('attack) - (cond - ((= (-> arg0 type) target) - #f - ) - ((-> obj invincible) - #f - ) - (else - ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - ) - ) - (else - ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) + ) + (else + ((method-of-type enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1028,15 +1024,15 @@ (suspend) (ja-channel-set! 0) (let ((gp-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))) - (s5-2 (-> self clock frame-counter)) + (s5-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 2)) + (until (>= (- (current-time) s5-2) (seconds 2)) (spawn (-> self part) gp-2) (suspend) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 1)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/fortress-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/fortress-obs_REF.gc index 3896ed2b08..6039a00664 100644 --- a/test/decompiler/reference/jak2/levels/fortress/fortress-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/fortress-obs_REF.gc @@ -150,8 +150,8 @@ ) (suspend) (ja-channel-set! 0) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 1)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc index 7d52a79c1f..74cf4f55a0 100644 --- a/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc @@ -248,7 +248,7 @@ (defstate idle (prsn-hang-cell) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((f0-2 (* (/ 1.0 (-> self path-du)) (-> self path-u))) (f0-3 (- f0-2 (* (the float (the int (/ f0-2 1.0))) 1.0))) ) @@ -265,7 +265,7 @@ (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) (when (>= (-> self path-u) 1.0) (set! (-> self path-u) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (get-point-at-percent-along-path! (-> self path) (-> self root trans) (-> self path-u) 'interp) (ja-post) @@ -282,42 +282,40 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (process-drawable-from-entity! obj arg0) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-prsn-hang-cell" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! (-> obj path-du) 0.01) - (let ((f0-2 (* 300.0 (/ 1.0 (-> obj path-du)))) - (f1-3 (the float (-> pp clock frame-counter))) - ) - (set! (-> obj path-u) (/ (- f1-3 (* (the float (the int (/ f1-3 f0-2))) f0-2)) f0-2)) - ) - (let* ((f30-0 (-> obj path-u)) - (f28-0 8.0) - (f26-0 (/ 1.0 f28-0)) - ) - (dotimes (s5-2 (+ (the int f28-0) -1)) - (+! f30-0 f26-0) - (process-spawn - prsn-hang-cell - (if (>= f30-0 1.0) - (+ -1.0 f30-0) - f30-0 - ) - :to obj - ) + (set! (-> obj root) (new 'process 'trsqv)) + (process-drawable-from-entity! obj arg0) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-prsn-hang-cell" (the-as (pointer uint32) #f))) + (the-as pair 0) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! (-> obj path-du) 0.01) + (let ((f0-2 (* 300.0 (/ 1.0 (-> obj path-du)))) + (f1-3 (the float (current-time))) + ) + (set! (-> obj path-u) (/ (- f1-3 (* (the float (the int (/ f1-3 f0-2))) f0-2)) f0-2)) + ) + (let* ((f30-0 (-> obj path-u)) + (f28-0 8.0) + (f26-0 (/ 1.0 f28-0)) + ) + (dotimes (s5-2 (+ (the int f28-0) -1)) + (+! f30-0 f26-0) + (process-spawn + prsn-hang-cell + (if (>= f30-0 1.0) + (+ -1.0 f30-0) + f30-0 + ) + :to obj ) ) - (go (method-of-object obj idle)) - (none) ) + (go (method-of-object obj idle)) + (none) ) ;; definition for function prsn-hang-cell-init-by-other diff --git a/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc index 8861a8fd4e..0070f62fd6 100644 --- a/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc @@ -290,8 +290,8 @@ This commonly includes things such as: (let ((a0-0 *target*)) (when (and a0-0 (< 81920.0 (vector-vector-distance (get-trans a0-0 0) (-> self root trans)))) (set! (-> self quality-enabled?) #f) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -299,8 +299,8 @@ This commonly includes things such as: (set-setting! 'entity-name "camera-243" 0.0 0) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) (process-grab? *target* #f) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) @@ -400,8 +400,8 @@ This commonly includes things such as: ) :code (behavior () (until (-> self all-gone?) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.5)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc index 2fe3a9504d..aa3668fca0 100644 --- a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc @@ -550,7 +550,7 @@ This commonly includes things such as: ) :trans (behavior () (set-forrescb-electricity-scale! 1.0 0) - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn fort-elec-belt-inst (-> self init-quat) @@ -570,32 +570,30 @@ This commonly includes things such as: ;; definition for method 15 of type fort-elec-belt ;; WARN: Return type mismatch symbol vs none. (defmethod fort-elec-belt-method-15 fort-elec-belt ((obj fort-elec-belt)) - (with-pp - (let* ((f28-0 (total-distance (-> obj path))) - (s5-0 (-> obj sync)) - (f26-0 81.92) - (a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0))) - (v1-6 (-> s5-0 period)) - (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) - (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) - ) - (while (>= 1.0 f30-0) - (if (>= f30-0 0.0) - (process-spawn - fort-elec-belt-inst - (-> obj init-quat) - f30-0 - (-> obj path-du) - (-> obj l-spec) - (-> obj attack-id) - :to obj - ) + (let* ((f28-0 (total-distance (-> obj path))) + (s5-0 (-> obj sync)) + (f26-0 81.92) + (a0-3 (- (current-time) (get-timeframe-offset! s5-0 0))) + (v1-6 (-> s5-0 period)) + (f30-0 (/ (* f26-0 (the float a0-3)) f28-0)) + (f28-1 (/ (* f26-0 (the float v1-6)) f28-0)) + ) + (while (>= 1.0 f30-0) + (if (>= f30-0 0.0) + (process-spawn + fort-elec-belt-inst + (-> obj init-quat) + f30-0 + (-> obj path-du) + (-> obj l-spec) + (-> obj attack-id) + :to obj ) - (+! f30-0 f28-1) - ) + ) + (+! f30-0 f28-1) ) - (none) ) + (none) ) ;; definition for method 7 of type fort-elec-belt @@ -688,7 +686,6 @@ This commonly includes things such as: ) ;; definition for method 3 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod inspect fort-conveyor ((obj fort-conveyor)) (when (not obj) (set! obj obj) @@ -708,14 +705,12 @@ This commonly includes things such as: ) ;; definition for method 22 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod get-art-group fort-conveyor ((obj fort-conveyor)) "@returns The respective [[art-group]] for the [[conveyor]]" (art-group-get-by-name *level* "skel-fort-conveyor" (the-as (pointer uint32) #f)) ) ;; definition for method 23 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch collide-shape-moving vs none. (defmethod reset-root! fort-conveyor ((obj fort-conveyor)) "Re-initializes the `root` [[trsqv]]" @@ -746,7 +741,6 @@ This commonly includes things such as: ) ;; definition for method 24 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch vector vs none. (defmethod init! fort-conveyor ((obj fort-conveyor)) "Initializes defaults for things like the `speed` and `belt-radius`" @@ -760,7 +754,6 @@ This commonly includes things such as: ) ;; definition for method 25 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod set-and-get-ambient-sound! fort-conveyor ((obj fort-conveyor)) "So long as [[actor-option::16]] is not set, fetch the [[ambient-sound]] for the [[conveyor]] and return it as well. Otherwise, set it to `0`" diff --git a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc index a92d24e81a..9ea266f794 100644 --- a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc +++ b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc @@ -2082,7 +2082,7 @@ (set! (-> event-msg-block message) 'path) (set! (-> event-msg-block param 0) (-> obj path-num)) (let ((path (the-as path-control (send-event-function (handle->process (-> obj train-man)) event-msg-block))) - (f30-0 (* 0.0033333334 (the float (- (-> pp clock frame-counter) (-> obj state-time))))) + (f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj state-time))))) ) (if (not path) (return #f) @@ -2120,7 +2120,7 @@ (when (>= f30-0 (-> curr-path-command 0 time)) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2135,7 +2135,7 @@ (when (>= f30-0 (-> curr-path-command 0 time)) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2170,7 +2170,7 @@ (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj inout-percent) 1.0) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2236,10 +2236,8 @@ ) (sound-play-by-spec s4-7 (-> obj move-sound) (-> obj root-override trans)) ) - (when (< (-> obj next-spark) (-> pp clock frame-counter)) - (set! (-> obj next-spark) - (the-as int (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.0 0.3))))) - ) + (when (< (-> obj next-spark) (current-time)) + (set! (-> obj next-spark) (the-as int (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.0 0.3)))))) (spawn (-> obj part) (-> obj root-override trans)) ) (set! (-> obj first-time-command) #f) @@ -2253,7 +2251,7 @@ (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj path-pos) (* 0.007843138 (the float (-> curr-path-command 0 path-pos)))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2268,7 +2266,7 @@ ) (set! (-> obj current) (the-as (inline-array tpath-control-frame) (-> obj current 1))) (set! (-> obj first-time-command) #t) - (set! (-> obj state-time) (-> pp clock frame-counter)) + (set! (-> obj state-time) (current-time)) ) (return #t) ret @@ -2312,7 +2310,7 @@ object (case event-type (('combo) - (set! (-> self last-combo-time) (-> self clock frame-counter)) + (set! (-> self last-combo-time) (current-time)) #t ) (('track) @@ -2370,7 +2368,7 @@ ) (else (if (and (logtest? (process-mask projectile) (-> proc-draw mask)) - (< (- (-> self clock frame-counter) (-> self last-combo-time)) (seconds 1)) + (< (- (current-time) (-> self last-combo-time)) (seconds 1)) ) (send-event (ppointer->process (-> self parent)) 'combo) ) @@ -2390,7 +2388,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self inout-percent) 1.0) (set! (-> self y-offset) 0.0) (set! (-> self rot-y-offset) 0.0) diff --git a/test/decompiler/reference/jak2/levels/gungame/gungame-obs_REF.gc b/test/decompiler/reference/jak2/levels/gungame/gungame-obs_REF.gc index ce4576fd0f..18eb4ed410 100644 --- a/test/decompiler/reference/jak2/levels/gungame/gungame-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/gungame/gungame-obs_REF.gc @@ -512,7 +512,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) (if (task-node-open? (game-task-node city-yellow-gun-training-introduction)) (go-virtual yellow-training-intro) @@ -562,7 +562,7 @@ This commonly includes things such as: ) ) (else - (when (< (-> self start-time) (-> self clock frame-counter)) + (when (< (-> self start-time) (current-time)) (set! (-> self course) *red-training-path-global-info*) (set! (-> self end-door) (the-as uint 1)) (training-manager-method-24 self) @@ -632,7 +632,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -684,7 +684,7 @@ This commonly includes things such as: ) ) (else - (when (< (-> self start-time) (-> self clock frame-counter)) + (when (< (-> self start-time) (current-time)) (set! (-> self end-door) (the-as uint 0)) (set! (-> self course) *yellow-training-path-global-info*) (training-manager-method-24 self) @@ -761,7 +761,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ((let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) (process->ppointer self)) @@ -803,7 +803,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -851,7 +851,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ((and (logtest? (-> *game-info* secrets) (game-secrets gungame-dark)) (let ((a1-12 (new 'stack-no-clear 'event-message-block))) @@ -893,7 +893,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 1))) + (set! (-> self start-time) (+ (current-time) (seconds 1))) ) ) ) @@ -971,7 +971,7 @@ This commonly includes things such as: (label cfg-30) (b! #t cfg-33 :delay (nop!)) (label cfg-31) - (if (< (-> self start-time) (-> self clock frame-counter)) + (if (< (-> self start-time) (current-time)) (go-virtual course) ) (label cfg-33) @@ -1201,7 +1201,7 @@ This commonly includes things such as: :enter (behavior () (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :to self))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) - (set! (-> self start-time) (+ (-> self clock frame-counter) (seconds 2))) + (set! (-> self start-time) (+ (current-time) (seconds 2))) (set! (-> self first-enemy-shown?) #f) (set! (-> self first-citizen-shown?) #f) (set! (-> self open-end?) #t) @@ -1497,7 +1497,7 @@ This commonly includes things such as: (training-manager-method-32 self) (training-manager-method-31 self) (when (-> self open-end?) - (let ((f30-0 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> self start-time)))))) (when (and (handle->process (-> self voicebox)) (or (and (task-node-closed? (game-task-node city-red-gun-training-try-once)) (< 1.0 f30-0)) (and (task-node-open? (game-task-node city-red-gun-training-try-once)) (< 15.0 f30-0)) @@ -1932,8 +1932,8 @@ This commonly includes things such as: t1-0 ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2418,8 +2418,8 @@ This commonly includes things such as: ) :code (behavior () (sound-play "gungame-door") - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.2)) (suspend) (suspend) ) @@ -3012,7 +3012,3 @@ This commonly includes things such as: :save #t ) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc b/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc index 2bd5ccc214..8fd0ee01c7 100644 --- a/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc +++ b/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc @@ -1680,8 +1680,8 @@ (ja :num! (seek!)) ) (ja-channel-push! 1 (seconds 0.05)) - (let ((s5-0 (-> self clock frame-counter))) - (while (and (< (- (-> self clock frame-counter) s5-0) arg0) (not (-> self abort?))) + (let ((s5-0 (current-time))) + (while (and (< (- (current-time) s5-0) arg0) (not (-> self abort?))) (ja :group! (-> self draw art-group data 4) :num! (loop!)) (suspend) ) @@ -1923,240 +1923,234 @@ ;; definition for method 27 of type whack-a-metal ;; WARN: Return type mismatch int vs none. (defmethod whack-a-metal-method-27 whack-a-metal ((obj whack-a-metal)) - (with-pp - (let ((s4-0 (-> *mole-data* (-> obj wave) (-> obj event))) - (s5-0 #t) - ) - (when (zero? (-> obj event-length)) - (set! (-> obj event-length) - (rand-vu-int-range (the-as int (-> s4-0 min-time)) (the-as int (+ (-> s4-0 min-time) (-> s4-0 max-time)))) - ) - (set! (-> obj event-time) (-> pp clock frame-counter)) + (let ((s4-0 (-> *mole-data* (-> obj wave) (-> obj event))) + (s5-0 #t) ) - (let ((v1-8 (-> s4-0 mode))) - (cond - ((= v1-8 8) - (set! s5-0 (>= (- (-> pp clock frame-counter) (-> obj event-time)) (-> obj event-length))) - ) - ((or (= v1-8 9) (= v1-8 10) (= v1-8 11)) - (let ((v1-13 (rand-vu-int-range 0 7))) - (let ((s3-0 0)) - (while (let ((a0-20 (-> obj mole v1-13))) - (and (-> (the-as hip-mole (if a0-20 - (the-as hip-mole (-> a0-20 0 self)) - ) - ) - next-state - ) - (let ((a0-26 (-> obj mole v1-13))) - (= (-> (the-as hip-mole (if a0-26 - (the-as hip-mole (-> a0-26 0 self)) - ) - ) - next-state - name - ) - 'active - ) + (when (zero? (-> obj event-length)) + (set! (-> obj event-length) + (rand-vu-int-range (the-as int (-> s4-0 min-time)) (the-as int (+ (-> s4-0 min-time) (-> s4-0 max-time)))) + ) + (set! (-> obj event-time) (current-time)) + ) + (let ((v1-8 (-> s4-0 mode))) + (cond + ((= v1-8 8) + (set! s5-0 (>= (- (current-time) (-> obj event-time)) (-> obj event-length))) + ) + ((or (= v1-8 9) (= v1-8 10) (= v1-8 11)) + (let ((v1-13 (rand-vu-int-range 0 7))) + (let ((s3-0 0)) + (while (let ((a0-20 (-> obj mole v1-13))) + (and (-> (the-as hip-mole (if a0-20 + (the-as hip-mole (-> a0-20 0 self)) + ) + ) + next-state ) + (let ((a0-26 (-> obj mole v1-13))) + (= (-> (the-as hip-mole (if a0-26 + (the-as hip-mole (-> a0-26 0 self)) + ) + ) + next-state + name + ) + 'active + ) ) - ) - (set! v1-13 (rand-vu-int-range 0 7)) - (+! s3-0 1) - (if (< 100 s3-0) - (goto cfg-27) - ) - ) + ) + ) + (set! v1-13 (rand-vu-int-range 0 7)) + (+! s3-0 1) + (if (< 100 s3-0) + (goto cfg-27) + ) ) - (send-event (ppointer->process (-> obj mole v1-13)) 'active (-> obj event-length) (-> s4-0 mode)) ) - (label cfg-27) + (send-event (ppointer->process (-> obj mole v1-13)) 'active (-> obj event-length) (-> s4-0 mode)) ) - ((or (zero? v1-8) (= v1-8 1) (= v1-8 2) (= v1-8 3) (= v1-8 4) (= v1-8 5) (= v1-8 6) (= v1-8 7)) - (let ((v1-22 (the-as int (-> s4-0 mode)))) - (let ((s3-1 0)) - (while (let ((a0-49 (-> obj mole v1-22))) - (and (-> (the-as hip-mole (if a0-49 - (the-as hip-mole (-> a0-49 0 self)) - ) - ) - next-state - ) - (let ((a0-55 (-> obj mole v1-22))) - (= (-> (the-as hip-mole (if a0-55 - (the-as hip-mole (-> a0-55 0 self)) - ) - ) - next-state - name - ) - 'active - ) + (label cfg-27) + ) + ((or (zero? v1-8) (= v1-8 1) (= v1-8 2) (= v1-8 3) (= v1-8 4) (= v1-8 5) (= v1-8 6) (= v1-8 7)) + (let ((v1-22 (the-as int (-> s4-0 mode)))) + (let ((s3-1 0)) + (while (let ((a0-49 (-> obj mole v1-22))) + (and (-> (the-as hip-mole (if a0-49 + (the-as hip-mole (-> a0-49 0 self)) + ) + ) + next-state ) + (let ((a0-55 (-> obj mole v1-22))) + (= (-> (the-as hip-mole (if a0-55 + (the-as hip-mole (-> a0-55 0 self)) + ) + ) + next-state + name + ) + 'active + ) ) - ) - (set! v1-22 (rand-vu-int-range 0 7)) - (+! s3-1 1) - (if (< 100 s3-1) - (goto cfg-61) - ) - ) + ) + ) + (set! v1-22 (rand-vu-int-range 0 7)) + (+! s3-1 1) + (if (< 100 s3-1) + (goto cfg-61) + ) ) - (send-event (ppointer->process (-> obj mole v1-22)) 'active (-> obj event-length) (-> s4-0 mode)) ) + (send-event (ppointer->process (-> obj mole v1-22)) 'active (-> obj event-length) (-> s4-0 mode)) ) - ) - ) - (label cfg-61) - (when s5-0 - (set! (-> obj event-length) 0) - (+! (-> obj event) 1) - (when (>= (-> obj event) (-> *mole-data* (-> obj wave) length)) - (set! (-> obj event) 0) - (+! (-> obj wave) 1) - (if (>= (-> obj wave) (-> *mole-data* length)) - (set! (-> obj wave) (+ (-> *mole-data* length) -1)) - ) - ) + ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> obj speech-time)) (seconds 15)) - (if (nonzero? (cond - ((= (-> obj speech-count) 1) - 0 - ) - ((>= (-> obj score) 1300.0) - (set! (-> obj speech-count) 1) - (let ((v1-50 (whack-a-metal-method-29 obj 0 3))) - (cond - ((zero? v1-50) - (talker-spawn-func (-> *talker-speech* 430) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-50 1) - (talker-spawn-func (-> *talker-speech* 431) *entity-pool* (target-pos 0) (the-as region #f)) - ) - (else - (talker-spawn-func (-> *talker-speech* 432) *entity-pool* (target-pos 0) (the-as region #f)) - ) + (label cfg-61) + (when s5-0 + (set! (-> obj event-length) 0) + (+! (-> obj event) 1) + (when (>= (-> obj event) (-> *mole-data* (-> obj wave) length)) + (set! (-> obj event) 0) + (+! (-> obj wave) 1) + (if (>= (-> obj wave) (-> *mole-data* length)) + (set! (-> obj wave) (+ (-> *mole-data* length) -1)) + ) + ) + ) + ) + (when (>= (- (current-time) (-> obj speech-time)) (seconds 15)) + (if (nonzero? (cond + ((= (-> obj speech-count) 1) + 0 + ) + ((>= (-> obj score) 1300.0) + (set! (-> obj speech-count) 1) + (let ((v1-50 (whack-a-metal-method-29 obj 0 3))) + (cond + ((zero? v1-50) + (talker-spawn-func (-> *talker-speech* 430) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-50 1) + (talker-spawn-func (-> *talker-speech* 431) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (else + (talker-spawn-func (-> *talker-speech* 432) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) - (else - (let ((v1-55 (whack-a-metal-method-29 obj 1 20))) - (cond - ((zero? v1-55) - (talker-spawn-func (-> *talker-speech* 395) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 1) - (talker-spawn-func (-> *talker-speech* 396) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 2) - (talker-spawn-func (-> *talker-speech* 397) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 3) - (talker-spawn-func (-> *talker-speech* 398) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 4) - (talker-spawn-func (-> *talker-speech* 401) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 5) - (talker-spawn-func (-> *talker-speech* 403) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 6) - (talker-spawn-func (-> *talker-speech* 404) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 7) - (talker-spawn-func (-> *talker-speech* 405) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 8) - (talker-spawn-func (-> *talker-speech* 406) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 9) - (talker-spawn-func (-> *talker-speech* 407) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 10) - (talker-spawn-func (-> *talker-speech* 408) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 11) - (talker-spawn-func (-> *talker-speech* 409) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 12) - (talker-spawn-func (-> *talker-speech* 410) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 13) - (talker-spawn-func (-> *talker-speech* 411) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 14) - (talker-spawn-func (-> *talker-speech* 412) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 15) - (talker-spawn-func (-> *talker-speech* 413) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 16) - (talker-spawn-func (-> *talker-speech* 414) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 17) - (talker-spawn-func (-> *talker-speech* 415) *entity-pool* (target-pos 0) (the-as region #f)) - ) - ((= v1-55 18) - (talker-spawn-func (-> *talker-speech* 416) *entity-pool* (target-pos 0) (the-as region #f)) - ) - (else - (talker-spawn-func (-> *talker-speech* 417) *entity-pool* (target-pos 0) (the-as region #f)) - ) + ) + (else + (let ((v1-55 (whack-a-metal-method-29 obj 1 20))) + (cond + ((zero? v1-55) + (talker-spawn-func (-> *talker-speech* 395) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 1) + (talker-spawn-func (-> *talker-speech* 396) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 2) + (talker-spawn-func (-> *talker-speech* 397) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 3) + (talker-spawn-func (-> *talker-speech* 398) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 4) + (talker-spawn-func (-> *talker-speech* 401) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 5) + (talker-spawn-func (-> *talker-speech* 403) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 6) + (talker-spawn-func (-> *talker-speech* 404) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 7) + (talker-spawn-func (-> *talker-speech* 405) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 8) + (talker-spawn-func (-> *talker-speech* 406) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 9) + (talker-spawn-func (-> *talker-speech* 407) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 10) + (talker-spawn-func (-> *talker-speech* 408) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 11) + (talker-spawn-func (-> *talker-speech* 409) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 12) + (talker-spawn-func (-> *talker-speech* 410) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 13) + (talker-spawn-func (-> *talker-speech* 411) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 14) + (talker-spawn-func (-> *talker-speech* 412) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 15) + (talker-spawn-func (-> *talker-speech* 413) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 16) + (talker-spawn-func (-> *talker-speech* 414) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 17) + (talker-spawn-func (-> *talker-speech* 415) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ((= v1-55 18) + (talker-spawn-func (-> *talker-speech* 416) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (else + (talker-spawn-func (-> *talker-speech* 417) *entity-pool* (target-pos 0) (the-as region #f)) ) ) ) ) ) - (set! (-> obj speech-time) (-> pp clock frame-counter)) - ) - ) - (whack-a-metal-method-28 obj) - 0 - (none) + ) + (set! (-> obj speech-time) (current-time)) + ) ) + (whack-a-metal-method-28 obj) + 0 + (none) ) ;; definition for method 28 of type whack-a-metal ;; WARN: Return type mismatch int vs none. (defmethod whack-a-metal-method-28 whack-a-metal ((obj whack-a-metal)) - (with-pp - (cond - ((>= (-> *game-info* score) (-> obj score)) - (set! (-> *game-info* score) (-> obj score)) - ) - ((and (< (-> *game-info* score) (-> obj score)) - (>= (- (-> pp clock frame-counter) (-> obj score-time)) (seconds 0.1)) - ) - (sound-play "whack-score") - (seek! (-> *game-info* score) (-> obj score) 2.0) - (set! (-> obj score-time) (-> pp clock frame-counter)) - ) - ) - (let ((s5-1 (handle->process (-> obj cabinet)))) - (when s5-1 - (spawn-with-matrix (-> obj score-part 1) (-> (the-as process-drawable s5-1) node-list data 13 bone transform)) - (spawn-with-matrix (-> obj score-part 0) (-> (the-as process-drawable s5-1) node-list data 12 bone transform)) - (dotimes (s4-1 (- 20 (-> obj miss-count))) - (set! (-> *part-id-table* 3336 init-specs 2 initial-valuef) (+ -1228.8 (* 614.4 (the float (mod s4-1 5))))) - (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) - (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) - (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 3336) - (-> (the-as process-drawable s5-1) node-list data 12 bone transform) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (cond + ((>= (-> *game-info* score) (-> obj score)) + (set! (-> *game-info* score) (-> obj score)) + ) + ((and (< (-> *game-info* score) (-> obj score)) (>= (- (current-time) (-> obj score-time)) (seconds 0.1))) + (sound-play "whack-score") + (seek! (-> *game-info* score) (-> obj score) 2.0) + (set! (-> obj score-time) (current-time)) + ) + ) + (let ((s5-1 (handle->process (-> obj cabinet)))) + (when s5-1 + (spawn-with-matrix (-> obj score-part 1) (-> (the-as process-drawable s5-1) node-list data 13 bone transform)) + (spawn-with-matrix (-> obj score-part 0) (-> (the-as process-drawable s5-1) node-list data 12 bone transform)) + (dotimes (s4-1 (- 20 (-> obj miss-count))) + (set! (-> *part-id-table* 3336 init-specs 2 initial-valuef) (+ -1228.8 (* 614.4 (the float (mod s4-1 5))))) + (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) + (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) + (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 3336) + (-> (the-as process-drawable s5-1) node-list data 12 bone transform) + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) ) ) - 0 - (none) ) + 0 + (none) ) ;; failed to figure out what this is: @@ -2226,7 +2220,7 @@ (set-setting! 'borrow '((ctywide 1 lwidea #f) (hiphog 0 lwhack special)) 0.0 0) (want-display-level *load-state* 'ctyport #f) (want-display-level *load-state* 'ctywide #f) - (set! (-> self speech-time) (-> self clock frame-counter)) + (set! (-> self speech-time) (current-time)) (if (not (task-node-closed? (game-task-node city-whack-resolution))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self))) ) @@ -2373,7 +2367,7 @@ ) ) ) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (ja-blend-eval) (suspend) (ja :num! (seek!)) @@ -2394,7 +2388,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (suspend) (ja :num! (seek!)) ) @@ -2407,7 +2401,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (+! (-> self event-time) (- (-> self clock frame-counter) (-> self clock old-frame-counter))) + (+! (-> self event-time) (- (current-time) (-> self clock old-frame-counter))) (suspend) (ja :num! (seek!)) ) @@ -2438,7 +2432,7 @@ :exit (-> (method-of-type whack-a-metal active) exit) :code (behavior ((arg0 int)) (sound-play "whack-swish") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dotimes (v1-3 3) (set! (-> self slot-buffer v1-3) (-> self slot-buffer (+ v1-3 1))) ) @@ -2667,7 +2661,7 @@ (set! (-> self score) (+ 50.0 (-> self score))) ) (else - (when (>= (- (-> self clock frame-counter) (-> self speech-time)) (seconds 12)) + (when (>= (- (current-time) (-> self speech-time)) (seconds 12)) (let ((v1-78 (whack-a-metal-method-29 self 3 3))) (cond ((zero? v1-78) @@ -2681,7 +2675,7 @@ ) ) ) - (set! (-> self speech-time) (-> self clock frame-counter)) + (set! (-> self speech-time) (current-time)) ) (process-spawn part-tracker @@ -2772,11 +2766,9 @@ ) ) ) - (s5-8 (-> self clock frame-counter)) + (s5-8 (current-time)) ) - (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) - (< (- (-> self clock frame-counter) s5-8) (seconds 2)) - ) + (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) (< (- (current-time) s5-8) (seconds 2))) (suspend) (ja :num! (loop!)) ) @@ -2848,11 +2840,9 @@ ) ) ) - (s5-8 (-> self clock frame-counter)) + (s5-8 (current-time)) ) - (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) - (< (- (-> self clock frame-counter) s5-8) (seconds 2)) - ) + (while (or (nonzero? (get-status *gui-control* (the-as sound-id gp-1))) (< (- (current-time) s5-8) (seconds 2))) (suspend) (ja :num! (loop!)) ) diff --git a/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc b/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc index 8ab75cb356..10ce4fdf2c 100644 --- a/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc @@ -72,9 +72,7 @@ (if (= (-> self path-u) 1.0) (go-virtual die) ) - (when (>= (- (-> self clock frame-counter) (the-as int (-> self flit-timer))) - (the-as time-frame (-> self flit-interval)) - ) + (when (>= (- (current-time) (the-as int (-> self flit-timer))) (the-as time-frame (-> self flit-interval))) (let ((f28-0 (rand-vu-float-range -1.0 1.0)) (f30-0 (rand-vu-float-range -1.0 1.0)) (f0-1 (rand-vu-float-range 0.2 0.6)) @@ -84,7 +82,7 @@ (set! (-> self flit-factor) 0.0) (set! (-> self flit-interval) (the-as uint (the int (* 300.0 f0-1)))) ) - (set! (-> self flit-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self flit-timer) (the-as uint (current-time))) ) (none) ) @@ -272,7 +270,7 @@ This commonly includes things such as: (set! (-> self path-u) 0.0) (set! (-> self path-du) (rand-vu-float-range 0.15 0.32)) (set! (-> self z-rot) 0.0) - (set! (-> self flit-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self flit-timer) (the-as uint (current-time))) (set! (-> self flit-interval) (the-as uint 0)) (vector-reset! (-> self flit-prev-offset)) (vector-reset! (-> self flit-next-offset)) @@ -370,9 +368,9 @@ This commonly includes things such as: ) ) (let ((s5-1 (the int (* 300.0 (rand-vu-float-range 0.03 0.08)))) - (s4-0 (-> self clock frame-counter)) + (s4-0 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-0) s5-1) + (until (>= (- (current-time) s4-0) s5-1) (suspend) ) ) @@ -521,7 +519,3 @@ This commonly includes things such as: (go (method-of-object obj idle)) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc b/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc index f798388783..b733397a3a 100644 --- a/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc @@ -2333,8 +2333,8 @@ (lambda :behavior scene-player () (talker-spawn-func (-> *talker-speech* 123) self (target-pos 0) (the-as region #f)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 5)) (if (cpad-pressed? 0 square) (return #f) ) @@ -2397,8 +2397,8 @@ (set! (-> gp-0 scale-x) 1.0) (set! (-> gp-0 scale-y) 1.0) (when (and s5-0 (-> gp-0 tex)) - (let ((s4-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s4-0) (seconds 5)) + (let ((s4-0 (current-time))) + (until (>= (- (current-time) s4-0) (seconds 5)) (let ((f0-2 1.0)) (cond ((< f30-0 2.0) @@ -2520,8 +2520,8 @@ ) ) (when (and s4-0 (-> gp-0 tex)) - (let ((s3-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-0) (seconds 8)) + (let ((s3-0 (current-time))) + (until (>= (- (current-time) s3-0) (seconds 8)) (let ((f0-6 1.0)) (cond ((< f30-0 2.0) diff --git a/test/decompiler/reference/jak2/levels/landing_pad/castle-obs_REF.gc b/test/decompiler/reference/jak2/levels/landing_pad/castle-obs_REF.gc index da284192a5..b22a034373 100644 --- a/test/decompiler/reference/jak2/levels/landing_pad/castle-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/landing_pad/castle-obs_REF.gc @@ -350,7 +350,7 @@ This commonly includes things such as: (local-vars (sv-608 symbol) (sv-624 symbol) (sv-640 (function vector cspace vector)) (sv-656 vector)) (when (and (logtest? (actor-option user17) (-> self fact options)) (not (-> self track-flag)) - (< (-> self lightning-timer) (-> self clock frame-counter)) + (< (-> self lightning-timer) (current-time)) ) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> *y-vector* quad)) @@ -409,9 +409,7 @@ This commonly includes things such as: (-> s4-2 ppointer) ) ) - (set! (-> self lightning-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.04 0.1)))) - ) + (set! (-> self lightning-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.04 0.1))))) ) ) ) @@ -586,8 +584,8 @@ This commonly includes things such as: (sound-play "lightning-node") (suspend) (logior! (-> self entity extra perm status) (entity-perm-status dead)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 4)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 4)) (suspend) ) ) @@ -625,7 +623,7 @@ This commonly includes things such as: :code (the-as (function none :behavior cas-electric-fence) sleep-code) :post (behavior () (when (not (-> self stop)) - (when (< (-> self next-spawn-time) (-> self clock frame-counter)) + (when (< (-> self next-spawn-time) (current-time)) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> *y-vector* quad)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) @@ -688,9 +686,7 @@ This commonly includes things such as: (t9-10 a0-21 a1-10 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) ) ) - (set! (-> self next-spawn-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.07 0.4)))) - ) + (set! (-> self next-spawn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.07 0.4))))) ) ) ) @@ -1955,8 +1951,8 @@ This commonly includes things such as: (sound-play "trapdoor") (suspend) (ja-channel-set! 0) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2182,16 +2178,10 @@ This commonly includes things such as: ;; definition for function cas-rot-blade-callback ;; WARN: Return type mismatch int vs none. (defun cas-rot-blade-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (quaternion-rotate-local-y! - (-> arg1 quat) - (-> arg1 quat) - (* 606.8148 (the float (-> pp clock frame-counter))) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) - ) + (quaternion-rotate-local-y! (-> arg1 quat) (-> arg1 quat) (* 606.8148 (the float (current-time)))) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ;; failed to figure out what this is: @@ -2555,11 +2545,11 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.6)) (let ((a0-1 *target*)) (if (and a0-1 (not (focus-test? a0-1 disable dead)) @@ -2568,7 +2558,7 @@ This commonly includes things such as: (go-virtual spawning) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -2590,20 +2580,20 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self spawn-count) 0) (set! (-> self spawn-count-total) 0) (set! (-> self player-dist) (-> self notice-dist)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.6)) (let ((a0-1 *target*)) (if (and a0-1 (not (logtest? (-> a0-1 focus-status) (focus-status disable dead)))) (set! (-> self player-dist) (vector-vector-distance (get-trans a0-1 0) (-> self root trans))) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (none) ) @@ -2618,8 +2608,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.5)) (suspend) ) ) @@ -2658,15 +2648,15 @@ This commonly includes things such as: ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (the int (* 300.0 (rand-vu-float-range 0.5 1.0)))) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (the int (* 300.0 (rand-vu-float-range 0.5 1.0)))) (suspend) ) ) ) (while (> (-> self spawn-count) 0) - (let ((gp-4 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-4) (seconds 0.43)) + (let ((gp-4 (current-time))) + (until (>= (- (current-time) gp-4) (seconds 0.43)) (suspend) ) ) @@ -2687,8 +2677,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-4 0.0 0) ) ) - (let ((gp-5 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-5) (seconds 2)) + (let ((gp-5 (current-time))) + (until (>= (- (current-time) gp-5) (seconds 2)) (suspend) ) ) @@ -2721,8 +2711,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-6 0.0 0) ) ) - (let ((gp-7 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-7) (seconds 1)) + (let ((gp-7 (current-time))) + (until (>= (- (current-time) gp-7) (seconds 1)) (suspend) ) ) @@ -2758,8 +2748,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek! 0.0)) ) - (let ((gp-10 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-10) (seconds 1)) + (let ((gp-10 (current-time))) + (until (>= (- (current-time) gp-10) (seconds 1)) (suspend) ) ) @@ -2804,8 +2794,8 @@ This commonly includes things such as: (label cfg-14) (not v1-28) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.51)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.51)) (suspend) ) ) @@ -2818,8 +2808,8 @@ This commonly includes things such as: (set-setting! 'entity-name a3-2 0.0 0) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 1)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 1)) (suspend) ) ) @@ -2858,8 +2848,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-3 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-3) (seconds 2.5)) + (let ((gp-3 (current-time))) + (until (>= (- (current-time) gp-3) (seconds 2.5)) (suspend) ) ) @@ -3003,7 +2993,7 @@ This commonly includes things such as: :virtual #t :code (the-as (function none :behavior lightning-ball) sleep-code) :post (behavior () - (when (>= (- (-> self clock frame-counter) (-> self timer)) (seconds 0.08)) + (when (>= (- (current-time) (-> self timer)) (seconds 0.08)) (let ((gp-0 (new 'stack-no-clear 'collide-query))) (let ((f30-1 (* 182.04445 (rand-vu-float-range -20.0 20.0))) (f28-1 (* 182.04445 (rand-vu-float-range -180.0 180.0))) @@ -3039,7 +3029,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self timer) (-> self clock frame-counter)) + (set! (-> self timer) (current-time)) ) (none) ) @@ -3054,26 +3044,24 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) - (let ((v1-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-2 prim-core collide-as) (collide-spec obstacle)) - (set! (-> v1-2 prim-core action) (collide-action solid)) - (set-vector! (-> v1-2 local-sphere) 0.0 0.0 0.0 56320.0) - (set! (-> s4-0 total-prims) (the-as uint 1)) - (set! (-> s4-0 root-prim) v1-2) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (let ((v1-5 (-> s4-0 root-prim))) - (set! (-> s4-0 backup-collide-as) (-> v1-5 prim-core collide-as)) - (set! (-> s4-0 backup-collide-with) (-> v1-5 prim-core collide-with)) - ) - (set! (-> obj root-override) s4-0) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) + (let ((v1-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-2 prim-core collide-as) (collide-spec obstacle)) + (set! (-> v1-2 prim-core action) (collide-action solid)) + (set-vector! (-> v1-2 local-sphere) 0.0 0.0 0.0 56320.0) + (set! (-> s4-0 total-prims) (the-as uint 1)) + (set! (-> s4-0 root-prim) v1-2) ) - (process-drawable-from-entity! obj arg0) - (set! (-> obj timer) (-> pp clock frame-counter)) - (update-transforms (-> obj root-override)) - (go (method-of-object obj idle)) - (none) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (let ((v1-5 (-> s4-0 root-prim))) + (set! (-> s4-0 backup-collide-as) (-> v1-5 prim-core collide-as)) + (set! (-> s4-0 backup-collide-with) (-> v1-5 prim-core collide-with)) + ) + (set! (-> obj root-override) s4-0) ) + (process-drawable-from-entity! obj arg0) + (set! (-> obj timer) (current-time)) + (update-transforms (-> obj root-override)) + (go (method-of-object obj idle)) + (none) ) diff --git a/test/decompiler/reference/jak2/levels/landing_pad/castle-part_REF.gc b/test/decompiler/reference/jak2/levels/landing_pad/castle-part_REF.gc index 8d6e63716b..7cd7203b82 100644 --- a/test/decompiler/reference/jak2/levels/landing_pad/castle-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/landing_pad/castle-part_REF.gc @@ -427,18 +427,16 @@ ;; definition for function castle-green-dome-light-pulsate (defun castle-green-dome-light-pulsate ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) - (with-pp - (let ((s5-0 lerp-scale) - (s4-0 32.0) - (s3-0 64.0) - (t9-0 sin) - (f0-0 3640.889) - (f1-1 (* 0.0033333334 (the float (-> pp clock frame-counter)))) + (let ((s5-0 lerp-scale) + (s4-0 32.0) + (s3-0 64.0) + (t9-0 sin) + (f0-0 3640.889) + (f1-1 (* 0.0033333334 (the float (current-time)))) + ) + (set! (-> arg2 coneradius) + (s5-0 s4-0 s3-0 (t9-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 360.0))) 360.0)))) -1.0 1.0) ) - (set! (-> arg2 coneradius) - (s5-0 s4-0 s3-0 (t9-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 360.0))) 360.0)))) -1.0 1.0) - ) - ) ) ) diff --git a/test/decompiler/reference/jak2/levels/landing_pad/roboguard-level_REF.gc b/test/decompiler/reference/jak2/levels/landing_pad/roboguard-level_REF.gc index 3f2a91517d..479bf01aa6 100644 --- a/test/decompiler/reference/jak2/levels/landing_pad/roboguard-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/landing_pad/roboguard-level_REF.gc @@ -515,7 +515,7 @@ ) :post (behavior () (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-control-status on-screen))) - (set! (-> self last-draw-time) (-> self clock frame-counter)) + (set! (-> self last-draw-time) (current-time)) ) (enemy-method-129 self) (ja-post) @@ -624,7 +624,7 @@ ) 0 (logior! (-> self focus-status) (focus-status dangerous)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (roboguard-level-method-185 self (the-as symbol 1)) (vector-z-quaternion! (-> self roll-dir) (-> self root-override2 quat)) (set! (-> self roll-timer) 0) @@ -667,10 +667,8 @@ ) 0 (nav-enemy-method-160 self) - (when (< (-> self roll-timer) (-> self clock frame-counter)) - (set! (-> self roll-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 3.0 5.0)))) - ) + (when (< (-> self roll-timer) (current-time)) + (set! (-> self roll-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 3.0 5.0))))) (let ((gp-2 (handle->process (-> self focus handle)))) (when (and gp-2 (and gp-2 @@ -1133,99 +1131,94 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch object vs symbol. (defmethod enemy-method-76 roboguard-level ((obj roboguard-level) (arg0 process) (arg1 event-message-block)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (the-as - symbol - (cond - ((or (= (-> arg0 type) target) (not (logtest? (-> obj flags) 4))) - ((method-of-type nav-enemy enemy-method-76) obj arg0 arg1) - ) - (else - (when (!= (-> arg0 type) target) - (-> arg1 param 0) - (let* ((s3-0 arg0) - (s1-0 (if (type? s3-0 process-focusable) - s3-0 - ) - ) - ) - (when (and s1-0 (logtest? (process-mask enemy) (-> s1-0 mask))) - (let ((s2-1 (vector-! - (new 'stack-no-clear 'vector) - (-> obj root-override2 trans) - (-> (the-as process-drawable s1-0) root trans) - ) - ) - ) - (new 'stack-no-clear 'vector) - 0.0 - (let ((s3-1 (new 'stack-no-clear 'vector))) - (vector-normalize! s2-1 1.0) - (let ((f0-3 - (- (vector-dot (-> obj root-override2 transv) s2-1) - (vector-dot (-> (the-as process-drawable s1-0) root transv) s2-1) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (the-as + symbol + (cond + ((or (= (-> arg0 type) target) (not (logtest? (-> obj flags) 4))) + ((method-of-type nav-enemy enemy-method-76) obj arg0 arg1) + ) + (else + (when (!= (-> arg0 type) target) + (-> arg1 param 0) + (let* ((s3-0 arg0) + (s1-0 (if (type? s3-0 process-focusable) + s3-0 + ) + ) + ) + (when (and s1-0 (logtest? (process-mask enemy) (-> s1-0 mask))) + (let ((s2-1 (vector-! + (new 'stack-no-clear 'vector) + (-> obj root-override2 trans) + (-> (the-as process-drawable s1-0) root trans) ) ) - (let ((a1-5 (-> obj nav state))) - (set! (-> s3-1 quad) (-> a1-5 velocity quad)) - ) - (let ((a0-16 s3-1)) - (let ((v1-20 s3-1)) - (let ((a1-9 (* -1.0 f0-3))) - (.mov vf7 a1-9) - ) - (.lvf vf5 (&-> s2-1 quad)) - (.lvf vf4 (&-> v1-20 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-16 quad) vf6) - ) - ) - (let ((a0-17 (-> obj nav state)) - (v1-22 s3-1) - ) - (set! (-> a0-17 velocity quad) (-> v1-22 quad)) - ) - 0 - (set! (-> obj speed) (vector-length s3-1)) - (let ((v1-28 (-> obj nav state))) - (set! (-> v1-28 speed) (-> obj speed)) - ) - 0 - (let ((v1-30 (-> obj nav))) - (set! (-> v1-30 target-speed) (-> obj speed)) - ) - 0 - (set! (-> obj roll-timer) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 3.0 5.0)))) - ) - (set! (-> obj roll-dir quad) (-> s3-1 quad)) ) - ) - (set! (-> obj roll-dir y) 0.0) - (vector-xz-normalize! (-> obj roll-dir) 1.0) - (let ((a0-22 (-> obj nav state)) - (v1-40 (-> obj roll-dir)) + (new 'stack-no-clear 'vector) + 0.0 + (let ((s3-1 (new 'stack-no-clear 'vector))) + (vector-normalize! s2-1 1.0) + (let ((f0-3 (- (vector-dot (-> obj root-override2 transv) s2-1) + (vector-dot (-> (the-as process-drawable s1-0) root transv) s2-1) + ) + ) + ) + (let ((a1-5 (-> obj nav state))) + (set! (-> s3-1 quad) (-> a1-5 velocity quad)) ) - (set! (-> a0-22 heading quad) (-> v1-40 quad)) + (let ((a0-16 s3-1)) + (let ((v1-20 s3-1)) + (let ((a1-9 (* -1.0 f0-3))) + (.mov vf7 a1-9) + ) + (.lvf vf5 (&-> s2-1 quad)) + (.lvf vf4 (&-> v1-20 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-16 quad) vf6) + ) + ) + (let ((a0-17 (-> obj nav state)) + (v1-22 s3-1) + ) + (set! (-> a0-17 velocity quad) (-> v1-22 quad)) + ) + 0 + (set! (-> obj speed) (vector-length s3-1)) + (let ((v1-28 (-> obj nav state))) + (set! (-> v1-28 speed) (-> obj speed)) + ) + 0 + (let ((v1-30 (-> obj nav))) + (set! (-> v1-30 target-speed) (-> obj speed)) + ) + 0 + (set! (-> obj roll-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 3.0 5.0))))) + (set! (-> obj roll-dir quad) (-> s3-1 quad)) ) - 0 - (logior! (-> obj flags) 64) ) + (set! (-> obj roll-dir y) 0.0) + (vector-xz-normalize! (-> obj roll-dir) 1.0) + (let ((a0-22 (-> obj nav state)) + (v1-40 (-> obj roll-dir)) + ) + (set! (-> a0-22 heading quad) (-> v1-40 quad)) + ) + 0 + (logior! (-> obj flags) 64) ) - (send-event arg0 'touch (-> arg1 param 0)) ) + (send-event arg0 'touch (-> arg1 param 0)) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/left/chase/target-indax_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/left/chase/target-indax_REF.gc index c1264b7d15..68a395cb89 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/left/chase/target-indax_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/left/chase/target-indax_REF.gc @@ -271,7 +271,7 @@ (set! (-> self control bend-target) 0.0) (target-collide-set! 'indax 0.0) (set! (-> self fact-override health) (-> self fact-override health-max)) - (set! (-> self indax indax-start-time) (-> self clock frame-counter)) + (set! (-> self indax indax-start-time) (current-time)) (set! (-> self indax art-group-backup) (-> self draw art-group)) (set! (-> self draw art-group) (-> self sidekick 0 draw art-group)) (logior! (-> self draw status) (draw-control-status no-draw-bounds2)) @@ -585,7 +585,7 @@ (defstate target-indax-walk (target) :event target-indax-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self control mod-surface) *indax-walk-mods*) (none) ) @@ -647,7 +647,7 @@ (let ((f26-0 0.0) (f30-0 0.0) (f28-0 0.0) - (gp-0 (-> self clock frame-counter)) + (gp-0 (current-time)) ) (let ((v1-3 (ja-group))) (cond @@ -699,12 +699,12 @@ (suspend) (let ((f26-1 (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0))) (cond - ((>= (- (-> self clock frame-counter) gp-0) (seconds 5)) - (set! gp-0 (-> self clock frame-counter)) + ((>= (- (current-time) gp-0) (seconds 5)) + (set! gp-0 (current-time)) ) - ((>= (- (-> self clock frame-counter) gp-0) (seconds 2.5)) + ((>= (- (current-time) gp-0) (seconds 2.5)) ) - ((>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + ((>= (- (current-time) gp-0) (seconds 1)) (set! f28-0 (seek f28-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) ) (else @@ -904,7 +904,7 @@ (defstate target-indax-double-jump (target) :event target-indax-jump-event-handler :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (init-var-jump arg0 arg1 #t #t (-> self control transv) 2.0) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (if (!= (-> self control mod-surface) *slide-jump-mods*) @@ -1041,7 +1041,7 @@ (defstate target-indax-trip (target) :event target-indax-jump-event-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "jump" :vol 70) (logclear! (-> self control status) (collide-status on-surface on-ground touch-surface)) (none) @@ -1217,13 +1217,13 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (target-height-above-ground) (-> *TARGET-bank* fall-height)) ) - (>= (- (-> self clock frame-counter) (-> self control sliding-start-time)) (seconds 0.04)) + (>= (- (current-time) (-> self control sliding-start-time)) (seconds 0.04)) ) ) (go target-indax-falling #f) @@ -1233,14 +1233,12 @@ (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) - (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame18)) (seconds 0.04)) + (>= (- (current-time) (-> self control unknown-time-frame18)) (seconds 0.04)) ) (set-forward-vel 0.0) ) ((and (not (cpad-hold? (-> self control cpad number) square)) - (>= (- (-> self clock frame-counter) (-> self control unknown-combo-tracker00 move-start-time)) - (seconds 0.05) - ) + (>= (- (current-time) (-> self control unknown-combo-tracker00 move-start-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control ctrl-xz-vel)))) @@ -1270,7 +1268,7 @@ ) (suspend) (ja :num! (seek! max (* (-> self control current-surface align-speed) f28-0))) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -1280,7 +1278,7 @@ ) ) (if (and (not (logtest? (-> self control status) (collide-status on-surface))) - (>= (- (-> self clock frame-counter) (-> self control last-time-on-surface)) + (>= (- (current-time) (-> self control last-time-on-surface)) (the-as time-frame (-> *TARGET-bank* ground-timeout)) ) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1337,7 +1335,7 @@ ) :code (behavior ((arg0 symbol) (arg1 attack-info)) (logclear! (-> self water flags) (water-flags jump-out)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self neck flex-blend) 0.0) (let ((gp-0 (-> self attack-info))) (let ((s5-0 (new 'stack-no-clear 'vector))) @@ -1385,7 +1383,7 @@ (cond ((= arg0 'attack) (logior! (-> self focus-status) (focus-status hit)) - (set! (-> self game hit-time) (-> self clock frame-counter)) + (set! (-> self game hit-time) (current-time)) (case (-> gp-0 mode) (('endlessfall) (cond @@ -1393,8 +1391,8 @@ (let ((s4-1 (new-stack-vector0))) (set! (-> s4-1 quad) (-> self control last-trans-on-ground quad)) (ja-channel-set! 0) - (let ((s3-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s3-1) (seconds 1)) + (let ((s3-1 (current-time))) + (until (>= (- (current-time) s3-1) (seconds 1)) (suspend) ) ) @@ -1571,7 +1569,7 @@ ) (set! (-> self control transv quad) (the-as uint128 0)) (initialize! (-> self game) 'life (the-as game-save #f) (the-as string #f)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sleep-code) (none) ) diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/monster-frog_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/monster-frog_REF.gc index 241fdbf141..401c9f1430 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/monster-frog_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/monster-frog_REF.gc @@ -558,7 +558,7 @@ (if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory)) (go-virtual victory) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (nav-enemy-method-163 self) (go-stare2 self) ) @@ -749,7 +749,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior monster-frog) enemy-event-handler) :enter (behavior ((arg0 vector)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-beetle_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-beetle_REF.gc index 0ba0df3ddd..63b053e222 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-beetle_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-beetle_REF.gc @@ -232,44 +232,42 @@ (defmethod general-event-handler tomb-beetle ((obj tomb-beetle) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (let ((v1-0 (new 'static 'array int64 2 -1 0))) - (case arg2 - (('cue-chase) - (set! (-> obj round) (-> arg3 param 0)) - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) - ) - (('attack) - (when (and (-> obj next-state) (let ((a1-4 (-> obj next-state name))) - (or (= a1-4 'active) (= a1-4 'stand)) - ) - ) - (-> arg3 param 1) - (cond - ((logtest? (-> obj fact-info-override enemy-options) (ash 1 (+ (-> obj round) 8))) - (set! (-> v1-0 0) (the-as int (-> pp clock frame-counter))) - (go (method-of-object obj go-to-door)) - ) - ((>= (- (-> pp clock frame-counter) (the-as time-frame (-> v1-0 0))) (seconds 0.5)) - (logior! (-> obj flags) 1) - (go (method-of-object obj die)) - ) - ) - ) - ) - (('die) + (let ((v1-0 (new 'static 'array int64 2 -1 0))) + (case arg2 + (('cue-chase) + (set! (-> obj round) (-> arg3 param 0)) + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('attack) + (when (and (-> obj next-state) (let ((a1-4 (-> obj next-state name))) + (or (= a1-4 'active) (= a1-4 'stand)) + ) + ) + (-> arg3 param 1) (cond - ((and (-> obj next-state) (= (-> obj next-state name) 'key)) - (go (method-of-object obj explode)) + ((logtest? (-> obj fact-info-override enemy-options) (ash 1 (+ (-> obj round) 8))) + (set! (-> v1-0 0) (the-as int (current-time))) + (go (method-of-object obj go-to-door)) ) - ((not (and (-> obj next-state) (= (-> obj next-state name) 'dormant))) - (go (method-of-object obj fly-away)) + ((>= (- (current-time) (the-as time-frame (-> v1-0 0))) (seconds 0.5)) + (logior! (-> obj flags) 1) + (go (method-of-object obj die)) ) ) ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) + ) + (('die) + (cond + ((and (-> obj next-state) (= (-> obj next-state name) 'key)) + (go (method-of-object obj explode)) ) + ((not (and (-> obj next-state) (= (-> obj next-state name) 'dormant))) + (go (method-of-object obj fly-away)) + ) + ) + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -439,7 +437,7 @@ (logclear! (-> v1-1 settings flags) (shadow-flags disable-draw)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -451,12 +449,12 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter)) + (let ((gp-0 (current-time)) (s5-0 (the int (* 300.0 (rand-vu-float-range 1.1 2.3)))) (f30-1 (rand-vu-float-range 0.8 1.4)) ) (ja-no-eval :group! tomb-beetle-wiggle-ja :num! (loop! f30-1) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-0) s5-0) + (until (>= (- (current-time) gp-0) s5-0) (suspend) (ja :num! (loop! f30-1)) ) @@ -563,7 +561,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior tomb-beetle) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -577,7 +575,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (go-virtual active) ) (none) @@ -637,15 +635,13 @@ (none) ) :code (behavior () - (set! (-> self state-timeout) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.0 0.8)))) - ) + (set! (-> self state-timeout) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.0 0.8))))) (let ((v1-6 (ja-group))) (cond ((and v1-6 (= v1-6 tomb-beetle-stand0-ja)) (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (if (>= (-> self clock frame-counter) (-> self state-timeout)) + (if (>= (current-time) (-> self state-timeout)) (goto cfg-20) ) (suspend) @@ -663,7 +659,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (if (>= (-> self clock frame-counter) (-> self state-timeout)) + (if (>= (current-time) (-> self state-timeout)) (goto cfg-20) ) (suspend) @@ -853,8 +849,8 @@ (-> gp-1 ppointer) ) ) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (seconds 2)) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (seconds 2)) (suspend) ) ) @@ -1139,7 +1135,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-obs_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-obs_REF.gc index 2c9d30a17b..7df2488318 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-obs_REF.gc @@ -500,8 +500,8 @@ This commonly includes things such as: ;; definition for function position-spikes (defbehavior position-spikes tomb-stair-block ((arg0 int)) - (let ((s5-0 (and (nonzero? arg0) (< (mod (-> self clock frame-counter) arg0) (/ arg0 2)))) - (s4-0 (and (nonzero? arg0) (< (mod (+ (-> self clock frame-counter) (seconds 0.75)) arg0) (/ arg0 2)))) + (let ((s5-0 (and (nonzero? arg0) (< (mod (current-time) arg0) (/ arg0 2)))) + (s4-0 (and (nonzero? arg0) (< (mod (+ (current-time) (seconds 0.75)) arg0) (/ arg0 2)))) ) (dotimes (s3-0 4) (let ((f0-1 (seek @@ -570,7 +570,7 @@ This commonly includes things such as: :virtual #t :enter (behavior () (set! (-> self camera-state) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (task-node-close! (game-task-node tomb-poles-block)) (none) ) @@ -591,7 +591,7 @@ This commonly includes things such as: (remove-setting! 'string-startup-vector) (set! (-> self camera-state) 3) ) - ((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 8))) + ((and (= (-> self camera-state) 1) (>= (- (current-time) (-> self state-time)) (seconds 8))) (set-setting! 'interp-time 'abs 0.0 0) (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) (remove-setting! 'entity-name) @@ -614,8 +614,8 @@ This commonly includes things such as: (set! (-> self camera-state) 1) (ja-channel-push! 1 (seconds 2)) (ja :group! (-> self draw art-group data 3) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 2)) (lift-pool 0) (drop-pool 1) (suspend) @@ -703,7 +703,7 @@ This commonly includes things such as: (set! (-> self camera-state) 3) ) ) - ((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4))) + ((and (= (-> self camera-state) 1) (>= (- (current-time) (-> self state-time)) (seconds 4))) (set-setting! 'interp-time 'abs 0.0 0) (set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0) (remove-setting! 'entity-name) @@ -734,7 +734,7 @@ This commonly includes things such as: (set! v1-1 (or (not *target*) (process-grab? *target* #f))) ) (set-setting! 'entity-name "camera-170" 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self camera-state) 1) (ja-channel-push! 1 (seconds 2)) (until #f @@ -1739,7 +1739,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (none) ) @@ -1747,9 +1747,9 @@ This commonly includes things such as: (set! (-> self flags) (logand -2 (-> self flags))) (plat-trans) (if (not (logtest? (-> self flags) 1)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) (if (= (-> self path-pos) 0.0) (set! (-> self dest-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -1810,7 +1810,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1822,7 +1822,7 @@ This commonly includes things such as: ) :trans (behavior () (plat-trans) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (cond ((= (-> self path-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -2085,7 +2085,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -2117,7 +2117,7 @@ This commonly includes things such as: (set! sv-96 s4-0) (let ((s1-0 s5-1)) (let ((s0-1 (vector-! (new 'stack-no-clear 'vector) gp-2 s5-1))) - (let ((v1-13 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 300.0))) + (let ((v1-13 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self state-time))) 0.0 300.0))) (.mov vf7 v1-13) ) (.lvf vf5 (&-> s0-1 quad)) @@ -2148,7 +2148,7 @@ This commonly includes things such as: (defstate doors-open (tomb-sphinx) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -2205,7 +2205,7 @@ This commonly includes things such as: (.mov.vf vf6 vf0 :mask #b1000) (.sub.vf vf6 vf4 vf5 :mask #b111) (.svf (&-> sv-96 quad) vf6) - (let ((v1-15 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 930.0))) + (let ((v1-15 (lerp-scale 0.0 1.0 (the float (- (current-time) (-> self state-time))) 0.0 930.0))) (.mov vf7 v1-15) ) (.lvf vf5 (&-> sv-96 quad)) diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-scenes_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-scenes_REF.gc index 6e1f0cdd6e..c22d877a09 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-scenes_REF.gc @@ -348,12 +348,12 @@ (let ((v1-0 #f) (sub-change-time (-> self subtitle-change-time)) ) - (when (>= (- (-> self clock frame-counter) (-> self speed-press-time)) 0) + (when (>= (- (current-time) (-> self speed-press-time)) 0) (set! sub-change-time (logxor sub-change-time 2048)) - (set! (-> self speed-press-time) (+ (-> self clock frame-counter) (seconds 0.5))) + (set! (-> self speed-press-time) (+ (current-time) (seconds 0.5))) (set! v1-0 #t) ) - (when (>= (- (-> self clock frame-counter) (-> self unknown-time)) 0) + (when (>= (- (current-time) (-> self unknown-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -365,9 +365,7 @@ ) ) ) - (set! (-> self unknown-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) - ) + (set! (-> self unknown-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) (set! v1-0 #t) ) (when v1-0 diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-water_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-water_REF.gc index 4840cf98dc..5e60293e28 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-water_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-water_REF.gc @@ -116,8 +116,8 @@ (none) ) :code (behavior ((arg0 time-frame)) - (let ((s5-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-0) arg0) + (let ((s5-0 (current-time))) + (until (>= (- (current-time) s5-0) arg0) (suspend) ) ) @@ -558,35 +558,33 @@ This commonly includes things such as: ;; definition for method 39 of type tomb-beetle-button ;; WARN: Return type mismatch int vs none. (defmethod tomb-beetle-button-method-39 tomb-beetle-button ((obj tomb-beetle-button)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj speech-timer)) (seconds 6)) - (let ((s5-0 (rand-vu-int-count-excluding 4 (the-as int (-> obj speech-mask))))) - (let* ((v1-4 s5-0) - (t0-0 (cond - ((zero? v1-4) - "ora011" - ) - ((= v1-4 1) - "ora012" - ) - ((= v1-4 2) - "ora013" - ) - ((= v1-4 3) - "ora014" - ) - ) + (when (>= (- (current-time) (-> obj speech-timer)) (seconds 6)) + (let ((s5-0 (rand-vu-int-count-excluding 4 (the-as int (-> obj speech-mask))))) + (let* ((v1-4 s5-0) + (t0-0 (cond + ((zero? v1-4) + "ora011" + ) + ((= v1-4 1) + "ora012" + ) + ((= v1-4 2) + "ora013" + ) + ((= v1-4 3) + "ora014" + ) ) - ) - (add-process *gui-control* obj (gui-channel alert) (gui-action play) t0-0 -99.0 0) - ) - (set! (-> obj speech-mask) (the-as uint (ash 1 s5-0))) + ) + ) + (add-process *gui-control* obj (gui-channel alert) (gui-action play) t0-0 -99.0 0) ) - (set! (-> obj speech-timer) (-> pp clock frame-counter)) + (set! (-> obj speech-mask) (the-as uint (ash 1 s5-0))) ) - 0 - (none) + (set! (-> obj speech-timer) (current-time)) ) + 0 + (none) ) ;; failed to figure out what this is: @@ -642,7 +640,7 @@ This commonly includes things such as: (t9-0) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + (when (>= (- (current-time) (-> self state-time)) (seconds 4)) (if (and *target* (focus-test? *target* grabbed)) (process-release? *target*) ) @@ -1024,7 +1022,7 @@ This commonly includes things such as: (sv-160 int) (sv-176 (function vector vector float)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self plat-idx) 0) (dotimes (gp-0 (-> self plat-count)) (if (nonzero? (-> self plat gp-0)) @@ -1097,8 +1095,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 2)) (suspend) ) ) @@ -1112,14 +1110,14 @@ This commonly includes things such as: :virtual #t :event tomb-plat-simon-handler :enter (behavior () - (set! (-> self state-time) (+ (-> self clock frame-counter) (seconds -1))) + (set! (-> self state-time) (+ (current-time) (seconds -1))) (set! (-> self plat-idx) 0) 0 (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) - (set! (-> self state-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) + (set! (-> self state-time) (current-time)) (if (< (-> self plat-idx) (-> self plat-seq-count)) (send-event (handle->process (-> self plat (-> self plat-seq (-> self plat-idx)))) 'blink) ) @@ -1259,7 +1257,7 @@ This commonly includes things such as: ;; INFO: Used lq/sq (defbehavior tomb-simon-block-trans tomb-simon-block () (when (logtest? (-> self flags) (simon-block-flags sbf0)) - (when (>= (-> self clock frame-counter) (-> self blink-timer 1)) + (when (>= (current-time) (-> self blink-timer 1)) (cond ((logtest? (-> self flags) (simon-block-flags sbf1)) (set! (-> self draw color-mult quad) (-> self color quad)) @@ -1270,9 +1268,9 @@ This commonly includes things such as: ) ) (logxor! (-> self flags) (simon-block-flags sbf1)) - (set! (-> self blink-timer 1) (+ (-> self clock frame-counter) (seconds 0.2))) + (set! (-> self blink-timer 1) (+ (current-time) (seconds 0.2))) ) - (when (>= (- (-> self clock frame-counter) (-> self blink-timer 0)) (seconds 1.2)) + (when (>= (- (current-time) (-> self blink-timer 0)) (seconds 1.2)) (logclear! (-> self flags) (simon-block-flags sbf0)) (set! (-> self draw color-mult quad) (-> self color quad)) ) @@ -1325,7 +1323,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self flags) (simon-block-flags sbf0 sbf1 sbf2 sbf5)) (set! (-> self move-rate) 122880.0) (none) @@ -1333,7 +1331,7 @@ This commonly includes things such as: :trans tomb-simon-block-trans :code (the-as (function none :behavior tomb-simon-block) sleep-code) :post (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) + (if (>= (- (current-time) (-> self state-time)) (the int (* 300.0 (+ (* 0.1 (the float (-> self order))) (* 0.015 (the float (-> self my-idx)))))) ) (tomb-simon-block-post) @@ -1355,7 +1353,7 @@ This commonly includes things such as: (go-virtual idle) ) (('touch 'ridden 'bonk 'edge-grabbed) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (when (logtest? (-> self flags) (simon-block-flags sbf4)) (let* ((gp-0 *target*) (a0-10 (if (type? gp-0 process-focusable) @@ -1402,14 +1400,14 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self flags) (simon-block-flags sbf4)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (send-event (ppointer->process (-> self parent)) 'die-but (-> self my-idx)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (sound-play "tomb-simon-last") (go-virtual die) ) @@ -1470,7 +1468,7 @@ This commonly includes things such as: (go-virtual temporary) ) (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1479,7 +1477,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (none) ) :trans (behavior () @@ -1494,7 +1492,7 @@ This commonly includes things such as: (a0-3 (-> self root-override trans)) ) (when (and (or (< 16384.0 (fabs (- (-> a0-3 x) (-> v1-2 x)))) (< 16384.0 (fabs (- (-> a0-3 z) (-> v1-2 z))))) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.25)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.25)) ) (when (= (-> self next-idx) -1) (when (< (-> *event-queue* length) (-> *event-queue* allocated-length)) @@ -1537,7 +1535,7 @@ This commonly includes things such as: (('ridden) (when (not (logtest? (-> self flags) (simon-block-flags sbf2))) (logior! (-> self flags) (simon-block-flags sbf2)) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -1553,7 +1551,7 @@ This commonly includes things such as: ) :trans (behavior () (if (and (logtest? (-> self flags) (simon-block-flags sbf2)) - (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) ) (go-virtual wobble-die) ) @@ -1599,14 +1597,14 @@ This commonly includes things such as: :virtual #t :code (behavior () (set! (-> self move-rate) (* 4096.0 (rand-vu-float-range 0.5 1.5))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.25)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.25)) (suspend) ) ) (logclear! (-> self root-override root-prim prim-core action) (collide-action rideable)) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -1626,12 +1624,10 @@ This commonly includes things such as: ;; definition for method 41 of type tomb-simon-block ;; WARN: Return type mismatch time-frame vs none. (defmethod set-blink-timers! tomb-simon-block ((obj tomb-simon-block)) - (with-pp - (logior! (-> obj flags) (simon-block-flags sbf0 sbf1)) - (set! (-> obj blink-timer 0) (-> pp clock frame-counter)) - (set! (-> obj blink-timer 1) (-> pp clock frame-counter)) - (none) - ) + (logior! (-> obj flags) (simon-block-flags sbf0 sbf1)) + (set! (-> obj blink-timer 0) (current-time)) + (set! (-> obj blink-timer 1) (current-time)) + (none) ) ;; definition for method 30 of type tomb-simon-block @@ -2094,8 +2090,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.45)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.45)) (suspend) ) ) @@ -2206,7 +2202,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self pat-entry-index) 0) (set-vector! (-> self draw color-mult) 0.9 0.9 0.9 1.0) (let ((gp-0 (-> self actor-group 0))) @@ -2249,8 +2245,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.2)) (suspend) ) ) @@ -2263,18 +2259,18 @@ This commonly includes things such as: 0.0 (+ (-> (the-as (pointer int32) (+ (the-as uint (-> self pat-tbl)) (* (-> self pat-index) 4)))) 18) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.2)) (suspend) ) ) (process-grab? *target* #f) - (let ((gp-2 (-> self clock frame-counter)) + (let ((gp-2 (current-time)) (s5-0 540) (f30-0 1.0) ) (ja-no-eval :group! (-> self draw art-group data 4) :num! (loop! f30-0) :frame-num 0.0) - (until (>= (- (-> self clock frame-counter) gp-2) s5-0) + (until (>= (- (current-time) gp-2) s5-0) (suspend) (ja :num! (loop! f30-0)) ) @@ -2600,10 +2596,10 @@ This commonly includes things such as: (until #f (set! (-> self can-exit-running?) #f) (let ((gp-0 0) - (s5-0 (-> self clock frame-counter)) + (s5-0 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s5-0) (-> self on-duration)) - (when (< (-> self harmless-time) (-> self clock frame-counter)) + (until (>= (- (current-time) s5-0) (-> self on-duration)) + (when (< (-> self harmless-time) (current-time)) (tomb-water-trap-method-22 self) (dotimes (s4-0 (+ (-> self path curve num-cverts) -1)) (let ((s3-0 (get-point-in-path! (-> self path) (new 'stack-no-clear 'vector) (the float s4-0) 'interp)) @@ -2645,18 +2641,18 @@ This commonly includes things such as: ) (set! (-> self can-exit-running?) #t) (let ((gp-1 90)) - (let ((s5-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-1) gp-1) + (let ((s5-1 (current-time))) + (until (>= (- (current-time) s5-1) gp-1) (suspend) ) ) (let ((s5-2 #f) - (s4-2 (-> self clock frame-counter)) + (s4-2 (current-time)) ) - (until (>= (- (-> self clock frame-counter) s4-2) + (until (>= (- (current-time) s4-2) (the-as time-frame (- (- (-> self sync period) (the-as uint (-> self on-duration))) (the-as uint gp-1))) ) - (when (and (not s5-2) (>= (- (-> self clock frame-counter) s4-2) (seconds 0.3))) + (when (and (not s5-2) (>= (- (current-time) s4-2) (seconds 0.3))) (set! s5-2 #t) (set-tombc-electricity-scale! 0.0) ) @@ -2736,7 +2732,7 @@ This commonly includes things such as: (set! (-> a1-5 param 1) (the-as uint a0-17)) ) (if (send-event-function (-> s4-1 cshape process) a1-5) - (set! (-> obj harmless-time) (+ (-> pp clock frame-counter) (seconds 3))) + (set! (-> obj harmless-time) (+ (current-time) (seconds 3))) ) ) ) @@ -2940,11 +2936,11 @@ This commonly includes things such as: (defstate open (tomb-smash-door) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self timeout)) (let* ((s5-0 *target*) (gp-0 (if (type? s5-0 process-focusable) s5-0 diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/widow-baron_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/widow-baron_REF.gc index fd9853f47f..2e6c8bfcc7 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/widow-baron_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/widow-baron_REF.gc @@ -167,7 +167,7 @@ (defmethod widow-rand-vector-method-10 widow-rand-vector ((obj widow-rand-vector)) (with-pp (set! (-> obj timer) - (- (the-as time-frame (-> obj timer)) (- (-> pp clock frame-counter) (-> pp clock old-frame-counter))) + (- (the-as time-frame (-> obj timer)) (- (current-time) (-> pp clock old-frame-counter))) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -539,84 +539,82 @@ ;; definition for method 21 of type baron-pod ;; WARN: Return type mismatch int vs none. (defmethod baron-pod-method-21 baron-pod ((obj baron-pod) (arg0 symbol)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj red-tip-change-time)) 0) - (set! (-> obj alt-red-tip-on) (not (-> obj alt-red-tip-on))) - (set! (-> obj red-tip-change-time) (+ (-> pp clock frame-counter) (seconds 0.5))) - (set! arg0 #t) - ) - (when (>= (- (-> pp clock frame-counter) (-> obj blink-time)) 0) - (set! (-> obj blink-mask) 0) - (dotimes (s5-0 10) - (let* ((f30-0 0.5) - (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-18 (the-as number (logior #x3f800000 v1-17))) - ) - (if (< f30-0 (+ -1.0 (the-as float v1-18))) - (logior! (-> obj blink-mask) (ash 1 s5-0)) - ) - ) - ) - (set! (-> obj blink-time) (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) - (set! arg0 #t) - ) - (when arg0 - (remove-from-process *part-engine* obj) - (add-connection *part-engine* obj 13 obj 3264 (new 'static 'vector :w 819200.0)) - (add-connection *part-engine* obj 14 obj 3264 (new 'static 'vector :w 819200.0)) - (if (-> obj alt-red-tip-on) - (add-connection *part-engine* obj 5 obj 3251 (new 'static 'vector :w 819200.0)) - (add-connection *part-engine* obj 6 obj 3251 (new 'static 'vector :w 819200.0)) - ) - (let ((s5-2 (-> obj blink-mask))) - (if (logtest? s5-2 1) - (add-connection *part-engine* obj 8 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 2) - (add-connection *part-engine* obj 9 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 4) - (add-connection *part-engine* obj 10 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 8) - (add-connection *part-engine* obj 11 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 16) - (add-connection *part-engine* obj 12 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 32) - (add-connection *part-engine* obj 15 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 64) - (add-connection *part-engine* obj 16 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 128) - (add-connection *part-engine* obj 17 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 256) - (add-connection *part-engine* obj 18 obj 3252 (new 'static 'vector :w 819200.0)) - ) - (if (logtest? s5-2 512) - (add-connection *part-engine* obj 19 obj 3252 (new 'static 'vector :w 819200.0)) - ) - ) - (cond - ((-> obj has-stone) - (add-connection *part-engine* obj 4 obj 3258 (new 'static 'vector :y 4096.0 :w 819200.0)) - (add-connection *part-engine* obj 4 obj 3259 (new 'static 'vector :y 4096.0 :w 819200.0)) - ) - (else - (add-connection *part-engine* obj 4 obj 3256 (new 'static 'vector :y 4096.0 :w 819200.0)) - (add-connection *part-engine* obj 4 obj 3257 (new 'static 'vector :y 4096.0 :w 819200.0)) - ) - ) - ) - (if (-> obj has-stone) - (spawn (-> obj part) (-> obj root trans)) - ) - 0 - (none) + (when (>= (- (current-time) (-> obj red-tip-change-time)) 0) + (set! (-> obj alt-red-tip-on) (not (-> obj alt-red-tip-on))) + (set! (-> obj red-tip-change-time) (+ (current-time) (seconds 0.5))) + (set! arg0 #t) ) + (when (>= (- (current-time) (-> obj blink-time)) 0) + (set! (-> obj blink-mask) 0) + (dotimes (s5-0 10) + (let* ((f30-0 0.5) + (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-18 (the-as number (logior #x3f800000 v1-17))) + ) + (if (< f30-0 (+ -1.0 (the-as float v1-18))) + (logior! (-> obj blink-mask) (ash 1 s5-0)) + ) + ) + ) + (set! (-> obj blink-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) + (set! arg0 #t) + ) + (when arg0 + (remove-from-process *part-engine* obj) + (add-connection *part-engine* obj 13 obj 3264 (new 'static 'vector :w 819200.0)) + (add-connection *part-engine* obj 14 obj 3264 (new 'static 'vector :w 819200.0)) + (if (-> obj alt-red-tip-on) + (add-connection *part-engine* obj 5 obj 3251 (new 'static 'vector :w 819200.0)) + (add-connection *part-engine* obj 6 obj 3251 (new 'static 'vector :w 819200.0)) + ) + (let ((s5-2 (-> obj blink-mask))) + (if (logtest? s5-2 1) + (add-connection *part-engine* obj 8 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 2) + (add-connection *part-engine* obj 9 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 4) + (add-connection *part-engine* obj 10 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 8) + (add-connection *part-engine* obj 11 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 16) + (add-connection *part-engine* obj 12 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 32) + (add-connection *part-engine* obj 15 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 64) + (add-connection *part-engine* obj 16 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 128) + (add-connection *part-engine* obj 17 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 256) + (add-connection *part-engine* obj 18 obj 3252 (new 'static 'vector :w 819200.0)) + ) + (if (logtest? s5-2 512) + (add-connection *part-engine* obj 19 obj 3252 (new 'static 'vector :w 819200.0)) + ) + ) + (cond + ((-> obj has-stone) + (add-connection *part-engine* obj 4 obj 3258 (new 'static 'vector :y 4096.0 :w 819200.0)) + (add-connection *part-engine* obj 4 obj 3259 (new 'static 'vector :y 4096.0 :w 819200.0)) + ) + (else + (add-connection *part-engine* obj 4 obj 3256 (new 'static 'vector :y 4096.0 :w 819200.0)) + (add-connection *part-engine* obj 4 obj 3257 (new 'static 'vector :y 4096.0 :w 819200.0)) + ) + ) + ) + (if (-> obj has-stone) + (spawn (-> obj part) (-> obj root trans)) + ) + 0 + (none) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/widow-extras_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/widow-extras_REF.gc index 351ea0a40e..72e0308f6a 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/widow-extras_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/widow-extras_REF.gc @@ -774,7 +774,7 @@ This commonly includes things such as: ) ) (('fizzle) - (let* ((gp-1 (-> self clock frame-counter)) + (let* ((gp-1 (current-time)) (f30-1 600.0) (v1-34 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-35 (the-as number (logior #x3f800000 v1-34))) @@ -817,7 +817,7 @@ This commonly includes things such as: ) ) (('fizzle) - (let* ((gp-1 (-> self clock frame-counter)) + (let* ((gp-1 (current-time)) (f30-0 600.0) (v1-34 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-35 (the-as number (logior #x3f800000 v1-34))) @@ -834,13 +834,11 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-back-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (and (nonzero? (-> self fizzle-timer)) - (>= (- (-> self clock frame-counter) (-> self fizzle-timer)) (seconds 3)) - ) + (if (and (nonzero? (-> self fizzle-timer)) (>= (- (current-time) (-> self fizzle-timer)) (seconds 3))) (go-virtual explode) ) (set! (-> self x-rotate) (+ 1092.2667 (-> self x-rotate))) @@ -848,7 +846,7 @@ This commonly includes things such as: (widow-bomb-method-34 self) (spawn-with-cspace (-> self part) (-> self node-list data 3)) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual explode) ) (else @@ -878,7 +876,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-back-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (initialize (-> self impact) self @@ -893,16 +891,14 @@ This commonly includes things such as: (none) ) :trans (behavior () - (if (and (nonzero? (-> self fizzle-timer)) - (>= (- (-> self clock frame-counter) (-> self fizzle-timer)) (seconds 3)) - ) + (if (and (nonzero? (-> self fizzle-timer)) (>= (- (current-time) (-> self fizzle-timer)) (seconds 3))) (go-virtual explode) ) (set! (-> self x-rotate) (+ 4369.067 (-> self x-rotate))) (set! (-> self y-rotate) (+ 3458.8445 (-> self y-rotate))) (widow-bomb-method-34 self) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self traj time))) + ((>= (- (current-time) (-> self state-time)) (the int (-> self traj time))) (compute-transv-at-time (-> self traj) (-> self traj time) (-> self root-override transv)) (vector-float*! (-> self root-override transv) (-> self root-override transv) 300.0) (go-virtual freefall) @@ -910,11 +906,11 @@ This commonly includes things such as: (else (compute-trans-at-time (-> self traj) - (the float (- (-> self clock frame-counter) (-> self state-time))) + (the float (- (current-time) (-> self state-time))) (-> self root-override trans) ) (update-from-cspace (-> self impact)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) 1) + (when (>= (- (current-time) (-> self state-time)) 1) (let* ((a1-4 (new 'stack-no-clear 'collide-query)) (f0-10 (impact-control-method-11 (-> self impact) @@ -928,7 +924,7 @@ This commonly includes things such as: (set! (-> self root-override trans quad) (-> self impact trans 1 quad)) (compute-transv-at-time (-> self traj) - (the float (- (-> self clock frame-counter) (-> self state-time))) + (the float (- (current-time) (-> self state-time))) (-> self root-override transv) ) (vector-float*! (-> self root-override transv) (-> self root-override transv) 300.0) @@ -984,12 +980,12 @@ This commonly includes things such as: ) 0 (sound-play "w-bomb-explode") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + ((< (- (current-time) (-> self state-time)) (seconds 2)) (let ((a1-0 (new 'stack-no-clear 'vector))) (set! (-> a1-0 quad) (-> self root-override trans quad)) (set! (-> a1-0 y) (+ 2048.0 (-> a1-0 y))) @@ -1009,52 +1005,48 @@ This commonly includes things such as: ;; definition for method 32 of type widow-bomb ;; WARN: Return type mismatch int vs none. (defmethod widow-bomb-method-32 widow-bomb ((obj widow-bomb)) - (with-pp - (spawn-with-cspace (-> obj part) (-> obj node-list data 3)) - (sound-play "w-bomb-steam" :id (the-as sound-id (-> obj steam-sound)) :position (-> obj root-override trans)) - (let ((s5-0 (the-as int (- (-> pp clock frame-counter) (-> obj state-time))))) - (if (nonzero? (-> obj fizzle-timer)) - (set! s5-0 (max - (the-as time-frame s5-0) - (- (seconds 12) (- (seconds 3) (- (-> pp clock frame-counter) (-> obj fizzle-timer)))) - ) - ) - ) - (if (< 3600 s5-0) - (go (method-of-object obj explode)) - ) - (when (< 3000 s5-0) - (spawn-with-cspace (-> obj warning-spark-part) (-> obj node-list data 3)) - (when (not (-> obj firework-sound-played)) - (set! (-> obj firework-sound-played) #t) - (sound-play "w-bomb-firewrks") - ) + (spawn-with-cspace (-> obj part) (-> obj node-list data 3)) + (sound-play "w-bomb-steam" :id (the-as sound-id (-> obj steam-sound)) :position (-> obj root-override trans)) + (let ((s5-0 (the-as int (- (current-time) (-> obj state-time))))) + (if (nonzero? (-> obj fizzle-timer)) + (set! s5-0 + (max (the-as time-frame s5-0) (- (seconds 12) (- (seconds 3) (- (current-time) (-> obj fizzle-timer))))) + ) ) - (let* ((v1-27 (* s5-0 s5-0)) - (a0-10 3600) - (v1-28 (- (* a0-10 a0-10) v1-27)) - ) - (when (< v1-28 (-> obj next-countdown-tick)) - (let ((a0-14 540)) - (set! (-> obj next-countdown-tick) (the-as time-frame (- v1-28 (mod v1-28 (* a0-14 a0-14))))) - ) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (vector<-cspace! s5-2 (-> obj node-list data 7)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 6)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 5)) - (spawn (-> obj warning-glow-part) s5-2) - (vector<-cspace! s5-2 (-> obj node-list data 4)) - (spawn (-> obj warning-glow-part) s5-2) - ) - (sound-play "w-bomb-timer") - ) + (if (< 3600 s5-0) + (go (method-of-object obj explode)) + ) + (when (< 3000 s5-0) + (spawn-with-cspace (-> obj warning-spark-part) (-> obj node-list data 3)) + (when (not (-> obj firework-sound-played)) + (set! (-> obj firework-sound-played) #t) + (sound-play "w-bomb-firewrks") + ) + ) + (let* ((v1-27 (* s5-0 s5-0)) + (a0-10 3600) + (v1-28 (- (* a0-10 a0-10) v1-27)) + ) + (when (< v1-28 (-> obj next-countdown-tick)) + (let ((a0-14 540)) + (set! (-> obj next-countdown-tick) (the-as time-frame (- v1-28 (mod v1-28 (* a0-14 a0-14))))) + ) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (vector<-cspace! s5-2 (-> obj node-list data 7)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 6)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 5)) + (spawn (-> obj warning-glow-part) s5-2) + (vector<-cspace! s5-2 (-> obj node-list data 4)) + (spawn (-> obj warning-glow-part) s5-2) + ) + (sound-play "w-bomb-timer") ) ) - 0 - (none) ) + 0 + (none) ) ;; failed to figure out what this is: @@ -1062,7 +1054,7 @@ This commonly includes things such as: :virtual #t :event (the-as (function process int symbol event-message-block object :behavior widow-bomb) widow-bomb-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((v1-2 3600) (v1-3 (* v1-2 v1-2)) (a0-0 540) @@ -1139,7 +1131,7 @@ This commonly includes things such as: ) ) ((= v1-0 'fizzle) - (let* ((gp-0 (-> self clock frame-counter)) + (let* ((gp-0 (current-time)) (f30-0 600.0) (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-18 (the-as number (logior #x3f800000 v1-17))) @@ -1157,13 +1149,13 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (initialize (-> self impact) self 3 4096.0 (collide-spec backgnd obstacle hit-by-others-list player-list)) (none) ) :exit (behavior () (when (nonzero? (-> self fizzle-timer)) - (let* ((gp-0 (-> self clock frame-counter)) + (let* ((gp-0 (current-time)) (f30-0 600.0) (v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-5 (the-as number (logior #x3f800000 v1-4))) @@ -1202,17 +1194,17 @@ This commonly includes things such as: ) ) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self traj time))) + ((>= (- (current-time) (-> self state-time)) (the int (-> self traj time))) (let ((v1-29 (-> self which-trajectory))) (cond ((zero? v1-29) (set! (-> self which-trajectory) 1) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self root-override trans) (the-as vector (-> self traj))))) (set! (-> gp-1 y) 0.0) (vector-normalize! gp-1 12288.0) @@ -1226,10 +1218,10 @@ This commonly includes things such as: (set! (-> self which-trajectory) 2) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-4 (vector-! (new 'stack-no-clear 'vector) (-> self root-override trans) (the-as vector (-> self traj))))) (set! (-> gp-4 y) 0.0) (vector-normalize! gp-4 4096.0) @@ -1242,7 +1234,7 @@ This commonly includes things such as: ((= v1-29 2) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) (set! (-> self which-trajectory) 3) @@ -1264,11 +1256,11 @@ This commonly includes things such as: ((< (-> self which-trajectory) 3) (compute-trans-at-time (-> self traj) - (fmin (-> self traj time) (the float (- (-> self clock frame-counter) (-> self state-time)))) + (fmin (-> self traj time) (the float (- (current-time) (-> self state-time)))) (-> self root-override trans) ) (when (and (zero? (-> self which-trajectory)) - (< (- (-> self clock frame-counter) (-> self state-time)) (the int (* 0.75 (-> self traj time)))) + (< (- (current-time) (-> self state-time)) (the int (* 0.75 (-> self traj time)))) ) (vector+float*! (-> self launch-pos) (-> self launch-pos) (-> self launch) (-> self clock time-adjust-ratio)) (vector-lerp! @@ -1276,14 +1268,14 @@ This commonly includes things such as: (-> self launch-pos) (-> self root-override trans) (parameter-ease-sin-clamp - (* 1.3333334 (/ (the float (- (-> self clock frame-counter) (-> self state-time))) (-> self traj time))) + (* 1.3333334 (/ (the float (- (current-time) (-> self state-time))) (-> self traj time))) ) ) ) (spawn-with-cspace (-> self trail-part) (-> self node-list data 3)) (when (zero? (-> self which-trajectory)) (update-from-cspace (-> self impact)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.05)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.05)) (let ((f0-42 (impact-control-method-11 (-> self impact) (new 'stack-no-clear 'collide-query) @@ -1669,11 +1661,11 @@ This commonly includes things such as: :virtual #t :enter (behavior () (set! (-> self draw bounds w) 245760.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (spawn-with-cspace (-> self explode-part) (-> self node-list data 6)) ) (let ((v1-9 (ja-group))) @@ -1712,7 +1704,7 @@ This commonly includes things such as: ((>= (-> self segs-shot) 16) (go-virtual break-it) ) - ((>= (- (-> self clock frame-counter) (-> self last-pillar-hit)) (seconds 2)) + ((>= (- (current-time) (-> self last-pillar-hit)) (seconds 2)) (process-spawn part-tracker :init part-tracker-init @@ -1724,7 +1716,7 @@ This commonly includes things such as: 0 :to *entity-pool* ) - (set! (-> self last-pillar-hit) (-> self clock frame-counter)) + (set! (-> self last-pillar-hit) (current-time)) (sound-play "pillar-hit" :position (-> self root-override trans)) ) ) @@ -1739,7 +1731,7 @@ This commonly includes things such as: (set! (-> v1-3 prim-core collide-with) (collide-spec)) ) 0 - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/widow-more-extras_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/widow-more-extras_REF.gc index 676906f6f8..d8b914e3f5 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/widow-more-extras_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/widow-more-extras_REF.gc @@ -500,20 +500,18 @@ (defstate idle (cave-in-master) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (spawn (-> self part) (-> self root trans)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) 0) + (when (>= (- (current-time) (-> self state-time)) 0) (let ((gp-0 (new 'stack-no-clear 'vector))) (cavein-get-random-point gp-0) (set! (-> gp-0 y) (+ 327680.0 (-> gp-0 y))) (process-spawn tomb-boss-debris gp-0 (rand-vu-int-count 8) :to self) ) - (set! (-> self state-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.1 0.5)))) - ) + (set! (-> self state-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.1 0.5))))) ) (none) ) diff --git a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-extras_REF.gc b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-extras_REF.gc index 61c05f9bf0..1c87aff591 100644 --- a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-extras_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-extras_REF.gc @@ -113,7 +113,7 @@ :virtual #t :event metalkor-egg-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -140,7 +140,7 @@ ((< f0-0 (* f1-0 f1-0)) (go-virtual idle) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual hatch) ) (else @@ -226,11 +226,11 @@ :virtual #t :event metalkor-egg-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual hatch) ) (let ((v1-9 (ja-group))) @@ -557,7 +557,7 @@ ;; definition for function ik-adjust (defbehavior ik-adjust metalkor-legs () - (let* ((f0-1 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (let* ((f0-1 (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (f0-2 (* 9102.223 f0-1)) (f0-3 (- f0-2 (* (the float (the int (/ f0-2 65536.0))) 65536.0))) (f0-4 (sin f0-3)) @@ -710,7 +710,7 @@ :virtual #t :event metalkor-legs-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (dotimes (gp-0 6) (enable-set! (-> self joint-ik gp-0) #t) ((method-of-type cam-float-seeker init) (the-as cam-float-seeker (-> self foot-locks gp-0)) 0.0 0.1 0.3 0.9) @@ -1425,7 +1425,7 @@ (set! (-> a1-14 param 1) (the-as uint v1-47)) ) (when (send-event-function proc a1-14) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-52 (-> self root-override root-prim))) (set! (-> v1-52 prim-core collide-as) (collide-spec)) (set! (-> v1-52 prim-core collide-with) (collide-spec)) @@ -1442,12 +1442,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set-params! (-> self egg-toss-joint-angle) 0.0 0.05 0.3 0.9) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) (seconds 0.1)) + (when (>= (- (current-time) (-> self no-collision-timer)) (seconds 0.1)) (let ((v1-5 (-> self root-override root-prim))) (set! (-> v1-5 prim-core collide-as) (-> self root-override backup-collide-as)) (set! (-> v1-5 prim-core collide-with) (-> self root-override backup-collide-with)) @@ -1826,7 +1826,7 @@ This commonly includes things such as: (set! (-> self chain joint-length) (* 12288.0 (-> self root scale y))) (set! (-> self root scale y) 1.0) (initialize-chain-joints (-> self chain)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let* ((f30-0 0.9) (f28-0 0.2) (v1-12 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -1854,7 +1854,7 @@ This commonly includes things such as: (quaternion-normalize! (-> self root quat)) (update (-> self chain) self) (cond - ((< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + ((< (- (current-time) (-> self state-time)) (seconds 1)) ) ((let ((v1-13 (ja-group))) (and v1-13 (= v1-13 (-> self draw art-group data 53))) @@ -2663,7 +2663,3 @@ This commonly includes things such as: :code (the-as (function none :behavior metalkor-bomb) sleep-code) :post (the-as (function none :behavior metalkor-bomb) ja-post) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-setup_REF.gc b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-setup_REF.gc index 8830a82e1d..67ee423813 100644 --- a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-setup_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-setup_REF.gc @@ -1390,7 +1390,7 @@ This commonly includes things such as: (cshape-reaction-update-state arg0 arg1 sv-16) (let ((s5-0 (-> arg0 process))) (cond - ((>= (- (-> self clock frame-counter) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.05)) + ((>= (- (current-time) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.05)) (let ((t9-1 vector--float*!) (a0-3 arg2) (a1-1 sv-16) @@ -1450,7 +1450,7 @@ This commonly includes things such as: ) ((let ((f1-6 4096.0)) (and (< (* f1-6 f1-6) f0-10) - (>= (- (-> self clock frame-counter) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.2)) + (>= (- (current-time) (-> (the-as metalkor-egg s5-0) sticky-time)) (seconds 0.2)) ) ) (vector-float*! arg2 arg2 (/ 4096.0 (sqrtf f0-10))) @@ -2200,7 +2200,3 @@ This commonly includes things such as: (metalkor-go-next-stage) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-states_REF.gc b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-states_REF.gc index 9ca4e5a4e4..c8735b6e1d 100644 --- a/test/decompiler/reference/jak2/levels/nest/boss/metalkor-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/boss/metalkor-states_REF.gc @@ -249,12 +249,10 @@ 0 ) ) - (if (and (nonzero? (-> self next-stage-timer)) - (>= (- (-> self clock frame-counter) (-> self next-stage-timer)) 0) - ) + (if (and (nonzero? (-> self next-stage-timer)) (>= (- (current-time) (-> self next-stage-timer)) 0)) (metalkor-go-next-stage) ) - (when (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) (seconds 0.1)) + (when (>= (- (current-time) (-> self no-collision-timer)) (seconds 0.1)) (let ((v1-25 (-> self root-override root-prim))) (set! (-> v1-25 prim-core collide-as) (-> self root-override backup-collide-as)) (set! (-> v1-25 prim-core collide-with) (-> self root-override backup-collide-with)) @@ -765,7 +763,7 @@ (logtest? (penetrate dark-bomb) (-> (the-as attack-info s5-2) penetrate-using)) (= (-> self stage-hit-points) 0.0) ) - (set! v0-2 (the-as none (+ (-> self clock frame-counter) (seconds 1)))) + (set! v0-2 (the-as none (+ (current-time) (seconds 1)))) (set! (-> self next-stage-timer) (the-as time-frame v0-2)) v0-2 ) @@ -855,7 +853,7 @@ (set! (-> a1-43 param 1) (the-as uint v1-170)) ) (when (send-event-function gp-5 a1-43) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-175 (-> self root-override root-prim))) (set! (-> v1-175 prim-core collide-as) (collide-spec)) (set! (-> v1-175 prim-core collide-with) (collide-spec)) @@ -881,7 +879,7 @@ (when (not (handle->process (-> self flitters v1-3))) (new 'stack-no-clear 'vector) (let ((f0-1 (* 182.04445 (rand-vu-float-range 70.0 290.0)))) - (set! (-> self egg-timer) (-> self clock frame-counter)) + (set! (-> self egg-timer) (current-time)) (set! (-> self egg-angle) f0-1) (if (< 32768.0 f0-1) (send-event (handle->process (-> self lowtorso)) 'egg-toss 1.0) @@ -901,7 +899,7 @@ (if (zero? (-> self egg-timer)) (return #f) ) - (if (< (- (-> self clock frame-counter) (-> self egg-timer)) (seconds 0.2)) + (if (< (- (current-time) (-> self egg-timer)) (seconds 0.2)) (return #t) ) (dotimes (gp-0 10) @@ -1858,7 +1856,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (ja-channel-push! 1 (seconds 0.1)) (ja :group! (-> self draw art-group data 30) :num! min) (none) @@ -1916,7 +1914,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self min-state-hit-points) (+ -0.34 (-> self stage-hit-points))) (if (nonzero? (-> self neck)) (set! (-> self neck flex-blend) 0.0) @@ -1943,7 +1941,7 @@ (none) ) :trans (behavior () - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 1)) (>= (-> self min-state-hit-points) (-> self stage-hit-points)) ) (go-virtual overload-recover) @@ -2012,13 +2010,13 @@ (defstate play-drop-movie (metalkor) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (process-entity-status! self (entity-perm-status subtask-complete) #t) (process-spawn scene-player :init scene-player-init "nest-kor-boss-fight-mid" #t "nestb-boss") (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (deactivate self) ) (none) @@ -2056,7 +2054,7 @@ (set! sv-864 (target-pos 0)) (metalkor-face-to-vector sv-864 546.13336 0.005) (when (and (nonzero? (-> self previous-flat-travel-long-timer)) - (>= (+ (-> self clock frame-counter) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) + (>= (+ (current-time) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) ) (set! (-> self previous-flat-travel-long-timer) 0) (set! (-> self previous-flat-travel-timer) 0) @@ -2125,7 +2123,7 @@ (vector-normalize! s4-0 f0-12) ) ) - (if (and (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer)) + (if (and (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer)) (< (vector-dot s4-0 (-> self previous-flat-travel)) 0.0) ) (vector-negate! s4-0 s4-0) @@ -2133,11 +2131,11 @@ (set! (-> s3-0 x) (-> s2-0 intersection x)) (set! (-> s3-0 z) (-> s2-0 intersection z)) (vector-! s3-0 s3-0 (-> s2-0 boundary-normal)) - (when (or s1-0 (> s0-1 0) (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer))) + (when (or s1-0 (> s0-1 0) (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer))) (set! (-> self previous-flat-travel quad) (-> s4-0 quad)) - (set! (-> self previous-flat-travel-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-timer) (current-time)) (if (zero? (-> self previous-flat-travel-long-timer)) - (set! (-> self previous-flat-travel-long-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-long-timer) (current-time)) ) ) ) @@ -2337,12 +2335,12 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)) + ((>= (- (current-time) (-> self state-time)) (seconds 4)) (go-virtual chase-target) ) ((let ((f0-0 57344.0)) @@ -2383,7 +2381,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self shots-fired) 0) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) @@ -2417,12 +2415,10 @@ (sound-play "nboss-pre-shot") ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.25)) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.75)) - (nonzero? (-> self shots-fired)) - ) + (when (or (>= (- (current-time) (-> self state-time)) (seconds 1.25)) + (and (>= (- (current-time) (-> self state-time)) (seconds 0.75)) (nonzero? (-> self shots-fired))) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (metalkor-shoot-projectile) (set-nestb-purple! (fmax 1.0 (get-nestb-purple))) (metalkor-ja-float-stop (the-as art-joint-anim (-> self draw art-group data 32))) @@ -2431,10 +2427,10 @@ ) (if (zero? (-> self shots-fired)) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0013333333 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (fmax (get-nestb-purple) (* 0.0013333333 (the float (- (current-time) (-> self state-time))))) ) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (current-time) (-> self state-time))))) ) ) (metalkor-common) @@ -2453,7 +2449,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) (-> self root-override trans) @@ -2466,7 +2462,7 @@ :trans (behavior () (let ((v1-2 (ja-group))) (when (and (not (and v1-2 (= v1-2 (-> self draw art-group data 33)))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (>= (- (current-time) (-> self state-time)) (seconds 3)) ) (cond ((or (< (-> self last-standing-attack) -1) @@ -2571,7 +2567,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) (set! (-> self shots-fired) 0) (set! (-> self wave-timer) 0) (set! (-> self in-wave) #f) @@ -2594,9 +2590,9 @@ (if (and (-> self in-wave) (= (-> self stage) 1)) (set! v1-0 3000) ) - (when (>= (- (-> self clock frame-counter) (-> self wave-timer)) v1-0) + (when (>= (- (current-time) (-> self wave-timer)) v1-0) (set! (-> self in-wave) (not (-> self in-wave))) - (set! (-> self wave-timer) (-> self clock frame-counter)) + (set! (-> self wave-timer) (current-time)) ) ) (cond @@ -2607,8 +2603,8 @@ (set! (-> self launching-wasps) #t) ) ) - (when (and (-> self launching-wasps) (>= (- (-> self clock frame-counter) (-> self wasp-timer)) (seconds 1.5))) - (set! (-> self wasp-timer) (-> self clock frame-counter)) + (when (and (-> self launching-wasps) (>= (- (current-time) (-> self wasp-timer)) (seconds 1.5))) + (set! (-> self wasp-timer) (current-time)) (dotimes (gp-0 3) (when (not (handle->process (-> self wasps gp-0))) (set! sv-16 (new 'static 'res-tag)) @@ -2678,31 +2674,31 @@ ) (rotate-and-update-hang-anim) (if (and (< 10922.667 (-> self target-angle)) - (< (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 3.75)) + (< (- (current-time) (-> self shoot-timer)) (seconds 3.75)) (zero? (mod (-> self shots-fired) (-> self stage))) ) (set! (-> self shoot-timer) - (the-as time-frame (max (-> self shoot-timer) (+ (-> self clock frame-counter) (seconds -2.75)))) + (the-as time-frame (max (-> self shoot-timer) (+ (current-time) (seconds -2.75)))) ) ) (cond ((metalkor-check-egg) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) ) - ((or (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 3.75)) + ((or (>= (- (current-time) (-> self shoot-timer)) (seconds 3.75)) (nonzero? (mod (-> self shots-fired) (-> self stage))) ) - (set! (-> self flitter-timer) (-> self clock frame-counter)) + (set! (-> self flitter-timer) (current-time)) (spawn (-> self shot-anticipate) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 7))) (if (zero? (mod (-> self shots-fired) (-> self stage))) (set-nestb-purple! (fmax (get-nestb-purple) - (* 0.0013333333 (the float (+ (- (seconds -3.75) (-> self shoot-timer)) (-> self clock frame-counter)))) + (* 0.0013333333 (the float (+ (- (seconds -3.75) (-> self shoot-timer)) (current-time)))) ) ) (set-nestb-purple! - (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (-> self clock frame-counter) (-> self shoot-timer))))) + (fmax (get-nestb-purple) (* 0.0022222223 (the float (- (current-time) (-> self shoot-timer))))) ) ) (let* ((v1-123 (the-as art-joint-anim (-> self draw art-group data 23))) @@ -2716,12 +2712,12 @@ (sound-play "nboss-pre-shot") ) ) - (when (or (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 5)) - (and (>= (- (-> self clock frame-counter) (-> self shoot-timer)) (seconds 0.75)) + (when (or (>= (- (current-time) (-> self shoot-timer)) (seconds 5)) + (and (>= (- (current-time) (-> self shoot-timer)) (seconds 0.75)) (nonzero? (mod (-> self shots-fired) (-> self stage))) ) ) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + (set! (-> self shoot-timer) (current-time)) (metalkor-shoot-projectile) (set-nestb-purple! (fmax 1.0 (get-nestb-purple))) (metalkor-ja-float-stop (the-as art-joint-anim (-> self draw art-group data 23))) @@ -2730,11 +2726,9 @@ (metalkor-all-spinners-on) ) ) - ((and (-> self launching-flitters) - (>= (+ (-> self clock frame-counter) (seconds -0.5)) (-> self flitter-timer)) - ) - (set! (-> self flitter-timer) (-> self clock frame-counter)) - (set! (-> self shoot-timer) (-> self clock frame-counter)) + ((and (-> self launching-flitters) (>= (+ (current-time) (seconds -0.5)) (-> self flitter-timer))) + (set! (-> self flitter-timer) (current-time)) + (set! (-> self shoot-timer) (current-time)) (metalkor-start-egg) ) ) @@ -2778,7 +2772,7 @@ :virtual #t :event metalkor-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self current-nav-poly) (cloest-point-on-mesh (-> self nav) (-> self root-override trans) @@ -2797,7 +2791,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) (cpad-hold? 1 x)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (cpad-hold? 1 x)) (go-virtual test) ) (let ((s4-0 (new-stack-vector0)) @@ -2818,7 +2812,7 @@ (matrix->quaternion (-> self root-override quat) s1-0) (quaternion-normalize! (-> self root-override quat)) (when (and (nonzero? (-> self previous-flat-travel-long-timer)) - (>= (+ (-> self clock frame-counter) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) + (>= (+ (current-time) (seconds -1.2)) (-> self previous-flat-travel-long-timer)) ) (set! (-> self previous-flat-travel-long-timer) 0) (set! (-> self previous-flat-travel-timer) 0) @@ -2846,7 +2840,7 @@ (vector-normalize! s5-1 f0-9) ) ) - (if (and (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer)) + (if (and (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer)) (< (vector-dot s5-1 (-> self previous-flat-travel)) 0.0) ) (vector-negate! s5-1 s5-1) @@ -2854,11 +2848,11 @@ (set! (-> s4-1 x) (-> s3-0 intersection x)) (set! (-> s4-1 z) (-> s3-0 intersection z)) (vector-! s4-1 s4-1 (-> s3-0 boundary-normal)) - (when (or (> s2-1 0) (< (+ (-> self clock frame-counter) (seconds -0.1)) (-> self previous-flat-travel-timer))) + (when (or (> s2-1 0) (< (+ (current-time) (seconds -0.1)) (-> self previous-flat-travel-timer))) (set! (-> self previous-flat-travel quad) (-> s5-1 quad)) - (set! (-> self previous-flat-travel-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-timer) (current-time)) (if (zero? (-> self previous-flat-travel-long-timer)) - (set! (-> self previous-flat-travel-long-timer) (-> self clock frame-counter)) + (set! (-> self previous-flat-travel-long-timer) (current-time)) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc b/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc index d2c09e2b0c..a72b4c853f 100644 --- a/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc @@ -15,14 +15,14 @@ (set! (-> a1-0 message) 'test-pickup) (set! (-> a1-0 param 0) (the-as uint 7)) (let ((f30-0 (send-event-function *target* a1-0))) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.1)) (suspend) ) ) (send-event *target* 'change-mode 'darkjak #f 64) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc b/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc index e983123565..74407eda6e 100644 --- a/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc @@ -614,7 +614,7 @@ :event (the-as (function process int symbol event-message-block object :behavior flying-spider) enemy-event-handler) :enter (behavior () (dispose! self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hit-points) 0) (enemy-method-103 self) (none) @@ -738,48 +738,46 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 flying-spider ((obj flying-spider) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) - (when (>= (- (-> pp clock frame-counter) (-> obj gspot-timer)) (seconds 0.2)) - (let ((a1-2 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) - (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) - (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) - (let ((v1-10 a1-2)) - (set! (-> v1-10 radius) 4915.2) - (set! (-> v1-10 collide-with) arg1) - (set! (-> v1-10 ignore-process0) obj) - (set! (-> v1-10 ignore-process1) #f) - (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-10 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-2) + (the-as + pat-surface + (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) + (when (>= (- (current-time) (-> obj gspot-timer)) (seconds 0.2)) + (let ((a1-2 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) + (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) + (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) + (let ((v1-10 a1-2)) + (set! (-> v1-10 radius) 4915.2) + (set! (-> v1-10 collide-with) arg1) + (set! (-> v1-10 ignore-process0) obj) + (set! (-> v1-10 ignore-process1) #f) + (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-10 action-mask) (collide-action solid)) ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (vector-reset! s5-1) - (dotimes (s4-1 (-> *collide-cache* num-tris)) - (let* ((v1-16 (-> *collide-cache* tris s4-1)) - (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s2-1 1.0) - (vector-normalize! s1-1 1.0) - (vector-cross! s3-0 s2-1 s1-1) - (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) - (vector+! s5-1 s5-1 s3-0) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) - ) - (set! (-> obj gspot-timer) (-> pp clock frame-counter)) + (fill-using-line-sphere *collide-cache* a1-2) ) - #t + (let ((s5-1 (new 'stack-no-clear 'vector))) + (vector-reset! s5-1) + (dotimes (s4-1 (-> *collide-cache* num-tris)) + (let* ((v1-16 (-> *collide-cache* tris s4-1)) + (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s2-1 1.0) + (vector-normalize! s1-1 1.0) + (vector-cross! s3-0 s2-1 s1-1) + (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) + (vector+! s5-1 s5-1 s3-0) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) + ) + (set! (-> obj gspot-timer) (current-time)) ) + #t ) ) ) diff --git a/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc b/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc index 6940e13dbd..48dc6852ae 100644 --- a/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc @@ -562,8 +562,8 @@ (ja :num! (seek!)) ) (mammoth-walk-check-end) - (when (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self attack-timer)) (seconds 5)) + (set! (-> self attack-timer) (current-time)) (go-virtual walking-attack) ) ) @@ -579,7 +579,7 @@ :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('event-attack) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self lightning-timer) (the-as time-frame v0-0)) v0-0 ) @@ -607,15 +607,11 @@ (none) ) :trans (behavior () - (when (and (< (- (-> self clock frame-counter) (-> self lightning-timer)) (seconds 3)) - (< (-> self spawn-timer) (-> self clock frame-counter)) - ) + (when (and (< (- (current-time) (-> self lightning-timer)) (seconds 3)) (< (-> self spawn-timer) (current-time))) (let ((s5-0 *mammoth-lightning-joint-tbl*)) (mammoth-method-185 self (-> self root-override2 trans) (-> s5-0 (get-rand-int self (-> s5-0 length)))) ) - (set! (-> self spawn-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 0.0 0.1)))) - ) + (set! (-> self spawn-timer) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 0.0 0.1))))) ) (none) ) @@ -642,8 +638,8 @@ (ja :num! (seek! max 0.8)) ) (mammoth-walk-check-end) - (when (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 3)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self attack-timer)) (seconds 3)) + (set! (-> self attack-timer) (current-time)) (go-virtual walking) ) ) @@ -1570,8 +1566,8 @@ (when (logtest? (ash 1 v1-37) (-> obj foot-flags)) ) ) - (when (and (< (- (-> pp clock frame-counter) (-> obj lightning-timer)) (seconds 3)) - (< (-> obj lightning-attack-timer) (-> pp clock frame-counter)) + (when (and (< (- (current-time) (-> obj lightning-timer)) (seconds 3)) + (< (-> obj lightning-attack-timer) (current-time)) ) (let ((s5-2 *target*)) (when s5-2 @@ -1664,7 +1660,7 @@ ) ) (set! (-> obj lightning-attack-timer) - (+ (-> pp clock frame-counter) (the int (* 300.0 (get-rand-float-range obj 0.067 0.1)))) + (+ (current-time) (the int (* 300.0 (get-rand-float-range obj 0.067 0.1)))) ) ) ) @@ -1799,92 +1795,90 @@ ;; WARN: Return type mismatch int vs none. (defmethod init-enemy! mammoth ((obj mammoth)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-mammoth" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (init-enemy-behaviour-and-stats! obj *mammoth-nav-enemy-info*) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set-vector! (-> obj root-override2 scale) 1.5 1.5 1.5 1.0) - (set! (-> obj y-level) -40959590.0) - (set! (-> obj foot-flags) (the-as uint 0)) - (set! (-> obj old-foot-flags) (the-as uint 0)) - (set! (-> obj attack-timer) (-> pp clock frame-counter)) - (set! (-> obj spawn-timer) 0) - (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) - (quaternion-copy! (-> obj my-up-quat) *unity-quaternion*) - (set! (-> obj gspot-timer) 0) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - (set! (-> obj align) (new 'process 'align-control obj)) - (dotimes (s5-1 4) - (set! (-> obj joint-ik s5-1) (new - 'process - 'joint-mod-ik - obj - (-> *mammoth-ik-setup* s5-1 elbow-index) - (-> *mammoth-ik-setup* s5-1 hand-dist) - ) - ) - (set! (-> obj joint-ik s5-1 elbow-pole-vector-axis) (the-as uint 2)) - (set! (-> obj joint-ik s5-1 elbow-rotation-axis) (the-as uint 0)) - (set! (-> obj joint-ik 0 callback) mammoth-leg-ik-callback) - ) - (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-trans-neg)) - (logior! (-> obj joint-ik 2 flags) (joint-mod-ik-flags elbow-trans-neg)) - (logior! (-> obj joint-ik 0 flags) (joint-mod-ik-flags elbow-rot-neg)) - (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-rot-neg)) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (set! (-> obj path-pos) 0.0) - (set! (-> obj path-index) 0) - (set! (-> obj path-index-dir) 1) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (get-point-in-path! (-> obj path) (-> obj root-override2 trans) 0.0 'interp) - (set! (-> obj move-pos 0 quad) (-> obj root-override2 trans quad)) - (set! (-> obj move-pos 1 quad) (-> obj root-override2 trans quad)) - (forward-up-nopitch->quaternion - (-> obj root-override2 quat) - (vector-! - (new 'stack-no-clear 'vector) - (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) (the float (+ (-> obj path-index) 1)) 'interp) - (-> obj root-override2 trans) - ) - *up-vector* - ) - (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) - (let ((a0-38 (-> obj node-list data 4))) - (set! (-> a0-38 param0) mammoth-joint-mod-tilt) - (set! (-> a0-38 param1) obj) - ) - (let ((a0-39 (-> obj node-list data 10))) - (set! (-> a0-39 param0) mammoth-joint-mod-heel) - (set! (-> a0-39 param1) obj) - (set! (-> a0-39 param2) (the-as basic 0)) - ) - (let ((v1-61 (-> obj node-list data 13))) - (set! (-> v1-61 param0) mammoth-joint-mod-heel) - (set! (-> v1-61 param1) obj) - (set! (-> v1-61 param2) (the-as basic 1)) - ) - (let ((v1-63 (-> obj node-list data 25))) - (set! (-> v1-63 param0) mammoth-joint-mod-heel) - (set! (-> v1-63 param1) obj) - (set! (-> v1-63 param2) (the-as basic 2)) - ) - (let ((v1-65 (-> obj node-list data 28))) - (set! (-> v1-65 param0) mammoth-joint-mod-heel) - (set! (-> v1-65 param1) obj) - (set! (-> v1-65 param2) (the-as basic 3)) - ) - (dotimes (v1-66 4) - (set! (-> obj heel-lerp v1-66) 0.0) - ) - (set! (-> obj lightning-timer) 0) - (set! (-> obj lightning-attack-timer) 0) - (set! (-> obj feet-ik-init-timer) (-> pp clock frame-counter)) - (logclear! (-> obj enemy-flags) (enemy-flag check-water-backup)) - 0 - (none) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-mammoth" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (init-enemy-behaviour-and-stats! obj *mammoth-nav-enemy-info*) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set-vector! (-> obj root-override2 scale) 1.5 1.5 1.5 1.0) + (set! (-> obj y-level) -40959590.0) + (set! (-> obj foot-flags) (the-as uint 0)) + (set! (-> obj old-foot-flags) (the-as uint 0)) + (set! (-> obj attack-timer) (current-time)) + (set! (-> obj spawn-timer) 0) + (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) + (quaternion-copy! (-> obj my-up-quat) *unity-quaternion*) + (set! (-> obj gspot-timer) 0) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + (set! (-> obj align) (new 'process 'align-control obj)) + (dotimes (s5-1 4) + (set! (-> obj joint-ik s5-1) (new + 'process + 'joint-mod-ik + obj + (-> *mammoth-ik-setup* s5-1 elbow-index) + (-> *mammoth-ik-setup* s5-1 hand-dist) + ) + ) + (set! (-> obj joint-ik s5-1 elbow-pole-vector-axis) (the-as uint 2)) + (set! (-> obj joint-ik s5-1 elbow-rotation-axis) (the-as uint 0)) + (set! (-> obj joint-ik 0 callback) mammoth-leg-ik-callback) + ) + (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-trans-neg)) + (logior! (-> obj joint-ik 2 flags) (joint-mod-ik-flags elbow-trans-neg)) + (logior! (-> obj joint-ik 0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (logior! (-> obj joint-ik 1 flags) (joint-mod-ik-flags elbow-rot-neg)) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (set! (-> obj path-pos) 0.0) + (set! (-> obj path-index) 0) + (set! (-> obj path-index-dir) 1) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (get-point-in-path! (-> obj path) (-> obj root-override2 trans) 0.0 'interp) + (set! (-> obj move-pos 0 quad) (-> obj root-override2 trans quad)) + (set! (-> obj move-pos 1 quad) (-> obj root-override2 trans quad)) + (forward-up-nopitch->quaternion + (-> obj root-override2 quat) + (vector-! + (new 'stack-no-clear 'vector) + (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) (the float (+ (-> obj path-index) 1)) 'interp) + (-> obj root-override2 trans) + ) + *up-vector* + ) + (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) + (let ((a0-38 (-> obj node-list data 4))) + (set! (-> a0-38 param0) mammoth-joint-mod-tilt) + (set! (-> a0-38 param1) obj) + ) + (let ((a0-39 (-> obj node-list data 10))) + (set! (-> a0-39 param0) mammoth-joint-mod-heel) + (set! (-> a0-39 param1) obj) + (set! (-> a0-39 param2) (the-as basic 0)) + ) + (let ((v1-61 (-> obj node-list data 13))) + (set! (-> v1-61 param0) mammoth-joint-mod-heel) + (set! (-> v1-61 param1) obj) + (set! (-> v1-61 param2) (the-as basic 1)) + ) + (let ((v1-63 (-> obj node-list data 25))) + (set! (-> v1-63 param0) mammoth-joint-mod-heel) + (set! (-> v1-63 param1) obj) + (set! (-> v1-63 param2) (the-as basic 2)) + ) + (let ((v1-65 (-> obj node-list data 28))) + (set! (-> v1-65 param0) mammoth-joint-mod-heel) + (set! (-> v1-65 param1) obj) + (set! (-> v1-65 param2) (the-as basic 3)) + ) + (dotimes (v1-66 4) + (set! (-> obj heel-lerp v1-66) 0.0) + ) + (set! (-> obj lightning-timer) 0) + (set! (-> obj lightning-attack-timer) 0) + (set! (-> obj feet-ik-init-timer) (current-time)) + (logclear! (-> obj enemy-flags) (enemy-flag check-water-backup)) + 0 + (none) ) diff --git a/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc b/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc index edb005447b..79a2904ac9 100644 --- a/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc @@ -588,14 +588,14 @@ ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.6)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 0.6)) (suspend) ) ) (logior! (-> self draw status) (draw-control-status no-draw)) - (let ((gp-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-2) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) + (let ((gp-2 (current-time))) + (until (>= (- (current-time) gp-2) (the int (* 300.0 (get-rand-float-range self 0.0 0.6)))) (suspend) ) ) @@ -652,7 +652,7 @@ ) 0 (look-at-target! self (enemy-flag lock-focus)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self root-override2 trans y) (+ -18841.6 (-> self base-height))) (let ((gp-0 (-> self root-override2))) (let ((v1-11 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> gp-0 quat)))) @@ -715,8 +715,8 @@ (suspend) (ja :num! (seek!)) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (if (logtest? (-> self root-override2 status) (collide-status on-ground)) (goto cfg-32) ) @@ -774,7 +774,7 @@ (let ((f30-1 (vector-length s5-1))) (when (not (logtest? (-> self flags) (mantis-flag tracked))) (cond - ((< (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) + ((< (- (current-time) (-> self attack-timer)) (seconds 5)) (if (and (< 73728.0 f30-1) (mantis-method-194 self)) (go-virtual crawl) ) @@ -787,7 +787,7 @@ (when (and (and gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status disable dead ignore grabbed))) ) - (and (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) + (and (>= (- (current-time) (-> self attack-timer)) (seconds 5)) (enemy-method-95 self s4-0 8192.0) (< f30-1 32768.0) ) @@ -824,7 +824,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (change-to (nav-mesh-from-res-tag (-> self entity) 'nav-mesh-actor 1) self) (nav-enemy-method-166 self) (let ((v1-6 (-> self nav))) @@ -944,9 +944,7 @@ (suspend) (ja :num! (seek!)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self attack-timer)) (seconds 5)) - (< 1 (the-as int (-> self focus aware))) - ) + (if (and (>= (- (current-time) (-> self attack-timer)) (seconds 5)) (< 1 (the-as int (-> self focus aware)))) (go-virtual hostile) ) (if (< (vector-vector-xz-distance (-> self root-override2 trans) (-> self move-dest)) 13107.2) @@ -966,7 +964,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -975,7 +973,7 @@ (set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info)) ) 0 - (set! (-> self attack-timer) (-> self clock frame-counter)) + (set! (-> self attack-timer) (current-time)) (none) ) :exit (behavior () @@ -1036,8 +1034,8 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self attack-timer) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self attack-timer) (current-time)) (none) ) :exit (behavior () @@ -1241,7 +1239,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior mantis) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (look-at-target! self (enemy-flag lock-focus)) (logior! (-> self enemy-flags) (enemy-flag use-notice-distance)) (let ((v1-6 self)) @@ -1258,7 +1256,7 @@ ) 0 (logclear! (-> self mask) (process-mask actor-pause)) - (set! (-> self starting-time) (-> self clock frame-counter)) + (set! (-> self starting-time) (current-time)) (none) ) :trans (behavior () @@ -1303,7 +1301,7 @@ (go-virtual crawl) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (>= (the-as int (-> self focus aware)) 3) (get-enemy-target self) ) @@ -1333,73 +1331,71 @@ (defmethod general-event-handler mantis ((obj mantis) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) "Handles various events for the enemy @TODO - unsure if there is a pattern for the events and this should have a more specific name" - (with-pp - (case arg2 - (('track) - (if (and (-> arg3 param 0) (>= (- (-> pp clock frame-counter) (-> obj track-timer)) (seconds 0.5))) - 'abort - #t - ) - ) - (('tracked) - (logior! (-> obj flags) (mantis-flag tracked)) - (let ((v0-0 (the-as object (-> pp clock frame-counter)))) - (set! (-> obj track-timer) (the-as time-frame v0-0)) - v0-0 + (case arg2 + (('track) + (if (and (-> arg3 param 0) (>= (- (current-time) (-> obj track-timer)) (seconds 0.5))) + 'abort + #t ) + ) + (('tracked) + (logior! (-> obj flags) (mantis-flag tracked)) + (let ((v0-0 (the-as object (current-time)))) + (set! (-> obj track-timer) (the-as time-frame v0-0)) + v0-0 ) - (('hit 'hit-knocked) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj focus-status) (focus-status dangerous)) - (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) - (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) - (logior! (-> obj focus-status) (focus-status hit)) - (if (zero? (-> obj hit-points)) - (logior! (-> obj focus-status) (focus-status dead)) - ) - (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) - (enemy-method-62 obj) - (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) - (process-contact-action arg0) - (send-event arg0 'get-attack-count 1) - (cond - ((zero? (-> obj hit-points)) - (let ((s5-1 (-> obj incoming knocked-type))) - (cond - ((and (= s5-1 (knocked-type knocked-type-4)) - (not (and (-> obj next-state) (let ((v1-41 (-> obj next-state name))) - (or (= v1-41 'knocked) (= v1-41 'jump) (= v1-41 'jump-land)) - ) - ) - ) - (zero? (get-rand-int obj 3)) - (let ((f0-0 (vector-vector-distance-squared (-> obj root-override2 trans) (target-pos 0))) - (f1-0 32768.0) - ) - (>= f0-0 (* f1-0 f1-0)) - ) + ) + (('hit 'hit-knocked) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj focus-status) (focus-status dangerous)) + (logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice)) + (logior! (-> obj enemy-flags) (enemy-flag chase-startup)) + (logior! (-> obj focus-status) (focus-status hit)) + (if (zero? (-> obj hit-points)) + (logior! (-> obj focus-status) (focus-status dead)) + ) + (logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup)) + (enemy-method-62 obj) + (set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags))) + (process-contact-action arg0) + (send-event arg0 'get-attack-count 1) + (cond + ((zero? (-> obj hit-points)) + (let ((s5-1 (-> obj incoming knocked-type))) + (cond + ((and (= s5-1 (knocked-type knocked-type-4)) + (not (and (-> obj next-state) (let ((v1-41 (-> obj next-state name))) + (or (= v1-41 'knocked) (= v1-41 'jump) (= v1-41 'jump-land)) + ) + ) + ) + (zero? (get-rand-int obj 3)) + (let ((f0-0 (vector-vector-distance-squared (-> obj root-override2 trans) (target-pos 0))) + (f1-0 32768.0) + ) + (>= f0-0 (* f1-0 f1-0)) ) - (kill-prefer-falling obj) - ) - ((or (= s5-1 (knocked-type knocked-type-4)) (= s5-1 (knocked-type knocked-type-6))) - (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) - (go (method-of-object obj knocked)) - ) - (else - (go (method-of-object obj knocked)) - ) + ) + (kill-prefer-falling obj) + ) + ((or (= s5-1 (knocked-type knocked-type-4)) (= s5-1 (knocked-type knocked-type-6))) + (set! (-> obj incoming knocked-type) (knocked-type knocked-type-0)) + (go (method-of-object obj knocked)) + ) + (else + (go (method-of-object obj knocked)) ) ) ) - (else - (go (method-of-object obj knocked)) - ) - ) - #t - ) - (else - ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) + (else + (go (method-of-object obj knocked)) + ) + ) + #t + ) + (else + ((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3) ) ) ) @@ -1486,48 +1482,46 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 mantis ((obj mantis) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) - (when (>= (- (-> pp clock frame-counter) (-> obj gspot-timer)) (seconds 0.2)) - (let ((a1-2 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) - (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) - (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) - (let ((v1-10 a1-2)) - (set! (-> v1-10 radius) 4915.2) - (set! (-> v1-10 collide-with) arg1) - (set! (-> v1-10 ignore-process0) obj) - (set! (-> v1-10 ignore-process1) #f) - (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) - (set! (-> v1-10 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-2) + (the-as + pat-surface + (when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root-override2 ground-pat) (-> arg0 best-other-tri pat)) + (when (>= (- (current-time) (-> obj gspot-timer)) (seconds 0.2)) + (let ((a1-2 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-2 start-pos quad) (-> obj root-override2 gspot-pos quad)) + (set! (-> a1-2 start-pos y) (+ 2048.0 (-> a1-2 start-pos y))) + (set-vector! (-> a1-2 move-dist) 0.0 -6144.0 0.0 0.0) + (let ((v1-10 a1-2)) + (set! (-> v1-10 radius) 4915.2) + (set! (-> v1-10 collide-with) arg1) + (set! (-> v1-10 ignore-process0) obj) + (set! (-> v1-10 ignore-process1) #f) + (set! (-> v1-10 ignore-pat) (-> obj root-override2 pat-ignore-mask)) + (set! (-> v1-10 action-mask) (collide-action solid)) ) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (vector-reset! s5-1) - (dotimes (s4-1 (-> *collide-cache* num-tris)) - (let* ((v1-16 (-> *collide-cache* tris s4-1)) - (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s2-1 1.0) - (vector-normalize! s1-1 1.0) - (vector-cross! s3-0 s2-1 s1-1) - (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) - (vector+! s5-1 s5-1 s3-0) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) - ) - (set! (-> obj gspot-timer) (-> pp clock frame-counter)) + (fill-using-line-sphere *collide-cache* a1-2) ) - #t + (let ((s5-1 (new 'stack-no-clear 'vector))) + (vector-reset! s5-1) + (dotimes (s4-1 (-> *collide-cache* num-tris)) + (let* ((v1-16 (-> *collide-cache* tris s4-1)) + (s2-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 1) (the-as vector (-> v1-16 vertex)))) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-16 vertex 2) (the-as vector (-> v1-16 vertex)))) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s2-1 1.0) + (vector-normalize! s1-1 1.0) + (vector-cross! s3-0 s2-1 s1-1) + (if (< (cos 10922.667) (vector-dot s3-0 *y-vector*)) + (vector+! s5-1 s5-1 s3-0) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s5-1 1.0) + ) + (set! (-> obj gspot-timer) (current-time)) ) + #t ) ) ) @@ -2088,20 +2082,18 @@ ;; WARN: Return type mismatch int vs none. (defmethod init-enemy! mantis ((obj mantis)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-mantis" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (init-enemy-behaviour-and-stats! obj *mantis-nav-enemy-info*) - (set! (-> obj flags) (mantis-flag)) - (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - (set! (-> obj gspot-timer) 0) - (set! (-> obj attack-timer) (+ (-> pp clock frame-counter) (seconds -5))) - (set! (-> obj track-timer) 0) - (set! (-> obj draw light-index) (the-as uint 30)) - (none) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-mantis" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (init-enemy-behaviour-and-stats! obj *mantis-nav-enemy-info*) + (set! (-> obj flags) (mantis-flag)) + (set! (-> obj my-up-vector quad) (-> *y-vector* quad)) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + (set! (-> obj gspot-timer) 0) + (set! (-> obj attack-timer) (+ (current-time) (seconds -5))) + (set! (-> obj track-timer) 0) + (set! (-> obj draw light-index) (the-as uint 30)) + (none) ) diff --git a/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc b/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc index f26f031029..2768a4e137 100644 --- a/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc @@ -82,12 +82,12 @@ (defstate down (nest-switch) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self set-camera) #f) (none) ) :trans (behavior () - (when (and (not (-> self set-camera)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6))) + (when (and (not (-> self set-camera)) (>= (- (current-time) (-> self state-time)) (seconds 0.6))) (process-grab? *target* #f) (hide-hud-quick #f) (set-setting! 'process-mask 'set 0.0 (process-mask movie enemy)) @@ -111,8 +111,8 @@ (set! (-> self root trans y) (+ (-> self y-start) (-> self y-delta))) (suspend) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (-> self clock seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) @@ -122,8 +122,8 @@ (suspend) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -249,8 +249,8 @@ This commonly includes things such as: :virtual #t :trans (the-as (function none :behavior nest-piston) rider-trans) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc b/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc index 715fc3b6c8..1b7e27395e 100644 --- a/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc @@ -93,7 +93,7 @@ (defstate zap (canyon-lightning-thingy) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -121,7 +121,7 @@ ) :trans (behavior () (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.125)) + ((>= (- (current-time) (-> self state-time)) (seconds 0.125)) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 quad) (-> self root trans quad)) (let ((v1-7 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> self root quat))) diff --git a/test/decompiler/reference/jak2/levels/palace/boss/squid-extras_REF.gc b/test/decompiler/reference/jak2/levels/palace/boss/squid-extras_REF.gc index d0d6921339..25e0bb39d1 100644 --- a/test/decompiler/reference/jak2/levels/palace/boss/squid-extras_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/boss/squid-extras_REF.gc @@ -155,7 +155,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (let ((f28-0 (/ (the float (- (-> pp clock frame-counter) (-> arg0 traj-timer))) (-> arg0 traj-duration))) + (let ((f28-0 (/ (the float (- (current-time) (-> arg0 traj-timer))) (-> arg0 traj-duration))) (s5-0 (new 'stack-no-clear 'vector)) ) (let ((f30-0 (compute-time-until-apex (-> arg0 traj)))) @@ -306,28 +306,26 @@ ;; definition for method 31 of type squid-grenade (defmethod init-proj-settings! squid-grenade ((obj squid-grenade)) "Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc" - (with-pp - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1120) obj)) - (set! (-> obj attack-mode) 'squid-grenade) - (set! (-> obj max-speed) 655360.0) - (set! (-> obj move) squid-grenade-move) - (set! (-> obj timeout) (seconds 5)) - (set! (-> obj stop-speed) 4.096) - (set! (-> obj fly-sound) (new-sound-id)) - (set! (-> obj traj-timer) (-> pp clock frame-counter)) - (vector+! (-> obj traj-dest) (-> obj root-override trans) (-> obj root-override transv)) - (set! (-> obj traj-duration) - (fmax 600.0 (* 0.0018310547 (vector-vector-xz-distance (-> obj root-override trans) (-> obj traj-dest)))) - ) - (+! (-> obj traj-duration) (* 75.0 (rand-vu))) - (let ((f0-8 32768.0)) - (if (< (-> obj root-override trans y) (-> obj traj-dest y)) - (+! f0-8 (- (-> obj traj-dest y) (-> obj root-override trans y))) - ) - (setup-from-to-duration-and-height! (-> obj traj) (-> obj root-override trans) (-> obj traj-dest) 1.0 f0-8) - ) - (none) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1120) obj)) + (set! (-> obj attack-mode) 'squid-grenade) + (set! (-> obj max-speed) 655360.0) + (set! (-> obj move) squid-grenade-move) + (set! (-> obj timeout) (seconds 5)) + (set! (-> obj stop-speed) 4.096) + (set! (-> obj fly-sound) (new-sound-id)) + (set! (-> obj traj-timer) (current-time)) + (vector+! (-> obj traj-dest) (-> obj root-override trans) (-> obj root-override transv)) + (set! (-> obj traj-duration) + (fmax 600.0 (* 0.0018310547 (vector-vector-xz-distance (-> obj root-override trans) (-> obj traj-dest)))) + ) + (+! (-> obj traj-duration) (* 75.0 (rand-vu))) + (let ((f0-8 32768.0)) + (if (< (-> obj root-override trans y) (-> obj traj-dest y)) + (+! f0-8 (- (-> obj traj-dest y) (-> obj root-override trans y))) + ) + (setup-from-to-duration-and-height! (-> obj traj) (-> obj root-override trans) (-> obj traj-dest) 1.0 f0-8) ) + (none) ) ;; definition for function squid-whirlwind-move @@ -340,12 +338,8 @@ (* 819.2 (-> self clock time-adjust-ratio)) ) (let ((gp-0 (new 'stack-no-clear 'vector))) - (let ((f30-0 - (lerp-scale 12288.0 32768.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) - (f28-0 - (lerp-scale 1024.0 4096.0 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (let ((f30-0 (lerp-scale 12288.0 32768.0 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) + (f28-0 (lerp-scale 1024.0 4096.0 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) (vector-! (-> self root transv) (-> self root trans) (-> self center)) (set-vector! gp-0 (- (-> self root transv z)) 0.0 (-> self root transv x) 1.0) @@ -405,7 +399,7 @@ (defstate idle (squid-whirlwind) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self duration) (the-as time-frame (+ (the int (* 150.0 (rand-vu))) 1050))) (none) ) @@ -419,7 +413,7 @@ (set! (-> a1-2 y) (+ 2048.0 (-> a1-2 y))) (spawn (-> self part) a1-2) ) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self duration)) + (when (or (>= (- (current-time) (-> self state-time)) (-> self duration)) (let ((f0-3 (vector-vector-xz-distance-squared (target-pos 0) (-> self root trans))) (f1-1 12288.0) ) @@ -573,7 +567,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc b/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc index 5f315f5592..fa47bdc58e 100644 --- a/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc @@ -1518,7 +1518,7 @@ ;; WARN: Return type mismatch vector vs none. (defbehavior squid-increment-shield squid ((arg0 float)) (set! (-> self shield-hit-points) (fmin 1.0 (fmax 0.0 (+ (-> self shield-hit-points) arg0)))) - (set! (-> self shield-timer) (+ (-> self clock frame-counter) (seconds -0.125))) + (set! (-> self shield-timer) (+ (current-time) (seconds -0.125))) (let ((gp-0 (new 'stack-no-clear 'vector))) (cond ((< (-> self shield-hit-points) 0.5) @@ -1728,7 +1728,7 @@ (squid-take-hit (the-as touching-shapes-entry (-> arg3 param 0)) (the-as attack-info (-> arg3 param 1)) #f) ) ) - ((>= (- (-> self clock frame-counter) (-> self invincible-timer)) (seconds 3)) + ((>= (- (current-time) (-> self invincible-timer)) (seconds 3)) (cond ((and (= (-> self shield-hit-points) 0.0) (not (and (-> self next-state) (= (-> self next-state name) 'recharge))) @@ -1742,7 +1742,7 @@ ) ) (squid-take-hit (the-as touching-shapes-entry (-> arg3 param 0)) (the-as attack-info (-> arg3 param 1)) #t) - (set! (-> self invincible-timer) (-> self clock frame-counter)) + (set! (-> self invincible-timer) (current-time)) (squid-check-hit-points) ) ((or (!= (-> self shield-hit-points) 0.0) (and (-> self next-state) (= (-> self next-state name) 'recharge))) @@ -2396,23 +2396,21 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defmethod set-traj-towards-vec squid ((obj squid) (src vector) (arg2 vector) (dest vector)) "Set up the [[trajectory]] towards `dest`." - (with-pp - (set! (-> obj traj-timer) (-> pp clock frame-counter)) - (set! (-> obj traj-src quad) (-> src quad)) - (set! (-> obj traj-dest quad) (-> dest quad)) - (set! (-> obj traj-duration) (* 0.00091552734 (vector-vector-xz-distance arg2 dest))) - (set! (-> obj traj-duration) (fmax 480.0 (-> obj traj-duration))) - (let ((f0-4 49152.0)) - (if (< (-> arg2 y) (-> dest y)) - (+! f0-4 (- (-> dest y) (-> arg2 y))) - ) - (setup-from-to-duration-and-height! (-> obj traj) arg2 dest 1.0 f0-4) - ) - (set! (-> obj residual-accumulator-1) 1.0) - (set! (-> obj residual-accumulator-2) 0.0) - 0 - (none) + (set! (-> obj traj-timer) (current-time)) + (set! (-> obj traj-src quad) (-> src quad)) + (set! (-> obj traj-dest quad) (-> dest quad)) + (set! (-> obj traj-duration) (* 0.00091552734 (vector-vector-xz-distance arg2 dest))) + (set! (-> obj traj-duration) (fmax 480.0 (-> obj traj-duration))) + (let ((f0-4 49152.0)) + (if (< (-> arg2 y) (-> dest y)) + (+! f0-4 (- (-> dest y) (-> arg2 y))) + ) + (setup-from-to-duration-and-height! (-> obj traj) arg2 dest 1.0 f0-4) ) + (set! (-> obj residual-accumulator-1) 1.0) + (set! (-> obj residual-accumulator-2) 0.0) + 0 + (none) ) ;; definition for method 47 of type squid @@ -2423,225 +2421,221 @@ This commonly includes things such as: ;; definition for method 48 of type squid ;; INFO: Used lq/sq (defmethod squid-method-48 squid ((obj squid)) - (with-pp - (when (< 0.00001 (-> obj residual-accumulator-1)) - (set! (-> obj residual-accumulator-1) (* 0.95 (-> obj residual-accumulator-1))) - (+! (-> obj residual-accumulator-2) (-> obj residual-accumulator-1)) - ) - (let* ((f28-0 ((method-of-type trajectory compute-time-until-apex) - (the-as trajectory (&-> (the-as squid-grenade (-> obj self)) ignore-handle)) - ) - ) - (s3-0 (compute-trans-at-time (-> obj traj) f28-0 (new 'stack-no-clear 'vector))) - (s5-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (f30-0 (/ (the float (- (-> pp clock frame-counter) (-> obj traj-timer))) (-> obj traj-duration))) - ) - (let ((f26-0 (float-sin-clamp obj f30-0))) - (when (and (-> obj can-play-squid-boost) (< 0.125 f30-0)) - (set! (-> obj can-play-squid-boost) #f) - (sound-play "squid-boost") - ) - (cond - ((< f26-0 1.0) - (compute-trans-at-time (-> obj traj) f26-0 s5-0) - (set! (-> s4-0 quad) (-> obj traj-src quad)) - (+! (-> s4-0 y) (* 204.8 (the float (- (-> pp clock frame-counter) (-> obj traj-timer))) (/ f26-0 f30-0))) - (vector+float*! s4-0 s4-0 (-> obj residual-velocity) (-> obj residual-accumulator-2)) - (vector-lerp! s5-0 s4-0 s5-0 f26-0) - (cond - ((< f28-0 f26-0) - (let ((f28-1 (/ (- f26-0 f28-0) (- 1.0 f28-0)))) - (vector-lerp! s4-0 s3-0 (-> obj traj-dest) f28-1) - (vector-lerp! s5-0 s5-0 s4-0 f28-1) - ) - (squid-method-43 obj (squid-method-42 obj (new 'stack-no-clear 'vector)) 1092.2667 0.05) - (vector-! s4-0 (-> obj traj-dest) (-> obj trans)) - (vector-normalize! s4-0 1.75) - (dotimes (s3-2 6) - (send-event (handle->process (-> obj tentacles s3-2)) 'set-gravity s4-0) + (when (< 0.00001 (-> obj residual-accumulator-1)) + (set! (-> obj residual-accumulator-1) (* 0.95 (-> obj residual-accumulator-1))) + (+! (-> obj residual-accumulator-2) (-> obj residual-accumulator-1)) + ) + (let* ((f28-0 ((method-of-type trajectory compute-time-until-apex) + (the-as trajectory (&-> (the-as squid-grenade (-> obj self)) ignore-handle)) + ) ) + (s3-0 (compute-trans-at-time (-> obj traj) f28-0 (new 'stack-no-clear 'vector))) + (s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (f30-0 (/ (the float (- (current-time) (-> obj traj-timer))) (-> obj traj-duration))) + ) + (let ((f26-0 (float-sin-clamp obj f30-0))) + (when (and (-> obj can-play-squid-boost) (< 0.125 f30-0)) + (set! (-> obj can-play-squid-boost) #f) + (sound-play "squid-boost") + ) + (cond + ((< f26-0 1.0) + (compute-trans-at-time (-> obj traj) f26-0 s5-0) + (set! (-> s4-0 quad) (-> obj traj-src quad)) + (+! (-> s4-0 y) (* 204.8 (the float (- (current-time) (-> obj traj-timer))) (/ f26-0 f30-0))) + (vector+float*! s4-0 s4-0 (-> obj residual-velocity) (-> obj residual-accumulator-2)) + (vector-lerp! s5-0 s4-0 s5-0 f26-0) + (cond + ((< f28-0 f26-0) + (let ((f28-1 (/ (- f26-0 f28-0) (- 1.0 f28-0)))) + (vector-lerp! s4-0 s3-0 (-> obj traj-dest) f28-1) + (vector-lerp! s5-0 s5-0 s4-0 f28-1) ) - (else - (squid-method-43 obj (-> obj traj-dest) 546.13336 0.005) - ) - ) - (set! (-> obj trans quad) (-> s5-0 quad)) - ) - (else - (dotimes (s5-1 6) - (send-event (handle->process (-> obj tentacles s5-1)) 'set-gravity-slow (new 'static 'vector :y -1.0)) + (squid-method-43 obj (squid-method-42 obj (new 'stack-no-clear 'vector)) 1092.2667 0.05) + (vector-! s4-0 (-> obj traj-dest) (-> obj trans)) + (vector-normalize! s4-0 1.75) + (dotimes (s3-2 6) + (send-event (handle->process (-> obj tentacles s3-2)) 'set-gravity s4-0) ) - (set! (-> obj trans quad) (-> obj traj-dest quad)) ) + (else + (squid-method-43 obj (-> obj traj-dest) 546.13336 0.005) + ) + ) + (set! (-> obj trans quad) (-> s5-0 quad)) + ) + (else + (dotimes (s5-1 6) + (send-event (handle->process (-> obj tentacles s5-1)) 'set-gravity-slow (new 'static 'vector :y -1.0)) + ) + (set! (-> obj trans quad) (-> obj traj-dest quad)) ) ) - f30-0 ) + f30-0 ) ) ;; definition for method 49 of type squid ;; WARN: Return type mismatch int vs none. (defmethod setup-part-engine squid ((obj squid) (arg0 symbol)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> obj blink-time)) 0) - (set! (-> obj blink-mask) 0) - (dotimes (s5-0 10) - (let* ((f30-0 0.5) - (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-7 (the-as number (logior #x3f800000 v1-6))) - ) - (if (< f30-0 (+ -1.0 (the-as float v1-7))) - (logior! (-> obj blink-mask) (ash 1 s5-0)) - ) - ) - ) - (set! (-> obj blink-time) (+ (-> pp clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) - (set! arg0 #t) - ) - (when arg0 - (remove-from-process *part-engine* obj) - (add-connection - *part-engine* - obj - 5 - obj - 4790 - (new 'static 'vector :x -5906.432 :y 3317.76 :z -409.6 :w 819200.0) - ) - (add-connection - *part-engine* - obj - 5 - obj - 4790 - (new 'static 'vector :x 5906.432 :y 3317.76 :z -409.6 :w 819200.0) - ) - (add-connection *part-engine* obj 6 obj 4791 (new 'static 'vector :y 3366.912 :w 819200.0)) - (add-connection *part-engine* obj 13 obj 4791 (new 'static 'vector :y 11993.088 :z 5255.168 :w 819200.0)) - (add-connection - *part-engine* - obj - 5 - obj - 4792 - (new 'static 'vector :x 5439.488 :y -1794.048 :z 11444.224 :w 819200.0) - ) - (add-connection - *part-engine* - obj - 5 - obj - 4792 - (new 'static 'vector :x -5439.488 :y -1794.048 :z 11444.224 :w 819200.0) - ) - (let ((s5-2 (-> obj blink-mask))) - (if (logtest? s5-2 1) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4128.768 :y 2355.2 :z 3653.632 :w 819200.0) - ) - ) - (if (logtest? s5-2 2) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4554.752 :y 2449.408 :z 2359.296 :w 819200.0) - ) - ) - (if (logtest? s5-2 4) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -4386.816 :y 2191.36 :z 528.384 :w 819200.0) - ) - ) - (if (logtest? s5-2 8) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -5832.704 :y 2945.024 :z 1691.648 :w 819200.0) - ) - ) - (if (logtest? s5-2 16) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x -5861.376 :y 2920.448 :z 1118.208 :w 819200.0) - ) - ) - (if (logtest? s5-2 32) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4128.768 :y 2355.2 :z 3653.632 :w 819200.0) - ) - ) - (if (logtest? s5-2 64) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4554.752 :y 2449.408 :z 2359.296 :w 819200.0) - ) - ) - (if (logtest? s5-2 128) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 4386.816 :y 2191.36 :z -528.384 :w 819200.0) - ) - ) - (if (logtest? s5-2 256) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 5832.704 :y 2945.024 :z 1691.648 :w 819200.0) - ) - ) - (if (logtest? s5-2 512) - (add-connection - *part-engine* - obj - 5 - obj - 4793 - (new 'static 'vector :x 5861.376 :y 2920.448 :z 1118.208 :w 819200.0) - ) + (when (>= (- (current-time) (-> obj blink-time)) 0) + (set! (-> obj blink-mask) 0) + (dotimes (s5-0 10) + (let* ((f30-0 0.5) + (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (if (< f30-0 (+ -1.0 (the-as float v1-7))) + (logior! (-> obj blink-mask) (ash 1 s5-0)) ) ) ) - 0 - (none) + (set! (-> obj blink-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75))))) + (set! arg0 #t) ) + (when arg0 + (remove-from-process *part-engine* obj) + (add-connection + *part-engine* + obj + 5 + obj + 4790 + (new 'static 'vector :x -5906.432 :y 3317.76 :z -409.6 :w 819200.0) + ) + (add-connection + *part-engine* + obj + 5 + obj + 4790 + (new 'static 'vector :x 5906.432 :y 3317.76 :z -409.6 :w 819200.0) + ) + (add-connection *part-engine* obj 6 obj 4791 (new 'static 'vector :y 3366.912 :w 819200.0)) + (add-connection *part-engine* obj 13 obj 4791 (new 'static 'vector :y 11993.088 :z 5255.168 :w 819200.0)) + (add-connection + *part-engine* + obj + 5 + obj + 4792 + (new 'static 'vector :x 5439.488 :y -1794.048 :z 11444.224 :w 819200.0) + ) + (add-connection + *part-engine* + obj + 5 + obj + 4792 + (new 'static 'vector :x -5439.488 :y -1794.048 :z 11444.224 :w 819200.0) + ) + (let ((s5-2 (-> obj blink-mask))) + (if (logtest? s5-2 1) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4128.768 :y 2355.2 :z 3653.632 :w 819200.0) + ) + ) + (if (logtest? s5-2 2) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4554.752 :y 2449.408 :z 2359.296 :w 819200.0) + ) + ) + (if (logtest? s5-2 4) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -4386.816 :y 2191.36 :z 528.384 :w 819200.0) + ) + ) + (if (logtest? s5-2 8) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -5832.704 :y 2945.024 :z 1691.648 :w 819200.0) + ) + ) + (if (logtest? s5-2 16) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x -5861.376 :y 2920.448 :z 1118.208 :w 819200.0) + ) + ) + (if (logtest? s5-2 32) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4128.768 :y 2355.2 :z 3653.632 :w 819200.0) + ) + ) + (if (logtest? s5-2 64) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4554.752 :y 2449.408 :z 2359.296 :w 819200.0) + ) + ) + (if (logtest? s5-2 128) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 4386.816 :y 2191.36 :z -528.384 :w 819200.0) + ) + ) + (if (logtest? s5-2 256) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 5832.704 :y 2945.024 :z 1691.648 :w 819200.0) + ) + ) + (if (logtest? s5-2 512) + (add-connection + *part-engine* + obj + 5 + obj + 4793 + (new 'static 'vector :x 5861.376 :y 2920.448 :z 1118.208 :w 819200.0) + ) + ) + ) + ) + 0 + (none) ) ;; definition for method 50 of type squid @@ -2797,7 +2791,7 @@ This commonly includes things such as: ) (when (-> obj rush-sound-playing) (cond - ((or (zero? (-> obj rush-end-time)) (< (- (-> pp clock frame-counter) (-> obj rush-end-time)) (seconds 0.1))) + ((or (zero? (-> obj rush-end-time)) (< (- (current-time) (-> obj rush-end-time)) (seconds 0.1))) (the-as int (sound-play "squid-rush" :id (-> obj rush-sound) :position (-> obj root-override trans))) ) (else @@ -2831,12 +2825,8 @@ This commonly includes things such as: ) ) (else - (let* ((f0-23 - (fmin 1.0 (* 0.0011111111 (the float (- (-> pp clock frame-counter) (the-as time-frame (-> obj jet-pitch)))))) - ) - (f28-2 - (fmin 1.0 (* 0.006666667 (the float (- (-> pp clock frame-counter) (the-as time-frame (-> obj jet-volume)))))) - ) + (let* ((f0-23 (fmin 1.0 (* 0.0011111111 (the float (- (current-time) (the-as time-frame (-> obj jet-pitch))))))) + (f28-2 (fmin 1.0 (* 0.006666667 (the float (- (current-time) (the-as time-frame (-> obj jet-volume))))))) (f30-6 (* 0.2 (- 1.0 f0-23) (sin (* 32768.0 f0-23)))) (f0-31 (+ 1.0 (* 5.0 (- 1.0 f28-2) (sin (* 32768.0 f30-6))))) ) @@ -2889,10 +2879,7 @@ This commonly includes things such as: ) ) (when (not (and (-> obj next-state) (= (-> obj next-state name) 'recharge))) - (let ((v1-249 - (the int (lerp-scale 0.0 128.0 (the float (- (-> pp clock frame-counter) (-> obj shield-timer))) 0.0 600.0)) - ) - ) + (let ((v1-249 (the int (lerp-scale 0.0 128.0 (the float (- (current-time) (-> obj shield-timer))) 0.0 600.0)))) (cond ((< 0.0 (-> obj shield-hit-points)) (set! s5-9 (min 100 v1-249)) @@ -2964,7 +2951,7 @@ This commonly includes things such as: (dotimes (s4-11 6) (send-event (handle->process (-> obj tentacles s4-11)) 'set-fade s5-9) ) - (let* ((f0-56 (lerp-scale 0.5 0.0 (the float (- (-> pp clock frame-counter) (-> obj shield-timer))) 0.0 75.0)) + (let* ((f0-56 (lerp-scale 0.5 0.0 (the float (- (current-time) (-> obj shield-timer))) 0.0 75.0)) (a0-147 (vector-float*! (new 'stack-no-clear 'vector) (-> obj shield-color) (if (< 0.0 (-> obj shield-hit-points)) f0-56 diff --git a/test/decompiler/reference/jak2/levels/palace/boss/squid-states_REF.gc b/test/decompiler/reference/jak2/levels/palace/boss/squid-states_REF.gc index 64cd53109a..913095c575 100644 --- a/test/decompiler/reference/jak2/levels/palace/boss/squid-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/boss/squid-states_REF.gc @@ -222,14 +222,14 @@ (defstate test (squid) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (ja :num! (loop!)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self driver-blend target) (- 1.0 (-> self driver-blend target))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (debug-draw (-> self first-path)) (debug-draw (-> self second-path)) @@ -512,10 +512,8 @@ :virtual #t :event squid-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self traj-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.5)))) - ) + (set! (-> self state-time) (current-time)) + (set! (-> self traj-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.5))))) (set! (-> self traj initial-position quad) (-> self trans quad)) (let ((v1-7 (-> self stage))) (cond @@ -567,17 +565,15 @@ (-> self trans) (the-as vector (-> self traj)) (-> self traj-dest) - (parameter-ease-sqr-clamp (* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (parameter-ease-sqr-clamp (* 0.0011111111 (the float (- (current-time) (-> self state-time))))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual flee) ) (spawn (-> self part) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 55))) - (when (>= (- (-> self clock frame-counter) (-> self traj-timer)) 0) + (when (>= (- (current-time) (-> self traj-timer)) 0) (sound-play "squid-explosion") - (set! (-> self traj-timer) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.5)))) - ) + (set! (-> self traj-timer) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.5))))) (cond ((zero? (-> self stage)) (setup-masks (-> self draw) 320 160) @@ -705,7 +701,7 @@ :event squid-handler :enter (behavior () (squid-talker 'start-recharging) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self invincible-timer) 0) (setup-masks (-> self draw) 8192 0) (logior! (-> self draw status) (draw-control-status warp-cross-fade)) @@ -739,7 +735,7 @@ (go-virtual fly-to-shoot-spot) ) ) - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + ((>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self driver-blend target) 1.0) (ja-channel-push! 1 (seconds 0.1)) (ja :group! (-> self draw art-group data 34) :num! min) @@ -765,27 +761,21 @@ (let ((v1-70 (handle->process (-> self hud)))) (if v1-70 (set! (-> (the-as hud-squid v1-70) values 2 target) - (min 100 (/ (* 100 (- (-> self clock frame-counter) (-> self state-time))) 600)) + (min 100 (/ (* 100 (- (current-time) (-> self state-time))) 600)) ) ) ) (let ((gp-3 (new 'stack-no-clear 'vector))) - (let ((f30-0 - (* 16384.0 (fmin 1.0 (* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self state-time)))))) - ) - ) - (let* ((f0-16 (* 164.25063 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (let ((f30-0 (* 16384.0 (fmin 1.0 (* 0.0016666667 (the float (- (current-time) (-> self state-time)))))))) + (let* ((f0-16 (* 164.25063 (the float (- (current-time) (-> self state-time))))) (f0-19 (lerp-scale 70.0 120.0 (fabs (cos f0-16)) 1.0 0.0)) ) (set! (-> self draw force-fade) - (the-as - uint - (the int (lerp-scale 128.0 f0-19 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 37.5)) - ) + (the-as uint (the int (lerp-scale 128.0 f0-19 (the float (- (current-time) (-> self state-time))) 0.0 37.5))) ) ) (set! (-> self shield-timer) - (- (-> self clock frame-counter) + (- (current-time) (the-as time-frame (the int (lerp-scale 0.0 600.0 (the float (-> self draw force-fade)) 0.0 128.0))) ) ) @@ -802,7 +792,7 @@ ) (dotimes (gp-4 6) (send-event (handle->process (-> self tentacles gp-4)) 'set-fade (-> self draw force-fade)) - (when (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (< (- (current-time) (-> self state-time)) (seconds 2)) (case (-> self stage) ((1) (send-event (handle->process (-> self tentacles gp-4)) 'wrap *squid-second-pole*) @@ -874,16 +864,16 @@ (set! (-> self allowed-rotate-to-vector-angle) 0.0) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 21) :num! min) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) ) ((< 910.2222 (-> self desired-rotate-to-vector-angle)) (set! (-> self allowed-rotate-to-vector-angle) 0.0) (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 24) :num! min) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) ) ((let ((v1-106 (ja-group))) @@ -953,22 +943,22 @@ :event squid-handler :enter (behavior () (squid-talker 'headbutting) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self traj-timer) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self traj-timer) (current-time)) (vector-reset! (-> self residual-velocity)) (set! (-> self can-play-squid-boost) #t) (none) ) :exit (behavior () (sound-play "squid-rush-end") - (set! (-> self rush-end-time) (-> self clock frame-counter)) + (set! (-> self rush-end-time) (current-time)) (let ((v1-5 (ja-group))) (when (and v1-5 (= v1-5 (-> self draw art-group data 5))) (ja-channel-push! 1 (seconds 0.05)) (ja :group! (-> self draw art-group data 6) :num! min) (sound-play "sqd-shield-down") - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #t) ) ) @@ -980,7 +970,7 @@ ) (go-virtual pre-flee) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (>= (- (current-time) (-> self state-time)) (seconds 3)) (go-virtual fly-to-shoot-spot) ) (let ((v1-17 (ja-group))) @@ -990,8 +980,8 @@ (when (and (-> self can-play-squid-boost) (< 30.0 (ja-aframe-num 0))) (sound-play "squid-boost") (set! (-> self can-play-squid-boost) #f) - (set! (-> self jet-volume) (the-as int (-> self clock frame-counter))) - (set! (-> self jet-pitch) (the-as int (-> self clock frame-counter))) + (set! (-> self jet-volume) (the-as int (current-time))) + (set! (-> self jet-pitch) (the-as int (current-time))) (set! (-> self negate-jet-pitch) #f) (set! (-> self rush-sound-playing) #t) (set! (-> self rush-end-time) 0) @@ -1003,7 +993,7 @@ (if (< (ja-aframe-num 0) 20.0) (squid-method-42 self (-> self traj-dest)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (let ((v1-53 (ja-group))) @@ -1027,7 +1017,7 @@ (s5-1 (new 'stack-no-clear 'vector)) (s2-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (let ((f0-8 (vector-vector-xz-distance-squared (-> self traj-dest) (-> self trans))) (f1-1 8192.0) ) @@ -1036,7 +1026,7 @@ ) (go-virtual fly-to-shoot-spot) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) (-> self mesh-forced)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (-> self mesh-forced)) (vector-reset! (-> self residual-velocity)) (go-virtual fly-to-shoot-spot) ) @@ -1046,10 +1036,7 @@ (set! (-> s3-0 quad) (-> self traj-dest quad)) (clamp-vector-to-mesh-cross-gaps (-> self nav) gp-3 (-> self current-nav-poly) s3-0 409600.0 #f s2-0) (set! (-> self residual-velocity quad) (-> self trans quad)) - (let ((f30-1 - (lerp-scale 0.01 1.0 (+ -375.0 (the float (- (-> self clock frame-counter) (-> self traj-timer)))) 0.0 150.0) - ) - ) + (let ((f30-1 (lerp-scale 0.01 1.0 (+ -375.0 (the float (- (current-time) (-> self traj-timer)))) 0.0 150.0))) (set! (-> gp-3 y) (-> self trans y)) (vector-seek-3d-smooth! (-> self trans) gp-3 (* 4096.0 f30-1) 0.5) (set! (-> gp-3 quad) (-> self trans quad)) @@ -1112,7 +1099,7 @@ :event squid-handler :enter (behavior () (squid-talker 'shooting) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self stop-shooting) #f) (set! (-> self traj-timer) 0) (set! (-> self tentacle-base-rotation-speed target) 1.0) @@ -1146,15 +1133,13 @@ ) ) (squid-method-43 self (squid-method-42 self (new 'stack-no-clear 'vector)) 9.102222 0.75) - (when (or (>= (- (-> self clock frame-counter) (-> self state-time)) (squid-whirlwind-time)) - (-> self stop-shooting) - ) + (when (or (>= (- (current-time) (-> self state-time)) (squid-whirlwind-time)) (-> self stop-shooting)) (vector-reset! (-> self residual-velocity)) (go-virtual fly-to-shoot-spot) ) - (when (>= (- (-> self clock frame-counter) (-> self traj-timer)) (seconds 0.7)) + (when (>= (- (current-time) (-> self traj-timer)) (seconds 0.7)) (spawn-whirlwind self) - (set! (-> self traj-timer) (-> self clock frame-counter)) + (set! (-> self traj-timer) (current-time)) ) (none) ) @@ -1421,7 +1406,7 @@ (else (ja-channel-push! 1 (seconds 0.15)) (ja :group! (-> self draw art-group data 7) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -1499,14 +1484,10 @@ (+ -3640.889 f30-1) ) ((-> self gun-high-to-low) - (+ f30-1 - (lerp-scale -1820.4445 910.2222 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (+ f30-1 (lerp-scale -1820.4445 910.2222 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) (else - (+ f30-1 - (lerp-scale 3640.889 -910.2222 (the float (- (-> self clock frame-counter) (-> self state-time))) 0.0 900.0) - ) + (+ f30-1 (lerp-scale 3640.889 -910.2222 (the float (- (current-time) (-> self state-time))) 0.0 900.0)) ) ) ) @@ -1537,7 +1518,7 @@ ((let ((v1-77 (ja-group))) (and v1-77 (= v1-77 (-> self draw art-group data 17))) ) - (if (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (or (>= (- (current-time) (-> self state-time)) (seconds 3)) (or (= (-> self shield-hit-points) 0.0) (zero? (-> self hit-points)) (-> self stop-shooting)) ) (ja :num! (seek!)) @@ -1556,7 +1537,7 @@ 0 ) ) - (if (and (or (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (if (and (or (>= (- (current-time) (-> self state-time)) (seconds 3)) (or (= (-> self shield-hit-points) 0.0) (zero? (-> self hit-points)) (-> self stop-shooting)) ) (ja-done? 0) @@ -1599,7 +1580,7 @@ (else (ja-channel-push! 1 (seconds 0.2)) (ja :group! (-> self draw art-group data 16) :num! min) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self next-gun) 1) ) ) @@ -1648,7 +1629,7 @@ (squid-adjust-fly-anim) (when (and (zero? (-> self stage)) (not (-> self reload-played)) - (< (- (-> self traj-duration) (the float (- (-> self clock frame-counter) (-> self traj-timer)))) -210.0) + (< (- (-> self traj-duration) (the float (- (current-time) (-> self traj-timer)))) -210.0) ) (sound-play "squid-reload") (set! (-> self reload-played) #t) @@ -1697,7 +1678,7 @@ :enter (behavior () (set-setting! 'music 'danger4 0.0 0) (set! (-> self driver-blend target) 1.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self hud) (ppointer->handle (process-spawn hud-squid :init hud-init-by-other :to self))) (vector+! (-> self trans) (-> self trans) (new 'static 'vector :x 101171.2 :y 45056.0 :z 31047.68)) (let ((v1-14 (squid-method-42 self (new 'stack-no-clear 'vector)))) @@ -1715,7 +1696,7 @@ ) :trans (behavior () (ja :num! (loop!)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 3)) + (when (>= (- (current-time) (-> self state-time)) (seconds 3)) ) (none) ) diff --git a/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc b/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc index b016a94dac..ef778575ff 100644 --- a/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc @@ -144,7 +144,7 @@ (set! (-> a1-7 param 1) (the-as uint v1-14)) ) (when (send-event-function gp-0 a1-7) - (set! (-> self no-collision-timer) (-> self clock frame-counter)) + (set! (-> self no-collision-timer) (current-time)) (let ((v1-19 (-> self root-override root-prim))) (set! (-> v1-19 prim-core collide-as) (collide-spec)) (set! (-> v1-19 prim-core collide-with) (collide-spec)) @@ -160,12 +160,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (-> self no-collision-timer)) + (>= (- (current-time) (-> self no-collision-timer)) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) @@ -239,14 +239,14 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self sound-timer)) + (when (>= (- (current-time) (-> self state-time)) (-> self sound-timer)) (sound-play "cab-fan-blade") (sound-stop (-> self sound-id)) (sound-play "pal-fan-buzz" :id (-> self sound-id)) (set! (-> self sound-timer) (the-as time-frame (the int (* 300.0 (/ 21845.334 (fabs (-> self rotate-speed)))))) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (update! (-> self sound)) (rider-post) @@ -949,7 +949,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self fire-timer) (-> self clock frame-counter)) + (set! (-> self fire-timer) (current-time)) (set! (-> self gun-index) 0) 0 (none) @@ -963,7 +963,7 @@ This commonly includes things such as: (* (-> self spin-rate) (-> self clock seconds-per-frame)) ) (let ((f30-0 1.0)) - (when (>= (- (-> self clock frame-counter) (-> self fire-timer)) (seconds 0.05)) + (when (>= (- (current-time) (-> self fire-timer)) (seconds 0.05)) (let ((gp-0 (new 'stack-no-clear 'matrix))) (let ((s5-0 (-> self node-list data (+ (* (-> self gun-index) 2) 4)))) (vector<-cspace! (the-as vector (-> gp-0 vector)) s5-0) @@ -974,7 +974,7 @@ This commonly includes things such as: (pal-rot-gun-method-23 self gp-0) ) (set! (-> self gun-index) (- 1 (-> self gun-index))) - (set! (-> self fire-timer) (-> self clock frame-counter)) + (set! (-> self fire-timer) (current-time)) (set! f30-0 1.2) ) (let* ((f0-10 (the float (sar (shl (the int (quaternion-z-angle (-> self root quat))) 48) 48))) diff --git a/test/decompiler/reference/jak2/levels/palace/cable/palcab-part_REF.gc b/test/decompiler/reference/jak2/levels/palace/cable/palcab-part_REF.gc index 06095c29d7..64bfa16334 100644 --- a/test/decompiler/reference/jak2/levels/palace/cable/palcab-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/cable/palcab-part_REF.gc @@ -323,9 +323,7 @@ ;; WARN: Return type mismatch int vs none. (defbehavior palcab-bird-bob-func palcab-part ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 0 y) - (+ (-> arg1 key proc root trans y) - (* -2048.0 (sin (* 218.45334 (the float (mod (-> self clock frame-counter) 300))))) - ) + (+ (-> arg1 key proc root trans y) (* -2048.0 (sin (* 218.45334 (the float (mod (current-time) 300)))))) ) 0 (none) diff --git a/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc b/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc index 382c43000b..45aa06a76f 100644 --- a/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc @@ -947,7 +947,7 @@ This commonly includes things such as: (defstate idle (palent-turret) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -957,13 +957,13 @@ This commonly includes things such as: :trans (behavior () (cond ((not (task-node-closed? (game-task-node palace-sneak-in-meeting))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else (let* ((f0-0 65536.0) (f1-0 -0.5) (f2-0 0.16666667) - (f3-1 (* 0.0033333334 (the float (- (-> self clock frame-counter) (-> self state-time))))) + (f3-1 (* 0.0033333334 (the float (- (current-time) (-> self state-time))))) (f30-0 (* f0-0 (+ f1-0 (* f2-0 (- f3-1 (* (the float (the int (/ f3-1 6.0))) 6.0)))))) (s4-0 (-> self node-list data 5 bone transform)) (s5-0 (matrix->trans s4-0 (new 'stack-no-clear 'vector))) @@ -973,7 +973,7 @@ This commonly includes things such as: (let ((f0-2 (* 5097.2446 (sin f30-0)))) (quaternion-rotate-local-y! (-> self root-override quat) (-> self entity quat) f0-2) ) - (when (< (the-as time-frame (-> self next-shoot)) (-> self clock frame-counter)) + (when (< (the-as time-frame (-> self next-shoot)) (current-time)) (set-palent-turret-flash! 1.0) (let ((a1-2 (new 'stack-no-clear 'projectile-init-by-other-params))) (set! (-> a1-2 ent) (-> self entity)) @@ -993,7 +993,7 @@ This commonly includes things such as: (set! (-> a1-2 vel quad) (-> gp-0 quad)) (spawn-projectile palent-turret-shot a1-2 self *default-dead-pool*) ) - (set! (-> self next-shoot) (the-as uint (+ (-> self clock frame-counter) (seconds 0.1)))) + (set! (-> self next-shoot) (the-as uint (+ (current-time) (seconds 0.1)))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc b/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc index afbeb5517f..835b8ebe91 100644 --- a/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc @@ -56,7 +56,7 @@ (let ((v1-0 #f) (gp-0 (-> self elevator-status)) ) - (when (>= (- (-> self clock frame-counter) (-> self sticky-player-last-ride-time)) 0) + (when (>= (- (current-time) (-> self sticky-player-last-ride-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -69,7 +69,7 @@ ) ) (set! (-> self sticky-player-last-ride-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) + (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) ) (set! v1-0 #t) ) @@ -734,7 +734,7 @@ (let ((v1-8 #f) (gp-0 (-> self elevator-status)) ) - (when (>= (- (-> self clock frame-counter) (-> self sticky-player-last-ride-time)) 0) + (when (>= (- (current-time) (-> self sticky-player-last-ride-time)) 0) (dotimes (s5-0 10) (let* ((f30-0 0.5) (v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) @@ -747,7 +747,7 @@ ) ) (set! (-> self sticky-player-last-ride-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) + (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.25 0.75)))) ) (set! v1-8 #t) ) diff --git a/test/decompiler/reference/jak2/levels/power_station/power_switches/ctypower_REF.gc b/test/decompiler/reference/jak2/levels/power_station/power_switches/ctypower_REF.gc index 491f491d48..504be7d227 100644 --- a/test/decompiler/reference/jak2/levels/power_station/power_switches/ctypower_REF.gc +++ b/test/decompiler/reference/jak2/levels/power_station/power_switches/ctypower_REF.gc @@ -117,7 +117,7 @@ ) ) (if (= (-> self count) (-> self max-count)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (set! (-> *game-info* counter) (the float (-> self count))) ) @@ -158,8 +158,8 @@ () (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-turret :init hud-init-by-other :to self))) (send-event *traffic-manager* 'set-target-level #x3f800000) - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 5)) (suspend) ) (send-event *traffic-manager* 'set-alert-level 1) @@ -193,8 +193,8 @@ TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () - (set! (-> self state-time) (-> self clock frame-counter)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (task-node-close! (game-task-node city-power-post-win)) diff --git a/test/decompiler/reference/jak2/levels/power_station/vinroom-obs_REF.gc b/test/decompiler/reference/jak2/levels/power_station/vinroom-obs_REF.gc index a8d645e592..7636b26e71 100644 --- a/test/decompiler/reference/jak2/levels/power_station/vinroom-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/power_station/vinroom-obs_REF.gc @@ -145,7 +145,7 @@ (when (and (or (not (-> self dont-draw-outside?)) (>= (vector4-dot (the-as vector (-> self lightning-plane)) (math-camera-pos)) 0.0) ) - (< (the-as time-frame (-> self lightning-timer)) (-> self clock frame-counter)) + (< (the-as time-frame (-> self lightning-timer)) (current-time)) ) (let ((s4-0 (new 'stack-no-clear 'matrix)) (s3-1 @@ -183,7 +183,7 @@ ) (when (>= (fill-and-probe-using-line-sphere *collide-cache* s5-1) 0.0) (set! (-> self lightning-timer) - (the-as uint (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.1 0.4))))) + (the-as uint (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.1 0.4))))) ) (let ((s4-3 (new 'stack-no-clear 'vector))) (set! (-> s4-3 quad) (-> s5-1 best-other-tri intersect quad)) diff --git a/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc b/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc index c082deebfc..ed9015e0e5 100644 --- a/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc @@ -322,7 +322,7 @@ ) :enter (behavior () (logclear! (-> self mask) (process-mask actor-pause)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (if (handle->process (-> self carry other)) (drop-impl! (the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info)) @@ -337,14 +337,14 @@ (when (or (and (logtest? (-> self root-override status) (collide-status on-surface)) (< 0.8 (-> self root-override surface-angle)) ) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (vector-reset! (-> self root-override transv)) (set! (-> self root-override root-prim local-sphere w) (-> self carry backup-radius)) (cond ((and (-> self reset-on-land?) (and (or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (and (-> self next-entity) (not (logtest? (-> self next-entity extra perm status) (entity-perm-status subtask-complete))) @@ -385,7 +385,7 @@ (go-virtual wait) ) ((or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans))) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5)) + (>= (- (current-time) (-> self state-time)) (seconds 5)) ) (sound-play "block-break") (let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000))) diff --git a/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc b/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc index b833fac856..ac1f54100d 100644 --- a/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc @@ -591,7 +591,7 @@ (vector+! (-> self target-next-pos) (-> self focus-dir) gp-0) (set! (-> self target-prev-pos quad) (-> gp-0 quad)) ) - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) ) (else (set! (-> self target-next-pos quad) (-> self target-prev-pos quad)) @@ -742,9 +742,9 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self predict-timer) (the-as uint (+ (-> self clock frame-counter) 1))) - (set! (-> self shot-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self state-time) (current-time)) + (set! (-> self predict-timer) (the-as uint (+ (current-time) 1))) + (set! (-> self shot-timer) (the-as uint (current-time))) (let ((v1-7 self)) (set! (-> v1-7 enemy-flags) (the-as enemy-flag (logclear (-> v1-7 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-7 nav callback-info) *nav-enemy-null-callback-info*) @@ -763,7 +763,7 @@ (set! (-> self attack-id) a0-6) ) (when (logtest? (-> self status-flags) 2) - (set! (-> self spin-up-timer) (+ (-> self clock frame-counter) (seconds 2))) + (set! (-> self spin-up-timer) (+ (current-time) (seconds 2))) (set! (-> self status-flags) (logand -3 (-> self status-flags))) ) (if (zero? (rand-vu-int-range 0 3)) @@ -814,10 +814,10 @@ ) (go-virtual reload) ) - ((>= (- (-> self clock frame-counter) (the-as int (-> self shot-timer))) (seconds 0.25)) + ((>= (- (current-time) (the-as int (-> self shot-timer))) (seconds 0.25)) (when (rapid-gunner-method-184 self 2184.5334) (let* ((a1-11 (-> self node-list data 18)) - (f30-0 (fmax 0.0 (the float (- (-> self spin-up-timer) (-> self clock frame-counter))))) + (f30-0 (fmax 0.0 (the float (- (-> self spin-up-timer) (current-time))))) (s5-1 (vector<-cspace! (new 'stack-no-clear 'vector) a1-11)) (s4-2 (vector+! (new 'stack-no-clear 'vector) (get-trans (the-as process-focusable gp-0) 0) (-> self focus-dir)) @@ -836,7 +836,7 @@ ) (+! (-> self shots-fired) 1) ) - (set! (-> self shot-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self shot-timer) (the-as uint (current-time))) ) ) ) @@ -929,7 +929,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1061,7 +1061,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -1140,13 +1140,13 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self shots-fired) (the-as uint 0)) 0 (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (go-hostile self) ) (none) @@ -1178,7 +1178,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (set! (-> self shots-fired) (the-as uint 0)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) @@ -1224,7 +1224,7 @@ (t9-0) ) ) - (set! (-> self predict-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self predict-timer) (the-as uint (current-time))) (cond ((handle->process (-> self focus handle)) (if (check-los? (-> self los) 0) @@ -1277,7 +1277,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (>= 1 (the-as int (-> self focus aware))) (go-virtual active) ) @@ -1341,7 +1341,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rapid-gunner) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/ruins/ruins-obs_REF.gc b/test/decompiler/reference/jak2/levels/ruins/ruins-obs_REF.gc index c0774b7e1b..73ae442912 100644 --- a/test/decompiler/reference/jak2/levels/ruins/ruins-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/ruins-obs_REF.gc @@ -470,7 +470,7 @@ This commonly includes things such as: and translate the platform via the `smush` @see [[smush-control]]" (activate! (-> obj smush) -1.0 60 150 1.0 1.0 (-> self clock)) - (set! (-> obj bounce-time) (-> self clock frame-counter)) + (set! (-> obj bounce-time) (current-time)) (set! (-> obj bouncing) #t) (logclear! (-> obj mask) (process-mask sleep)) (logclear! (-> obj mask) (process-mask sleep-code)) @@ -502,7 +502,7 @@ and translate the platform via the `smush` ) :post (behavior () (when (and (nonzero? (-> self root-override root-prim prim-core collide-as)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25)) + (>= (- (current-time) (-> self state-time)) (seconds 0.25)) ) (let ((v1-9 (-> self root-override root-prim))) (set! (-> v1-9 prim-core collide-as) (collide-spec)) @@ -726,9 +726,9 @@ This commonly includes things such as: (lambda :behavior task-manager () (set! (-> self data-int32 0) 0) - (set! (-> self beep-time) (+ (-> self clock frame-counter) (seconds -30))) + (set! (-> self beep-time) (+ (current-time) (seconds -30))) (until #f - (when (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40)) + (when (>= (- (current-time) (-> self beep-time)) (seconds 40)) (let ((v1-8 (mod (-> self data-int32 0) (if (= (-> self node-info task) (game-task ruins-tower)) 4 2 @@ -751,7 +751,7 @@ This commonly includes things such as: ) ) ) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) (+! (-> self data-int32 0) 1) ) (b! @@ -806,12 +806,12 @@ This commonly includes things such as: ) (b! #t cfg-17 :delay (nop!)) (label cfg-8) - (when (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 40960.0) ) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-17) @@ -830,22 +830,22 @@ This commonly includes things such as: (until (not (or (not *target*) (not (logtest? (focus-status mech) (-> *target* focus-status))))) (b! #t cfg-47 :delay (nop!)) (label cfg-38) - (when (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 40960.0) ) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-47) (b! (or (not *target*) (not (logtest? (focus-status mech) (-> *target* focus-status)))) cfg-38 :delay (nop!)) (talker-spawn-func (-> *talker-speech* 457) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) (b! #t cfg-66 :delay (nop!)) (label cfg-52) ) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not (and gp-0 (< (vector-vector-xz-distance (target-pos 0) (-> gp-0 extra trans)) 61440.0))) cfg-63 @@ -856,7 +856,7 @@ This commonly includes things such as: (label cfg-63) (talker-spawn-func (-> *talker-speech* 454) *entity-pool* (target-pos 0) (the-as region #f)) (label cfg-64) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-66) @@ -885,7 +885,7 @@ This commonly includes things such as: (label cfg-1) (b! #t cfg-14 :delay (nop!)) (label cfg-2) - (let ((a0-2 (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)))) + (let ((a0-2 (>= (- (current-time) (-> self time-limit)) (seconds 10)))) (b! (not a0-2) cfg-11 :likely-delay (set! v1-3 a0-2)) ) (b! (not gp-0) cfg-11 :likely-delay (set! v1-3 gp-0)) @@ -902,7 +902,7 @@ This commonly includes things such as: (label cfg-11) (when v1-3 (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (suspend) (label cfg-14) @@ -915,7 +915,7 @@ This commonly includes things such as: (set! v1-18 (not (logtest? (focus-status mech) (-> *target* focus-status)))) (label cfg-22) (b! v1-18 cfg-1 :delay (nop!)) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not gp-0) cfg-38 :likely-delay (set! v1-25 gp-0)) (let ((v1-27 (-> gp-0 extra process))) (b! (not v1-27) cfg-28 :delay (nop!)) @@ -940,7 +940,7 @@ This commonly includes things such as: (label cfg-38) (when v1-25 (talker-spawn-func (-> *talker-speech* 458) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) ) (suspend) @@ -975,7 +975,7 @@ This commonly includes things such as: (b! #t cfg-20 :delay (nop!)) (label cfg-8) (set! v1-6 - (and (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (and (>= (- (current-time) (-> self time-limit)) (seconds 10)) (and gp-0 (begin (let ((v1-8 (-> gp-0 extra process))) (b! (not v1-8) cfg-14 :delay (nop!)) @@ -995,7 +995,7 @@ This commonly includes things such as: (label cfg-17) (b! (not v1-6) cfg-19 :delay (empty-form)) (talker-spawn-func (-> *talker-speech* 452) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) (label cfg-19) (suspend) (label cfg-20) @@ -1003,7 +1003,7 @@ This commonly includes things such as: (b! #t cfg-53 :delay (nop!)) (label cfg-25) ) - (when (>= (- (-> self clock frame-counter) (-> self time-limit)) (seconds 10)) + (when (>= (- (current-time) (-> self time-limit)) (seconds 10)) (b! (not (and *target* (focus-test? *target* carry))) cfg-43 :delay (empty-form)) (when (< (vector-vector-xz-distance (target-pos 0) @@ -1031,7 +1031,7 @@ This commonly includes things such as: ) ) (talker-spawn-func (-> *talker-speech* 459) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) (b! #t cfg-52 :delay (nop!)) (label cfg-43) @@ -1047,7 +1047,7 @@ This commonly includes things such as: ) ) (talker-spawn-func (-> *talker-speech* 458) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self time-limit) (-> self clock frame-counter)) + (set! (-> self time-limit) (current-time)) ) ) (label cfg-52) diff --git a/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc b/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc index a9e6d595d5..2f726f6075 100644 --- a/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc @@ -742,15 +742,11 @@ (defun ruins-bird-bob-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) "Move the bird particles up and down, on a sinusoidal period with a wavelength of 300 frames TODO - check argument types / what birds?" - (with-pp - (set! (-> arg2 vector 0 y) - (+ (-> arg1 key proc root trans y) - (* -2048.0 (sin (* 218.45334 (the float (mod (-> pp clock frame-counter) 300))))) - ) - ) - 0 - (none) - ) + (set! (-> arg2 vector 0 y) + (+ (-> arg1 key proc root trans y) (* -2048.0 (sin (* 218.45334 (the float (mod (current-time) 300)))))) + ) + 0 + (none) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/levels/sewer/escort/jinx-bomb_REF.gc b/test/decompiler/reference/jak2/levels/sewer/escort/jinx-bomb_REF.gc index c1a87a7d86..5417d33380 100644 --- a/test/decompiler/reference/jak2/levels/sewer/escort/jinx-bomb_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/escort/jinx-bomb_REF.gc @@ -55,12 +55,12 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (if (and (nonzero? (-> self fuse-delay)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self fuse-delay))) + (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self fuse-delay))) ) (go-virtual explode) ) @@ -81,7 +81,7 @@ (defstate explode (jinx-bomb) :virtual #t :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw)) (let ((v1-6 (-> self root-override root-prim))) (set! (-> v1-6 prim-core collide-as) (collide-spec)) @@ -170,7 +170,3 @@ (go-virtual idle) (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/escort/jinx-states_REF.gc b/test/decompiler/reference/jak2/levels/sewer/escort/jinx-states_REF.gc index d6bd2a687f..999a71c675 100644 --- a/test/decompiler/reference/jak2/levels/sewer/escort/jinx-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/escort/jinx-states_REF.gc @@ -526,7 +526,7 @@ (seconds 0.05) ) (bot-method-223 self #t) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (or (not (bot-method-214 self)) (not (ruffian-method-237 self))) ) (react-to-focus self) @@ -623,7 +623,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f (ja-no-eval :group! (-> self draw art-group data 3) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) frames num-frames) -1))) @@ -631,7 +631,7 @@ ) (until (ja-done? 0) (if (and (logtest? (-> self bot-flags) (bot-flags failed)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (reset? *fail-mission-control*) ) (reset! *fail-mission-control*) @@ -712,7 +712,3 @@ (none) ) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/gator_REF.gc b/test/decompiler/reference/jak2/levels/sewer/gator_REF.gc index a1b4c0bade..751984477d 100644 --- a/test/decompiler/reference/jak2/levels/sewer/gator_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/gator_REF.gc @@ -203,95 +203,93 @@ "Core movement for the [[gator]], circles the target, charges at the target, etc @params TODO - not sure, they all dont seem to do very much and this method is a mess" (local-vars (v1-17 object) (a0-5 object)) - (with-pp - (let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) - (s5-0 75) - (s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - ) - (b! (not arg2) cfg-26 :delay (nop!)) - (set! s5-0 18) - (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f) - (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40))) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39))) - ) - (b! #t cfg-25 :delay (nop!)) - (label cfg-8) - (let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0))) - (b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16)) - ) - (let ((v1-20 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20)) - (let ((a1-3 (= v1-20 (-> obj draw art-group data 14)))) - (b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3)) - ) - (let ((a1-4 (= v1-20 (-> obj draw art-group data 40)))) - (b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4)) - ) - (set! a0-5 (= v1-20 (-> obj draw art-group data 39))) - ) - (label cfg-21) - (b! (not a0-5) cfg-23 :delay (set! v1-17 #t)) - (set! v1-17 #f) - (label cfg-23) - (if v1-17 - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14))) - ) - (label cfg-25) - (b! #t cfg-48 :delay (nop!)) - (label cfg-26) - (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f) - (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38))) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37))) - ) - (b! #t cfg-48 :delay (nop!)) - (label cfg-31) - (if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) - ) - (not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13)) - (= v1-41 (-> obj draw art-group data 38)) - (= v1-41 (-> obj draw art-group data 37)) - ) - ) - ) - ) + (let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing))) + (s5-0 75) + (s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) ) - (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (b! (not arg2) cfg-26 :delay (nop!)) + (set! s5-0 18) + (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f) + (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40))) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39))) + ) + (b! #t cfg-25 :delay (nop!)) + (label cfg-8) + (let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0))) + (b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16)) + ) + (let ((v1-20 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) ) - (label cfg-48) - (let ((v1-50 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) + (b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20)) + (let ((a1-3 (= v1-20 (-> obj draw art-group data 14)))) + (b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3)) + ) + (let ((a1-4 (= v1-20 (-> obj draw art-group data 40)))) + (b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4)) + ) + (set! a0-5 (= v1-20 (-> obj draw art-group data 39))) + ) + (label cfg-21) + (b! (not a0-5) cfg-23 :delay (set! v1-17 #t)) + (set! v1-17 #f) + (label cfg-23) + (if v1-17 + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14))) + ) + (label cfg-25) + (b! #t cfg-48 :delay (nop!)) + (label cfg-26) + (b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f) + (if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38))) + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37))) + ) + (b! #t cfg-48 :delay (nop!)) + (label cfg-31) + (if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13)) + (= v1-41 (-> obj draw art-group data 38)) + (= v1-41 (-> obj draw art-group data 37)) + ) + ) + ) + ) ) - (when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0)))) - (>= (- (-> pp clock frame-counter) (the-as time-frame s5-0)) (-> obj turn-time)) - ) - (let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))) - (ja-channel-push! 1 (the-as time-frame s5-0)) - (set! (-> obj skel root-channel 0 frame-group) s4-0) - (let ((s5-1 (-> obj skel root-channel 0))) - (set! (-> s5-1 num-func) num-func-identity) - (set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0)))) - ) - ) - (let ((v0-4 (-> pp clock frame-counter))) - (set! (-> obj turn-time) v0-4) - v0-4 + (set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13))) + ) + (label cfg-48) + (let ((v1-50 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + ) + ) + (when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0)))) + (>= (- (current-time) (the-as time-frame s5-0)) (-> obj turn-time)) + ) + (let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))) + (ja-channel-push! 1 (the-as time-frame s5-0)) + (set! (-> obj skel root-channel 0 frame-group) s4-0) + (let ((s5-1 (-> obj skel root-channel 0))) + (set! (-> s5-1 num-func) num-func-identity) + (set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0)))) ) ) + (let ((v0-4 (current-time))) + (set! (-> obj turn-time) v0-4) + v0-4 + ) ) ) ) @@ -537,7 +535,7 @@ (defstate stare (gator) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -546,7 +544,7 @@ (func) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.017)) (go-virtual pacing) ) (none) diff --git a/test/decompiler/reference/jak2/levels/sewer/grim2-course_REF.gc b/test/decompiler/reference/jak2/levels/sewer/grim2-course_REF.gc index 07d458a6bb..4403c9fd9c 100644 --- a/test/decompiler/reference/jak2/levels/sewer/grim2-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/grim2-course_REF.gc @@ -429,36 +429,31 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) - (clear-poi-and-focus! arg0) - (logclear! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 204800.0) - (set! (-> arg0 min-speed) 40960.0) - (set! (-> arg0 max-speed) 40960.0) - (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) - (set! (-> v1-12 bytes 5) 1) - (set! (-> v1-12 bytes 6) 11) - (set! (-> v1-12 bytes 4) -1) - (set! (-> (the-as ruft-wait-spot v1-12) check-done) - (the-as - (function ruft-wait-spot ruffian symbol) - (lambda ((arg0 object) (arg1 grim-sewer)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (set! (-> arg0 waypoint-time0) (current-time)) + (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) + (clear-poi-and-focus! arg0) + (logclear! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 204800.0) + (set! (-> arg0 min-speed) 40960.0) + (set! (-> arg0 max-speed) 40960.0) + (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) + (set! (-> v1-12 bytes 5) 1) + (set! (-> v1-12 bytes 6) 11) + (set! (-> v1-12 bytes 4) -1) + (set! (-> (the-as ruft-wait-spot v1-12) check-done) + (the-as + (function ruft-wait-spot ruffian symbol) + (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) - ) - ) - ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -1761,7 +1756,3 @@ ;; failed to figure out what this is: (set! (-> *bot-course-table* course 4) *grim2-course*) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/hal2-course_REF.gc b/test/decompiler/reference/jak2/levels/sewer/hal2-course_REF.gc index 90a0d3a7b4..b6ad64936e 100644 --- a/test/decompiler/reference/jak2/levels/sewer/hal2-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/hal2-course_REF.gc @@ -546,35 +546,33 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 5 actor)) - (a0-1 (if v1-3 - (-> v1-3 extra process) - ) - ) - ) - (if (or (not a0-1) - (or (not (logtest? (-> a0-1 entity extra perm status) (entity-perm-status subtask-complete))) - (< -176128.0 (-> (target-pos 0) y)) - ) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - ) - (cond - ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 3 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 5 actor)) + (a0-1 (if v1-3 + (-> v1-3 extra process) + ) + ) + ) + (if (or (not a0-1) + (or (not (logtest? (-> a0-1 entity extra perm status) (entity-perm-status subtask-complete))) + (< -176128.0 (-> (target-pos 0) y)) + ) + ) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + ) + (cond + ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 3 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -601,60 +599,58 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-8 process) (a0-13 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - (let ((a0-3 s3-0)) - (and a0-3 (< (the-as int (send-event a0-3 'query 'waypoint)) 3)) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) ) - (send-event s3-0 'request 'waypoint 3) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) - (begin (set! a0-8 s4-0) a0-8) - (< (the-as int (send-event a0-8 'query 'waypoint)) 3) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) ) - (send-event s4-0 'request 'waypoint 3) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) - (begin (set! a0-13 s5-0) a0-13) - (< (the-as int (send-event a0-13 'query 'waypoint)) 3) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - (send-event s5-0 'request 'waypoint 3) - ) - (cond - ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((and (>= (- (-> (target-pos 0) x) (-> arg1 root-override2 trans x)) -65536.0) - (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 3)) - (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 3)) - (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 3)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 4 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + (let ((a0-3 s3-0)) + (and a0-3 (< (the-as int (send-event a0-3 'query 'waypoint)) 3)) + ) + ) + (send-event s3-0 'request 'waypoint 3) ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) + (begin (set! a0-8 s4-0) a0-8) + (< (the-as int (send-event a0-8 'query 'waypoint)) 3) + ) + (send-event s4-0 'request 'waypoint 3) + ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) + (begin (set! a0-13 s5-0) a0-13) + (< (the-as int (send-event a0-13 'query 'waypoint)) 3) + ) + (send-event s5-0 'request 'waypoint 3) + ) + (cond + ((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((and (>= (- (-> (target-pos 0) x) (-> arg1 root-override2 trans x)) -65536.0) + (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 3)) + (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 3)) + (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 3)) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 4 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -718,73 +714,71 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-8 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (let ((a0-1 s3-0)) - (if (and (and a0-1 (= (send-event a0-1 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - ) - (send-event s3-0 'request 'waypoint 9) - ) - ) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (not (speech-playing? arg1 6)) - (begin (set! a0-8 s3-0) a0-8) - (>= (the-as int (send-event a0-8 'query 'waypoint)) 9) - ) - (play-speech arg1 6) - (play-speech arg1 7) - ) - (let ((a0-11 s5-0)) - (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.6)) - ) - (send-event s5-0 'request 'waypoint 9) - ) - ) - (let ((a0-16 s4-0)) - (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 3)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.8)) - ) - (send-event s4-0 'request 'waypoint 9) - ) - ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (not (speech-playing? arg1 2)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 2) - (play-speech arg1 3) - (play-speech arg1 4) - (play-speech arg1 5) - ) - (when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 9)) - (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 9)) - (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 9)) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 9 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (let ((a0-1 s3-0)) + (if (and (and a0-1 (= (send-event a0-1 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + ) + (send-event s3-0 'request 'waypoint 9) + ) + ) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (not (speech-playing? arg1 6)) + (begin (set! a0-8 s3-0) a0-8) + (>= (the-as int (send-event a0-8 'query 'waypoint)) 9) + ) + (play-speech arg1 6) + (play-speech arg1 7) + ) + (let ((a0-11 s5-0)) + (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.6)) + ) + (send-event s5-0 'request 'waypoint 9) + ) + ) + (let ((a0-16 s4-0)) + (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 3)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.8)) + ) + (send-event s4-0 'request 'waypoint 9) + ) + ) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (not (speech-playing? arg1 2)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 2) + (play-speech arg1 3) + (play-speech arg1 4) + (play-speech arg1 5) + ) + (when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 9)) + (or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 9)) + (or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 9)) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 9 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) - #f ) + #f ) ) ) @@ -859,27 +853,27 @@ ) 1.0 ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) ) ) (let ((a0-3 s3-0)) (if (and (and a0-3 (= (send-event a0-3 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) ) (send-event s3-0 'request 'waypoint 11) ) ) (let ((a0-8 s4-0)) (if (and (and a0-8 (= (send-event a0-8 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) ) (send-event s4-0 'request 'waypoint 11) ) ) (let ((a0-13 s5-0)) (if (and (and a0-13 (= (send-event a0-13 'query 'waypoint) 9)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) ) (send-event s5-0 'request 'waypoint 11) ) @@ -1667,18 +1661,16 @@ (set! (-> (the-as halt-wait-spot v1-34) check-done) (the-as (function halt-wait-spot hal symbol) - (lambda ((arg0 object) (arg1 hal-sewer)) (with-pp - (cond - ((logtest? (-> arg1 bot-task-bits) 1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 24 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - (else - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - #f - ) + (lambda ((arg0 object) (arg1 hal-sewer)) (cond + ((logtest? (-> arg1 bot-task-bits) 1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 24 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + (else + (set! (-> arg1 waypoint-time0) (current-time)) + #f ) ) ) @@ -1749,7 +1741,7 @@ (-> v1-13 extra process) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) (set! (-> a1-1 num-params) 2) @@ -1768,7 +1760,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75)) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) (process->ppointer pp)) (set! (-> a1-2 num-params) 2) @@ -1788,7 +1780,7 @@ ) ) (if (and (not (speech-playing? arg1 28)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) (not (channel-active? arg1 (the-as uint 0))) ) (play-speech arg1 28) @@ -1884,7 +1876,7 @@ (lambda ((arg0 object) (arg1 hal-sewer)) (with-pp (cond - ((>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) + ((>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) (cond ((logtest? (-> arg1 waypoint-bits) 1) (when (and (not (speech-playing? arg1 29)) (not (speech-playing? arg1 30))) @@ -1926,7 +1918,7 @@ (-> v1-44 extra process) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) (set! (-> a1-10 num-params) 2) @@ -1945,7 +1937,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5)) (let ((a1-11 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-11 from) (process->ppointer pp)) (set! (-> a1-11 num-params) 2) @@ -1964,7 +1956,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) (let ((a1-12 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-12 from) (process->ppointer pp)) (set! (-> a1-12 num-params) 2) @@ -2188,7 +2180,7 @@ #t ) ) - ((and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) + ((and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) (>= (vector4-dot (math-camera-pos) (the-as vector (-> arg1 test-plane))) 0.0) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) @@ -2283,7 +2275,7 @@ ) ) (hal-sewer-method-228 arg1) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.75)) (let ((a1-8 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-8 from) (process->ppointer pp)) (set! (-> a1-8 num-params) 2) @@ -2302,7 +2294,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.75)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.75)) (let ((a1-9 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-9 from) (process->ppointer pp)) (set! (-> a1-9 num-params) 2) @@ -2321,7 +2313,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) (set! (-> a1-10 num-params) 2) @@ -2396,69 +2388,67 @@ (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) (local-vars (a0-10 process)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s5-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s3-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.75)) - (send-event s4-0 'request 'waypoint 34) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.25)) - (send-event s3-0 'request 'waypoint 34) - ) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (and (not (speech-playing? arg1 42)) - (not (speech-playing? arg1 43)) - (begin - (let ((v1-45 (-> arg1 actor-group 0 data 1 actor))) - (set! a0-10 (if v1-45 - (-> v1-45 extra process) - ) - ) - ) - a0-10 - ) - (>= (the-as int (send-event a0-10 'query 'waypoint)) 33) - ) - ) - (if (zero? (get-rand-int arg1 2)) - (play-speech arg1 42) - (play-speech arg1 43) - ) - (play-speech arg1 44) - (play-speech arg1 45) - ) - (let ((a0-16 s5-0)) - (when (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 34)) - (let ((a0-18 s4-0)) - (and a0-18 (= (send-event a0-18 'query 'waypoint) 34)) - ) - (let ((a0-20 s3-0)) - (and (and a0-20 (= (send-event a0-20 'query 'waypoint) 34)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s5-0 (if v1-3 + (-> v1-3 extra process) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 35 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s3-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.75)) + (send-event s4-0 'request 'waypoint 34) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.25)) + (send-event s3-0 'request 'waypoint 34) + ) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (and (not (speech-playing? arg1 42)) + (not (speech-playing? arg1 43)) + (begin + (let ((v1-45 (-> arg1 actor-group 0 data 1 actor))) + (set! a0-10 (if v1-45 + (-> v1-45 extra process) + ) + ) + ) + a0-10 + ) + (>= (the-as int (send-event a0-10 'query 'waypoint)) 33) + ) + ) + (if (zero? (get-rand-int arg1 2)) + (play-speech arg1 42) + (play-speech arg1 43) ) + (play-speech arg1 44) + (play-speech arg1 45) + ) + (let ((a0-16 s5-0)) + (when (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 34)) + (let ((a0-18 s4-0)) + (and a0-18 (= (send-event a0-18 'query 'waypoint) 34)) + ) + (let ((a0-20 s3-0)) + (and (and a0-20 (= (send-event a0-20 'query 'waypoint) 34)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 35 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -2613,7 +2603,7 @@ ) 1.0 ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) + (set! (-> arg1 waypoint-time0) (current-time)) ) (else (if (and (not (speech-playing? arg1 46)) (not (channel-active? arg1 (the-as uint 0)))) @@ -2625,21 +2615,21 @@ ) (let ((a0-6 s3-0)) (if (and (and a0-6 (= (send-event a0-6 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) ) (send-event s3-0 'request 'waypoint 37) ) ) (let ((a0-11 s4-0)) (if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.9)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.9)) ) (send-event s4-0 'request 'waypoint 37) ) ) (let ((a0-16 s5-0)) (if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 35)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) ) (send-event s5-0 'request 'waypoint 37) ) @@ -2790,7 +2780,7 @@ ) (cond ((not (logtest? (-> arg1 waypoint-bits) 1)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) (logior! (-> arg1 waypoint-bits) 1) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-5 from) (process->ppointer pp)) @@ -2815,7 +2805,7 @@ #f ) ((not (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) (logior! (-> arg1 waypoint-bits) 2) (let ((a1-10 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-10 from) (process->ppointer pp)) @@ -2836,7 +2826,7 @@ #f ) ((not (logtest? (-> arg1 waypoint-bits) 4)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 5)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 5)) (logior! (-> arg1 waypoint-bits) 4) (let ((a1-11 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-11 from) (process->ppointer pp)) @@ -2927,58 +2917,56 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) - (send-event s4-0 'request 'waypoint 42) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.7)) - (send-event s5-0 'request 'waypoint 42) - ) - (cond - ((hal-sewer-method-231 arg1 24) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 44 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((let ((a0-11 s3-0)) - (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - (let ((a0-14 s4-0)) - (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) - (let ((a0-17 s5-0)) - (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 42)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 43 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) + (send-event s4-0 'request 'waypoint 42) ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.7)) + (send-event s5-0 'request 'waypoint 42) + ) + (cond + ((hal-sewer-method-231 arg1 24) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 44 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((let ((a0-11 s3-0)) + (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + (let ((a0-14 s4-0)) + (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + (let ((a0-17 s5-0)) + (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 42)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 43 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -3026,62 +3014,60 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (when (hal-sewer-method-231 arg1 24) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 44 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (cond - ((logtest? (-> arg1 bot-task-bits) 20) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (when (not (channel-active? arg1 (the-as uint 0))) - (let ((v1-22 *target*)) - (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) - (cond - ((not (speech-playing? arg1 58)) - (play-speech arg1 58) - ) - ((not (speech-playing? arg1 59)) - (play-speech arg1 59) - ) - ((not (speech-playing? arg1 60)) - (play-speech arg1 60) - (play-speech arg1 61) - ) - ) + (when (hal-sewer-method-231 arg1 24) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 44 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (cond + ((logtest? (-> arg1 bot-task-bits) 20) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + (when (not (channel-active? arg1 (the-as uint 0))) + (let ((v1-22 *target*)) + (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) + (cond + ((not (speech-playing? arg1 58)) + (play-speech arg1 58) + ) + ((not (speech-playing? arg1 59)) + (play-speech arg1 59) + ) + ((not (speech-playing? arg1 60)) + (play-speech arg1 60) + (play-speech arg1 61) + ) ) ) ) ) - ((channel-active? arg1 (the-as uint 0)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 11)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (let ((v1-55 (-> arg1 sentries1-reminder-index)) - (a1-14 (-> arg1 hal2-course sentries1-reminders)) - ) - (cond - ((< v1-55 (-> a1-14 length)) - (set! (-> arg1 sentries1-reminder-index) (+ v1-55 1)) - (play-speech arg1 (-> a1-14 v1-55)) - ) - (else - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) + ) + ((channel-active? arg1 (the-as uint 0)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 11)) + (set! (-> arg1 waypoint-time0) (current-time)) + (let ((v1-55 (-> arg1 sentries1-reminder-index)) + (a1-14 (-> arg1 hal2-course sentries1-reminders)) + ) + (cond + ((< v1-55 (-> a1-14 length)) + (set! (-> arg1 sentries1-reminder-index) (+ v1-55 1)) + (play-speech arg1 (-> a1-14 v1-55)) + ) + (else + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) ) ) ) ) ) - #f ) + #f ) ) ) @@ -3155,58 +3141,56 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) - ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.2)) - (send-event s4-0 'request 'waypoint 44) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) - (send-event s5-0 'request 'waypoint 44) - ) - (cond - ((hal-sewer-method-231 arg1 27) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 48 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ((let ((a0-11 s3-0)) - (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - (let ((a0-14 s4-0)) - (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) - (let ((a0-17 s5-0)) - (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 47)) - (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) - ) - ) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 47 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.2)) + (send-event s4-0 'request 'waypoint 44) ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) + (send-event s5-0 'request 'waypoint 44) + ) + (cond + ((hal-sewer-method-231 arg1 27) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 48 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ((let ((a0-11 s3-0)) + (or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + (let ((a0-14 s4-0)) + (and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + (let ((a0-17 s5-0)) + (and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 47)) + (outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f) + ) + ) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 47 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) ) ) @@ -3254,60 +3238,58 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (when (hal-sewer-method-231 arg1 27) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 48 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (cond - ((logtest? (-> arg1 bot-task-bits) 40) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - (when (not (channel-active? arg1 (the-as uint 0))) - (let ((v1-22 *target*)) - (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) - (cond - ((not (speech-playing? arg1 64)) - (play-speech arg1 64) - ) - ((not (speech-playing? arg1 65)) - (play-speech arg1 65) - ) - ) + (when (hal-sewer-method-231 arg1 27) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 48 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (cond + ((logtest? (-> arg1 bot-task-bits) 40) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + (when (not (channel-active? arg1 (the-as uint 0))) + (let ((v1-22 *target*)) + (when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit)))) + (cond + ((not (speech-playing? arg1 64)) + (play-speech arg1 64) + ) + ((not (speech-playing? arg1 65)) + (play-speech arg1 65) + ) ) ) ) ) - ((channel-active? arg1 (the-as uint 0)) - (reset-warn-time! arg1) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 9)) - (let ((v1-46 (-> arg1 sentries2-reminder-index)) - (a1-11 (-> arg1 hal2-course sentries2-reminders)) - ) - (cond - ((< v1-46 (-> a1-11 length)) - (set! (-> arg1 sentries2-reminder-index) (+ v1-46 1)) - (play-speech arg1 (-> a1-11 v1-46)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (else - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 20)) - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) - ) + ) + ((channel-active? arg1 (the-as uint 0)) + (reset-warn-time! arg1) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 9)) + (let ((v1-46 (-> arg1 sentries2-reminder-index)) + (a1-11 (-> arg1 hal2-course sentries2-reminders)) + ) + (cond + ((< v1-46 (-> a1-11 length)) + (set! (-> arg1 sentries2-reminder-index) (+ v1-46 1)) + (play-speech arg1 (-> a1-11 v1-46)) + (set! (-> arg1 waypoint-time0) (current-time)) + ) + (else + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 20)) + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) + ) ) ) ) ) ) - #f ) + #f ) ) ) @@ -3370,9 +3352,7 @@ ) ) ) - (when (and (logtest? (-> arg1 waypoint-bits) 1) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) - ) + (when (and (logtest? (-> arg1 waypoint-bits) 1) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25))) (set! (-> arg1 waypoint-bits) (logand -2 (-> arg1 waypoint-bits))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) (process->ppointer pp)) @@ -3540,10 +3520,10 @@ ) ) ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.2)) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.2)) (send-event s3-0 'request 'waypoint 48) ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.4)) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.4)) (send-event s4-0 'request 'waypoint 48) ) ) @@ -3734,44 +3714,42 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (cond - ((hal-sewer-method-229 arg1) - (logclear! (-> arg1 bot-flags) (bot-flags bf24)) - (reset-warn-time! arg1) - (when (and (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "sewer-hosehead" #f)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 57 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (cond + ((hal-sewer-method-229 arg1) + (logclear! (-> arg1 bot-flags) (bot-flags bf24)) + (reset-warn-time! arg1) + (when (and (not (channel-active? arg1 (the-as uint 0))) (scene-play arg1 "sewer-hosehead" #f)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 57 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) - (else - (cond - ((channel-active? arg1 (the-as uint 0)) - (set! (-> arg1 waypoint-time0) (+ (-> pp clock frame-counter) (seconds 9))) - ) - ((>= (-> pp clock frame-counter) (-> arg1 waypoint-time0)) - (let ((a1-8 - (bot-speech-list-method-9 - (-> arg1 hal2-course bomb2-reminders) - arg1 - (-> arg1 hal2-course speeches) - (speech-flags) - ) + ) + (else + (cond + ((channel-active? arg1 (the-as uint 0)) + (set! (-> arg1 waypoint-time0) (+ (current-time) (seconds 9))) + ) + ((>= (current-time) (-> arg1 waypoint-time0)) + (let ((a1-8 + (bot-speech-list-method-9 + (-> arg1 hal2-course bomb2-reminders) + arg1 + (-> arg1 hal2-course speeches) + (speech-flags) ) ) - (if (>= a1-8 0) - (play-speech arg1 a1-8) - (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) - ) - ) + ) + (if (>= a1-8 0) + (play-speech arg1 a1-8) + (set! (-> arg1 bot-flags) (logior (bot-flags bf24) (-> arg1 bot-flags))) + ) ) - ) + ) ) ) - #f ) + #f ) ) ) @@ -3979,70 +3957,66 @@ (the-as (function halt-wait-spot hal symbol) (lambda ((arg0 object) (arg1 hal-sewer)) - (with-pp - (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) - (s3-0 (if v1-3 - (-> v1-3 extra process) + (let* ((v1-3 (-> arg1 actor-group 0 data 1 actor)) + (s3-0 (if v1-3 + (-> v1-3 extra process) + ) + ) + (v1-8 (-> arg1 actor-group 0 data 3 actor)) + (s4-0 (if v1-8 + (-> v1-8 extra process) + ) + ) + (v1-13 (-> arg1 actor-group 0 data 2 actor)) + (s5-0 (if v1-13 + (-> v1-13 extra process) + ) + ) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (send-event s5-0 'request 'waypoint 59) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3)) + (send-event s3-0 'request 'waypoint 59) + ) + (if (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (send-event s4-0 'request 'waypoint 59) + ) + (when (not (channel-active? arg1 (the-as uint 0))) + (cond + ((and (not (speech-playing? arg1 75)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 6))) + (play-speech arg1 75) + (play-speech arg1 76) + ) + (else + (when (and (>= (vector4-dot (-> (the-as process-focusable s3-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) + (>= (vector4-dot (-> (the-as process-focusable s4-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) + (>= (vector4-dot (-> (the-as process-focusable s5-0) root-override trans) (the-as vector (-> arg1 test-plane))) + 0.0 + ) ) - ) - (v1-8 (-> arg1 actor-group 0 data 3 actor)) - (s4-0 (if v1-8 - (-> v1-8 extra process) - ) - ) - (v1-13 (-> arg1 actor-group 0 data 2 actor)) - (s5-0 (if v1-13 - (-> v1-13 extra process) - ) - ) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (send-event s5-0 'request 'waypoint 59) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3)) - (send-event s3-0 'request 'waypoint 59) - ) - (if (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (send-event s4-0 'request 'waypoint 59) - ) - (when (not (channel-active? arg1 (the-as uint 0))) - (cond - ((and (not (speech-playing? arg1 75)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 6)) - ) - (play-speech arg1 75) - (play-speech arg1 76) - ) - (else - (when (and (>= (vector4-dot (-> (the-as process-focusable s3-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - (>= (vector4-dot (-> (the-as process-focusable s4-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - (>= (vector4-dot (-> (the-as process-focusable s5-0) root-override trans) (the-as vector (-> arg1 test-plane))) - 0.0 - ) - ) - (let ((a0-18 *target*)) - (when (and a0-18 - (and (>= (vector4-dot (get-trans a0-18 0) (the-as vector (-> arg1 test-plane))) 0.0) - (scene-play arg1 "sewer-blow-up-statue-res" #f) - ) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 67 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (let ((a0-18 *target*)) + (when (and a0-18 + (and (>= (vector4-dot (get-trans a0-18 0) (the-as vector (-> arg1 test-plane))) 0.0) + (scene-play arg1 "sewer-blow-up-statue-res" #f) + ) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 67 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) ) ) - (none) ) + (none) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc b/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc index b5ca4abb87..9af5f5f360 100644 --- a/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc @@ -436,7 +436,6 @@ ) ;; definition for method 3 of type ik-setup -;; INFO: this function exists in multiple non-identical object files (defmethod inspect ik-setup ((obj ik-setup)) (when (not obj) (set! obj obj) @@ -1080,7 +1079,7 @@ :enter (-> (method-of-type nav-enemy idle) enter) :exit (-> (method-of-type nav-enemy idle) exit) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (let ((a0-3 (handle->process (-> self focus handle)))) (when a0-3 (let ((f0-0 @@ -1127,7 +1126,7 @@ (set! (-> self fire-beam?) #f) (set! (-> self allow-head) #t) (set! (-> self lazer-length) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -1173,7 +1172,7 @@ ) (set! (-> self head-angle) f0-5) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (when (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (let ((a0-8 (handle->process (-> self focus handle)))) (when a0-8 (let ((f0-6 @@ -1547,7 +1546,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior hosehead) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -1957,9 +1956,9 @@ (ja :num! (seek! max f30-0)) ) (set! (-> self fire-beam?) #t) - (let ((gp-0 (+ (-> self clock frame-counter) (seconds 2)))) + (let ((gp-0 (+ (current-time) (seconds 2)))) (until #f - (when (or (< gp-0 (-> self clock frame-counter)) (not (-> self fire-beam?)) (not (enemy-method-96 self 8192.0 #t))) + (when (or (< gp-0 (current-time)) (not (-> self fire-beam?)) (not (enemy-method-96 self 8192.0 #t))) (set! (-> self fire-beam?) #f) (set! (-> self allow-head) #f) (goto cfg-13) @@ -2082,9 +2081,9 @@ ) ) (nav-enemy-method-166 self) - (set! (-> self last-time-dist-changed) (-> self clock frame-counter)) + (set! (-> self last-time-dist-changed) (current-time)) (set! (-> self next-lazer-time) 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -2113,11 +2112,9 @@ 0 ) ((zero? (-> self next-lazer-time)) - (set! (-> self next-lazer-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (get-rand-float-range self 1.0 2.0)))) - ) + (set! (-> self next-lazer-time) (+ (current-time) (the int (* 300.0 (get-rand-float-range self 1.0 2.0))))) ) - ((>= (-> self clock frame-counter) (-> self next-lazer-time)) + ((>= (current-time) (-> self next-lazer-time)) (if (and (enemy-method-96 self 3640.889 #t) (and (< 40960.0 f30-0) (hosehead-method-190 self))) (go-virtual fire) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/mog2-course_REF.gc b/test/decompiler/reference/jak2/levels/sewer/mog2-course_REF.gc index 337cdc784f..2075ae61e8 100644 --- a/test/decompiler/reference/jak2/levels/sewer/mog2-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/mog2-course_REF.gc @@ -437,36 +437,31 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 mog-sewer)) - (with-pp - (set! (-> arg0 waypoint-time0) (-> pp clock frame-counter)) - (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) - (clear-poi-and-focus! arg0) - (logclear! (-> arg0 focus-status) (focus-status disable)) - (set! (-> arg0 notice-enemy-dist) 204800.0) - (set! (-> arg0 min-speed) 32768.0) - (set! (-> arg0 max-speed) 32768.0) - (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) - (set! (-> v1-12 bytes 5) 1) - (set! (-> v1-12 bytes 6) 9) - (set! (-> v1-12 bytes 4) -1) - (set! (-> (the-as ruft-wait-spot v1-12) check-done) - (the-as - (function ruft-wait-spot ruffian symbol) - (lambda ((arg0 object) (arg1 mog-sewer)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (set! (-> arg0 waypoint-time0) (current-time)) + (set! (-> arg0 bot-flags) (logior (bot-flags bf19) (-> arg0 bot-flags))) + (clear-poi-and-focus! arg0) + (logclear! (-> arg0 focus-status) (focus-status disable)) + (set! (-> arg0 notice-enemy-dist) 204800.0) + (set! (-> arg0 min-speed) 32768.0) + (set! (-> arg0 max-speed) 32768.0) + (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) + (set! (-> v1-12 bytes 5) 1) + (set! (-> v1-12 bytes 6) 9) + (set! (-> v1-12 bytes 4) -1) + (set! (-> (the-as ruft-wait-spot v1-12) check-done) + (the-as + (function ruft-wait-spot ruffian symbol) + (lambda ((arg0 object) (arg1 mog-sewer)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) ) - ) - ) - ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -1855,7 +1850,3 @@ ;; failed to figure out what this is: (set! (-> *bot-course-table* course 3) *mog2-course*) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc index 2588c30a41..9932c2d83c 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc @@ -1046,8 +1046,8 @@ This commonly includes things such as: ) ) (cleanup-for-death self) - (let ((frame-counter (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) frame-counter) (seconds 2)) + (let ((frame-counter (current-time))) + (until (>= (- (current-time) frame-counter) (seconds 2)) (suspend) ) ) @@ -1175,7 +1175,7 @@ This commonly includes things such as: (t9-2 sin-rad) (f1-0 -3.1415925) (f2-0 6.283185) - (f3-1 (the float (+ (-> self clock frame-counter) (the-as time-frame (-> self time-skew))))) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> self time-skew))))) (f28-0 (t9-2 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 period))) period)) period))))) ) (when (< ocean-base-height (-> self center y)) @@ -1805,7 +1805,7 @@ This commonly includes things such as: enemy-event-handler ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self draw status) (draw-control-status no-draw)) (none) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc index 8f990b93bf..b650b181dd 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc @@ -270,29 +270,27 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defun sew-tri-blade-joint-callback ((arg0 draw-control) (arg1 cspace-array) (arg2 joint-control)) "Handles the rotation and transformation of the [[sew-tri-blade]]" - (with-pp - (let ((blade (the-as sew-tri-blade (-> arg0 process))) - (matrix (new-stack-matrix0)) - (f30-0 (* 182.04445 (* 0.0033333334 (the float (-> pp clock frame-counter))))) - ) - (let ((s3-0 (-> arg1 data 4 bone transform))) - (matrix-rotate-y! matrix (* 240.0 f30-0)) - (matrix*! s3-0 matrix s3-0) - ) - (let ((s3-1 (-> arg1 data 5 bone transform))) - (matrix-rotate-y! matrix (* -240.0 f30-0)) - (matrix*! s3-1 matrix s3-1) - (set! (-> blade y-max) (+ (- 25395.2 (-> blade root trans y)) (-> s3-1 trans y))) - ) - (let ((s4-1 (-> arg1 data 6 bone transform))) - (matrix-rotate-y! matrix (* 240.0 f30-0)) - (matrix*! s4-1 matrix s4-1) - (set! (-> blade y-max) (fmax (-> blade y-max) (+ (- 19251.2 (-> blade root trans y)) (-> s4-1 trans y)))) + (let ((blade (the-as sew-tri-blade (-> arg0 process))) + (matrix (new-stack-matrix0)) + (f30-0 (* 182.04445 (* 0.0033333334 (the float (current-time))))) ) + (let ((s3-0 (-> arg1 data 4 bone transform))) + (matrix-rotate-y! matrix (* 240.0 f30-0)) + (matrix*! s3-0 matrix s3-0) + ) + (let ((s3-1 (-> arg1 data 5 bone transform))) + (matrix-rotate-y! matrix (* -240.0 f30-0)) + (matrix*! s3-1 matrix s3-1) + (set! (-> blade y-max) (+ (- 25395.2 (-> blade root trans y)) (-> s3-1 trans y))) + ) + (let ((s4-1 (-> arg1 data 6 bone transform))) + (matrix-rotate-y! matrix (* 240.0 f30-0)) + (matrix*! s4-1 matrix s4-1) + (set! (-> blade y-max) (fmax (-> blade y-max) (+ (- 19251.2 (-> blade root trans y)) (-> s4-1 trans y)))) ) - 0 - (none) ) + 0 + (none) ) ;; failed to figure out what this is: @@ -400,81 +398,79 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (set! (-> obj mask) (logior (process-mask ambient) (-> obj mask))) - (let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) - (set! (-> cshape dynam) (copy *standard-dynamics* 'process)) - (set! (-> cshape reaction) cshape-reaction-default) - (set! (-> cshape no-reaction) - (the-as (function collide-shape-moving collide-query vector vector object) nothing) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-group cshape (the-as uint 3) 0))) - (set! (-> cshape total-prims) (the-as uint 4)) - (set! (-> s3-0 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> s3-0 prim-core action) (collide-action solid deadly)) - (set-vector! (-> s3-0 local-sphere) 0.0 10240.0 0.0 36864.0) - (set! (-> cshape root-prim) s3-0) - ) - (pusher-init cshape) - (let ((v1-16 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 2) (the-as uint 0)))) - (set! (-> v1-16 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-16 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-16 prim-core action) (collide-action solid deadly)) - (set! (-> v1-16 transform-index) 4) - (set-vector! (-> v1-16 local-sphere) 0.0 8192.0 0.0 18841.6) - ) - (let ((v1-18 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 1) (the-as uint 0)))) - (set! (-> v1-18 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-18 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-18 prim-core action) (collide-action solid deadly)) - (set! (-> v1-18 transform-index) 5) - (set-vector! (-> v1-18 local-sphere) 0.0 8192.0 0.0 12288.0) - ) - (let ((v1-20 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0)))) - (set! (-> v1-20 prim-core collide-as) (collide-spec camera-blocker pusher)) - (set! (-> v1-20 prim-core collide-with) (collide-spec jak player-list)) - (set! (-> v1-20 prim-core action) (collide-action solid deadly)) - (set! (-> v1-20 transform-index) 6) - (set-vector! (-> v1-20 local-sphere) 0.0 4915.2 0.0 7372.8) - ) - (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w))) - (let ((v1-23 (-> cshape root-prim))) - (set! (-> cshape backup-collide-as) (-> v1-23 prim-core collide-as)) - (set! (-> cshape backup-collide-with) (-> v1-23 prim-core collide-with)) - ) - (set! (-> obj root) cshape) + (set! (-> obj mask) (logior (process-mask ambient) (-> obj mask))) + (let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> cshape dynam) (copy *standard-dynamics* 'process)) + (set! (-> cshape reaction) cshape-reaction-default) + (set! (-> cshape no-reaction) + (the-as (function collide-shape-moving collide-query vector vector object) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-group cshape (the-as uint 3) 0))) + (set! (-> cshape total-prims) (the-as uint 4)) + (set! (-> s3-0 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> s3-0 prim-core action) (collide-action solid deadly)) + (set-vector! (-> s3-0 local-sphere) 0.0 10240.0 0.0 36864.0) + (set! (-> cshape root-prim) s3-0) ) - (process-drawable-from-entity! obj entity) - (logclear! (-> obj mask) (process-mask actor-pause)) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-sew-tri-blade" (the-as (pointer uint32) #f))) - (the-as pair 0) + (pusher-init cshape) + (let ((v1-16 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 2) (the-as uint 0)))) + (set! (-> v1-16 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-16 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-16 prim-core action) (collide-action solid deadly)) + (set! (-> v1-16 transform-index) 4) + (set-vector! (-> v1-16 local-sphere) 0.0 8192.0 0.0 18841.6) ) - (set! (-> obj state-time) (-> pp clock frame-counter)) - (set! (-> obj anim-time) 0.0) - (set! (-> obj anim-offset) 0.0) - (set! (-> obj skel postbind-function) sew-tri-blade-joint-callback) - (let* ((v1-33 *game-info*) - (a0-33 (+ (-> v1-33 attack-id) 1)) - ) - (set! (-> v1-33 attack-id) a0-33) - (set! (-> obj attack-id) a0-33) + (let ((v1-18 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 1) (the-as uint 0)))) + (set! (-> v1-18 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-18 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-18 prim-core action) (collide-action solid deadly)) + (set! (-> v1-18 transform-index) 5) + (set-vector! (-> v1-18 local-sphere) 0.0 8192.0 0.0 12288.0) ) - (if (>= (res-lump-value entity 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0) - (set! (-> obj anim-offset) 3.0) - ) - (set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj root trans))) - (set-falloff-far! (-> obj sound) 286720.0) - (set! (-> obj y-min) 0.0) - (set! (-> obj y-max) 48332.8) - (set! (-> obj snd-water) (static-sound-name "tri-blade-w")) - (set! (-> obj snd-no-water) (static-sound-name "tri-blade")) - (transform-post) - (go (method-of-object obj idle)) - (none) + (let ((v1-20 (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0)))) + (set! (-> v1-20 prim-core collide-as) (collide-spec camera-blocker pusher)) + (set! (-> v1-20 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> v1-20 prim-core action) (collide-action solid deadly)) + (set! (-> v1-20 transform-index) 6) + (set-vector! (-> v1-20 local-sphere) 0.0 4915.2 0.0 7372.8) + ) + (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w))) + (let ((v1-23 (-> cshape root-prim))) + (set! (-> cshape backup-collide-as) (-> v1-23 prim-core collide-as)) + (set! (-> cshape backup-collide-with) (-> v1-23 prim-core collide-with)) + ) + (set! (-> obj root) cshape) ) + (process-drawable-from-entity! obj entity) + (logclear! (-> obj mask) (process-mask actor-pause)) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-sew-tri-blade" (the-as (pointer uint32) #f))) + (the-as pair 0) + ) + (set! (-> obj state-time) (current-time)) + (set! (-> obj anim-time) 0.0) + (set! (-> obj anim-offset) 0.0) + (set! (-> obj skel postbind-function) sew-tri-blade-joint-callback) + (let* ((v1-33 *game-info*) + (a0-33 (+ (-> v1-33 attack-id) 1)) + ) + (set! (-> v1-33 attack-id) a0-33) + (set! (-> obj attack-id) a0-33) + ) + (if (>= (res-lump-value entity 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0) + (set! (-> obj anim-offset) 3.0) + ) + (set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj root trans))) + (set-falloff-far! (-> obj sound) 286720.0) + (set! (-> obj y-min) 0.0) + (set! (-> obj y-max) 48332.8) + (set! (-> obj snd-water) (static-sound-name "tri-blade-w")) + (set! (-> obj snd-no-water) (static-sound-name "tri-blade")) + (transform-post) + (go (method-of-object obj idle)) + (none) ) ;; definition of type sew-arm-blade @@ -841,7 +837,7 @@ This commonly includes things such as: (send-event-function hit-proc evt) ) ) - (set! (-> self no-collision-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self no-collision-timer) (the-as uint (current-time))) (let ((root-prim (-> self root-overide root-prim))) (set! (-> root-prim prim-core collide-as) (collide-spec)) (set! (-> root-prim prim-core collide-with) (collide-spec)) @@ -855,7 +851,7 @@ This commonly includes things such as: ) :trans (behavior () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-collision-timer))) + (>= (- (current-time) (the-as int (-> self no-collision-timer))) (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) ) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-scenes_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-scenes_REF.gc index 0711be649a..b202d4713c 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-scenes_REF.gc @@ -1334,7 +1334,7 @@ (lambda :behavior task-manager () (local-vars (sv-96 int) (sv-100 float) (sv-104 vector)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-gunturret :init hud-init-by-other :to self))) (while (> (-> self data-int32 0) 0) (when (!= (level-status *level* 'sewer) 'active) @@ -1379,10 +1379,10 @@ (set! (-> *game-info* counter) (the float v1-51)) ) (when (and (= (-> self data-int32 1) sv-96) - (and (< sv-100 122880.0) (>= (- (-> self clock frame-counter) (-> self beep-time)) (seconds 40))) + (and (< sv-100 122880.0) (>= (- (current-time) (-> self beep-time)) (seconds 40))) ) (talker-spawn-func (-> *talker-speech* 53) *entity-pool* (target-pos 0) (the-as region #f)) - (set! (-> self beep-time) (-> self clock frame-counter)) + (set! (-> self beep-time) (current-time)) ) (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/stadium/jetboard/skatea-obs_REF.gc b/test/decompiler/reference/jak2/levels/stadium/jetboard/skatea-obs_REF.gc index 046d67d148..64d4717e1f 100644 --- a/test/decompiler/reference/jak2/levels/stadium/jetboard/skatea-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/jetboard/skatea-obs_REF.gc @@ -395,8 +395,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -438,8 +438,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -460,7 +460,7 @@ (send-event *target* 'get-notify self) (set! (-> self trick-type) (board-tricks none)) (let ((gp-2 #f) - (s5-0 (+ (-> self clock frame-counter) (seconds 15))) + (s5-0 (+ (current-time) (seconds 15))) ) (until #f (let ((a1-7 (new 'stack-no-clear 'event-message-block))) @@ -479,11 +479,11 @@ ) ) (render-text self (text-id board-tutorial-boost-jump)) - (when (< s5-0 (-> self clock frame-counter)) + (when (< s5-0 (current-time)) (set! (-> self last-sound-id) (add-process *gui-control* self (gui-channel sig) (gui-action play) "kei009" -99.0 0) ) - (set! s5-0 (+ (-> self clock frame-counter) (seconds 15))) + (set! s5-0 (+ (current-time) (seconds 15))) ) (suspend) (if (= (-> self trick-type) (board-tricks board-quick-jump)) @@ -514,8 +514,8 @@ (while (nonzero? (get-status *gui-control* (-> self last-sound-id))) (suspend) ) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -581,8 +581,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -623,8 +623,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -662,8 +662,8 @@ (suspend) ) (send-event (handle->process (-> self voicebox)) 'speak-effect #f) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1018,11 +1018,11 @@ (hoverboard-training-manager-method-29 self) (when (not (-> self challenge-done)) (when (and (not (-> self combo-done?)) - (>= (- (-> self clock frame-counter) (-> self hint-time)) (seconds 30)) + (>= (- (current-time) (-> self hint-time)) (seconds 30)) (not (task-node-closed? (game-task-node stadium-board1-resolution))) ) (add-process *gui-control* self (gui-channel sig) (gui-action play) "kei018" -99.0 0) - (set! (-> self hint-time) (-> self clock frame-counter)) + (set! (-> self hint-time) (current-time)) ) ) (none) @@ -1103,7 +1103,7 @@ (set! (-> self score) 0.0) (set! (-> self challenge-done) #f) (set! (-> self combo-done?) #f) - (set! (-> self hint-time) (-> self clock frame-counter)) + (set! (-> self hint-time) (current-time)) (while (and (not (-> self challenge-done)) (logtest? (-> *game-info* features) (game-feature board))) (suspend) ) @@ -1154,8 +1154,8 @@ t1-3 ) ) - (let ((s5-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 1)) + (let ((s5-2 (current-time))) + (until (>= (- (current-time) s5-2) (seconds 1)) (suspend) ) ) @@ -1364,8 +1364,8 @@ t1-3 ) ) - (let ((s5-2 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) s5-2) (seconds 1)) + (let ((s5-2 (current-time))) + (until (>= (- (current-time) s5-2) (seconds 1)) (suspend) ) ) @@ -1526,7 +1526,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1676,7 +1676,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :code (behavior () @@ -1986,7 +1986,7 @@ This commonly includes things such as: ) (set! (-> self root-override trans y) (+ (-> self pos-y) - (* 2048.0 (cos (* 18204.445 (+ (-> self offset) (* 0.0033333334 (the float (-> self clock frame-counter))))))) + (* 2048.0 (cos (* 18204.445 (+ (-> self offset) (* 0.0033333334 (the float (current-time))))))) ) ) (transform-post) diff --git a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc index 995f87d35c..ba34bfa5c2 100644 --- a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc @@ -1005,7 +1005,7 @@ This commonly includes things such as: :virtual #t :event defend-stadium-rift-rider-handler :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -1015,8 +1015,8 @@ This commonly includes things such as: (none) ) :code (behavior () - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1.2)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1.2)) (suspend) ) ) @@ -1562,11 +1562,11 @@ This commonly includes things such as: ;; definition for function stad-samos-post ;; WARN: Return type mismatch int vs none. (defbehavior stad-samos-post stad-samos () - (when (>= (- (-> self clock frame-counter) (-> self cquery-timer)) (seconds 0.32)) + (when (>= (- (current-time) (-> self cquery-timer)) (seconds 0.32)) (move-to-ground (-> self root-override2) 40960.0 40960.0 #t (collide-spec backgnd)) - (set! (-> self cquery-timer) (-> self clock frame-counter)) + (set! (-> self cquery-timer) (current-time)) ) - (when (and (nonzero? (-> self focus-disable-timer)) (< (-> self focus-disable-timer) (-> self clock frame-counter))) + (when (and (nonzero? (-> self focus-disable-timer)) (< (-> self focus-disable-timer) (current-time))) (logclear! (-> self focus-status) (focus-status ignore)) (set! (-> self focus-disable-timer) 0) 0 @@ -1714,8 +1714,8 @@ This commonly includes things such as: ) ) (set! (-> self rift-rider-actor) (entity-actor-lookup (-> self entity) 'alt-actor 0)) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.31)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.31)) (suspend) ) ) @@ -1781,11 +1781,11 @@ This commonly includes things such as: (set! (-> self enable-move?) #t) (set! (-> self speed) 12288.0) (set! (-> self observed-speed) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (and (nonzero? (-> self state-time)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))) + (when (and (nonzero? (-> self state-time)) (>= (- (current-time) (-> self state-time)) (seconds 1))) (set! (-> self state-time) 0) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) @@ -1804,7 +1804,7 @@ This commonly includes things such as: ) (spawn-lightning self) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (go-virtual move-rift-rider) ) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) @@ -1991,7 +1991,7 @@ This commonly includes things such as: :virtual #t :enter (behavior () (logior! (-> self focus-status) (focus-status ignore)) - (set! (-> self focus-disable-timer) (+ (-> self clock frame-counter) (seconds 5))) + (set! (-> self focus-disable-timer) (+ (current-time) (seconds 5))) (kill-lightning self) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) (process->ppointer self)) @@ -2214,8 +2214,8 @@ This commonly includes things such as: ) ) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 2)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 2)) (suspend) ) ) @@ -2297,85 +2297,83 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (with-pp - (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) cshape-reaction-default) - (set! (-> s4-0 no-reaction) - (the-as (function collide-shape-moving collide-query vector vector object) nothing) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) cshape-reaction-default) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-query vector vector object) nothing) + ) + (set! (-> s4-0 penetrated-by) (penetrate jak-yellow-shot jak-red-shot jak-blue-shot)) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0))) + (set! (-> s4-0 total-prims) (the-as uint 4)) + (set! (-> s3-0 prim-core collide-as) (collide-spec bot)) + (set! (-> s3-0 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) ) - (set! (-> s4-0 penetrated-by) (penetrate jak-yellow-shot jak-red-shot jak-blue-shot)) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0))) - (set! (-> s4-0 total-prims) (the-as uint 4)) - (set! (-> s3-0 prim-core collide-as) (collide-spec bot)) - (set! (-> s3-0 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> s3-0 prim-core action) (collide-action solid no-standon)) - (set-vector! (-> s3-0 local-sphere) 0.0 4505.6 0.0 5734.4) - (set! (-> s4-0 root-prim) s3-0) - ) - (let ((v1-13 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-13 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-13 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-13 prim-core action) (collide-action solid)) - (set-vector! (-> v1-13 local-sphere) 0.0 2457.6 0.0 2457.6) - ) - (let ((v1-15 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-15 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-15 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-15 prim-core action) (collide-action solid)) - (set-vector! (-> v1-15 local-sphere) 0.0 4505.6 0.0 2457.6) - ) - (let ((v1-17 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> v1-17 prim-core collide-as) (collide-spec bot)) - (set! (-> v1-17 prim-core collide-with) - (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) - ) - (set! (-> v1-17 prim-core action) (collide-action solid no-standon)) - (set-vector! (-> v1-17 local-sphere) 0.0 6553.6 0.0 2457.6) - ) - (set! (-> s4-0 nav-radius) 6144.0) - (let ((v1-19 (-> s4-0 root-prim))) - (set! (-> s4-0 backup-collide-as) (-> v1-19 prim-core collide-as)) - (set! (-> s4-0 backup-collide-with) (-> v1-19 prim-core collide-with)) - ) - (set! (-> s4-0 event-self) 'touched) - (set! (-> obj root-override2) s4-0) + (set! (-> s3-0 prim-core action) (collide-action solid no-standon)) + (set-vector! (-> s3-0 local-sphere) 0.0 4505.6 0.0 5734.4) + (set! (-> s4-0 root-prim) s3-0) ) - (set! (-> obj hud) (the-as handle #f)) - (set! (-> obj hud-bot-index) 0) - (set! (-> obj rift-rider-joint-offset) 0) - (process-drawable-from-entity! obj arg0) - (init! obj) - (get-nav-control obj (the-as nav-mesh #f)) - (let ((v1-24 (-> obj nav))) - (set! (-> v1-24 sphere-mask) (the-as uint 1102)) + (let ((v1-13 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-13 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-13 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-13 prim-core action) (collide-action solid)) + (set-vector! (-> v1-13 local-sphere) 0.0 2457.6 0.0 2457.6) ) - 0 - (logclear! (-> obj mask) (process-mask actor-pause)) - (process-entity-status! obj (entity-perm-status no-kill) #t) - (set! (-> obj rift-rider-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) - (set! (-> obj entity) arg0) - (dotimes (v1-28 4) - (set! (-> obj lightning v1-28) (the-as handle #f)) + (let ((v1-15 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-15 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-15 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-15 prim-core action) (collide-action solid)) + (set-vector! (-> v1-15 local-sphere) 0.0 4505.6 0.0 2457.6) ) - (set! (-> obj lightning-on?) #f) - (set! (-> obj rift-rider-actor) #f) - (set! (-> obj cquery-timer) (-> pp clock frame-counter)) - (vector-reset! (-> obj hit-dir)) - (set! (-> obj max-hit-points) (+ 5.0 (* 5.0 (you-suck-scale *game-info* #f)))) - (set! (-> obj hit-points) (-> obj max-hit-points)) - (set! (-> obj incoming-attack-id) (the-as uint -1)) - (set! (-> obj focus-disable-timer) 0) - (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 903) obj)) - (go (method-of-object obj idle)) - (none) + (let ((v1-17 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> v1-17 prim-core collide-as) (collide-spec bot)) + (set! (-> v1-17 prim-core collide-with) + (collide-spec backgnd jak crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher) + ) + (set! (-> v1-17 prim-core action) (collide-action solid no-standon)) + (set-vector! (-> v1-17 local-sphere) 0.0 6553.6 0.0 2457.6) + ) + (set! (-> s4-0 nav-radius) 6144.0) + (let ((v1-19 (-> s4-0 root-prim))) + (set! (-> s4-0 backup-collide-as) (-> v1-19 prim-core collide-as)) + (set! (-> s4-0 backup-collide-with) (-> v1-19 prim-core collide-with)) + ) + (set! (-> s4-0 event-self) 'touched) + (set! (-> obj root-override2) s4-0) ) + (set! (-> obj hud) (the-as handle #f)) + (set! (-> obj hud-bot-index) 0) + (set! (-> obj rift-rider-joint-offset) 0) + (process-drawable-from-entity! obj arg0) + (init! obj) + (get-nav-control obj (the-as nav-mesh #f)) + (let ((v1-24 (-> obj nav))) + (set! (-> v1-24 sphere-mask) (the-as uint 1102)) + ) + 0 + (logclear! (-> obj mask) (process-mask actor-pause)) + (process-entity-status! obj (entity-perm-status no-kill) #t) + (set! (-> obj rift-rider-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) + (set! (-> obj entity) arg0) + (dotimes (v1-28 4) + (set! (-> obj lightning v1-28) (the-as handle #f)) + ) + (set! (-> obj lightning-on?) #f) + (set! (-> obj rift-rider-actor) #f) + (set! (-> obj cquery-timer) (current-time)) + (vector-reset! (-> obj hit-dir)) + (set! (-> obj max-hit-points) (+ 5.0 (* 5.0 (you-suck-scale *game-info* #f)))) + (set! (-> obj hit-points) (-> obj max-hit-points)) + (set! (-> obj incoming-attack-id) (the-as uint -1)) + (set! (-> obj focus-disable-timer) 0) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 903) obj)) + (go (method-of-object obj idle)) + (none) ) ;; failed to figure out what this is: @@ -2934,10 +2932,8 @@ This commonly includes things such as: ) (send-event-function proc a1-2) ) - (when (< (-> self next-message-time) (-> self clock frame-counter)) - (set! (-> self next-message-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0)))) - ) + (when (< (-> self next-message-time) (current-time)) + (set! (-> self next-message-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv014" -99.0 0) ) ) @@ -2966,10 +2962,8 @@ This commonly includes things such as: ) (send-event-function proc a1-6) ) - (when (< (-> self next-message-time) (-> self clock frame-counter)) - (set! (-> self next-message-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 2.0 5.0)))) - ) + (when (< (-> self next-message-time) (current-time)) + (set! (-> self next-message-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 2.0 5.0))))) (add-process *gui-control* self (gui-channel alert) (gui-action play) "cityv014" -99.0 0) ) ) diff --git a/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc b/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc index 109e973007..8a5b66ca5e 100644 --- a/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc @@ -327,29 +327,25 @@ ;; definition for method 21 of type strip-chain-crate ;; WARN: Return type mismatch symbol vs none. (defmethod strip-chain-crate-method-21 strip-chain-crate ((obj strip-chain-crate)) - (with-pp - (let ((f30-0 (total-distance (-> obj path))) - (f28-0 - (* (/ (the float (mod - (the-as uint (+ (-> pp clock frame-counter) (the-as time-frame (-> obj spawn-offset)))) - (-> obj spawn-delay) - ) - ) - (the float (-> obj spawn-delay)) - ) - (-> obj dist-apart) - ) - ) + (let ((f30-0 (total-distance (-> obj path))) + (f28-0 + (* (/ (the float + (mod (the-as uint (+ (current-time) (the-as time-frame (-> obj spawn-offset)))) (-> obj spawn-delay)) + ) + (the float (-> obj spawn-delay)) + ) + (-> obj dist-apart) + ) ) - (while (>= f30-0 f28-0) - (let ((f26-0 (/ f28-0 f30-0))) - (process-spawn strip-chain-crate-slave f26-0 (-> obj crate-speed) :to obj) - ) - (+! f28-0 (-> obj dist-apart)) ) + (while (>= f30-0 f28-0) + (let ((f26-0 (/ f28-0 f30-0))) + (process-spawn strip-chain-crate-slave f26-0 (-> obj crate-speed) :to obj) + ) + (+! f28-0 (-> obj dist-apart)) ) - (none) ) + (none) ) ;; failed to figure out what this is: @@ -357,7 +353,7 @@ :virtual #t :code (behavior () (until #f - (when (>= (-> self clock frame-counter) (-> self next-spawn-time)) + (when (>= (current-time) (-> self next-spawn-time)) (process-spawn strip-chain-crate-slave 0 (-> self crate-speed) :to self) (+! (-> self next-spawn-time) (the-as time-frame (-> self spawn-delay))) ) @@ -379,43 +375,38 @@ This commonly includes things such as: - loading the skeleton group / bones - sounds" (local-vars (sv-16 int)) - (with-pp - (set! (-> obj root) (new 'process 'trsqv)) - (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (let ((f28-0 53248.0) - (f26-0 131072.0) - (f30-0 0.0) - ) - (set! sv-16 0) - (let ((v1-8 (res-lump-data arg0 'speed (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-16))))) - (when v1-8 - (set! f28-0 (-> v1-8 0)) - (set! f26-0 (-> v1-8 1)) - (set! f30-0 (-> v1-8 2)) - ) + (set! (-> obj root) (new 'process 'trsqv)) + (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (let ((f28-0 53248.0) + (f26-0 131072.0) + (f30-0 0.0) + ) + (set! sv-16 0) + (let ((v1-8 (res-lump-data arg0 'speed (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-16))))) + (when v1-8 + (set! f28-0 (-> v1-8 0)) + (set! f26-0 (-> v1-8 1)) + (set! f30-0 (-> v1-8 2)) ) - (set! (-> obj crate-speed) f28-0) - (set! (-> obj dist-apart) f26-0) - (set! (-> obj spawn-delay) (the-as uint (the int (* 300.0 (/ f26-0 f28-0))))) - (set! (-> obj spawn-offset) (the-as uint (the int (* f30-0 (the float (-> obj spawn-delay)))))) ) - (set! (-> obj next-spawn-time) - (+ (-> pp clock frame-counter) - (the-as - time-frame - (- (-> obj spawn-delay) - (mod - (the-as uint (+ (-> pp clock frame-counter) (the-as time-frame (-> obj spawn-offset)))) - (-> obj spawn-delay) - ) - ) - ) - ) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (strip-chain-crate-method-21 obj) - (go (method-of-object obj idle)) - (none) + (set! (-> obj crate-speed) f28-0) + (set! (-> obj dist-apart) f26-0) + (set! (-> obj spawn-delay) (the-as uint (the int (* 300.0 (/ f26-0 f28-0))))) + (set! (-> obj spawn-offset) (the-as uint (the int (* f30-0 (the float (-> obj spawn-delay)))))) ) + (set! (-> obj next-spawn-time) + (+ (current-time) + (the-as + time-frame + (- (-> obj spawn-delay) + (mod (the-as uint (+ (current-time) (the-as time-frame (-> obj spawn-offset)))) (-> obj spawn-delay)) + ) + ) + ) + ) + (logclear! (-> obj mask) (process-mask actor-pause)) + (strip-chain-crate-method-21 obj) + (go (method-of-object obj idle)) + (none) ) diff --git a/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc b/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc index 43b9a99375..84e04ceab3 100644 --- a/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc @@ -274,10 +274,10 @@ :trans (the-as (function none :behavior strip-game-crate) rider-trans) :code (the-as (function none :behavior strip-game-crate) sleep-code) :post (behavior () - (let* ((f30-1 (* 333.14133 (cos (* 66.8053 (the float (mod (-> self clock frame-counter) 981)))))) - (f28-1 (* 358.62756 (cos (* 48.65331 (the float (mod (-> self clock frame-counter) 1346)))))) + (let* ((f30-1 (* 333.14133 (cos (* 66.8053 (the float (mod (current-time) 981)))))) + (f28-1 (* 358.62756 (cos (* 48.65331 (the float (mod (current-time) 1346)))))) (f0-6 30.0) - (gp-0 (+ (-> self clock frame-counter) (seconds -15.24))) + (gp-0 (+ (current-time) (seconds -15.24))) (f26-1 (+ 637.1556 (* 637.1556 (cos (* 65536.0 (/ (the float (mod gp-0 (the int (* 300.0 f0-6)))) (* 300.0 f0-6)))))) ) @@ -467,7 +467,7 @@ (none) ) :post (behavior () - (let* ((f0-1 (* 3.640889 (the float (mod (-> self clock frame-counter) #x4650)))) + (let* ((f0-1 (* 3.640889 (the float (mod (current-time) #x4650)))) (f0-5 (+ -16384.0 (* 8192.0 (+ 1.0 (cos f0-1))))) ) (quaternion-rotate-y! (-> self root quat) (-> self init-quat) f0-5) diff --git a/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc b/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc index 238cb6c161..698e483f1c 100644 --- a/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc @@ -119,7 +119,7 @@ (set! (-> a1-7 param 1) (the-as uint v1-13)) ) (when (send-event-function gp-0 a1-7) - (set! (-> self no-collision-timer) (the-as uint (-> self clock frame-counter))) + (set! (-> self no-collision-timer) (the-as uint (current-time))) (let ((v1-18 (-> self root-override root-prim))) (set! (-> v1-18 prim-core collide-as) (collide-spec)) (set! (-> v1-18 prim-core collide-with) (collide-spec)) @@ -139,7 +139,7 @@ ;; WARN: Return type mismatch symbol vs none. (defbehavior strip-trans strip-hazard () (when (and (nonzero? (-> self no-collision-timer)) - (>= (- (-> self clock frame-counter) (the-as int (-> self no-collision-timer))) (seconds 0.3)) + (>= (- (current-time) (the-as int (-> self no-collision-timer))) (seconds 0.3)) ) (let ((v1-7 (-> self root-override root-prim))) (set! (-> v1-7 prim-core collide-as) (-> self root-override backup-collide-as)) @@ -878,11 +878,11 @@ This commonly includes things such as: (set-setting! 'entity-name (-> self camera-name) 0.0 -1) ) ) - ((>= (- (-> self clock frame-counter) (-> self enter-time)) (seconds 3)) + ((>= (- (current-time) (-> self enter-time)) (seconds 3)) (talker-speech-class-method-12 (-> *talker-speech* 194) 1) ) ) - (set! (-> self enter-time) (-> self clock frame-counter)) + (set! (-> self enter-time) (current-time)) ) #f ) @@ -903,7 +903,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self lightning-time) (+ (-> self clock frame-counter) -1)) + (set! (-> self lightning-time) (+ (current-time) -1)) (none) ) :exit (behavior () @@ -913,10 +913,8 @@ This commonly includes things such as: :code (the-as (function none :behavior grenade-point) sleep-code) :post (behavior () (spawn (-> self part) (-> self root-override trans)) - (when (< (-> self lightning-time) (-> self clock frame-counter)) - (set! (-> self lightning-time) - (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.6 1.4)))) - ) + (when (< (-> self lightning-time) (current-time)) + (set! (-> self lightning-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.6 1.4))))) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> self root-override trans quad)) (let* ((gp-1 (-> self strike-table (-> self last-strike-index))) @@ -1453,7 +1451,7 @@ This commonly includes things such as: (t9-0) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (send-event (handle->process (-> self end-target)) 'die) (remove-setting! 'point-of-interest) (none) @@ -1670,14 +1668,14 @@ This commonly includes things such as: (lambda :behavior task-manager () (local-vars (sv-16 object)) - (set! (-> self start-time) (-> self clock frame-counter)) + (set! (-> self start-time) (current-time)) (set! (-> self total-time) (seconds 120)) (set! (-> self hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) (set! (-> self hud-counter) (ppointer->handle (process-spawn hud-plasmite :init hud-init-by-other :to self))) - (while (or (< (- (-> self clock frame-counter) (-> self start-time)) (-> self total-time)) + (while (or (< (- (current-time) (-> self start-time)) (-> self total-time)) (and *target* (focus-test? *target* in-air)) ) - (let ((v1-18 (the-as int (- (-> self total-time) (- (-> self clock frame-counter) (-> self start-time)))))) + (let ((v1-18 (the-as int (- (-> self total-time) (- (current-time) (-> self start-time)))))) (if (< (the-as time-frame v1-18) 0) (set! v1-18 0) ) @@ -1714,23 +1712,23 @@ This commonly includes things such as: (set! (-> self count) (the-as int sv-16)) ) (cond - ((and (>= (-> self clock frame-counter) (+ #x80e8 (-> self start-time))) + ((and (>= (current-time) (+ #x80e8 (-> self start-time))) (< (-> self state-time) (+ #x80e8 (-> self start-time))) ) (talker-spawn-func (-> *talker-speech* 197) *entity-pool* (target-pos 0) (the-as region #f)) ) - ((and (>= (-> self clock frame-counter) (+ (-> self start-time) (seconds 90))) + ((and (>= (current-time) (+ (-> self start-time) (seconds 90))) (< (-> self state-time) (+ (-> self start-time) (seconds 90))) ) (talker-spawn-func (-> *talker-speech* 196) *entity-pool* (target-pos 0) (the-as region #f)) ) - ((and (>= (-> self clock frame-counter) (+ (-> self start-time) (seconds 60))) + ((and (>= (current-time) (+ (-> self start-time) (seconds 60))) (< (-> self state-time) (+ (-> self start-time) (seconds 60))) ) (talker-spawn-func (-> *talker-speech* 195) *entity-pool* (target-pos 0) (the-as region #f)) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> *game-info* counter) (the float (the-as int sv-16))) (if (>= 1 (the-as int sv-16)) (gui-control-method-12 diff --git a/test/decompiler/reference/jak2/levels/temple/mountain-obs2_REF.gc b/test/decompiler/reference/jak2/levels/temple/mountain-obs2_REF.gc index 211d7a1cd5..fd6e3cbaaf 100644 --- a/test/decompiler/reference/jak2/levels/temple/mountain-obs2_REF.gc +++ b/test/decompiler/reference/jak2/levels/temple/mountain-obs2_REF.gc @@ -268,7 +268,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-normalize! (-> self axe-flip) 1.0) (vector-rotate90-around-y! (-> self axe-flip) (-> self axe-flip)) (set! (-> self angle-flip-vel) -10.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -318,11 +318,11 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self dest-angle) 180.0) (set! (-> self on-shake) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (-> self time-flip))) + (when (>= (- (current-time) (-> self state-time)) (the int (-> self time-flip))) (set! (-> self state-flip) (the-as uint 0)) 0 ) @@ -346,7 +346,7 @@ For example for an elevator pre-compute the distance between the first and last (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (quaternion-vector-angle! (-> self root-override quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) + (when (and (>= (- (current-time) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) (= 1 (-> self state-flip)) ) (when (not (-> self on-shake)) diff --git a/test/decompiler/reference/jak2/levels/temple/mountain-obs_REF.gc b/test/decompiler/reference/jak2/levels/temple/mountain-obs_REF.gc index b897db570b..76df9d0d57 100644 --- a/test/decompiler/reference/jak2/levels/temple/mountain-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/temple/mountain-obs_REF.gc @@ -412,13 +412,13 @@ ) ) (sound-play "dice-sink") - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () (set! (-> self draw color-mult quad) (-> self color quad)) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + ((>= (- (current-time) (-> self state-time)) (seconds 0.5)) (+! (-> self speed-anim) (* -0.5 (-> self clock seconds-per-frame) (-> self time-anim))) (+! (-> self speed-anim) (* -6.0 (-> self clock seconds-per-frame) (-> self speed-anim))) (+! (-> self time-anim) (-> self speed-anim)) @@ -430,7 +430,7 @@ (set! (-> self active) (the-as uint 3)) ) ) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (!= (-> self active) 2)) + (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (!= (-> self active) 2)) (set! (-> self active) (the-as uint 2)) (dotimes (gp-0 6) (matrix-rotate-xyz! (-> self face-matrix gp-0) (-> *dice-angle-array* gp-0)) @@ -462,7 +462,7 @@ (+ (-> self face-matrix-back v1-51 trans y) (* 4096.0 (-> self time-anim))) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (set! (-> self active) (-> self first)) (go-virtual idle) ) @@ -953,9 +953,9 @@ ) :trans (behavior () (if (nonzero? (-> self curtime)) - (set! (-> self first-touch-time) (-> self clock frame-counter)) + (set! (-> self first-touch-time) (current-time)) ) - (set! (-> self curtime) (-> self clock frame-counter)) + (set! (-> self curtime) (current-time)) (when (and (zero? (-> self active)) (dice-wrong-way?)) ) (none) @@ -1042,7 +1042,7 @@ (set! (-> a0-2 trans quad) t0-1) ) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self time-anim) 1.0) (set! (-> self speed-anim) -0.5) (none) @@ -1064,7 +1064,7 @@ (set! (-> self time-anim) 0.0) (set! (-> self speed-anim) (- (-> self speed-anim))) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.7)) + (if (>= (- (current-time) (-> self state-time)) (seconds 0.7)) (set! (-> self time-anim) 0.0) ) (let ((s4-0 (new 'stack-no-clear 'matrix)) @@ -1086,7 +1086,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.7)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.7)) (dotimes (v1-34 6) (when (= (-> self face-status v1-34) 1) (set! (-> self face-status v1-34) 0) @@ -1110,7 +1110,7 @@ :enter (behavior () (set! (-> self time-anim) 0.0) (set! (-> self speed-anim) 0.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "dice-sink") (none) ) @@ -1122,7 +1122,7 @@ (dotimes (v1-5 6) (+! (-> self face-matrix v1-5 trans y) (* 4096.0 (-> self time-anim))) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) (dotimes (v1-11 6) (when (= (-> self face-status v1-11) 1) (set! (-> self face-status v1-11) 0) @@ -2107,8 +2107,8 @@ This commonly includes things such as: (suspend) ) (set-setting! 'entity-name "camera-259" 0.0 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -2120,8 +2120,8 @@ This commonly includes things such as: (suspend) (ja :num! (seek!)) ) - (let ((gp-1 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-1) (seconds 1)) + (let ((gp-1 (current-time))) + (until (>= (- (current-time) gp-1) (seconds 1)) (suspend) ) ) @@ -2843,7 +2843,7 @@ This commonly includes things such as: ) ) :enter (behavior () - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (none) ) @@ -2851,9 +2851,9 @@ This commonly includes things such as: (set! (-> self flags) (logand -2 (-> self flags))) (plat-trans) (if (not (logtest? (-> self flags) 1)) - (set! (-> self ride-timer) (-> self clock frame-counter)) + (set! (-> self ride-timer) (current-time)) ) - (let ((v1-10 (and (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 0.5)) + (let ((v1-10 (and (>= (- (current-time) (-> self ride-timer)) (seconds 0.5)) (logtest? (-> self flags) 1) (if (logtest? (-> self flags) 2) (and *target* (process-grab? *target* #f)) @@ -2919,7 +2919,7 @@ This commonly includes things such as: :event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block)) (case event-type (('ridden) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self ride-timer) (the-as time-frame v0-0)) v0-0 ) @@ -2931,7 +2931,7 @@ This commonly includes things such as: ) :trans (behavior () (plat-trans) - (when (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (when (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (cond ((= (-> self path-pos) 1.0) (set! (-> self dest-pos) 0.0) @@ -3675,7 +3675,7 @@ This commonly includes things such as: :virtual #t :trans (behavior () (plat-trans) - (if (>= (- (-> self clock frame-counter) (-> self ride-timer)) (seconds 1)) + (if (>= (- (current-time) (-> self ride-timer)) (seconds 1)) (go-virtual waiting) ) (none) diff --git a/test/decompiler/reference/jak2/levels/temple/rhino_REF.gc b/test/decompiler/reference/jak2/levels/temple/rhino_REF.gc index 9c7794d861..d907238d5c 100644 --- a/test/decompiler/reference/jak2/levels/temple/rhino_REF.gc +++ b/test/decompiler/reference/jak2/levels/temple/rhino_REF.gc @@ -886,7 +886,7 @@ ) ) (else - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout)) (> (the-as int (-> self focus aware)) 0) ) (go-virtual active) @@ -1325,7 +1325,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior rhino) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-4 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-4 enemy-flags))) @@ -1370,7 +1370,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.5)) + (if (>= (- (current-time) (-> self state-time)) (seconds 1.5)) (go-virtual active) ) (none) @@ -1410,7 +1410,7 @@ ) (set! (-> self charge-straight) #f) (nav-enemy-method-166 self) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self enemy-flags) (enemy-flag look-at-focus)) (none) ) @@ -1438,7 +1438,7 @@ (vector-! gp-0 s2-0 (-> self root-override2 trans)) (vector-normalize! gp-0 (+ 16384.0 (vector-length gp-0))) (vector+! s4-0 (-> self root-override2 trans) gp-0) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + (when (>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (and (< (vector-vector-xz-distance (get-trans (the-as process-focusable s3-0) 0) (-> self root-override2 trans)) 40960.0 ) @@ -1450,7 +1450,7 @@ (cond ((-> self charge-straight) (cond - ((>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) + ((>= (- (current-time) (-> self state-time)) (-> self reaction-time)) (if (< (vector-vector-xz-distance (get-trans (the-as process-focusable s3-0) 0) (-> self root-override2 trans)) 20480.0 ) @@ -1467,7 +1467,7 @@ ) ) ((and (< f28-0 8192.0) - (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) (>= 9.0 (ja-frame-num 0))) + (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (>= 9.0 (ja-frame-num 0))) ) (go-virtual stop-run) ) @@ -1752,7 +1752,7 @@ :enter (behavior () (set-setting! 'sound-mode #f 0.0 1) (set-setting! 'sound-excitement 'abs 0.0 0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (nav-enemy-method-166 self) (let ((v1-8 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-8 enemy-flags))) diff --git a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc index 7d63085be3..a3230e8688 100644 --- a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc @@ -507,24 +507,21 @@ ;; definition for function wait-for-press (defun wait-for-press ((arg0 time-frame) (arg1 time-frame) (arg2 symbol)) - (with-pp - (let ((s3-0 (-> pp clock frame-counter)) - (s4-0 #f) - ) - (while (not (or (>= (- (-> pp clock frame-counter) s3-0) arg1) (and (>= (- (-> pp clock frame-counter) s3-0) arg0) s4-0)) - ) - (if (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) - (set! s4-0 #t) - ) - (when (cpad-pressed? 0 triangle) - (set! s4-0 'abort) - (goto cfg-14) - ) - (suspend) + (let ((s3-0 (current-time)) + (s4-0 #f) ) - (label cfg-14) - s4-0 + (while (not (or (>= (- (current-time) s3-0) arg1) (and (>= (- (current-time) s3-0) arg0) s4-0))) + (if (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (set! s4-0 #t) + ) + (when (cpad-pressed? 0 triangle) + (set! s4-0 'abort) + (goto cfg-14) + ) + (suspend) ) + (label cfg-14) + s4-0 ) ) @@ -559,7 +556,7 @@ (return (the-as object (-> self selected))) ) ) - (when (< (mod (-> self clock frame-counter) 300) 210) + (when (< (mod (current-time) 300) 210) (set! sv-112 (new 'stack 'font-context *font-default-matrix* 64 312 0.0 (font-color default) (font-flags shadow kerning)) ) @@ -597,28 +594,26 @@ ;; definition for function title-fade-out ;; WARN: Return type mismatch int vs none. (defun title-fade-out ((arg0 float)) - (with-pp - (setup *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) arg0 (bucket-id screen-filter)) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.4)) - (suspend) - ) - ) - (send-event (ppointer->process (-> *setting-control* user-current movie)) 'abort) - (set! (-> *setting-control* user-current bg-a) 0.0) - (while (or (-> *setting-control* user-current movie) - (not *target*) - (not (and (-> *target* next-state) (= (-> *target* next-state name) 'target-title))) - (!= (-> *setting-control* user-current bg-a) 0.0) - ) + (setup *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) arg0 (bucket-id screen-filter)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 0.4)) (suspend) ) - (set! (-> *game-info* blackout-time) 0) - (set! (-> *setting-control* user-current bg-a-force) 0.0) - (disable *screen-filter*) - 0 - (none) ) + (send-event (ppointer->process (-> *setting-control* user-current movie)) 'abort) + (set! (-> *setting-control* user-current bg-a) 0.0) + (while (or (-> *setting-control* user-current movie) + (not *target*) + (not (and (-> *target* next-state) (= (-> *target* next-state name) 'target-title))) + (!= (-> *setting-control* user-current bg-a) 0.0) + ) + (suspend) + ) + (set! (-> *game-info* blackout-time) 0) + (set! (-> *setting-control* user-current bg-a-force) 0.0) + (disable *screen-filter*) + 0 + (none) ) ;; definition for function title-progress diff --git a/test/decompiler/reference/jak2/levels/undefined/ruf-states_REF.gc b/test/decompiler/reference/jak2/levels/undefined/ruf-states_REF.gc index 844617d173..ff26efdcb7 100644 --- a/test/decompiler/reference/jak2/levels/undefined/ruf-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/undefined/ruf-states_REF.gc @@ -6,7 +6,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -53,7 +53,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -100,7 +100,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -144,7 +144,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -193,7 +193,7 @@ :enter (-> (method-of-type ruffian scared-idle) enter) :trans (behavior () (bot-method-223 self #t) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (cond ((not (bot-method-214 self)) (react-to-focus self) @@ -220,7 +220,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -257,7 +257,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags)))) @@ -284,12 +284,10 @@ ((outside-spot-radius? self (the-as bot-spot #f) (the-as vector #f) #t) (ruffian-method-240 self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) + ((and (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (bot-method-208 self)) (go-virtual traveling-blocked) ) - ((and (nav-enemy-method-163 self) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self reaction-time)) - ) + ((and (nav-enemy-method-163 self) (>= (- (current-time) (-> self state-time)) (-> self reaction-time))) (go-stare2 self) ) ) @@ -323,7 +321,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) @@ -344,7 +342,7 @@ ((bot-method-214 self) (go-hostile self) ) - ((and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) + ((and (>= (- (current-time) (-> self state-time)) (seconds 1)) (not (bot-method-208 self))) (go-virtual traveling) ) ) @@ -372,7 +370,7 @@ ) :trans (behavior () (bot-method-223 self #f) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (if (bot-method-214 self) (go-hostile self) ) @@ -520,7 +518,7 @@ (t9-0) ) ) - (when (and (logtest? (bot-flags bf24) (-> self bot-flags)) (!= (-> self state-time) (-> self clock frame-counter))) + (when (and (logtest? (bot-flags bf24) (-> self bot-flags)) (!= (-> self state-time) (current-time))) (logclear! (-> self bot-flags) (bot-flags bf24)) (ruffian-method-242 self) ) @@ -562,7 +560,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior ruffian) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-2 self)) (set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag36)))) (set! (-> v1-2 nav callback-info) *nav-enemy-null-callback-info*) diff --git a/test/decompiler/reference/jak2/levels/underport/centipede_REF.gc b/test/decompiler/reference/jak2/levels/underport/centipede_REF.gc index fbfd69fa28..ff1da64a75 100644 --- a/test/decompiler/reference/jak2/levels/underport/centipede_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/centipede_REF.gc @@ -270,15 +270,14 @@ (set! (-> centipede-cam dir y) 0.0) (vector-normalize! (-> centipede-cam dir) 1.0) (set! (-> centipede-cam trans quad) (-> obj root-override2 trans quad)) - (set! (-> centipede-cam trans y) - (+ 32768.0 - (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (-> pp clock frame-counter) 300))))) - (* 614.4 (cos (* 68.91272 (the float (mod (-> pp clock frame-counter) 951))))) - ) - (-> obj bobbing-intensity) - ) - (-> centipede-cam trans y) - ) + (set! (-> centipede-cam trans y) (+ 32768.0 + (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) + (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) + ) + (-> obj bobbing-intensity) + ) + (-> centipede-cam trans y) + ) ) (if (= (-> obj id) 1) (set! (-> centipede-cam dir y) -0.574) @@ -655,7 +654,7 @@ (quaternion-copy! (-> obj bobbing quat) (-> obj root-override2 quat)) (set! (-> obj bobbing trans quad) (-> obj root-override2 trans quad)) (let ((s5-0 (new 'stack-no-clear 'vector)) - (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (-> pp clock frame-counter) 231)))))) + (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) (bob-trans (-> obj bobbing trans)) ) (vector-z-quaternion! s5-0 (-> obj root-override2 quat)) @@ -917,10 +916,10 @@ (until #f (cond (*target* - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) (else - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (when (>= (- (current-time) (-> self state-time)) (seconds 2)) (cleanup-for-death self) (go-virtual die-fast) ) @@ -1015,7 +1014,7 @@ (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (let ((v1-6 (handle->process (-> self focus handle)))) (if (or (not v1-6) (focus-test? (the-as process-focusable v1-6) dead)) (go-virtual stop-chase) @@ -1077,7 +1076,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (react-to-focus self) ) (none) @@ -1251,10 +1250,10 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (set! (-> self desired-talking-volume) 1.0) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.35)) - (let* ((v1-5 (- (-> self clock frame-counter) (-> self state-time))) + (while (< (- (current-time) (-> self state-time)) (seconds 0.35)) + (let* ((v1-5 (- (current-time) (-> self state-time))) (f1-2 (* 0.00952381 (the float v1-5))) ) (quaternion-slerp! (-> self root-override2 quat) (-> self src-quat) (-> self dest-quat) (- 1.0 (* f1-2 f1-2))) @@ -1262,7 +1261,7 @@ (centipede-method-188 self) (suspend) ) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (while (< (- (current-time) (-> self state-time)) (seconds 1)) (centipede-method-188 self) (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/underport/jellyfish_REF.gc b/test/decompiler/reference/jak2/levels/underport/jellyfish_REF.gc index b89d9313b4..f79a27e87a 100644 --- a/test/decompiler/reference/jak2/levels/underport/jellyfish_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/jellyfish_REF.gc @@ -467,7 +467,7 @@ (v1-6 (jellyfish-method-161 self (new 'stack-no-clear 'vector) - (get-norm! (-> self sync) (the-as int (+ (-> self clock frame-counter) (seconds 1)))) + (get-norm! (-> self sync) (the-as int (+ (current-time) (seconds 1)))) ) ) (s5-2 (new 'stack-no-clear 'vector)) @@ -542,7 +542,7 @@ :trans (behavior () (local-vars (gp-0 vector)) (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-4 (-> self focus aware))) (cond ((>= 1 (the-as int v1-4)) @@ -553,13 +553,13 @@ ) ) ) - (if (and (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (and (>= (- (current-time) (-> self state-time)) (seconds 2)) (not (jellyfish-method-164 self (the-as process-focusable #f))) ) (go-virtual active) ) (if (and (not *jellyfish-mech-reserved*) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (>= (- (current-time) (-> self state-time)) (seconds 1)) (jellyfish-method-163 self (the-as process-focusable #f)) (begin (set! gp-0 (jellyfish-method-161 self (new 'stack-no-clear 'vector) (-> self path-stare-u))) @@ -651,7 +651,7 @@ (the-as vector #t) ) (logior! (-> self focus-status) (focus-status dangerous)) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :exit (behavior () @@ -766,7 +766,7 @@ (let ((gp-0 *target*)) (cond ((not (jellyfish-method-163 self gp-0)) - (set! (-> self last-attack-time) (-> self clock frame-counter)) + (set! (-> self last-attack-time) (current-time)) (go-virtual active) ) (else @@ -886,7 +886,7 @@ (suspend) (ja :num! (seek!)) ) - (set! (-> self last-attack-time) (-> self clock frame-counter)) + (set! (-> self last-attack-time) (current-time)) (go-virtual active) (none) ) @@ -916,7 +916,7 @@ (dispose! self) (logclear! (-> self focus-status) (focus-status dangerous)) (enemy-method-52 self (-> self root-override2 transv)) - (let ((gp-0 (-> self clock frame-counter))) + (let ((gp-0 (current-time))) (ja-no-eval :group! jellyfish-die-ja :num! (seek! (the float (+ (-> (the-as art-joint-anim jellyfish-die-ja) frames num-frames) -1))) :frame-num 0.0 @@ -926,7 +926,7 @@ (f0-4 (ja-aframe-num 0)) ) (when (and (= s5-0 jellyfish-die-ja) (>= f0-4 0.0) (>= 0.5 f0-4)) - (when (>= (- (-> self clock frame-counter) gp-0) (seconds 0.05)) + (when (>= (- (current-time) gp-0) (seconds 0.05)) (process-drawable-shock-skel-effect self (-> *lightning-spec-id-table* 5) @@ -936,7 +936,7 @@ -1 -1 ) - (set! gp-0 (-> self clock frame-counter)) + (set! gp-0 (current-time)) ) ) ) @@ -1394,168 +1394,166 @@ ;; WARN: Return type mismatch int vs none. (defmethod init-enemy! jellyfish ((obj jellyfish)) "Common method called to initialize the enemy, typically sets up default field values and calls ancillary helper methods" - (with-pp - (hover-enemy-method-149 obj) - (init-enemy-behaviour-and-stats! obj (hover-enemy-method-150 obj)) - (hover-enemy-method-155 obj) - (set-vector! (-> obj offset) 0.0 6144.0 61440.0 1.0) - (set! (-> obj knocked-fall-dist) 0.0) - (let ((v1-8 (-> obj neck))) - (set! (-> v1-8 up) (the-as uint 1)) - (set! (-> v1-8 nose) (the-as uint 2)) - (set! (-> v1-8 ear) (the-as uint 0)) - (set! (-> v1-8 twist-speed-x) 0.05) - (set! (-> v1-8 twist-speed-y) 0.06) - (set! (-> v1-8 max-dist) 122880.0) - ) - (set! (-> obj root-override2 dynam gravity y) 40960.0) - (set! (-> obj root-override2 dynam gravity-length) 40960.0) - (set! (-> obj root-override2 dynam gravity-max) 40960.0) - (logclear! (-> obj mask) (process-mask actor-pause)) - (logclear! (-> obj enemy-flags) (enemy-flag notice)) - (new-source! (-> obj los) obj (seconds 1) (collide-spec backgnd enemy obstacle hit-by-others-list)) - (set! (-> obj last-fire-time) (-> pp clock frame-counter)) - (set! (-> obj last-attack-time) 0) - (set! (-> obj sound-id) (the-as uint (new-sound-id))) - (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) - (set! (-> obj path-player-u) 0.0) - (set! (-> obj path-my-u) 0.0) - (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) - (set! (-> obj path-y-offset) (res-lump-float (-> obj entity) 'y-offset)) - (let ((a1-4 (new 'stack-no-clear 'sync-info-params))) - (let ((v1-32 0)) - (if #t - (set! v1-32 (logior v1-32 1)) - ) - (set! (-> a1-4 sync-type) 'sync-eased) - (set! (-> a1-4 sync-flags) (the-as sync-flags v1-32)) - ) - (set! (-> a1-4 period) (the-as uint 6000)) - (set! (-> a1-4 entity) (-> obj entity)) - (set! (-> a1-4 percent) 0.0) - (set! (-> a1-4 ease-in) 0.15) - (set! (-> a1-4 ease-out) 0.15) - (set! (-> a1-4 pause-in) 0.0) - (set! (-> a1-4 pause-out) 0.0) - (initialize! (-> obj sync) a1-4) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x 1187.84 :y -3112.96 :z 1392.64 :w 163840.0) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x -1187.84 :y -3112.96 :z 1392.64 :w 163840.0) - ) - (add-connection *part-engine* obj 36 obj 743 (new 'static 'vector :y 1433.6 :z 1228.8 :w 163840.0)) - (dotimes (s5-1 5) - (set! (-> obj tentacles s5-1) (new 'process 'jellyfish-chain-physics)) - ) - (chain-physics-initialize obj (-> obj tentacles 0) 10 4096.0 *jellyfish-mainvein-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 1) 16 4096.0 *jellyfish-lfront-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 2) 21 4096.0 *jellyfish-rfront-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 3) 26 4096.0 *jellyfish-lrear-chain-setup*) - (chain-physics-initialize obj (-> obj tentacles 4) 31 4096.0 *jellyfish-rrear-chain-setup*) - (set! (-> obj tentacles 2 negate-y) #t) - (set! (-> obj tentacles 4 negate-y) #t) - (let ((a0-35 (-> obj skel root-channel 0))) - (set! (-> a0-35 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) - (set! (-> a0-35 frame-num) 0.0) - (joint-control-channel-group! a0-35 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity) - ) - (ja-post) - (dotimes (s5-2 5) - (initialize-chain-joints (-> obj tentacles s5-2)) - ) - (let ((a1-15 (-> obj node-list data 16)) - (v1-68 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 3094.7556 - :offset 30.0 - ) - ) - ) - (set! (-> a1-15 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-15 param1) obj) - (set! (-> a1-15 param2) (the-as basic v1-68)) - ) - (let ((a1-16 (-> obj node-list data 21)) - (v1-70 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 3094.7556 - :offset 30.0 - ) - ) - ) - (set! (-> a1-16 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-16 param1) obj) - (set! (-> a1-16 param2) (the-as basic v1-70)) - ) - (let ((a1-17 (-> obj node-list data 26)) - (v1-72 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 4369.067 - :offset 45.0 - ) - ) - ) - (set! (-> a1-17 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-17 param1) obj) - (set! (-> a1-17 param2) (the-as basic v1-72)) - ) - (let ((a1-18 (-> obj node-list data 31)) - (v1-74 - (new 'static 'jellyfish-joint-mod-tentacle-info - :axis (new 'static 'vector :z 1.0 :w 1.0) - :angle 4369.067 - :offset 45.0 - ) - ) - ) - (set! (-> a1-18 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-18 param1) obj) - (set! (-> a1-18 param2) (the-as basic v1-74)) - ) - (let ((a1-19 (-> obj node-list data 10)) - (v1-76 - (new 'static 'jellyfish-joint-mod-tentacle-info :axis (new 'static 'vector :x 1.0 :w 1.0) :angle 2730.6667) - ) - ) - (set! (-> a1-19 param0) jellyfish-joint-mod-tentacle) - (set! (-> a1-19 param1) obj) - (set! (-> a1-19 param2) (the-as basic v1-76)) - ) - (set! (-> obj tentacles-initialized) #f) - (set! (-> obj tentacle-clock) 0.0) - (set! (-> obj tentacle-blend) 1.0) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x 1966.08 :y -1843.2 :z 2129.92 :w 163840.0) - ) - (add-connection - *part-engine* - obj - 36 - obj - 318 - (new 'static 'vector :x -1966.08 :y -1843.2 :z 2129.92 :w 163840.0) - ) - 0 - (none) + (hover-enemy-method-149 obj) + (init-enemy-behaviour-and-stats! obj (hover-enemy-method-150 obj)) + (hover-enemy-method-155 obj) + (set-vector! (-> obj offset) 0.0 6144.0 61440.0 1.0) + (set! (-> obj knocked-fall-dist) 0.0) + (let ((v1-8 (-> obj neck))) + (set! (-> v1-8 up) (the-as uint 1)) + (set! (-> v1-8 nose) (the-as uint 2)) + (set! (-> v1-8 ear) (the-as uint 0)) + (set! (-> v1-8 twist-speed-x) 0.05) + (set! (-> v1-8 twist-speed-y) 0.06) + (set! (-> v1-8 max-dist) 122880.0) ) + (set! (-> obj root-override2 dynam gravity y) 40960.0) + (set! (-> obj root-override2 dynam gravity-length) 40960.0) + (set! (-> obj root-override2 dynam gravity-max) 40960.0) + (logclear! (-> obj mask) (process-mask actor-pause)) + (logclear! (-> obj enemy-flags) (enemy-flag notice)) + (new-source! (-> obj los) obj (seconds 1) (collide-spec backgnd enemy obstacle hit-by-others-list)) + (set! (-> obj last-fire-time) (current-time)) + (set! (-> obj last-attack-time) 0) + (set! (-> obj sound-id) (the-as uint (new-sound-id))) + (set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f)) + (set! (-> obj path-player-u) 0.0) + (set! (-> obj path-my-u) 0.0) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (set! (-> obj path-y-offset) (res-lump-float (-> obj entity) 'y-offset)) + (let ((a1-4 (new 'stack-no-clear 'sync-info-params))) + (let ((v1-32 0)) + (if #t + (set! v1-32 (logior v1-32 1)) + ) + (set! (-> a1-4 sync-type) 'sync-eased) + (set! (-> a1-4 sync-flags) (the-as sync-flags v1-32)) + ) + (set! (-> a1-4 period) (the-as uint 6000)) + (set! (-> a1-4 entity) (-> obj entity)) + (set! (-> a1-4 percent) 0.0) + (set! (-> a1-4 ease-in) 0.15) + (set! (-> a1-4 ease-out) 0.15) + (set! (-> a1-4 pause-in) 0.0) + (set! (-> a1-4 pause-out) 0.0) + (initialize! (-> obj sync) a1-4) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x 1187.84 :y -3112.96 :z 1392.64 :w 163840.0) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x -1187.84 :y -3112.96 :z 1392.64 :w 163840.0) + ) + (add-connection *part-engine* obj 36 obj 743 (new 'static 'vector :y 1433.6 :z 1228.8 :w 163840.0)) + (dotimes (s5-1 5) + (set! (-> obj tentacles s5-1) (new 'process 'jellyfish-chain-physics)) + ) + (chain-physics-initialize obj (-> obj tentacles 0) 10 4096.0 *jellyfish-mainvein-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 1) 16 4096.0 *jellyfish-lfront-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 2) 21 4096.0 *jellyfish-rfront-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 3) 26 4096.0 *jellyfish-lrear-chain-setup*) + (chain-physics-initialize obj (-> obj tentacles 4) 31 4096.0 *jellyfish-rrear-chain-setup*) + (set! (-> obj tentacles 2 negate-y) #t) + (set! (-> obj tentacles 4 negate-y) #t) + (let ((a0-35 (-> obj skel root-channel 0))) + (set! (-> a0-35 frame-group) (the-as art-joint-anim (-> obj draw art-group data 2))) + (set! (-> a0-35 frame-num) 0.0) + (joint-control-channel-group! a0-35 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity) + ) + (ja-post) + (dotimes (s5-2 5) + (initialize-chain-joints (-> obj tentacles s5-2)) + ) + (let ((a1-15 (-> obj node-list data 16)) + (v1-68 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 3094.7556 + :offset 30.0 + ) + ) + ) + (set! (-> a1-15 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-15 param1) obj) + (set! (-> a1-15 param2) (the-as basic v1-68)) + ) + (let ((a1-16 (-> obj node-list data 21)) + (v1-70 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 3094.7556 + :offset 30.0 + ) + ) + ) + (set! (-> a1-16 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-16 param1) obj) + (set! (-> a1-16 param2) (the-as basic v1-70)) + ) + (let ((a1-17 (-> obj node-list data 26)) + (v1-72 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 4369.067 + :offset 45.0 + ) + ) + ) + (set! (-> a1-17 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-17 param1) obj) + (set! (-> a1-17 param2) (the-as basic v1-72)) + ) + (let ((a1-18 (-> obj node-list data 31)) + (v1-74 + (new 'static 'jellyfish-joint-mod-tentacle-info + :axis (new 'static 'vector :z 1.0 :w 1.0) + :angle 4369.067 + :offset 45.0 + ) + ) + ) + (set! (-> a1-18 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-18 param1) obj) + (set! (-> a1-18 param2) (the-as basic v1-74)) + ) + (let ((a1-19 (-> obj node-list data 10)) + (v1-76 + (new 'static 'jellyfish-joint-mod-tentacle-info :axis (new 'static 'vector :x 1.0 :w 1.0) :angle 2730.6667) + ) + ) + (set! (-> a1-19 param0) jellyfish-joint-mod-tentacle) + (set! (-> a1-19 param1) obj) + (set! (-> a1-19 param2) (the-as basic v1-76)) + ) + (set! (-> obj tentacles-initialized) #f) + (set! (-> obj tentacle-clock) 0.0) + (set! (-> obj tentacle-blend) 1.0) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x 1966.08 :y -1843.2 :z 2129.92 :w 163840.0) + ) + (add-connection + *part-engine* + obj + 36 + obj + 318 + (new 'static 'vector :x -1966.08 :y -1843.2 :z 2129.92 :w 163840.0) + ) + 0 + (none) ) diff --git a/test/decompiler/reference/jak2/levels/underport/pipe-grunt_REF.gc b/test/decompiler/reference/jak2/levels/underport/pipe-grunt_REF.gc index 91052e7ff5..a39f5047f7 100644 --- a/test/decompiler/reference/jak2/levels/underport/pipe-grunt_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/pipe-grunt_REF.gc @@ -62,7 +62,7 @@ :virtual #t :event (the-as (function process int symbol event-message-block object :behavior pipe-grunt) enemy-event-handler) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logior! (-> self enemy-flags) (enemy-flag chase-startup)) (logclear! (-> self enemy-flags) (enemy-flag enable-on-notice alert victory)) (let ((v1-7 (-> self root-override2 root-prim))) @@ -125,7 +125,3 @@ ) :post (the-as (function none :behavior pipe-grunt) nav-enemy-simple-post) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/underport/sig5-course_REF.gc b/test/decompiler/reference/jak2/levels/underport/sig5-course_REF.gc index 79ba3cc7ac..1ab6a80b60 100644 --- a/test/decompiler/reference/jak2/levels/underport/sig5-course_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/sig5-course_REF.gc @@ -79,29 +79,27 @@ ;; definition for method 263 of type sig-under ;; WARN: Return type mismatch time-frame vs none. (defmethod sig-under-method-263 sig-under ((obj sig-under)) - (with-pp - (let ((s5-0 (-> pp clock frame-counter))) - (when (and (>= s5-0 (-> obj next-chase-play-time)) - (not (channel-active? obj (the-as uint 0))) - (>= (the-as int (sig-method-256 obj)) 750) - ) - (let ((a1-2 (bot-speech-list-method-9 - (-> obj sig5-course chase-speeches) - obj - (-> obj sig5-course speeches) - (speech-flags) - ) + (let ((s5-0 (current-time))) + (when (and (>= s5-0 (-> obj next-chase-play-time)) + (not (channel-active? obj (the-as uint 0))) + (>= (the-as int (sig-method-256 obj)) 750) + ) + (let ((a1-2 (bot-speech-list-method-9 + (-> obj sig5-course chase-speeches) + obj + (-> obj sig5-course speeches) + (speech-flags) ) - ) - (when (>= a1-2 0) - (play-speech obj a1-2) - (set! (-> obj next-chase-play-time) (+ s5-0 (get-rand-int-range obj 1500 2700))) + ) ) + (when (>= a1-2 0) + (play-speech obj a1-2) + (set! (-> obj next-chase-play-time) (+ s5-0 (get-rand-int-range obj 1500 2700))) ) ) ) - (none) ) + (none) ) ;; definition for method 195 of type sig-under @@ -482,16 +480,16 @@ (ja-eval) ) (when #t - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self bot-flags) (bot-flags bf18)) - (let ((gp-3 (+ (-> self clock frame-counter) (get-rand-int-range self 30 600)))) + (let ((gp-3 (+ (current-time) (get-rand-int-range self 30 600)))) (ja-channel-push! 1 (seconds 0.5)) (ja-no-eval :group! (-> self draw art-group data 7) :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) frames num-frames) -1))) :frame-num 0.0 ) (until (ja-done? 0) - (if (>= (-> self clock frame-counter) gp-3) + (if (>= (current-time) gp-3) (goto cfg-27) ) (suspend) @@ -604,27 +602,25 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (not (and (logtest? (-> arg1 bot-task-bits) 1) - *target* - (not (logtest? (-> *target* focus-status) (focus-status dead in-air edge-grab))) - ) - ) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.1)) - (task-node-open? (game-task-node under-sig-introduction)) - (scene-play arg1 "under-find-sig-res" #f) - ) - (process-entity-status! arg1 (entity-perm-status no-kill) #t) - (countdown (s5-0 2) - (send-event (handle->process (-> arg1 growls s5-0)) 'die-fast) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 2 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (not (and (logtest? (-> arg1 bot-task-bits) 1) + *target* + (not (logtest? (-> *target* focus-status) (focus-status dead in-air edge-grab))) + ) + ) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1)) + (task-node-open? (game-task-node under-sig-introduction)) + (scene-play arg1 "under-find-sig-res" #f) + ) + (process-entity-status! arg1 (entity-perm-status no-kill) #t) + (countdown (s5-0 2) + (send-event (handle->process (-> arg1 growls s5-0)) 'die-fast) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 2 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -917,48 +913,46 @@ :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 sig-under)) - (with-pp - (set! (-> arg0 next-chase-play-time) (+ (-> pp clock frame-counter) (get-rand-int-range arg0 900 1500))) - (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-centipede-two" -99.0 0) - (let* ((v1-7 (-> arg0 sig5-course spots)) - (s5-1 (-> v1-7 8)) - ) - (let ((v1-8 (-> v1-7 9))) - (vector-! (the-as vector (-> arg0 test-plane)) (the-as vector v1-8) (the-as vector s5-1)) - ) - (set! (-> arg0 test-plane y) 0.0) - (vector-normalize! (-> arg0 test-plane) 1.0) - (set! (-> arg0 test-plane w) - (- (+ (* (-> s5-1 center x) (-> arg0 test-plane x)) (* (-> s5-1 center z) (-> arg0 test-plane z)))) - ) + (set! (-> arg0 next-chase-play-time) (+ (current-time) (get-rand-int-range arg0 900 1500))) + (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-centipede-two" -99.0 0) + (let* ((v1-7 (-> arg0 sig5-course spots)) + (s5-1 (-> v1-7 8)) + ) + (let ((v1-8 (-> v1-7 9))) + (vector-! (the-as vector (-> arg0 test-plane)) (the-as vector v1-8) (the-as vector s5-1)) ) - (let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) - (set! (-> v1-11 bytes 5) 1) - (set! (-> v1-11 bytes 6) 10) - (set! (-> v1-11 bytes 4) -1) - (set! (-> (the-as sigt-wait-spot v1-11) check-done) - (the-as - (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (sig-under-method-263 arg1) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (target-pos 0) quad)) - (set! (-> s5-0 y) 0.0) - (when (and (>= (vector4-dot (the-as vector (-> arg1 test-plane)) s5-0) 0.0) - (scene-play arg1 "under-centipede-two" #f) - ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 11 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (set! (-> arg0 test-plane y) 0.0) + (vector-normalize! (-> arg0 test-plane) 1.0) + (set! (-> arg0 test-plane w) + (- (+ (* (-> s5-1 center x) (-> arg0 test-plane x)) (* (-> s5-1 center z) (-> arg0 test-plane z)))) + ) + ) + (let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) + (set! (-> v1-11 bytes 5) 1) + (set! (-> v1-11 bytes 6) 10) + (set! (-> v1-11 bytes 4) -1) + (set! (-> (the-as sigt-wait-spot v1-11) check-done) + (the-as + (function sigt-wait-spot sig symbol) + (lambda ((arg0 object) (arg1 sig-under)) + (sig-under-method-263 arg1) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (target-pos 0) quad)) + (set! (-> s5-0 y) 0.0) + (when (and (>= (vector4-dot (the-as vector (-> arg1 test-plane)) s5-0) 0.0) + (scene-play arg1 "under-centipede-two" #f) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 11 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -1011,16 +1005,13 @@ (set! (-> (the-as sigt-wait-spot v1-15) check-done) (the-as (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.8)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 13 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - ) - ) + (lambda ((arg0 object) (arg1 sig-under)) (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.8)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 13 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + ) ) ) ) @@ -1149,16 +1140,14 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (sig-under-method-261 arg1 (-> arg1 test-plane) (target-pos 0) #t) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 16 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t + (if (sig-under-method-261 arg1 (-> arg1 test-plane) (target-pos 0) #t) + (set! (-> arg1 waypoint-time0) (current-time)) ) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 16 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1273,7 +1262,7 @@ ) ) ) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.7)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.7)) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 20 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) @@ -1306,13 +1295,11 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (+ (-> pp clock frame-counter) (seconds -6))) - (logior! (-> arg1 waypoint-bits) 1) - (set-setting! 'music 'danger3 0.0 0) - ) - #f + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (+ (current-time) (seconds -6))) + (logior! (-> arg1 waypoint-bits) 1) + (set-setting! 'music 'danger3 0.0 0) ) + #f ) ) ) @@ -1404,38 +1391,36 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (if (and (not (speech-playing? arg1 12)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1.5)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 12) - ) - (cond - ((not (logtest? (-> arg1 waypoint-bits) 1)) - (logior! (-> arg1 waypoint-bits) 1) - (process-release? arg1) - (sig-under-method-260 arg1) - (move-to-point! (-> arg1 root-override2) (the-as vector (-> arg1 sig5-course spots 20))) - #f + (if (and (not (speech-playing? arg1 12)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 12) + ) + (cond + ((not (logtest? (-> arg1 waypoint-bits) 1)) + (logior! (-> arg1 waypoint-bits) 1) + (process-release? arg1) + (sig-under-method-260 arg1) + (move-to-point! (-> arg1 root-override2) (the-as vector (-> arg1 sig5-course spots 20))) + #f + ) + ((not (logtest? (-> arg1 waypoint-bits) 2)) + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2)) + (remove-setting! 'entity-name) + (logior! (-> arg1 waypoint-bits) 2) + (add-process *gui-control* arg1 (gui-channel art-load) (gui-action queue) "under-centipede-three" -99.0 0) ) - ((not (logtest? (-> arg1 waypoint-bits) 2)) - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2)) - (remove-setting! 'entity-name) - (logior! (-> arg1 waypoint-bits) 2) - (add-process *gui-control* arg1 (gui-channel art-load) (gui-action queue) "under-centipede-three" -99.0 0) - ) - #f - ) - (else - (when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 2.5)) - (process-release? *target*) - (reset-warn-time! arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 22 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + #f + ) + (else + (when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2.5)) + (process-release? *target*) + (reset-warn-time! arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 22 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1498,7 +1483,7 @@ ) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! v1-14 - (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.25)) + (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25)) (begin (set! (-> s5-0 quad) (-> (target-pos 0) quad)) (set! (-> s5-0 y) 0.0) @@ -1609,63 +1594,59 @@ :nav-mesh-index #x7 :skip-to -1 :on-set (lambda ((arg0 sig-under)) - (with-pp - (set! (-> arg0 next-chase-play-time) (+ (-> pp clock frame-counter) (get-rand-int-range arg0 600 1200))) - (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-get-sig-out-res" -99.0 0) - (let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) - (set! (-> v1-7 bytes 5) 1) - (set! (-> v1-7 bytes 6) 26) - (set! (-> v1-7 bytes 4) -1) - (set! (-> (the-as sigt-wait-spot v1-7) check-done) - (the-as - (function sigt-wait-spot sig symbol) - (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) - ) - (sig-under-method-263 arg1) - (when (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 4)) - (sig-method-257 arg1) - (let ((f0-0 61440.0)) - (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) + (set! (-> arg0 next-chase-play-time) (+ (current-time) (get-rand-int-range arg0 600 1200))) + (add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "under-get-sig-out-res" -99.0 0) + (let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0))) + (set! (-> v1-7 bytes 5) 1) + (set! (-> v1-7 bytes 6) 26) + (set! (-> v1-7 bytes 4) -1) + (set! (-> (the-as sigt-wait-spot v1-7) check-done) + (the-as + (function sigt-wait-spot sig symbol) + (lambda ((arg0 object) (arg1 sig-under)) + (when (sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (sig-under-method-263 arg1) + (when (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4)) + (sig-method-257 arg1) + (let ((f0-0 61440.0)) + (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans))) + ) + ) + (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) + (when (send-event arg1 'jump 5 (-> arg1 sig5-course spots 28)) + (let ((s5-1 (-> arg1 actor-group 0 data 6 actor))) + (when (and (not (channel-active? arg1 (the-as uint 0))) + (or (not s5-1) (not (logtest? (-> s5-1 extra perm status) (entity-perm-status subtask-complete)))) ) - ) - (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) - (when (send-event arg1 'jump 5 (-> arg1 sig5-course spots 28)) - (let ((s5-1 (-> arg1 actor-group 0 data 6 actor))) - (when (and (not (channel-active? arg1 (the-as uint 0))) - (or (not s5-1) (not (logtest? (-> s5-1 extra perm status) (entity-perm-status subtask-complete)))) - ) - (let ((s5-2 18)) - (case (get-rand-int arg1 3) - ((1) - (set! s5-2 19) - ) - ((2) - (set! s5-2 20) - ) - ) - (play-speech arg1 s5-2) - ) + (let ((s5-2 18)) + (case (get-rand-int arg1 3) + ((1) + (set! s5-2 19) + ) + ((2) + (set! s5-2 20) + ) ) + (play-speech arg1 s5-2) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 25 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t ) ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 25 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) ) - ) - (none) + ) ) + (none) ) :on-update #f :on-skipping-here #f @@ -1688,85 +1669,81 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - (return #t) + (when (sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + (return #t) + ) + (if (not (logtest? (-> arg1 bot-task-bits) 16)) + (set! (-> arg1 waypoint-time0) (current-time)) ) - (if (not (logtest? (-> arg1 bot-task-bits) 16)) - (set! (-> arg1 waypoint-time0) (-> pp clock frame-counter)) - ) - (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (not (logtest? (-> arg1 focus-status) (focus-status in-air))) - ) - (logior! (-> arg1 waypoint-bits) 2) - (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - ) - (if (and (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 1)) - (not (speech-playing? arg1 21)) - (not (channel-active? arg1 (the-as uint 0))) + (when (and (not (logtest? (-> arg1 waypoint-bits) 2)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (not (logtest? (-> arg1 focus-status) (focus-status in-air))) ) - (play-speech arg1 21) - ) - (when (zero? (-> arg1 next-chase-play-time)) - (let ((a0-14 (-> arg1 actor-group 0 data 7 actor))) - (if (and a0-14 (logtest? (-> a0-14 extra perm status) (entity-perm-status subtask-complete))) - (set! (-> arg1 next-chase-play-time) (-> pp clock frame-counter)) - ) - ) + (logior! (-> arg1 waypoint-bits) 2) + (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + ) + (if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1)) + (not (speech-playing? arg1 21)) + (not (channel-active? arg1 (the-as uint 0))) + ) + (play-speech arg1 21) ) - (when (and (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) - (and (-> arg1 next-state) (let ((v1-54 (-> arg1 next-state name))) - (or (= v1-54 'waiting-far) (= v1-54 'waiting-close) (= v1-54 'waiting-turn)) - ) - ) - (or (nonzero? (-> arg1 next-chase-play-time)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 6)) - ) - ) - (when (not (logtest? (-> arg1 waypoint-bits) 1)) - (logior! (-> arg1 waypoint-bits) 1) - (send-event (ppointer->process (-> arg1 my-simple-focus)) 'move-trans (-> arg1 sig5-course spots 32)) - (set! (-> arg1 poi-handle) (ppointer->handle (-> arg1 my-simple-focus))) - ) - (let ((v1-78 (-> arg1 sig5-course spots 32))) - (when (>= 10012.445 - (fabs - (deg- - (atan - (- (-> v1-78 center x) (-> arg1 root-override2 trans x)) - (- (-> v1-78 center z) (-> arg1 root-override2 trans z)) - ) - (quaternion-y-angle (-> arg1 root-override2 quat)) + (when (zero? (-> arg1 next-chase-play-time)) + (let ((a0-14 (-> arg1 actor-group 0 data 7 actor))) + (if (and a0-14 (logtest? (-> a0-14 extra perm status) (entity-perm-status subtask-complete))) + (set! (-> arg1 next-chase-play-time) (current-time)) + ) + ) + ) + (when (and (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) + (and (-> arg1 next-state) (let ((v1-54 (-> arg1 next-state name))) + (or (= v1-54 'waiting-far) (= v1-54 'waiting-close) (= v1-54 'waiting-turn)) + ) + ) + (or (nonzero? (-> arg1 next-chase-play-time)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 6))) + ) + (when (not (logtest? (-> arg1 waypoint-bits) 1)) + (logior! (-> arg1 waypoint-bits) 1) + (send-event (ppointer->process (-> arg1 my-simple-focus)) 'move-trans (-> arg1 sig5-course spots 32)) + (set! (-> arg1 poi-handle) (ppointer->handle (-> arg1 my-simple-focus))) + ) + (let ((v1-78 (-> arg1 sig5-course spots 32))) + (when (>= 10012.445 + (fabs + (deg- + (atan + (- (-> v1-78 center x) (-> arg1 root-override2 trans x)) + (- (-> v1-78 center z) (-> arg1 root-override2 trans z)) ) + (quaternion-y-angle (-> arg1 root-override2 quat)) ) ) - (let ((s4-1 (target-pos 0)) - (s5-1 (-> arg1 sig5-course spots 32)) ) - (when (or (zero? (-> arg1 next-chase-play-time)) - (and (nonzero? (-> arg1 next-chase-play-time)) - (>= (- (-> pp clock frame-counter) (-> arg1 next-chase-play-time)) (seconds 2)) - (or (>= (- (-> pp clock frame-counter) (-> arg1 next-chase-play-time)) (seconds 9)) - (>= (vector-vector-xz-distance s4-1 (-> s5-1 center)) (+ 8192.0 (-> s5-1 center w))) - (< 20480.0 (- (-> s4-1 y) (-> s5-1 center y))) - ) - ) - ) - (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) - (when (send-event arg1 'jump 5 (-> s5-1 center)) - (logclear! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - (if (not (channel-active? arg1 (the-as uint 0))) - (play-speech arg1 22) + (let ((s4-1 (target-pos 0)) + (s5-1 (-> arg1 sig5-course spots 32)) + ) + (when (or (zero? (-> arg1 next-chase-play-time)) + (and (nonzero? (-> arg1 next-chase-play-time)) + (>= (- (current-time) (-> arg1 next-chase-play-time)) (seconds 2)) + (or (>= (- (current-time) (-> arg1 next-chase-play-time)) (seconds 9)) + (>= (vector-vector-xz-distance s4-1 (-> s5-1 center)) (+ 8192.0 (-> s5-1 center w))) + (< 20480.0 (- (-> s4-1 y) (-> s5-1 center y))) + ) + ) ) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 26 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) + (set! (-> arg1 enemy-flags) (the-as enemy-flag (logclear (-> arg1 enemy-flags) (enemy-flag vulnerable)))) + (when (send-event arg1 'jump 5 (-> s5-1 center)) + (logclear! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + (if (not (channel-active? arg1 (the-as uint 0))) + (play-speech arg1 22) + ) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 26 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t ) ) ) @@ -1799,30 +1776,28 @@ (the-as (function sigt-wait-spot sig symbol) (lambda ((arg0 object) (arg1 sig-under)) - (with-pp - (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 0.5)) - (not (logtest? (-> arg1 focus-status) (focus-status in-air))) + (when (and (not (logtest? (-> arg1 waypoint-bits) 1)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5)) + (not (logtest? (-> arg1 focus-status) (focus-status in-air))) + ) + (logior! (-> arg1 waypoint-bits) 1) + (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) + ) + (cond + ((sig-under-method-264 arg1) + (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) + (go-to-waypoint! arg1 27 #f) + (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) + #t + ) + (else + (if (and (not (speech-playing? arg1 23)) + (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5)) + (not (channel-active? arg1 (the-as uint 0))) ) - (logior! (-> arg1 waypoint-bits) 1) - (logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water)) - ) - (cond - ((sig-under-method-264 arg1) - (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) - (go-to-waypoint! arg1 27 #f) - (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) - #t - ) - (else - (if (and (not (speech-playing? arg1 23)) - (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3.5)) - (not (channel-active? arg1 (the-as uint 0))) - ) - (play-speech arg1 23) - ) - #f - ) + (play-speech arg1 23) + ) + #f ) ) ) diff --git a/test/decompiler/reference/jak2/levels/underport/under-laser_REF.gc b/test/decompiler/reference/jak2/levels/underport/under-laser_REF.gc index 21714f44f1..75752ea73f 100644 --- a/test/decompiler/reference/jak2/levels/underport/under-laser_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/under-laser_REF.gc @@ -433,7 +433,7 @@ s5-0 (-> self zero-pos) (-> self one-pos) - (get-norm! (-> self sync) (the-as int (+ (-> self clock frame-counter) (seconds 0.15)))) + (get-norm! (-> self sync) (the-as int (+ (current-time) (seconds 0.15)))) ) (vector-normalize-copy! s4-0 (-> self laser-dir) 1228.8) (vector+! s4-0 s4-0 s5-0) diff --git a/test/decompiler/reference/jak2/levels/underport/under-obs_REF.gc b/test/decompiler/reference/jak2/levels/underport/under-obs_REF.gc index 61fea22a82..493e57a6fc 100644 --- a/test/decompiler/reference/jak2/levels/underport/under-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/under-obs_REF.gc @@ -374,10 +374,10 @@ (>= (* f0-18 f0-18) (vector-vector-xz-distance-squared a0-5 (-> self root trans))) ) ) - (if (>= (- (-> self clock frame-counter) (-> self last-recharge-time)) (seconds 1)) + (if (>= (- (current-time) (-> self last-recharge-time)) (seconds 1)) (sound-play "oxygen-recharge") ) - (set! (-> self last-recharge-time) (-> self clock frame-counter)) + (set! (-> self last-recharge-time) (current-time)) (send-event (ppointer->process *underb-master*) 'bubbler) ) ) @@ -472,7 +472,7 @@ This commonly includes things such as: (case arg2 (('ridden) (set! (-> self ridden) #t) - (let ((v0-0 (the-as object (-> self clock frame-counter)))) + (let ((v0-0 (the-as object (current-time)))) (set! (-> self last-ridden) (the-as time-frame v0-0)) v0-0 ) @@ -640,7 +640,7 @@ This commonly includes things such as: :trans (behavior () (rider-trans) (when (-> self rider-started) - (when (and (not (-> self ridden)) (>= (- (-> self clock frame-counter) (-> self last-ridden)) (seconds 2))) + (when (and (not (-> self ridden)) (>= (- (current-time) (-> self last-ridden)) (seconds 2))) (if (= (-> self extra-id) 1) (send-event (ppointer->process *underb-master*) 'request 'big-room 'under-plat 'player #f) ) @@ -1434,7 +1434,7 @@ This commonly includes things such as: (defstate explode (under-mine) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((v1-3 (-> self root-override root-prim))) (set! (-> v1-3 prim-core collide-as) (collide-spec)) (set! (-> v1-3 prim-core collide-with) (collide-spec)) diff --git a/test/decompiler/reference/jak2/levels/underport/under-shoot-block_REF.gc b/test/decompiler/reference/jak2/levels/underport/under-shoot-block_REF.gc index 2dab22488a..c32472769c 100644 --- a/test/decompiler/reference/jak2/levels/underport/under-shoot-block_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/under-shoot-block_REF.gc @@ -968,79 +968,75 @@ ;; definition for method 42 of type under-block ;; WARN: Return type mismatch int vs none. (defmethod under-block-method-42 under-block ((obj under-block)) - (with-pp - (set! (-> obj activated-time) (-> pp clock frame-counter)) - (logior! (-> obj flags) 2) - (set! (-> obj pulse-pc) 0) - (set! (-> obj pulse-op) 0) - 0 - (none) - ) + (set! (-> obj activated-time) (current-time)) + (logior! (-> obj flags) 2) + (set! (-> obj pulse-pc) 0) + (set! (-> obj pulse-op) 0) + 0 + (none) ) ;; definition for method 45 of type under-block ;; WARN: Return type mismatch object vs none. ;; WARN: Function (method 45 under-block) has a return type of none, but the expression builder found a return statement. (defmethod under-block-method-45 under-block ((obj under-block)) - (with-pp - (let ((v1-0 (-> obj puzzle))) - (when (logtest? (-> obj flags) 2) - (cond - ((!= (-> v1-0 slot-mask) (-> v1-0 slot-mask-full)) - (when (zero? (-> obj pulse-op)) - (if (< (- (-> pp clock frame-counter) (-> obj activated-time)) - (the-as time-frame (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (-> obj pulse-pc) 4))))) - ) - (return #f) - ) - (set! (-> obj pulse-op) - (the-as int (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (+ (-> obj pulse-pc) 1) 4))))) - ) - (+! (-> obj pulse-pc) 2) - (case (-> obj pulse-op) - ((1) - (set! (-> obj pulse-ctr) 3) - (sound-play "und-block-flash") - ) - ((2) - (go (method-of-object obj explode)) - ) + (let ((v1-0 (-> obj puzzle))) + (when (logtest? (-> obj flags) 2) + (cond + ((!= (-> v1-0 slot-mask) (-> v1-0 slot-mask-full)) + (when (zero? (-> obj pulse-op)) + (if (< (- (current-time) (-> obj activated-time)) + (the-as time-frame (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (-> obj pulse-pc) 4))))) + ) + (return #f) ) - ) + (set! (-> obj pulse-op) + (the-as int (-> (the-as (pointer uint32) (&+ (-> obj puzzle pulse-ops) (* (+ (-> obj pulse-pc) 1) 4))))) + ) + (+! (-> obj pulse-pc) 2) (case (-> obj pulse-op) ((1) - (let ((v1-24 (-> obj pulse-ctr))) - (cond - ((= v1-24 3) - (set-vector! (-> obj draw color-mult) 1.1 0.25 0.25 1.0) - (+! (-> obj pulse-ctr) -1) - ) - ((or (= v1-24 2) (= v1-24 1)) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 1.0 1.0 1.0 1.0) - (+! (-> obj pulse-ctr) -1) - ) - ((zero? v1-24) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) - (set! (-> obj pulse-op) 0) - 0 - ) - ) - ) + (set! (-> obj pulse-ctr) 3) + (sound-play "und-block-flash") + ) + ((2) + (go (method-of-object obj explode)) ) ) ) - (else - (set! (-> obj flags) (logand -3 (-> obj flags))) - (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) - (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) + (case (-> obj pulse-op) + ((1) + (let ((v1-24 (-> obj pulse-ctr))) + (cond + ((= v1-24 3) + (set-vector! (-> obj draw color-mult) 1.1 0.25 0.25 1.0) + (+! (-> obj pulse-ctr) -1) + ) + ((or (= v1-24 2) (= v1-24 1)) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 1.0 1.0 1.0 1.0) + (+! (-> obj pulse-ctr) -1) + ) + ((zero? v1-24) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) + (set! (-> obj pulse-op) 0) + 0 + ) + ) + ) ) + ) + ) + (else + (set! (-> obj flags) (logand -3 (-> obj flags))) + (set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0) + (set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0) ) ) ) - (none) ) + (none) ) ;; definition for method 41 of type under-block @@ -1380,7 +1376,7 @@ (suspend) ) (under-block-method-41 self 'active) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-rise") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1411,7 +1407,7 @@ :trans (the-as (function none :behavior under-block) rider-trans) :code (behavior () (set! (-> self flags) (logand -2 (-> self flags))) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'matrix))) (set! (-> gp-0 vector 0 quad) (-> self root-override trans quad)) (set! (-> gp-0 vector 1 quad) (-> gp-0 vector 0 quad)) @@ -1520,9 +1516,9 @@ (the-as quaternion (-> gp-1 vector 2)) (the-as quaternion (-> gp-1 trans)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let ((f30-0 (fmin 1.0 (* 0.022222223 (the float (- (-> self clock frame-counter) (-> self state-time))))))) + (let ((f30-0 (fmin 1.0 (* 0.022222223 (the float (- (current-time) (-> self state-time))))))) (let ((s5-1 (-> self root-override))) (set! (-> s5-1 transv quad) (-> s5-1 trans quad)) (vector-lerp! (-> s5-1 trans) (-> gp-1 vector 1) (the-as vector (-> gp-1 vector)) f30-0) @@ -1608,9 +1604,9 @@ (the-as quaternion (-> gp-1 vector 2)) (the-as quaternion (-> gp-1 trans)) ) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let ((f30-0 (fmin 1.0 (* 0.0074074073 (the float (- (-> self clock frame-counter) (-> self state-time))))))) + (let ((f30-0 (fmin 1.0 (* 0.0074074073 (the float (- (current-time) (-> self state-time))))))) (let ((s5-1 (-> self root-override))) (set! (-> s5-1 transv quad) (-> s5-1 trans quad)) (vector-lerp! (-> s5-1 trans) (-> gp-1 vector 1) (the-as vector (-> gp-1 vector)) f30-0) @@ -1631,9 +1627,9 @@ ) #f (label cfg-5) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (until #f - (let* ((f1-9 (fmin 1.0 (* 0.0074074073 (the float (- (-> self clock frame-counter) (-> self state-time)))))) + (let* ((f1-9 (fmin 1.0 (* 0.0074074073 (the float (- (current-time) (-> self state-time)))))) (s5-2 (-> self root-override)) (f30-1 (fmax 0.0 (- 0.15 f1-9))) ) @@ -1672,7 +1668,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-lock") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1714,7 +1710,7 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (sound-play "und-block-sink") (let ((gp-1 (new 'stack-no-clear 'matrix))) (set! (-> gp-1 vector 0 quad) (-> self root-override trans quad)) @@ -1764,13 +1760,13 @@ (none) ) :code (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (let ((gp-0 (new 'stack-no-clear 'quaternion)) (s5-0 (new 'stack-no-clear 'quaternion)) (f30-0 0.0) ) (quaternion-copy! gp-0 (-> self root-override quat)) - (while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1.25)) + (while (< (- (current-time) (-> self state-time)) (seconds 1.25)) (+! f30-0 (* 65536.0 (-> self clock seconds-per-frame))) (quaternion-vector-angle! s5-0 (-> self rot-axis) (- f30-0)) (quaternion*! (-> self root-override quat) s5-0 gp-0) @@ -1792,7 +1788,7 @@ (fill-cache-integrate-and-collide gp-0 (-> gp-0 transv) a2-0 (meters 0)) ) (when (and (logtest? (-> (the-as collide-shape-moving gp-0) status) (collide-status touch-surface)) - (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.01)) + (>= (- (current-time) (-> self state-time)) (seconds 0.01)) ) (logior! (-> self flags) 4) (go-virtual explode) @@ -2242,7 +2238,7 @@ (('explode) (let ((v1-4 (-> self puzzle spawners (-> arg3 param 0)))) (set! (-> v1-4 active-handle) (the-as handle #f)) - (set! v0-0 (-> self clock frame-counter)) + (set! v0-0 (current-time)) (set! (-> v1-4 exploded-time) (the-as time-frame v0-0)) ) v0-0 @@ -2279,7 +2275,7 @@ (countdown (s5-0 (-> gp-1 length)) (let ((s4-0 (-> gp-1 s5-0))) (when (and (not (handle->process (-> s4-0 active-handle))) - (>= (- (-> self clock frame-counter) (-> s4-0 exploded-time)) (seconds 1)) + (>= (- (current-time) (-> s4-0 exploded-time)) (seconds 1)) ) (set! (-> s4-0 active-handle) (-> s4-0 waiting-handle)) (let ((s3-0 (get-process *default-dead-pool* under-block #x4000))) @@ -2353,8 +2349,8 @@ :code (behavior () (process-entity-status! self (entity-perm-status subtask-complete) #t) (sound-play "und-block-chime") - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((gp-1 (-> self puzzle spawners))) diff --git a/test/decompiler/reference/jak2/levels/underport/under-sig-obs_REF.gc b/test/decompiler/reference/jak2/levels/underport/under-sig-obs_REF.gc index b157ce5ac8..9975f88771 100644 --- a/test/decompiler/reference/jak2/levels/underport/under-sig-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/under-sig-obs_REF.gc @@ -70,9 +70,9 @@ (let ((gp-0 (cshape-reaction-default arg0 arg1 arg2 arg3))) (when (logtest? gp-0 (collide-status touch-surface)) (let ((s5-0 self)) - (when (>= (- (-> self clock frame-counter) (-> s5-0 hit-time)) (seconds 0.25)) + (when (>= (- (current-time) (-> s5-0 hit-time)) (seconds 0.25)) (sound-play "shoot-plat-fall") - (set! (-> s5-0 hit-time) (-> self clock frame-counter)) + (set! (-> s5-0 hit-time) (current-time)) ) ) ) @@ -234,7 +234,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-normalize! (-> self axe-flip) 1.0) (vector-rotate90-around-y! (-> self axe-flip) (-> self axe-flip)) (set! (-> self angle-flip-vel) -10.0) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -310,11 +310,11 @@ For example for an elevator pre-compute the distance between the first and last ) (set! (-> self dest-angle) 180.0) (set! (-> self on-shake) #f) - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self time-flip))) + (when (>= (- (current-time) (-> self state-time)) (the-as time-frame (-> self time-flip))) (set! (-> self state-flip) (the-as uint 0)) 0 ) @@ -341,7 +341,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> self angle-flip) 0.0) ) (quaternion-vector-angle! (-> self root-override quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) - (when (and (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (+ (-> self time-flip) -300))) + (when (and (>= (- (current-time) (-> self state-time)) (the-as time-frame (+ (-> self time-flip) -300))) (= 1 (-> self state-flip)) ) (when (not (-> self on-shake)) @@ -390,7 +390,7 @@ For example for an elevator pre-compute the distance between the first and last (defstate die-falling (under-plat-shoot) :virtual #t :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (logclear! (-> self mask) (process-mask actor-pause enemy platform)) (let ((v1-7 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0))) (set! (-> v1-7 prim-core collide-as) (collide-spec)) @@ -400,8 +400,8 @@ For example for an elevator pre-compute the distance between the first and last (none) ) :trans (behavior () - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) - (let ((f30-0 (* 0.0016666667 (the float (+ (- (seconds -1) (-> self state-time)) (-> self clock frame-counter)))))) + (when (>= (- (current-time) (-> self state-time)) (seconds 1)) + (let ((f30-0 (* 0.0016666667 (the float (+ (- (seconds -1) (-> self state-time)) (current-time)))))) (when (>= f30-0 1.0) (cleanup-for-death self) (go empty-state) @@ -425,7 +425,7 @@ For example for an elevator pre-compute the distance between the first and last #t ) ) - (set! (-> self hit-time) (-> self clock frame-counter)) + (set! (-> self hit-time) (current-time)) (let ((gp-1 (new 'stack-no-clear 'quaternion)) (s5-1 (new 'stack-no-clear 'quaternion)) (s4-0 (new 'stack-no-clear 'vector)) @@ -592,8 +592,8 @@ otherwise, [[plat::34]] ) (suspend) (ja-channel-set! 0) - (let ((gp-0 (-> self clock frame-counter))) - (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((gp-0 (current-time))) + (until (>= (- (current-time) gp-0) (seconds 1)) (suspend) ) ) @@ -1492,7 +1492,7 @@ This commonly includes things such as: ;; definition for function under-pipe-growls-post (defbehavior under-pipe-growls-post under-pipe-growls () - (when (and (zero? (-> self approach-sound-id)) (>= (-> self clock frame-counter) (-> self approach-play-time))) + (when (and (zero? (-> self approach-sound-id)) (>= (current-time) (-> self approach-play-time))) (let ((gp-0 (-> self root trans))) (set! (-> self approach-sound-id) (if (zero? (rand-vu-int-count 3)) (sound-play "grunt-warn" :position gp-0) @@ -1603,28 +1603,28 @@ This commonly includes things such as: ) :code (behavior () (sound-play "grunt-notice" :vol 40 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (sound-play "grunt-warn" :vol 50 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.2)) (suspend) ) (sound-play "grunt-hit" :vol 60 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.5)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 0.5)) (suspend) ) (sound-play "grunt-notice" :vol 70 :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (sound-play "grunt-notice" :position (target-pos 0)) - (set! (-> self state-time) (-> self clock frame-counter)) - (until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (set! (-> self state-time) (current-time)) + (until (>= (- (current-time) (-> self state-time)) (seconds 1)) (suspend) ) (sound-play "grunt-notice" :vol 200 :position (target-pos 0)) @@ -1658,9 +1658,7 @@ This commonly includes things such as: ;; WARN: Return type mismatch object vs none. (defbehavior under-pipe-growls-init-by-other under-pipe-growls ((arg0 vector) (arg1 symbol)) (set! (-> self approach-sound-id) (new 'static 'sound-id)) - (set! (-> self approach-play-time) - (+ (-> self clock frame-counter) (rand-vu-int-range (seconds 0.1) (seconds 1))) - ) + (set! (-> self approach-play-time) (+ (current-time) (rand-vu-int-range (seconds 0.1) (seconds 1)))) (set! (-> self root) (new 'process 'trsqv)) (logclear! (-> self mask) (process-mask actor-pause)) (let ((s4-1 (-> self root))) diff --git a/test/decompiler/reference/jak2/levels/underport/underb-master_REF.gc b/test/decompiler/reference/jak2/levels/underport/underb-master_REF.gc index f6729720f5..2579068f58 100644 --- a/test/decompiler/reference/jak2/levels/underport/underb-master_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/underb-master_REF.gc @@ -426,7 +426,7 @@ ) (if (or (not gp-0) (not (logtest? (-> gp-0 water flags) (water-flags under-water)))) (set! (-> self air-charge-up?) #t) - (set! (-> self underwater-time) (-> self clock frame-counter)) + (set! (-> self underwater-time) (current-time)) ) ) (cond @@ -466,8 +466,8 @@ (else (when (>= 0.4 (-> self air-supply)) (let ((v1-39 (the int (lerp-scale 90.0 300.0 (-> self air-supply) 0.0 0.4)))) - (when (>= (- (-> self clock frame-counter) (-> self last-air-beep-time)) v1-39) - (set! (-> self last-air-beep-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self last-air-beep-time)) v1-39) + (set! (-> self last-air-beep-time) (current-time)) (sound-play "oxygen-warning") ) ) @@ -478,9 +478,7 @@ ) (set! (-> *game-info* air-supply) (fmin 1.0 (-> self air-supply))) (if (or (and *target* (not (logtest? (focus-status mech) (-> *target* focus-status)))) - (and (>= (-> self air-supply) 1.0) - (>= (- (-> self clock frame-counter) (-> self underwater-time)) (seconds 3)) - ) + (and (>= (-> self air-supply) 1.0) (>= (- (current-time) (-> self underwater-time)) (seconds 3))) ) (spawn-air-tank-hud self #f) (spawn-air-tank-hud self #t) @@ -617,7 +615,7 @@ :enter (behavior () (persist-with-delay *setting-control* 'interp-time (seconds 0.05) 'interp-time 'abs 0.0 0) (set-setting! 'entity-name "camera-244" 0.0 0) - (set! (-> self big-room-timer) (-> self clock frame-counter)) + (set! (-> self big-room-timer) (current-time)) (send-event (ppointer->process *underb-master*) 'request 'under-warp #t) (none) ) @@ -627,7 +625,7 @@ (none) ) :trans (behavior () - (if (>= (- (-> self clock frame-counter) (-> self big-room-timer)) (seconds 1)) + (if (>= (- (current-time) (-> self big-room-timer)) (seconds 1)) (go-virtual idle) ) (none) @@ -774,7 +772,7 @@ ) ) :enter (behavior () - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) (none) ) :trans (behavior () @@ -797,7 +795,7 @@ ) ) ) - (when (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.1)) + (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((a0-13 (-> v1-0 0 data 0 actor))) (if a0-13 (-> a0-13 extra process) @@ -854,7 +852,7 @@ ) ) (else - (set! (-> self state-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) ) ) ) @@ -943,8 +941,8 @@ 0 ) ) - (when (>= (- (-> self clock frame-counter) (-> self last-reminder-time)) (seconds 9)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (when (>= (- (current-time) (-> self last-reminder-time)) (seconds 9)) + (set! (-> self last-reminder-time) (current-time)) (add-process *gui-control* self @@ -987,12 +985,12 @@ (when (and (zero? (-> self state-time)) (= (get-status *gui-control* (the-as sound-id (-> self spooled-sound-id))) (gui-status ready)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-reminder-time) (current-time)) ) (when (nonzero? (-> self state-time)) (when (and (>= (-> self spooled-sound-delay) 0) - (>= (- (-> self clock frame-counter) (-> self state-time)) (-> self spooled-sound-delay)) + (>= (- (current-time) (-> self state-time)) (-> self spooled-sound-delay)) ) (set-action! *gui-control* @@ -1020,7 +1018,7 @@ ) ) ) - (if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 2)) + (if (>= (- (current-time) (-> self state-time)) (seconds 2)) (spawn (-> self part) (-> self root trans)) ) ) @@ -1094,8 +1092,8 @@ (when (and (zero? (-> self state-time)) (= (get-status *gui-control* (the-as sound-id (-> self spooled-sound-id))) (gui-status ready)) ) - (set! (-> self state-time) (-> self clock frame-counter)) - (set! (-> self last-reminder-time) (-> self clock frame-counter)) + (set! (-> self state-time) (current-time)) + (set! (-> self last-reminder-time) (current-time)) (set-action! *gui-control* (gui-action play) @@ -1122,7 +1120,7 @@ ) ) ) - (if (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1)) + (if (< (- (current-time) (-> self state-time)) (seconds 1)) (spawn (-> self draining-part) (-> self root trans)) ) ) From 7c9c956808edac8c551274f592cc136357e96d52 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Thu, 18 May 2023 23:12:23 +0100 Subject: [PATCH 2/5] vag player + skill tracker debug tools and fix some decomp (#2664) Also fixed an original game bug in `loader.gc` on a method that's called quite often, though I have no clue what erroneous behavior it could have even caused. --- decompiler/config/jak2/all-types.gc | 35 +-- game/kernel/jak2/kmachine.cpp | 24 ++ game/kernel/jak2/kscheme.cpp | 6 +- game/kernel/jak2/kscheme.h | 1 + game/overlord/jak2/iso.cpp | 6 +- goal_src/goal-lib.gc | 5 + .../underground_fighters/shuttle.gc | 10 +- goal_src/jak2/engine/ambient/ambient-h.gc | 128 ++++----- goal_src/jak2/engine/ambient/ambient.gc | 2 +- goal_src/jak2/engine/game/main.gc | 2 + .../jak2/engine/game/task/task-control.gc | 26 +- .../sprite/particles/sparticle-launcher.gc | 66 ++--- goal_src/jak2/engine/load/loader.gc | 10 +- goal_src/jak2/engine/scene/scene-h.gc | 2 +- goal_src/jak2/engine/scene/scene.gc | 39 ++- goal_src/jak2/engine/target/target-darkjak.gc | 1 - goal_src/jak2/engine/ui/text-id-h.gc | 1 + goal_src/jak2/kernel-defs.gc | 2 + .../jak2/levels/castle/boss/castle-baron.gc | 249 ++++-------------- goal_src/jak2/levels/common/races/race-h.gc | 2 +- .../jak2/levels/common/races/race-manager.gc | 6 +- goal_src/jak2/levels/demo/demo-obs.gc | 8 +- .../ammo_dump/fort-robotank-turret.gc | 26 +- .../mars_tomb/left/chase/tomb-boulder.gc | 17 +- goal_src/jak2/levels/title/title-obs.gc | 2 +- goal_src/jak2/pc/debug/default-menu-pc.gc | 218 +++++++++++++++ goal_src/jak2/pc/debug/entity-debug.gc | 4 + goal_src/jak2/pc/debug/pc-debug-methods.gc | 26 ++ .../underground_fighters/shuttle_REF.gc | 10 +- .../jak2/engine/ambient/ambient-h_REF.gc | 132 +++++----- .../jak2/engine/ambient/ambient_REF.gc | 6 +- .../jak2/engine/game/task/task-control_REF.gc | 30 ++- .../jak2/engine/scene/scene-h_REF.gc | 2 +- .../reference/jak2/engine/scene/scene_REF.gc | 39 ++- .../levels/castle/boss/castle-baron_REF.gc | 244 ++++------------- .../jak2/levels/common/races/race-h_REF.gc | 2 +- .../levels/common/races/race-manager_REF.gc | 6 +- .../jak2/levels/demo/demo-obs_REF.gc | 8 +- .../ammo_dump/fort-robotank-turret_REF.gc | 26 +- .../jak2/levels/title/title-obs_REF.gc | 2 +- 40 files changed, 717 insertions(+), 714 deletions(-) diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index c589bd19eb..009ea83d35 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -7205,6 +7205,7 @@ (scene-nest-boss-intro #x306) (scene-intro #x307) (scene-outro #x308) + (scene-subtitles-hint #x30c) (scene-subtitles-enabled #x30d) (scene-subtitles-disabled #x30e) (board-name #x30f) @@ -13463,7 +13464,7 @@ (channel gui-channel :offset-assert 4) (flags uint8 :offset-assert 5) (speech uint16 :offset-assert 6) - (text-message uint32 :offset-assert 8) + (text-message text-id :offset-assert 8) (text-duration uint16 :offset-assert 12) (delay uint16 :offset-assert 14) (pos uint16 :offset-assert 16) @@ -15683,7 +15684,7 @@ (pre-cut-frame basic :offset-assert 288) (preload-continue string :offset-assert 292) (dma-max uint32 :offset-assert 296) - (gui-id uint32 :offset-assert 300) + (gui-id sound-id :offset-assert 300) (aborted? symbol :offset-assert 304) (scene-start-time time-frame :offset-assert 312) (targ-speed float :offset-assert 320) @@ -30617,8 +30618,8 @@ (deftype fail-mission-params (structure) ((message fail-mission-message :offset-assert 0) (flags fail-mission-flags :offset-assert 1) - (retry-continue basic :offset-assert 4) - (fail-continue basic :offset-assert 8) + (retry-continue string :offset-assert 4) + (fail-continue string :offset-assert 8) (reset-delay uint32 :offset-assert 12) (task game-task :offset-assert 16) (fail-message text-id :offset-assert 20) @@ -30647,15 +30648,15 @@ (deftype fail-mission (process) ((message fail-mission-message :offset-assert 128) (flags fail-mission-flags :offset-assert 129) - (retry-continue basic :offset-assert 132) - (fail-continue basic :offset-assert 136) + (retry-continue string :offset-assert 132) + (fail-continue string :offset-assert 136) (reset-delay uint32 :offset-assert 140) (grabbed-time time-frame :offset-assert 144) (retry symbol :offset-assert 152) (task game-task :offset-assert 156) - (message-id uint32 :offset-assert 160) - (fail-message uint32 :offset-assert 164) - (stinger uint32 :offset-assert 168) + (message-id sound-id :offset-assert 160) + (fail-message text-id :offset-assert 164) + (stinger sound-id :offset-assert 168) ) :method-count-assert 17 :size-assert #xac @@ -40256,7 +40257,7 @@ (gameplay-pass int32 :offset-assert 724) (hud-handle handle :offset-assert 728) (channel uint8 :offset-assert 736) - (id uint32 :offset-assert 740) + (id sound-id :offset-assert 740) (play-clone-wave-speech symbol :offset-assert 744) (last-damage-time time-frame :offset-assert 752) (spawn-charge symbol :offset-assert 760) @@ -41982,8 +41983,8 @@ ( (anim-frame float :offset-assert 200) (transition float :offset-assert 204) - (gui-id-1 uint32 :offset-assert 208) - (gui-id-2 uint32 :offset-assert 212) + (gui-id-1 sound-id :offset-assert 208) + (gui-id-2 sound-id :offset-assert 212) ) :method-count-assert 25 :size-assert #xd8 ;; 216 @@ -43468,7 +43469,7 @@ (draw int32 :offset-assert 316) (active symbol :offset-assert 320) (spark-time time-frame :offset-assert 328) - (gui-id uint32 :offset-assert 336) + (gui-id sound-id :offset-assert 336) ) :method-count-assert 15 :size-assert #x154 @@ -44188,7 +44189,7 @@ (pillar (pointer tomb-boulder-pillar) 4 :offset-assert 236) (mode uint32 :offset-assert 252) (sub-mode uint32 :offset-assert 256) - (gui-id uint32 :offset-assert 260) + (gui-id sound-id :offset-assert 260) (target-pause symbol :offset-assert 264) (current-pause symbol :offset-assert 268) (previous-y-vel float :offset-assert 272) @@ -44789,7 +44790,7 @@ (draw-name basic :offset-assert 328) (active symbol :offset-assert 332) (spark-time time-frame :offset-assert 336) - (gui-id uint32 :offset-assert 344) + (gui-id sound-id :offset-assert 344) ) :method-count-assert 18 :size-assert #x15c @@ -50473,7 +50474,7 @@ ((race-state race-state :offset-assert 128) (state-time time-frame :offset-assert 136) (player-on-track-time time-frame :offset-assert 144) - (message-id uint32 :offset-assert 152) + (message-id sound-id :offset-assert 152) (finish-sound-id sound-id :offset-assert 156) ) :method-count-assert 28 @@ -51577,7 +51578,7 @@ (task-node uint16 :offset-assert 1068) (end-pos vector :inline :offset-assert 1072) (index uint32 :offset-assert 1088) - (gui-id uint32 :offset-assert 1092) + (gui-id sound-id :offset-assert 1092) ) :method-count-assert 219 :size-assert #x448 diff --git a/game/kernel/jak2/kmachine.cpp b/game/kernel/jak2/kmachine.cpp index 192e09e735..5bcaede9b2 100644 --- a/game/kernel/jak2/kmachine.cpp +++ b/game/kernel/jak2/kmachine.cpp @@ -31,6 +31,7 @@ #include "game/kernel/jak2/kmalloc.h" #include "game/kernel/jak2/kscheme.h" #include "game/kernel/jak2/ksound.h" +#include "game/overlord/jak2/iso.h" #include "game/sce/libdma.h" #include "game/sce/libgraph.h" #include "game/sce/sif_ee.h" @@ -621,6 +622,28 @@ void init_autosplit_struct() { (u64)g_ee_main_mem + (u64)intern_from_c("*autosplit-info-jak2*")->value(); } +u32 alloc_vagdir_names(u32 heap_sym) { + auto alloced_heap = (Ptr)alloc_heap_memory(heap_sym, gVagDir.count * 8 + 8); + if (alloced_heap.offset) { + *alloced_heap = gVagDir.count; + // use entry -1 to get the amount + alloced_heap = alloced_heap + 8; + for (int i = 0; i < gVagDir.count; ++i) { + char vagname_temp[9]; + memcpy(vagname_temp, gVagDir.vag[i].name, 8); + for (int j = 0; j < 8; ++j) { + vagname_temp[j] = tolower(vagname_temp[j]); + } + vagname_temp[8] = 0; + u64 vagname_val; + memcpy(&vagname_val, vagname_temp, 8); + *(alloced_heap + i * 8) = vagname_val; + } + return alloced_heap.offset; + } + return s7.offset; +} + void InitMachine_PCPort() { // PC Port added functions @@ -684,6 +707,7 @@ void InitMachine_PCPort() { // debugging tools make_function_symbol_from_c("pc-filter-debug-string?", (void*)pc_filter_debug_string); + make_function_symbol_from_c("alloc-vagdir-names", (void*)alloc_vagdir_names); // other make_function_symbol_from_c("pc-rand", (void*)pc_rand); diff --git a/game/kernel/jak2/kscheme.cpp b/game/kernel/jak2/kscheme.cpp index 789abf19d9..cea08453c1 100644 --- a/game/kernel/jak2/kscheme.cpp +++ b/game/kernel/jak2/kscheme.cpp @@ -80,9 +80,9 @@ u64 alloc_from_heap(u32 heap_symbol, u32 type, s32 size, u32 pp) { auto heap_ptr = Ptr>>(heap_symbol)->value(); s32 aligned_size = ((size + 0xf) / 0x10) * 0x10; - if ((((heap_symbol == s7.offset + FIX_SYM_GLOBAL_HEAP) || - (heap_symbol == s7.offset + FIX_SYM_DEBUG)) || - (heap_symbol == s7.offset + FIX_SYM_LOADING_LEVEL)) || + if ((heap_symbol == s7.offset + FIX_SYM_GLOBAL_HEAP) || + (heap_symbol == s7.offset + FIX_SYM_DEBUG) || + (heap_symbol == s7.offset + FIX_SYM_LOADING_LEVEL) || (heap_symbol == s7.offset + FIX_SYM_PROCESS_LEVEL_HEAP)) { if (!type) { // no type given, just call it a global-object return kmalloc(heap_ptr, size, KMALLOC_MEMSET, "global-object").offset; diff --git a/game/kernel/jak2/kscheme.h b/game/kernel/jak2/kscheme.h index fbefce23ba..1081b2ceda 100644 --- a/game/kernel/jak2/kscheme.h +++ b/game/kernel/jak2/kscheme.h @@ -58,6 +58,7 @@ u64 loado(u32 file_name_in, u32 heap_in); u64 unload(u32 name); u64 call_method_of_type(u32 arg, Ptr type, u32 method_id); u64 call_goal_function_by_name(const char* name); +u64 alloc_heap_memory(u32 heap, u32 size); u64 alloc_heap_object(u32 heap, u32 type, u32 size, u32 pp); u32 u32_in_fixed_sym(u32 offset); } // namespace jak2 diff --git a/game/overlord/jak2/iso.cpp b/game/overlord/jak2/iso.cpp index 6a59caa9c0..4aac220b81 100644 --- a/game/overlord/jak2/iso.cpp +++ b/game/overlord/jak2/iso.cpp @@ -192,7 +192,6 @@ u32 InitISOFS() { } void IsoQueueVagStream(VagCmd* cmd, int param_2) { - int iVar1; VagCmd* new_cmd; LoadStackEntry* pLVar5; VagCmd* pVVar7; @@ -212,7 +211,7 @@ void IsoQueueVagStream(VagCmd* cmd, int param_2) { // allocate/find a vag cmd to hold this stream command. We don't own the incoming command. if ((cmd->id == 0) || (((cmd->vag_dir_entry && cmd->vag_dir_entry->flag & 1U) != 0 && // added null check - (iVar1 = HowManyBelowThisPriority(cmd->priority, 0), iVar1 < 2)))) + (HowManyBelowThisPriority(cmd->priority, 0) < 2)))) goto LAB_000049dc; new_cmd = FindThisVagStream(cmd->name, cmd->id); if (!new_cmd) { @@ -293,8 +292,7 @@ void IsoQueueVagStream(VagCmd* cmd, int param_2) { goto LAB_000049dc; // queue the command. - iVar1 = QueueMessage(&new_cmd->header, 3, "QueueVAGStream", 0); - if (iVar1 == 0) { + if (QueueMessage(&new_cmd->header, 3, "QueueVAGStream", 0) == 0) { // queue failed, give up. new_cmd->sb_scanned = false; RemoveVagCmd(new_cmd, 0); diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 3aea3b9b50..8db73458e8 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -574,6 +574,11 @@ (defmacro false! (var) `(set! ,var #f)) +(defmacro max! (val maxval) + `(set! ,val (max ,val ,maxval))) +(defmacro min! (val minval) + `(set! ,val (min ,val ,minval))) + (defmacro minmax (val minval maxval) `(max (min ,val ,maxval) ,minval) ) diff --git a/goal_src/jak2/characters/underground_fighters/shuttle.gc b/goal_src/jak2/characters/underground_fighters/shuttle.gc index d8b5fc8d90..6066d81b81 100644 --- a/goal_src/jak2/characters/underground_fighters/shuttle.gc +++ b/goal_src/jak2/characters/underground_fighters/shuttle.gc @@ -252,7 +252,7 @@ (task-node uint16 :offset-assert 1068) (end-pos vector :inline :offset-assert 1072) (index uint32 :offset-assert 1088) - (gui-id uint32 :offset-assert 1092) + (gui-id sound-id :offset-assert 1092) ) :heap-base #x3d0 :method-count-assert 219 @@ -685,28 +685,28 @@ (set-action! *gui-control* (gui-action stop) - (the-as sound-id (-> obj gui-id)) + (-> obj gui-id) (gui-channel none) (gui-action none) (the-as string #f) (the-as (function gui-connection symbol) #f) (the-as process #f) ) - (set! (-> obj gui-id) (the-as uint 0)) + (set! (-> obj gui-id) (new 'static 'sound-id)) 0 ) ((method-of-type civilian general-event-handler) obj arg0 arg1 arg2 arg3) ) (('play-speech) (let ((s5-1 (-> arg3 param 0))) - (when (= (get-status *gui-control* (the-as sound-id (-> obj gui-id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> obj gui-id)) (gui-status unknown)) (let ((v0-1 (the-as object (add-process *gui-control* obj (gui-channel citizen) (gui-action play) (the-as string s5-1) -99.0 0) ) ) ) - (set! (-> obj gui-id) (the-as uint v0-1)) + (set! (-> obj gui-id) (the-as sound-id v0-1)) v0-1 ) ) diff --git a/goal_src/jak2/engine/ambient/ambient-h.gc b/goal_src/jak2/engine/ambient/ambient-h.gc index 02af47e33a..26c8ea2438 100644 --- a/goal_src/jak2/engine/ambient/ambient-h.gc +++ b/goal_src/jak2/engine/ambient/ambient-h.gc @@ -25,7 +25,7 @@ (channel gui-channel :offset-assert 4) (flags uint8 :offset-assert 5) (speech uint16 :offset-assert 6) - (text-message uint32 :offset-assert 8) + (text-message text-id :offset-assert 8) (text-duration uint16 :offset-assert 12) (delay uint16 :offset-assert 14) (pos uint16 :offset-assert 16) @@ -97,7 +97,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x3 - :text-message #x224 + :text-message (text-id tutorial-jump) :text-duration #x5dc :neg #x1 :on-close #f @@ -107,7 +107,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x4 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x5dc :neg #x1 :on-close #f @@ -117,7 +117,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x5 - :text-message #x227 + :text-message (text-id tutorial-basic-attack) :text-duration #x5dc :neg #x1 :on-close #f @@ -135,7 +135,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x7 - :text-message #x227 + :text-message (text-id tutorial-basic-attack) :text-duration #x5dc :neg #x1 :on-close #f @@ -153,7 +153,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x9 - :text-message #x229 + :text-message (text-id tutorial-ground-pound) :text-duration #x5dc :neg #x1 :on-close #f @@ -171,7 +171,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #xb - :text-message #x225 + :text-message (text-id tutorial-roll) :text-duration #x5dc :neg #x1 :on-close #f @@ -181,7 +181,7 @@ :channel (gui-channel daxter) :flags #x11 :speech #xc - :text-message #x228 + :text-message (text-id tutorial-rolljump) :text-duration #x12c :neg #x1 :on-close #f @@ -191,7 +191,7 @@ :channel (gui-channel message) :flags #x10 :speech #xd - :text-message #x228 + :text-message (text-id tutorial-rolljump) :text-duration #x12c :neg #x1 :on-close #f @@ -201,7 +201,7 @@ :channel (gui-channel daxter) :flags #x11 :speech #xe - :text-message #x22a + :text-message (text-id tutorial-high-jump) :text-duration #x12c :neg #x1 :on-close #f @@ -211,7 +211,7 @@ :channel (gui-channel message) :flags #x10 :speech #xf - :text-message #x22a + :text-message (text-id tutorial-high-jump) :text-duration #x12c :neg #x1 :on-close #f @@ -375,7 +375,7 @@ :name "cityv069" :channel (gui-channel alert) :speech #x24 - :text-message #x246 + :text-message (text-id tutorial-hover-zones) :text-duration #x5dc :neg #x1 :on-close #f @@ -487,7 +487,7 @@ :channel (gui-channel message) :flags #x7 :speech #x33 - :text-message #x245 + :text-message (text-id mission-complete-return-to-krew) :text-duration #x5dc :neg #x1 :on-close #f @@ -514,7 +514,7 @@ :channel (gui-channel message) :flags #x3 :speech #x36 - :text-message #x247 + :text-message (text-id tutorial-dive) :text-duration #x5dc :neg #x1 :on-close #f @@ -523,7 +523,7 @@ :name "mess006" :channel (gui-channel message) :speech #x37 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x5dc :pos #x8 :neg #x1 @@ -698,7 +698,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4c - :text-message #x23d + :text-message (text-id board-tutorial-grind) :text-duration #xbb8 :neg #x1 :on-close #f @@ -708,7 +708,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4d - :text-message #x22b + :text-message (text-id gungame-tutorial-fire-button) :text-duration #x5dc :neg #x1 :on-close #f @@ -718,7 +718,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4e - :text-message #x252 + :text-message (text-id tutorial-board-get-on) :text-duration #x960 :neg #x1 :on-close #f @@ -728,7 +728,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4f - :text-message #x253 + :text-message (text-id tutorial-dark) :text-duration #x960 :neg #x1 :on-close #f @@ -738,7 +738,7 @@ :channel (gui-channel message) :flags #x3 :speech #x50 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x960 :neg #x1 :on-close #f @@ -757,7 +757,7 @@ :channel (gui-channel voicebox) :flags #x3 :speech #x52 - :text-message #x241 + :text-message (text-id board-score-grind-and-trick) :text-duration #x5dc :neg #x1 :on-close #f @@ -832,7 +832,7 @@ :channel (gui-channel daxter) :flags #x7 :speech #x5b - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x5dc :neg #x1 :on-close #f @@ -944,7 +944,7 @@ :name "whack01" :channel (gui-channel message) :speech #x68 - :text-message #x24e + :text-message (text-id tutorial-unknown) :text-duration #xbb8 :neg #x1 :on-close #f @@ -1003,7 +1003,7 @@ :name "test001" :channel (gui-channel message) :speech #x6f - :text-message #x23d + :text-message (text-id board-tutorial-grind) :text-duration #x2328 :neg #x1 :on-close #f @@ -1030,7 +1030,7 @@ :channel (gui-channel message) :flags #x3 :speech #x72 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1039,7 +1039,7 @@ :name "str002" :channel (gui-channel message) :speech #x73 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1048,7 +1048,7 @@ :name "note001" :channel (gui-channel notice) :speech #x74 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1066,7 +1066,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x76 - :text-message #x254 + :text-message (text-id scea-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1076,7 +1076,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x77 - :text-message #x255 + :text-message (text-id scee-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1086,7 +1086,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x78 - :text-message #x257 + :text-message (text-id scei-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1096,7 +1096,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x79 - :text-message #x256 + :text-message (text-id scek-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1106,7 +1106,7 @@ :channel (gui-channel notice) :flags #xa0 :speech #x7a - :text-message #x258 + :text-message (text-id a-game-by) :text-duration #x384 :neg #x1 :on-close #f @@ -1115,7 +1115,7 @@ :name "intro03" :channel (gui-channel notice-low) :speech #x7b - :text-message #x30c + :text-message (text-id scene-subtitles-hint) :text-duration #x5dc :neg #x1 :on-close #f @@ -1125,7 +1125,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x7c - :text-message #x25a + :text-message (text-id two-years-later) :text-duration #x384 :neg #x1 :on-close #f @@ -1135,7 +1135,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7d - :text-message #x25c + :text-message (text-id gun-upgrade-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1146,7 +1146,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7e - :text-message #x261 + :text-message (text-id gun-upgrade-speed) :delay #x384 :neg #x1 :on-close #f @@ -1156,7 +1156,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7f - :text-message #x262 + :text-message (text-id gun-upgrade-ammo) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1167,7 +1167,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x80 - :text-message #x263 + :text-message (text-id gun-upgrade-damage) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1178,7 +1178,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x81 - :text-message #x264 + :text-message (text-id mission-complete) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1189,7 +1189,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x82 - :text-message #x265 + :text-message (text-id pass-red-acquired) :delay #x384 :neg #x1 :on-close #f @@ -1199,7 +1199,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x83 - :text-message #x266 + :text-message (text-id pass-green-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1210,7 +1210,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x84 - :text-message #x267 + :text-message (text-id pass-yellow-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1221,7 +1221,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x85 - :text-message #x268 + :text-message (text-id pass-palace-acquired) :text-duration #x5dc :delay #xbb8 :neg #x1 @@ -1232,7 +1232,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x86 - :text-message #x269 + :text-message (text-id pass-black-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1243,7 +1243,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x87 - :text-message #x25d + :text-message (text-id red-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1254,7 +1254,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x88 - :text-message #x25e + :text-message (text-id yellow-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1265,7 +1265,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x89 - :text-message #x25f + :text-message (text-id blue-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1276,7 +1276,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x8a - :text-message #x260 + :text-message (text-id dark-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1525,7 +1525,7 @@ :name "ora006" :channel (gui-channel alert) :speech #xaa - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1535,7 +1535,7 @@ :name "ora007" :channel (gui-channel alert) :speech #xab - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1545,7 +1545,7 @@ :name "ora008" :channel (gui-channel alert) :speech #xac - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1555,7 +1555,7 @@ :name "ora009" :channel (gui-channel alert) :speech #xad - :text-message #x26f + :text-message (text-id oracle-gem-grind1-25) :text-duration #x5dc :neg #x1 :on-close #f @@ -1564,7 +1564,7 @@ :name "ora010" :channel (gui-channel alert) :speech #xae - :text-message #x270 + :text-message (text-id oracle-gem-grind1-200) :text-duration #x5dc :neg #x1 :on-close #f @@ -1573,7 +1573,7 @@ :name "ora015" :channel (gui-channel alert) :speech #xaf - :text-message #x271 + :text-message (text-id oracle-gem-grind2-200) :text-duration #x5dc :neg #x1 :on-close #f @@ -1582,7 +1582,7 @@ :name "ora016" :channel (gui-channel alert) :speech #xb0 - :text-message #x272 + :text-message (text-id oracle-gem-grind-100) :text-duration #x5dc :neg #x1 :on-close #f @@ -1695,7 +1695,7 @@ :name "palmes01" :channel (gui-channel message) :speech #xbe - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :pos #x3 :neg #x1 @@ -1714,7 +1714,7 @@ :channel (gui-channel daxter) :flags #x2 :speech #xc0 - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :neg #x1 :on-close #f @@ -1723,7 +1723,7 @@ :name "digmes01" :channel (gui-channel message) :speech #xc1 - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :neg #x1 :on-close #f @@ -1733,7 +1733,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #xc2 - :text-message #x24c + :text-message (text-id tutorial-ramp) :text-duration #x5dc :pos #x3 :neg #x1 @@ -2871,7 +2871,7 @@ :name "racehint" :channel (gui-channel message) :speech #x179 - :text-message #x248 + :text-message (text-id tutorial-turbo-or-jump) :text-duration #x4b0 :neg #x1 :on-close #f @@ -3444,7 +3444,7 @@ :name "ds112" :channel (gui-channel daxter) :speech #x1c5 - :text-message #x249 + :text-message (text-id tutorial-mech-punch) :neg #x1 :on-close #f ) @@ -3475,7 +3475,7 @@ :name "ruimech1" :channel (gui-channel message) :speech #x1c9 - :text-message #x249 + :text-message (text-id tutorial-mech-punch) :text-duration #x5dc :neg #x1 :on-close #f @@ -3484,7 +3484,7 @@ :name "ruimech2" :channel (gui-channel message) :speech #x1ca - :text-message #x24a + :text-message (text-id tutorial-mech-carry) :text-duration #x5dc :neg #x1 :on-close #f @@ -3493,7 +3493,7 @@ :name "ruimech3" :channel (gui-channel message) :speech #x1cb - :text-message #x24b + :text-message (text-id tutorial-mech-throw) :text-duration #x5dc :neg #x1 :on-close #f diff --git a/goal_src/jak2/engine/ambient/ambient.gc b/goal_src/jak2/engine/ambient/ambient.gc index 88f00882bc..25bc1ad0d9 100644 --- a/goal_src/jak2/engine/ambient/ambient.gc +++ b/goal_src/jak2/engine/ambient/ambient.gc @@ -319,7 +319,7 @@ ) ) (let ((s4-1 print-game-text) - (a0-11 (lookup-text! *common-text* (the-as text-id (-> obj message text-message)) #f)) + (a0-11 (lookup-text! *common-text* (-> obj message text-message) #f)) (a2-3 #f) (a3-2 44) (v1-31 (-> obj message channel)) diff --git a/goal_src/jak2/engine/game/main.gc b/goal_src/jak2/engine/game/main.gc index b48b332328..834a543584 100644 --- a/goal_src/jak2/engine/game/main.gc +++ b/goal_src/jak2/engine/game/main.gc @@ -1349,6 +1349,8 @@ ) ) ) + (if *debug-track-skill* + (debug-track-skill)) ) (debug-draw-buffers) (with-dma-buffer-add-bucket ((s3-0 (-> arg0 frames (-> arg0 on-screen) debug-buf)) (bucket-id debug-no-zbuf2)) diff --git a/goal_src/jak2/engine/game/task/task-control.gc b/goal_src/jak2/engine/game/task/task-control.gc index 07730fd042..d2c58dd40c 100644 --- a/goal_src/jak2/engine/game/task/task-control.gc +++ b/goal_src/jak2/engine/game/task/task-control.gc @@ -35,8 +35,8 @@ (deftype fail-mission-params (structure) ((message fail-mission-message :offset-assert 0) (flags fail-mission-flags :offset-assert 1) - (retry-continue basic :offset-assert 4) - (fail-continue basic :offset-assert 8) + (retry-continue string :offset-assert 4) + (fail-continue string :offset-assert 8) (reset-delay uint32 :offset-assert 12) (task game-task :offset-assert 16) (fail-message text-id :offset-assert 20) @@ -1376,15 +1376,15 @@ (deftype fail-mission (process) ((message fail-mission-message :offset-assert 128) (flags fail-mission-flags :offset-assert 129) - (retry-continue basic :offset-assert 132) - (fail-continue basic :offset-assert 136) + (retry-continue string :offset-assert 132) + (fail-continue string :offset-assert 136) (reset-delay uint32 :offset-assert 140) (grabbed-time time-frame :offset-assert 144) (retry symbol :offset-assert 152) (task game-task :offset-assert 156) - (message-id uint32 :offset-assert 160) - (fail-message uint32 :offset-assert 164) - (stinger uint32 :offset-assert 168) + (message-id sound-id :offset-assert 160) + (fail-message text-id :offset-assert 164) + (stinger sound-id :offset-assert 168) ) :heap-base #x30 :method-count-assert 17 @@ -1404,7 +1404,7 @@ (defmethod print-text fail-mission ((obj fail-mission)) (when (and (not (logtest? (-> obj flags) (fail-mission-flags famflags-6))) - (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) ) (let ((gp-0 (new 'stack @@ -1657,14 +1657,14 @@ (none) ) :code (behavior () - (local-vars (a1-10 basic)) + (local-vars (a1-10 string)) (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 270.0))) (when *sound-player-enable* (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-6 command) (sound-command set-param)) - (set! (-> v1-6 id) (the-as sound-id (-> self stinger))) + (set! (-> v1-6 id) (-> self stinger)) (set! (-> v1-6 params volume) (the int (* 1024.0 f30-0))) (set! (-> v1-6 params mask) (the-as uint 1)) (-> v1-6 id) @@ -1731,7 +1731,7 @@ (set! (-> self fail-continue) (-> arg0 fail-continue)) (set! (-> self reset-delay) (-> arg0 reset-delay)) (set! (-> self task) (-> arg0 task)) - (set! (-> self fail-message) (the-as uint (-> arg0 fail-message))) + (set! (-> self fail-message) (-> arg0 fail-message)) (set-setting! 'allow-continue #f 0.0 0) (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) (set-action! @@ -1757,7 +1757,7 @@ (when (not (logtest? (-> arg0 flags) (fail-mission-flags famflags-4))) (if (not (and *target* (focus-test? *target* dead) (zero? (-> self message)))) (set! (-> self stinger) - (the-as uint (add-process *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0)) + (add-process *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0) ) ) ) @@ -1771,7 +1771,7 @@ (= (-> self message) (fail-mission-message fammsg-1)) ) (set! (-> self message-id) - (the-as uint (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0)) + (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) ) ) (go-virtual idle) diff --git a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc index de6f2b65ee..a51172784a 100644 --- a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc +++ b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc @@ -378,14 +378,14 @@ (cond ((< (-> s5-0 w) 0.0) (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 quad)) + (.lvf vf2 (&-> s5-0 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 quad)) + (.lvf vf2 (&-> s5-0 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-2 vf1) @@ -502,12 +502,12 @@ ) (set! (-> s5-0 vector 1 y) 0.0) (set! (-> s5-0 vector 1 z) (the float (sar (shl (the int (-> s5-0 vector 1 z)) 48) 48))) - (.lvf vf4 (&-> s5-0 quad 2)) - (.lvf vf5 (&-> s5-0 quad 0)) + (.lvf vf4 (&-> s5-0 vector 2 quad)) + (.lvf vf5 (&-> s5-0 vector 0 quad)) (.min.x.vf vf4 vf4 vf31 :mask #b111) (.add.vf vf5 vf5 vf30 :mask #b111) - (.svf (&-> s5-0 quad 2) vf4) - (.svf (&-> s5-0 quad 0) vf5) + (.svf (&-> s5-0 vector 2 quad) vf4) + (.svf (&-> s5-0 vector 0 quad) vf5) (when (not *death-adgif*) (set! *death-adgif* (new 'static 'adgif-shader)) (particle-adgif *death-adgif* (new 'static 'texture-id :index #xc9 :page #xc)) @@ -530,19 +530,19 @@ ) (set! (-> gp-0 clock-index) (the-as uint 8)) (.lvf vf4 (&-> (-> *time-of-day-context* current-prt-color) quad)) - (.lvf vf5 (&-> s5-0 quad 2)) + (.lvf vf5 (&-> s5-0 vector 2 quad)) (.lvf vf6 (&-> gp-0 fade quad)) (.mul.vf vf5 vf5 vf4 :mask #b111) (.mul.vf vf6 vf6 vf4 :mask #b111) - (.svf (&-> s5-0 quad 2) vf5) + (.svf (&-> s5-0 vector 2 quad) vf5) (.svf (&-> gp-0 fade quad) vf6) (.mov v1-26 vf6) (set! (-> gp-0 key) (the-as sparticle-launch-control 0)) (set! (-> gp-0 binding) #f) (let ((v1-27 (-> gp-0 sprite))) - (.lvf vf1 (&-> s5-0 quad 0)) - (.lvf vf2 (&-> s5-0 quad 1)) - (.lvf vf3 (&-> s5-0 quad 2)) + (.lvf vf1 (&-> s5-0 vector 0 quad)) + (.lvf vf2 (&-> s5-0 vector 1 quad)) + (.lvf vf3 (&-> s5-0 vector 2 quad)) (.svf (&-> v1-27 x-y-z-sx quad) vf1) (.svf (&-> v1-27 flag-rot-sy quad) vf2) (.sub.w.vf vf3 vf0 vf0 :mask #b1000) @@ -918,14 +918,14 @@ (defmethod spawn-with-matrix sparticle-launch-control ((obj sparticle-launch-control) (arg0 matrix)) (let* ((a2-0 (-> obj origin)) (a3-0 arg0) - (v1-0 (-> a3-0 quad 0)) - (a0-1 (-> a3-0 quad 1)) - (a1-1 (-> a3-0 quad 2)) + (v1-0 (-> a3-0 vector 0 quad)) + (a0-1 (-> a3-0 vector 1 quad)) + (a1-1 (-> a3-0 vector 2 quad)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> a2-0 quad 0) v1-0) - (set! (-> a2-0 quad 1) a0-1) - (set! (-> a2-0 quad 2) a1-1) + (set! (-> a2-0 vector 0 quad) v1-0) + (set! (-> a2-0 vector 1 quad) a0-1) + (set! (-> a2-0 vector 2 quad) a1-1) (set! (-> a2-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -964,14 +964,14 @@ (defmethod spawn-with-cspace sparticle-launch-control ((obj sparticle-launch-control) (arg0 cspace)) (let* ((v1-0 (-> obj origin)) (a3-0 (-> arg0 bone transform)) - (a0-2 (-> a3-0 quad 0)) - (a1-1 (-> a3-0 quad 1)) - (a2-0 (-> a3-0 quad 2)) + (a0-2 (-> a3-0 vector 0 quad)) + (a1-1 (-> a3-0 vector 1 quad)) + (a2-0 (-> a3-0 vector 2 quad)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> v1-0 quad 0) a0-2) - (set! (-> v1-0 quad 1) a1-1) - (set! (-> v1-0 quad 2) a2-0) + (set! (-> v1-0 vector 0 quad) a0-2) + (set! (-> v1-0 vector 1 quad) a1-1) + (set! (-> v1-0 vector 2 quad) a2-0) (set! (-> v1-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -1351,14 +1351,14 @@ (cond ((< (-> gp-0 w) 0.0) (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 quad)) + (.lvf vf2 (&-> gp-0 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 quad)) + (.lvf vf2 (&-> gp-0 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-2 vf1) @@ -1399,14 +1399,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 quad)) + (.lvf vf2 (&-> s4-0 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-5 vf1) ) (else (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 quad)) + (.lvf vf2 (&-> s4-0 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-6 vf1) @@ -1462,14 +1462,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 quad)) + (.lvf vf2 (&-> s4-0 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-18 vf1) ) (else (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 quad)) + (.lvf vf2 (&-> s4-0 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-19 vf1) @@ -1912,14 +1912,14 @@ (cond ((< (-> s5-1 w) 0.0) (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 quad)) + (.lvf vf2 (&-> s5-1 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-0 vf1) ) (else (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 quad)) + (.lvf vf2 (&-> s5-1 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-1 vf1) @@ -1946,14 +1946,14 @@ (cond ((< (-> v1-0 w) 0.0) (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 quad)) + (.lvf vf2 (&-> v1-0 vec quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-2 vf1) ) (else (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 quad)) + (.lvf vf2 (&-> v1-0 vec quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-3 vf1) diff --git a/goal_src/jak2/engine/load/loader.gc b/goal_src/jak2/engine/load/loader.gc index 4c9eca87a5..a9981a0d62 100644 --- a/goal_src/jak2/engine/load/loader.gc +++ b/goal_src/jak2/engine/load/loader.gc @@ -1786,7 +1786,8 @@ ) (else (set! (-> s1-0 action) sv-16) - (if (and (= sv-16 'play) (handle-command-list obj (-> s1-0 channel) s1-0)) + ;; pc port note : fixed naughty dog bug here. was 'play instead of (gui-action play) + (if (and (= sv-16 (gui-action play)) (handle-command-list obj (-> s1-0 channel) s1-0)) (channel-id-set! obj s1-0 (-> s1-0 id)) ) ) @@ -2078,6 +2079,10 @@ 0 ) +;; pc port note : added for debugging +(#when PC_PORT +(define *gui-kick-str* #f)) + (defmethod gui-control-method-22 gui-control ((obj gui-control) (arg0 gui-connection) (arg1 process) (arg2 symbol)) (local-vars (v1-66 symbol) (v1-143 symbol)) (with-pp @@ -2124,7 +2129,8 @@ (b! (!= v1-43 (gui-status ready)) cfg-36 :delay (empty-form)) (case (shr (the-as int (-> arg0 channel)) 4) ((1 2) - (if (not (paused?)) + (if (#if PC_PORT (or *gui-kick-str* (not (paused?))) + (not (paused?))) (str-play-async (-> arg0 name) (-> arg0 id)) ) ) diff --git a/goal_src/jak2/engine/scene/scene-h.gc b/goal_src/jak2/engine/scene/scene-h.gc index 8cecd3b6b7..658a0d716e 100644 --- a/goal_src/jak2/engine/scene/scene-h.gc +++ b/goal_src/jak2/engine/scene/scene-h.gc @@ -92,7 +92,7 @@ (pre-cut-frame basic :offset-assert 288) (preload-continue string :offset-assert 292) (dma-max uint32 :offset-assert 296) - (gui-id uint32 :offset-assert 300) + (gui-id sound-id :offset-assert 300) (aborted? symbol :offset-assert 304) (scene-start-time time-frame :offset-assert 312) (targ-speed float :offset-assert 320) diff --git a/goal_src/jak2/engine/scene/scene.gc b/goal_src/jak2/engine/scene/scene.gc index caa7cd124a..dd8a86237c 100644 --- a/goal_src/jak2/engine/scene/scene.gc +++ b/goal_src/jak2/engine/scene/scene.gc @@ -878,7 +878,7 @@ (!= (-> *setting-control* user-current movie) (process->ppointer self)) ) *progress-process* - (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) 3) + (!= (get-status *gui-control* (-> self gui-id)) 3) ) ) (suspend) @@ -1544,25 +1544,24 @@ (set! (-> self scene) #f) ) ) - (set! (-> self gui-id) (the-as uint (add-process - *gui-control* - self - (gui-channel movie) - (gui-action play) - (the-as string (cond - ((= (rtype-of arg0) string) - (empty) - arg0 - ) - (else - "movie" - ) - ) - ) - -99.0 - 0 - ) - ) + (set! (-> self gui-id) (add-process + *gui-control* + self + (gui-channel movie) + (gui-action play) + (the-as string (cond + ((= (rtype-of arg0) string) + (empty) + arg0 + ) + (else + "movie" + ) + ) + ) + -99.0 + 0 + ) ) (set! *scene-player* (the-as (pointer scene-player) (process->ppointer self))) (set! *display-entity-errors* #f) diff --git a/goal_src/jak2/engine/target/target-darkjak.gc b/goal_src/jak2/engine/target/target-darkjak.gc index cd496f7253..165bc090fe 100644 --- a/goal_src/jak2/engine/target/target-darkjak.gc +++ b/goal_src/jak2/engine/target/target-darkjak.gc @@ -9,7 +9,6 @@ ;; DECOMP BEGINS -(format 0 "SKIP: set-darkjak-texture-morph! in target-darkjak~%") (format 0 "SKIP: process-drawable-shock-wall-effect in target-darkjak~%") (defbehavior target-darkjak-setup target ((arg0 symbol)) diff --git a/goal_src/jak2/engine/ui/text-id-h.gc b/goal_src/jak2/engine/ui/text-id-h.gc index 07a874969e..5b87c568b3 100644 --- a/goal_src/jak2/engine/ui/text-id-h.gc +++ b/goal_src/jak2/engine/ui/text-id-h.gc @@ -555,6 +555,7 @@ (scene-nest-boss-intro #x306) (scene-intro #x307) (scene-outro #x308) + (scene-subtitles-hint #x30c) (scene-subtitles-enabled #x30d) (scene-subtitles-disabled #x30e) (board-name #x30f) diff --git a/goal_src/jak2/kernel-defs.gc b/goal_src/jak2/kernel-defs.gc index 9660dd4c70..b25f643a7c 100644 --- a/goal_src/jak2/kernel-defs.gc +++ b/goal_src/jak2/kernel-defs.gc @@ -290,3 +290,5 @@ (define-extern *pc-settings-folder* string) (define-extern *pc-settings-built-sha* string) + +(define-extern alloc-vagdir-names (function symbol (pointer uint64))) diff --git a/goal_src/jak2/levels/castle/boss/castle-baron.gc b/goal_src/jak2/levels/castle/boss/castle-baron.gc index d80e593400..9c3f8fde7b 100644 --- a/goal_src/jak2/levels/castle/boss/castle-baron.gc +++ b/goal_src/jak2/levels/castle/boss/castle-baron.gc @@ -242,7 +242,7 @@ For example for an elevator pre-compute the distance between the first and last (gameplay-pass int32 :offset-assert 724) (hud-handle handle :offset-assert 728) (channel uint8 :offset-assert 736) - (id uint32 :offset-assert 740) + (id sound-id :offset-assert 740) (play-clone-wave-speech symbol :offset-assert 744) (last-damage-time time-frame :offset-assert 752) (spawn-charge symbol :offset-assert 760) @@ -259,143 +259,92 @@ For example for an elevator pre-compute the distance between the first and last (defun clones-wave-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 17))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf003" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf003" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf004" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf004" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf005" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf005" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf006" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf006" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf007" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf007" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf008" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf008" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf009" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf009" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf010" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf010" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf035" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf035" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf037" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf037" -99.0 0) ) ) ((= v1-3 10) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf040" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf040" -99.0 0) ) ) ((= v1-3 11) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf012" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf012" -99.0 0) ) ) ((= v1-3 12) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf039" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf039" -99.0 0) ) ) ((= v1-3 13) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds261" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds261" -99.0 0) ) ) ((= v1-3 14) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds262" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds262" -99.0 0) ) ) ((= v1-3 15) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds265" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds265" -99.0 0) ) ) ((= v1-3 16) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds266" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds266" -99.0 0) ) ) ) @@ -406,87 +355,57 @@ For example for an elevator pre-compute the distance between the first and last ) (defun krew-hit-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 14))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf016" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf016" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf017" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf017" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf018" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf018" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf019" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf019" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf020" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf020" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf025" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf025" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf042" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf042" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds264" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds264" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds267" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds267" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds268" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds268" -99.0 0) ) ) ) @@ -497,71 +416,47 @@ For example for an elevator pre-compute the distance between the first and last ) (defun krew-hits-jak-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 12))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf028" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf028" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf030" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf030" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf031" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf031" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf032" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf032" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf033" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf033" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf034" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf034" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf036" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf036" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf038" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf038" -99.0 0) ) ) ) @@ -572,95 +467,62 @@ For example for an elevator pre-compute the distance between the first and last ) (defun krew-comes-in-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 11))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf014" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf014" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf015" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf015" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf022" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf022" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf023" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf023" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf024" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf024" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf026" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf026" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf027" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf027" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf029" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf029" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf011" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf011" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf013" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf013" -99.0 0) ) ) ((= v1-3 10) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds263" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds263" -99.0 0) ) ) ) @@ -2067,7 +1929,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> obj num-clones-to-spawn) 0) (set! (-> obj gameplay-pass) 0) (set! (-> obj hud-handle) (the-as handle #f)) - (set! (-> obj id) (the-as uint 0)) + (set! (-> obj id) (new 'static 'sound-id)) (set! (-> obj channel) (the-as uint 35)) (set! (-> obj play-clone-wave-speech) #f) (set! (-> obj spawn-charge) #f) @@ -2493,10 +2355,7 @@ For example for an elevator pre-compute the distance between the first and last 0 (if (zero? (talker-spawn-func (-> *talker-speech* 308) *entity-pool* (target-pos 0) (the-as region #f))) (set! (-> self id) - (the-as - uint - (add-process *gui-control* self (the-as gui-channel (-> self channel)) (gui-action play) "kwbf002" -99.0 0) - ) + (add-process *gui-control* self (the-as gui-channel (-> self channel)) (gui-action play) "kwbf002" -99.0 0) ) ) (nav-enemy-method-166 self) @@ -3309,7 +3168,7 @@ For example for an elevator pre-compute the distance between the first and last (ja-eval) (suspend) ) - (while (nonzero? (get-status *gui-control* (the-as sound-id (-> self id)))) + (while (nonzero? (get-status *gui-control* (-> self id))) (suspend) ) (set! (-> self movie-handle) (ppointer->handle (process-spawn diff --git a/goal_src/jak2/levels/common/races/race-h.gc b/goal_src/jak2/levels/common/races/race-h.gc index a56bbc062d..7464edccf3 100644 --- a/goal_src/jak2/levels/common/races/race-h.gc +++ b/goal_src/jak2/levels/common/races/race-h.gc @@ -167,7 +167,7 @@ ((race-state race-state :offset-assert 128) (state-time time-frame :offset-assert 136) (player-on-track-time time-frame :offset-assert 144) - (message-id uint32 :offset-assert 152) + (message-id sound-id :offset-assert 152) (finish-sound-id sound-id :offset-assert 156) ) :heap-base #x20 diff --git a/goal_src/jak2/levels/common/races/race-manager.gc b/goal_src/jak2/levels/common/races/race-manager.gc index 972aea4f04..f9ab582e20 100644 --- a/goal_src/jak2/levels/common/races/race-manager.gc +++ b/goal_src/jak2/levels/common/races/race-manager.gc @@ -1248,7 +1248,7 @@ ) (defmethod race-manager-method-24 race-manager ((obj race-manager)) - (when (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (when (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) (let ((gp-1 (new 'stack 'font-context @@ -1284,7 +1284,7 @@ ) (defmethod race-manager-method-25 race-manager ((obj race-manager)) - (when (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (when (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) (let ((gp-1 (new 'stack 'font-context @@ -1482,7 +1482,7 @@ (set-setting! 'sound-mode #f 0.0 2) ) (set! (-> self message-id) - (the-as uint (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0)) + (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) ) (when #t (if (zero? (-> gp-0 finish-count)) diff --git a/goal_src/jak2/levels/demo/demo-obs.gc b/goal_src/jak2/levels/demo/demo-obs.gc index 363f15bebe..79523598e5 100644 --- a/goal_src/jak2/levels/demo/demo-obs.gc +++ b/goal_src/jak2/levels/demo/demo-obs.gc @@ -21,7 +21,7 @@ (draw int32 :offset-assert 316) (active symbol :offset-assert 320) (spark-time time-frame :offset-assert 328) - (gui-id uint32 :offset-assert 336) + (gui-id sound-id :offset-assert 336) ) :heap-base #xe0 :method-count-assert 15 @@ -620,19 +620,19 @@ ) ((= v1-1 10) (set! (-> self gui-id) - (the-as uint (add-process *gui-control* self (gui-channel jak) (gui-action queue) "demoend" -99.0 0)) + (add-process *gui-control* self (gui-channel jak) (gui-action queue) "demoend" -99.0 0) ) (if (and (!= (scf-get-territory) 2) (= (-> *setting-control* user-current language) (language-enum japanese))) (demo-screen-change (the-as symbol 2) -1 #t (the-as int #f)) (demo-screen-change (the-as symbol 2) -1 #t (the-as int #t)) ) - (while (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) (gui-status ready)) + (while (!= (get-status *gui-control* (-> self gui-id)) (gui-status ready)) (suspend) ) (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id)) + (-> self gui-id) (gui-channel none) (gui-action none) (the-as string #f) diff --git a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc index 4658dd4f5a..00598aa701 100644 --- a/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc +++ b/goal_src/jak2/levels/fortress/ammo_dump/fort-robotank-turret.gc @@ -74,10 +74,10 @@ (deftype fort-roboscreen (process-drawable) - ((anim-frame float :offset-assert 200) - (transition float :offset-assert 204) - (gui-id-1 uint32 :offset-assert 208) - (gui-id-2 uint32 :offset-assert 212) + ((anim-frame float :offset-assert 200) + (transition float :offset-assert 204) + (gui-id-1 sound-id :offset-assert 208) + (gui-id-2 sound-id :offset-assert 212) ) :heap-base #x60 :method-count-assert 25 @@ -136,7 +136,7 @@ (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id-1)) + (-> self gui-id-1) (gui-channel none) (gui-action none) (the-as string #f) @@ -146,7 +146,7 @@ (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id-2)) + (-> self gui-id-2) (gui-channel none) (gui-action none) (the-as string #f) @@ -159,7 +159,7 @@ (set-action! *gui-control* (gui-action hidden) - (the-as sound-id (-> self gui-id-1)) + (-> self gui-id-1) (gui-channel none) (gui-action none) (the-as string #f) @@ -169,7 +169,7 @@ (set-action! *gui-control* (gui-action hidden) - (the-as sound-id (-> self gui-id-2)) + (-> self gui-id-2) (gui-channel none) (gui-action none) (the-as string #f) @@ -297,16 +297,10 @@ (set! (-> self anim-frame) 15.0) (set! (-> self transition) 0.0) (set! (-> self gui-id-1) - (the-as - uint - (add-process *gui-control* self (gui-channel hud-center-left) (gui-action hidden) (-> self name) 81920.0 0) - ) + (add-process *gui-control* self (gui-channel hud-center-left) (gui-action hidden) (-> self name) 81920.0 0) ) (set! (-> self gui-id-2) - (the-as - uint - (add-process *gui-control* self (gui-channel hud-middle-left) (gui-action hidden) (-> self name) 81920.0 0) - ) + (add-process *gui-control* self (gui-channel hud-middle-left) (gui-action hidden) (-> self name) 81920.0 0) ) (set-vector! (-> self draw color-emissive) 0.0 0.0 0.0 0.0) (set-vector! (-> self draw color-emissive) 0.0 0.0 0.0 0.0) diff --git a/goal_src/jak2/levels/mars_tomb/left/chase/tomb-boulder.gc b/goal_src/jak2/levels/mars_tomb/left/chase/tomb-boulder.gc index 31dfa7faca..7e8f2e6e48 100644 --- a/goal_src/jak2/levels/mars_tomb/left/chase/tomb-boulder.gc +++ b/goal_src/jak2/levels/mars_tomb/left/chase/tomb-boulder.gc @@ -359,7 +359,7 @@ (pillar (pointer tomb-boulder-pillar) 4 :offset-assert 236) (mode uint32 :offset-assert 252) (sub-mode uint32 :offset-assert 256) - (gui-id uint32 :offset-assert 260) + (gui-id sound-id :offset-assert 260) (target-pause symbol :offset-assert 264) (current-pause symbol :offset-assert 268) (previous-y-vel float :offset-assert 272) @@ -721,7 +721,7 @@ ) ) ) - (set-setting! 'music 'danger11 0 0) + (set-setting! 'music 'danger11 0.0 0) (process-entity-status! self (entity-perm-status no-kill) #t) (none) ) @@ -754,12 +754,9 @@ :code (behavior ((arg0 spool-anim)) (play-clean #f) (set! (-> self gui-id) - (the-as - uint - (add-process *gui-control* self (gui-channel art-load-next) (gui-action queue) (-> self anim name) -1.0 0) - ) + (add-process *gui-control* self (gui-channel art-load-next) (gui-action queue) (-> self anim name) -1.0 0) ) - (while (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) (gui-status ready)) + (while (!= (get-status *gui-control* (-> self gui-id)) (gui-status ready)) (set-blackout-frames (seconds 0.1)) (suspend) ) @@ -927,11 +924,11 @@ (cond ((-> self target-pause) (set! (-> self current-pause) #t) - (sound-pause (the-as sound-id (-> self gui-id))) + (sound-pause (-> self gui-id)) ) ((-> self current-pause) (set! (-> self current-pause) #f) - (sound-continue (the-as sound-id (-> self gui-id))) + (sound-continue (-> self gui-id)) ) ) (set! (-> (the-as vector (-> self trans 1)) quad) (-> self trans 0 quad)) @@ -1069,7 +1066,7 @@ (when *sound-player-enable* (let ((v1-151 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-151 command) (sound-command set-param)) - (set! (-> v1-151 id) (the-as sound-id (-> self gui-id))) + (set! (-> v1-151 id) (-> self gui-id)) (set! (-> v1-151 params pitch-mod) (the int (* 1524.0 (-> self current-speed)))) (set! (-> v1-151 params mask) (the-as uint 2)) (-> v1-151 id) diff --git a/goal_src/jak2/levels/title/title-obs.gc b/goal_src/jak2/levels/title/title-obs.gc index 3fe3b96a2b..fc4a44b80c 100644 --- a/goal_src/jak2/levels/title/title-obs.gc +++ b/goal_src/jak2/levels/title/title-obs.gc @@ -23,7 +23,7 @@ (draw-name basic :offset-assert 328) (active symbol :offset-assert 332) (spark-time time-frame :offset-assert 336) - (gui-id uint32 :offset-assert 344) + (gui-id sound-id :offset-assert 344) ) :heap-base #xe0 :method-count-assert 18 diff --git a/goal_src/jak2/pc/debug/default-menu-pc.gc b/goal_src/jak2/pc/debug/default-menu-pc.gc index cdf19658ff..655add14cb 100644 --- a/goal_src/jak2/pc/debug/default-menu-pc.gc +++ b/goal_src/jak2/pc/debug/default-menu-pc.gc @@ -711,6 +711,222 @@ ) ) + +(defun sort-string-array ((arr (array string)) (compare-func (function string string object))) + "Sort an array, using compare-func to compare elements. + The comparison function can return either an integer or a true/false. + For integers, use a positive number to represent first > second + Ex: (sort lst -) will sort in ascending order + For booleans, you must explicitly use #t and not a truthy value. + Ex: (sort my-list (lambda ((x int) (y int)) (< x y))) will sort ascending. + NOTE: if you use an integer, don't accidentally return #t" + (let ((sorted -1)) + (while (nonzero? sorted) + (set! sorted 0) + (dotimes (i (1- (-> arr allocated-length))) + (let* ((cur (-> arr i)) + (next (-> arr (1+ i))) + (result (compare-func cur next)) + ) + (when (and (or (not result) (> (the-as int result) 0)) (!= result #t)) + (+! sorted 1) + (set! (-> arr i) next) + (set! (-> arr (1+ i)) cur) + ) + ) + ) + ) + ) + arr + ) + +(define *vag-play-menu* (the debug-menu #f)) +(define *vag-player* (the (pointer process) #f)) +(define *vagdir-names-list* (alloc-vagdir-names 'debug)) + +(defun alloc-vag-list () + "allocates and returns a boxed array with all of the vag names as strings, sorted" + (let ((list (new 'debug 'boxed-array string (the int (-> *vagdir-names-list* -1))))) + + ;; for each vag... + (dotimes (i (-> list allocated-length)) + ;; write the vag name (64 bits) into the string directly and add a null character + (set! (-> (the (pointer uint64) (-> *temp-string* data))) (-> *vagdir-names-list* i)) + (set! (-> *temp-string* data 8) 0) + + ;; copy into a new string + (set! (-> list i) (new 'debug 'string 0 *temp-string*))) + + ;; return the allocated, filled and sorted array + (sort-string-array list string<=?)) + ) + +(define *vag-list* (alloc-vag-list)) +(define *vag-max-pos-list* (the (pointer int32) (malloc 'debug (* 4 (-> *vag-list* allocated-length))))) + + +(defun dm-vag-play-pick-func ((idx int)) + (if *vag-player* + (return #f)) + (set! *vag-player* (process-spawn-function process :to *display-pool* + (lambda :behavior process ((idx int)) + + ;; restore these settings when we're done + (protect (*display-art-control* (-> *debug-menu-context* is-hidden) *gui-kick-str*) + (true! *display-art-control*) ;; force this on + (true! (-> *debug-menu-context* is-hidden)) ;; hide debug menu + (true! *gui-kick-str*) ;; force gui control to play streams + (sound-group-continue (sound-group dialog dialog2)) ;; unpause dialog + (set-setting! 'music-volume 'abs 0.0 0) ;; mute music + (set-setting! 'sfx-volume 'abs 0.0 0) ;; mute sfx + (set-setting! 'ambient-volume 'abs 0.0 0) ;; mute ambient + (set-setting! 'dialog-volume 'abs 1.0 0) ;; max dialog + (apply-settings *setting-control*) ;; apply settings now + + (let* ((exit? #f) + (old-speed 0.0) + (speed 0.0) + (id (new 'static 'sound-id)) + (stop! (lambda :behavior process ((id sound-id)) + (set-action! *gui-control* (gui-action stop) id (gui-channel none) (gui-action none) (the-as string #f) (the-as (function gui-connection symbol) #f) (the-as process #f)))) + (play! (lambda :behavior process ((idx int)) + (add-process *gui-control* self (gui-channel alert) (gui-action play) (-> *vag-list* idx) -10.0 0))) + (playing? (lambda :behavior process ((id sound-id)) + (let ((status (get-status *gui-control* id))) (or (= status (gui-status ready)) (= status (gui-status active)))))) + (set-speed (lambda :behavior process ((id sound-id) (speed float)) + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) id) + (set! (-> cmd params pitch-mod) (the int (* 1524.0 speed))) + (set! (-> cmd params mask) (the-as uint 2)) + (-> cmd id) + ) + )))) + + (set! id (play! idx)) + (while (= (gui-status pending) (get-status *gui-control* id)) + (suspend)) + + (until (or exit? (!= *master-mode* 'menu)) + (format *stdcon* "Vag Player -- Press Triangle To Exit~%") + (cond + ((zero? id) + (format *stdcon* "No vag queued~%")) + ((not (playing? id)) + (format *stdcon* "Vag not playing~%")) + (else + (format *stdcon* "Vag playing: ~3L~D~0L~%" (the int (/ (the float (current-str-pos id)) 34.133335)))) + ) + (format *stdcon* "Vag: ~S <- ~S(max:~3L~D~0L) -> ~S~%" (if (> idx 0) (-> *vag-list* (1- idx))) + (-> *vag-list* idx) (-> *vag-max-pos-list* idx) + (if (< (1+ idx) (-> *vag-list* allocated-length)) (-> *vag-list* (1+ idx)))) + (format *stdcon* "X to Pause and Play~%R1 and L1 for Speed, Circle Resets~%Left and Right for Prev / Next~%") + (format *stdcon* "Speed: ~f~%" speed) + (cond + ((cpad-pressed? 0 triangle) + (cpad-clear! 0 triangle) + (stop! id) + (true! exit?)) + ((cpad-pressed? 0 x) + (cpad-clear! 0 x) + (cond + ((not (playing? id)) + (set! id (play! idx)) + (set! old-speed 0.0)) + ((= speed -1000.0) + (set! speed 0.0) + (sound-continue id) + (when *sound-player-enable* + (let ((cmd (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> cmd command) (sound-command set-param)) + (set! (-> cmd id) id) + (set! (-> cmd params pitch-mod) 0) + (set! (-> cmd params mask) (the-as uint 2)) + (-> cmd id) + ) + ) + ) + (else + (set! speed -1000.0) + (sound-pause id) + ) + ) + ) + ((and (cpad-pressed? 0 left) (> idx 0)) + (cpad-clear! 0 left) + (stop! id) + (1-! idx) + (set! id (play! idx)) + (set! old-speed 0.0)) + ((and (cpad-pressed? 0 right) (< (1+ idx) (-> *vag-list* allocated-length))) + (cpad-clear! 0 right) + (stop! id) + (1+! idx) + (set! id (play! idx)) + (set! old-speed 0.0)) + ((and (cpad-hold? 0 r1 l1) (!= speed -1000.0)) + (seek! speed (if (cpad-hold? 0 l1) -4.0 4.0) (* 0.5 (-> self clock seconds-per-frame))) + ) + ((cpad-pressed? 0 circle) + (cpad-clear! 0 circle) + (set! speed 0.0)) + ((cpad-pressed? 0 square) + (cpad-clear! 0 square)) + ) + (when (playing? id) + (max! (-> *vag-max-pos-list* idx) (the int (/ (the float (current-str-pos id)) 34.133335))) + (when (and (!= speed old-speed) (!= speed -1000.0)) + (set-speed id speed) + (set! old-speed speed))) + (suspend)) + ) + + (sound-group-pause (sound-group dialog dialog2)) ;; re-pause dialog + (remove-setting! 'music-volume) + (remove-setting! 'sfx-volume) + (remove-setting! 'ambient-volume) + (remove-setting! 'dialog-volume) + (apply-settings *setting-control*) + + (set! *vag-player* #f) + )) idx)) + #t) + +(defun build-vag-list ((menu debug-menu)) + "Fill the vag play menu" + + ;; clear old list + (debug-menu-remove-all-items menu) + + ;; make button for each vag, we use an index + (dotimes (i (-> *vag-list* allocated-length)) + (debug-menu-append-item menu (new-dm-func (-> *vag-list* i) i dm-vag-play-pick-func)) + ) + + ;; sort by vag name - note: already sorted from before + ;(set! (-> menu items) (sort (-> menu items) debug-menu-node *setting-control* user-default subtitle))) + (-> *setting-control* user-default subtitle)))) + ;; pick channel + + (build-vag-list *vag-play-menu*) + + (new-dm-submenu "Vag" vag-menu) + ) + ) + (defun dm-set-msaa-pick-func ((msaa int) (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) (/ msaa 8))) (= (-> *pc-settings* gfx-msaa) (/ msaa 8))) @@ -720,6 +936,7 @@ (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-part-menu *debug-menu-context*)) (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-entity-menu *debug-menu-context*)) (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-regions-menu *debug-menu-context*)) + (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-vag-menu *debug-menu-context*)) (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-from-template *debug-menu-context* @@ -845,6 +1062,7 @@ (flag "Display git commit" *display-sha* dm-boolean-toggle-pick-func) (flag "Music fadein" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadein?))) (flag "Music fadeout" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadeout?))) + (flag "Track skill" *debug-track-skill* dm-boolean-toggle-pick-func) (function "Reset" #f ,(lambda () (reset *pc-settings*))) (function "Save" #f ,(lambda () (commit-to-file *pc-settings*))) (function "Load" #f ,(lambda () (load-settings *pc-settings*))) diff --git a/goal_src/jak2/pc/debug/entity-debug.gc b/goal_src/jak2/pc/debug/entity-debug.gc index 19ae5b4cc5..8e3aa7b476 100644 --- a/goal_src/jak2/pc/debug/entity-debug.gc +++ b/goal_src/jak2/pc/debug/entity-debug.gc @@ -58,6 +58,10 @@ (string-format "etype: ~A~%vis: ~D task: ~S" (-> actor etype) (-> actor vis-id) (game-task->string (-> actor task))) debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle)) (+! cur-y (* 14 2)) + (format *debug-temp-string* "(~S)" (begin (bit-enum->string task-mask (-> actor kill-mask) (clear *temp-string*)) *temp-string*)) + (draw-string-xy (string-format "kill-mask: ~S" *debug-temp-string*) + debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle)) + (+! cur-y (* 14 1)) ) ) ) diff --git a/goal_src/jak2/pc/debug/pc-debug-methods.gc b/goal_src/jak2/pc/debug/pc-debug-methods.gc index c33871554f..a35f32c36f 100644 --- a/goal_src/jak2/pc/debug/pc-debug-methods.gc +++ b/goal_src/jak2/pc/debug/pc-debug-methods.gc @@ -59,3 +59,29 @@ (define *city-info-z* 0) +(define *debug-track-skill* #f) +(defun debug-track-skill () + "draws a line and prints the distance to every skill in every active level" + (let ((start-pos (target-pos 0))) + (dotimes (i (-> *level* length)) + (let ((lev (-> *level* level i))) + (when (= (-> lev status) 'active) + ;; actor entities + (let ((actors (-> lev bsp actors))) + (when (nonzero? actors) + (dotimes (ii (-> actors length)) + (let ((e (-> actors data ii actor))) + (when (and (= (-> e etype symbol) 'skill) (or (not (-> e extra)) (zero? (-> e extra)) (not (logtest? (-> e extra perm status) (entity-perm-status dead))))) + (add-debug-line #t (bucket-id debug-no-zbuf1) start-pos (-> e trans) (new 'static 'rgba :r #xff :a #x80) #f (the-as rgba -1)) + (format *stdcon* "~S at ~m ~m ~m (~m away)~%" (res-lump-struct e 'name string) (-> e trans x) (-> e trans y) (-> e trans z) (vector-vector-distance start-pos (-> e trans))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + #f) + diff --git a/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc b/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc index c8b07683d1..8a03bbec45 100644 --- a/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc +++ b/test/decompiler/reference/jak2/characters/underground_fighters/shuttle_REF.gc @@ -257,7 +257,7 @@ (task-node uint16 :offset-assert 1068) (end-pos vector :inline :offset-assert 1072) (index uint32 :offset-assert 1088) - (gui-id uint32 :offset-assert 1092) + (gui-id sound-id :offset-assert 1092) ) :heap-base #x3d0 :method-count-assert 219 @@ -716,28 +716,28 @@ (set-action! *gui-control* (gui-action stop) - (the-as sound-id (-> obj gui-id)) + (-> obj gui-id) (gui-channel none) (gui-action none) (the-as string #f) (the-as (function gui-connection symbol) #f) (the-as process #f) ) - (set! (-> obj gui-id) (the-as uint 0)) + (set! (-> obj gui-id) (new 'static 'sound-id)) 0 ) ((method-of-type civilian general-event-handler) obj arg0 arg1 arg2 arg3) ) (('play-speech) (let ((s5-1 (-> arg3 param 0))) - (when (= (get-status *gui-control* (the-as sound-id (-> obj gui-id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> obj gui-id)) (gui-status unknown)) (let ((v0-1 (the-as object (add-process *gui-control* obj (gui-channel citizen) (gui-action play) (the-as string s5-1) -99.0 0) ) ) ) - (set! (-> obj gui-id) (the-as uint v0-1)) + (set! (-> obj gui-id) (the-as sound-id v0-1)) v0-1 ) ) diff --git a/test/decompiler/reference/jak2/engine/ambient/ambient-h_REF.gc b/test/decompiler/reference/jak2/engine/ambient/ambient-h_REF.gc index b012bbad94..3254a5112b 100644 --- a/test/decompiler/reference/jak2/engine/ambient/ambient-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ambient/ambient-h_REF.gc @@ -7,7 +7,7 @@ (channel gui-channel :offset-assert 4) (flags uint8 :offset-assert 5) (speech uint16 :offset-assert 6) - (text-message uint32 :offset-assert 8) + (text-message text-id :offset-assert 8) (text-duration uint16 :offset-assert 12) (delay uint16 :offset-assert 14) (pos uint16 :offset-assert 16) @@ -125,7 +125,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x3 - :text-message #x224 + :text-message (text-id tutorial-jump) :text-duration #x5dc :neg #x1 :on-close #f @@ -135,7 +135,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x4 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x5dc :neg #x1 :on-close #f @@ -145,7 +145,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x5 - :text-message #x227 + :text-message (text-id tutorial-basic-attack) :text-duration #x5dc :neg #x1 :on-close #f @@ -163,7 +163,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x7 - :text-message #x227 + :text-message (text-id tutorial-basic-attack) :text-duration #x5dc :neg #x1 :on-close #f @@ -181,7 +181,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #x9 - :text-message #x229 + :text-message (text-id tutorial-ground-pound) :text-duration #x5dc :neg #x1 :on-close #f @@ -199,7 +199,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #xb - :text-message #x225 + :text-message (text-id tutorial-roll) :text-duration #x5dc :neg #x1 :on-close #f @@ -209,7 +209,7 @@ :channel (gui-channel daxter) :flags #x11 :speech #xc - :text-message #x228 + :text-message (text-id tutorial-rolljump) :text-duration #x12c :neg #x1 :on-close #f @@ -219,7 +219,7 @@ :channel (gui-channel message) :flags #x10 :speech #xd - :text-message #x228 + :text-message (text-id tutorial-rolljump) :text-duration #x12c :neg #x1 :on-close #f @@ -229,7 +229,7 @@ :channel (gui-channel daxter) :flags #x11 :speech #xe - :text-message #x22a + :text-message (text-id tutorial-high-jump) :text-duration #x12c :neg #x1 :on-close #f @@ -239,7 +239,7 @@ :channel (gui-channel message) :flags #x10 :speech #xf - :text-message #x22a + :text-message (text-id tutorial-high-jump) :text-duration #x12c :neg #x1 :on-close #f @@ -403,7 +403,7 @@ :name "cityv069" :channel (gui-channel alert) :speech #x24 - :text-message #x246 + :text-message (text-id tutorial-hover-zones) :text-duration #x5dc :neg #x1 :on-close #f @@ -515,7 +515,7 @@ :channel (gui-channel message) :flags #x7 :speech #x33 - :text-message #x245 + :text-message (text-id mission-complete-return-to-krew) :text-duration #x5dc :neg #x1 :on-close #f @@ -542,7 +542,7 @@ :channel (gui-channel message) :flags #x3 :speech #x36 - :text-message #x247 + :text-message (text-id tutorial-dive) :text-duration #x5dc :neg #x1 :on-close #f @@ -551,7 +551,7 @@ :name "mess006" :channel (gui-channel message) :speech #x37 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x5dc :pos #x8 :neg #x1 @@ -726,7 +726,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4c - :text-message #x23d + :text-message (text-id board-tutorial-grind) :text-duration #xbb8 :neg #x1 :on-close #f @@ -736,7 +736,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4d - :text-message #x22b + :text-message (text-id gungame-tutorial-fire-button) :text-duration #x5dc :neg #x1 :on-close #f @@ -746,7 +746,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4e - :text-message #x252 + :text-message (text-id tutorial-board-get-on) :text-duration #x960 :neg #x1 :on-close #f @@ -756,7 +756,7 @@ :channel (gui-channel message) :flags #x3 :speech #x4f - :text-message #x253 + :text-message (text-id tutorial-dark) :text-duration #x960 :neg #x1 :on-close #f @@ -766,7 +766,7 @@ :channel (gui-channel message) :flags #x3 :speech #x50 - :text-message #x226 + :text-message (text-id tutorial-double-jump) :text-duration #x960 :neg #x1 :on-close #f @@ -785,7 +785,7 @@ :channel (gui-channel voicebox) :flags #x3 :speech #x52 - :text-message #x241 + :text-message (text-id board-score-grind-and-trick) :text-duration #x5dc :neg #x1 :on-close #f @@ -860,7 +860,7 @@ :channel (gui-channel daxter) :flags #x7 :speech #x5b - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x5dc :neg #x1 :on-close #f @@ -972,7 +972,7 @@ :name "whack01" :channel (gui-channel message) :speech #x68 - :text-message #x24e + :text-message (text-id tutorial-unknown) :text-duration #xbb8 :neg #x1 :on-close #f @@ -1031,7 +1031,7 @@ :name "test001" :channel (gui-channel message) :speech #x6f - :text-message #x23d + :text-message (text-id board-tutorial-grind) :text-duration #x2328 :neg #x1 :on-close #f @@ -1058,7 +1058,7 @@ :channel (gui-channel message) :flags #x3 :speech #x72 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1067,7 +1067,7 @@ :name "str002" :channel (gui-channel message) :speech #x73 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1076,7 +1076,7 @@ :name "note001" :channel (gui-channel notice) :speech #x74 - :text-message #x239 + :text-message (text-id board-tutorial-get-on-board) :text-duration #x960 :neg #x1 :on-close #f @@ -1094,7 +1094,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x76 - :text-message #x254 + :text-message (text-id scea-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1104,7 +1104,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x77 - :text-message #x255 + :text-message (text-id scee-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1114,7 +1114,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x78 - :text-message #x257 + :text-message (text-id scei-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1124,7 +1124,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x79 - :text-message #x256 + :text-message (text-id scek-splash) :text-duration #x384 :neg #x1 :on-close #f @@ -1134,7 +1134,7 @@ :channel (gui-channel notice) :flags #xa0 :speech #x7a - :text-message #x258 + :text-message (text-id a-game-by) :text-duration #x384 :neg #x1 :on-close #f @@ -1143,7 +1143,7 @@ :name "intro03" :channel (gui-channel notice-low) :speech #x7b - :text-message #x30c + :text-message (text-id scene-subtitles-hint) :text-duration #x5dc :neg #x1 :on-close #f @@ -1153,7 +1153,7 @@ :channel (gui-channel notice) :flags #x20 :speech #x7c - :text-message #x25a + :text-message (text-id two-years-later) :text-duration #x384 :neg #x1 :on-close #f @@ -1163,7 +1163,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7d - :text-message #x25c + :text-message (text-id gun-upgrade-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1174,7 +1174,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7e - :text-message #x261 + :text-message (text-id gun-upgrade-speed) :delay #x384 :neg #x1 :on-close #f @@ -1184,7 +1184,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x7f - :text-message #x262 + :text-message (text-id gun-upgrade-ammo) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1195,7 +1195,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x80 - :text-message #x263 + :text-message (text-id gun-upgrade-damage) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1206,7 +1206,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x81 - :text-message #x264 + :text-message (text-id mission-complete) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1217,7 +1217,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x82 - :text-message #x265 + :text-message (text-id pass-red-acquired) :delay #x384 :neg #x1 :on-close #f @@ -1227,7 +1227,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x83 - :text-message #x266 + :text-message (text-id pass-green-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1238,7 +1238,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x84 - :text-message #x267 + :text-message (text-id pass-yellow-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1249,7 +1249,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x85 - :text-message #x268 + :text-message (text-id pass-palace-acquired) :text-duration #x5dc :delay #xbb8 :neg #x1 @@ -1260,7 +1260,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x86 - :text-message #x269 + :text-message (text-id pass-black-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1271,7 +1271,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x87 - :text-message #x25d + :text-message (text-id red-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1282,7 +1282,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x88 - :text-message #x25e + :text-message (text-id yellow-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1293,7 +1293,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x89 - :text-message #x25f + :text-message (text-id blue-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1304,7 +1304,7 @@ :channel (gui-channel alert) :flags #x40 :speech #x8a - :text-message #x260 + :text-message (text-id dark-gun-acquired) :text-duration #x5dc :delay #x384 :neg #x1 @@ -1553,7 +1553,7 @@ :name "ora006" :channel (gui-channel alert) :speech #xaa - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1563,7 +1563,7 @@ :name "ora007" :channel (gui-channel alert) :speech #xab - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1573,7 +1573,7 @@ :name "ora008" :channel (gui-channel alert) :speech #xac - :text-message #x26e + :text-message (text-id oracle-gem-grind-200) :text-duration #x5dc :delay #x258 :neg #x1 @@ -1583,7 +1583,7 @@ :name "ora009" :channel (gui-channel alert) :speech #xad - :text-message #x26f + :text-message (text-id oracle-gem-grind1-25) :text-duration #x5dc :neg #x1 :on-close #f @@ -1592,7 +1592,7 @@ :name "ora010" :channel (gui-channel alert) :speech #xae - :text-message #x270 + :text-message (text-id oracle-gem-grind1-200) :text-duration #x5dc :neg #x1 :on-close #f @@ -1601,7 +1601,7 @@ :name "ora015" :channel (gui-channel alert) :speech #xaf - :text-message #x271 + :text-message (text-id oracle-gem-grind2-200) :text-duration #x5dc :neg #x1 :on-close #f @@ -1610,7 +1610,7 @@ :name "ora016" :channel (gui-channel alert) :speech #xb0 - :text-message #x272 + :text-message (text-id oracle-gem-grind-100) :text-duration #x5dc :neg #x1 :on-close #f @@ -1723,7 +1723,7 @@ :name "palmes01" :channel (gui-channel message) :speech #xbe - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :pos #x3 :neg #x1 @@ -1742,7 +1742,7 @@ :channel (gui-channel daxter) :flags #x2 :speech #xc0 - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :neg #x1 :on-close #f @@ -1751,7 +1751,7 @@ :name "digmes01" :channel (gui-channel message) :speech #xc1 - :text-message #x24d + :text-message (text-id tutorial-grind) :text-duration #x5dc :neg #x1 :on-close #f @@ -1761,7 +1761,7 @@ :channel (gui-channel daxter) :flags #x3 :speech #xc2 - :text-message #x24c + :text-message (text-id tutorial-ramp) :text-duration #x5dc :pos #x3 :neg #x1 @@ -2899,7 +2899,7 @@ :name "racehint" :channel (gui-channel message) :speech #x179 - :text-message #x248 + :text-message (text-id tutorial-turbo-or-jump) :text-duration #x4b0 :neg #x1 :on-close #f @@ -3472,7 +3472,7 @@ :name "ds112" :channel (gui-channel daxter) :speech #x1c5 - :text-message #x249 + :text-message (text-id tutorial-mech-punch) :neg #x1 :on-close #f ) @@ -3503,7 +3503,7 @@ :name "ruimech1" :channel (gui-channel message) :speech #x1c9 - :text-message #x249 + :text-message (text-id tutorial-mech-punch) :text-duration #x5dc :neg #x1 :on-close #f @@ -3512,7 +3512,7 @@ :name "ruimech2" :channel (gui-channel message) :speech #x1ca - :text-message #x24a + :text-message (text-id tutorial-mech-carry) :text-duration #x5dc :neg #x1 :on-close #f @@ -3521,7 +3521,7 @@ :name "ruimech3" :channel (gui-channel message) :speech #x1cb - :text-message #x24b + :text-message (text-id tutorial-mech-throw) :text-duration #x5dc :neg #x1 :on-close #f @@ -3571,3 +3571,7 @@ ) ) ) + + + + diff --git a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc index bd4c44b342..7bfcfbee98 100644 --- a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc +++ b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc @@ -334,7 +334,7 @@ ) ) (let ((s4-1 print-game-text) - (a0-11 (lookup-text! *common-text* (the-as text-id (-> obj message text-message)) #f)) + (a0-11 (lookup-text! *common-text* (-> obj message text-message) #f)) (a2-3 #f) (a3-2 44) (v1-31 (-> obj message channel)) @@ -547,3 +547,7 @@ :virtual #t :code (the-as (function none :behavior talker) nothing) ) + + + + diff --git a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc index 708585a5f7..57877c799e 100644 --- a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc @@ -5,8 +5,8 @@ (deftype fail-mission-params (structure) ((message fail-mission-message :offset-assert 0) (flags fail-mission-flags :offset-assert 1) - (retry-continue basic :offset-assert 4) - (fail-continue basic :offset-assert 8) + (retry-continue string :offset-assert 4) + (fail-continue string :offset-assert 8) (reset-delay uint32 :offset-assert 12) (task game-task :offset-assert 16) (fail-message text-id :offset-assert 20) @@ -1403,15 +1403,15 @@ (deftype fail-mission (process) ((message fail-mission-message :offset-assert 128) (flags fail-mission-flags :offset-assert 129) - (retry-continue basic :offset-assert 132) - (fail-continue basic :offset-assert 136) + (retry-continue string :offset-assert 132) + (fail-continue string :offset-assert 136) (reset-delay uint32 :offset-assert 140) (grabbed-time time-frame :offset-assert 144) (retry symbol :offset-assert 152) (task game-task :offset-assert 156) - (message-id uint32 :offset-assert 160) - (fail-message uint32 :offset-assert 164) - (stinger uint32 :offset-assert 168) + (message-id sound-id :offset-assert 160) + (fail-message text-id :offset-assert 164) + (stinger sound-id :offset-assert 168) ) :heap-base #x30 :method-count-assert 17 @@ -1456,7 +1456,7 @@ ;; definition for method 16 of type fail-mission (defmethod print-text fail-mission ((obj fail-mission)) (when (and (not (logtest? (-> obj flags) (fail-mission-flags famflags-6))) - (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) ) (let ((gp-0 (new 'stack @@ -1712,14 +1712,14 @@ (none) ) :code (behavior () - (local-vars (a1-10 basic)) + (local-vars (a1-10 string)) (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (current-time) gp-0)) 0.0 270.0))) (when *sound-player-enable* (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) (set! (-> v1-6 command) (sound-command set-param)) - (set! (-> v1-6 id) (the-as sound-id (-> self stinger))) + (set! (-> v1-6 id) (-> self stinger)) (set! (-> v1-6 params volume) (the int (* 1024.0 f30-0))) (set! (-> v1-6 params mask) (the-as uint 1)) (-> v1-6 id) @@ -1787,7 +1787,7 @@ (set! (-> self fail-continue) (-> arg0 fail-continue)) (set! (-> self reset-delay) (-> arg0 reset-delay)) (set! (-> self task) (-> arg0 task)) - (set! (-> self fail-message) (the-as uint (-> arg0 fail-message))) + (set! (-> self fail-message) (-> arg0 fail-message)) (set-setting! 'allow-continue #f 0.0 0) (set-setting! 'minimap 'clear 0.0 (minimap-flag minimap)) (set-action! @@ -1813,7 +1813,7 @@ (when (not (logtest? (-> arg0 flags) (fail-mission-flags famflags-4))) (if (not (and *target* (focus-test? *target* dead) (zero? (-> self message)))) (set! (-> self stinger) - (the-as uint (add-process *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0)) + (add-process *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0) ) ) ) @@ -1827,7 +1827,7 @@ (= (-> self message) (fail-mission-message fammsg-1)) ) (set! (-> self message-id) - (the-as uint (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0)) + (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) ) ) (go-virtual idle) @@ -2387,3 +2387,7 @@ (none) ) ) + + + + diff --git a/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc index 509b408da8..57b617abf3 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene-h_REF.gc @@ -151,7 +151,7 @@ (pre-cut-frame basic :offset-assert 288) (preload-continue string :offset-assert 292) (dma-max uint32 :offset-assert 296) - (gui-id uint32 :offset-assert 300) + (gui-id sound-id :offset-assert 300) (aborted? symbol :offset-assert 304) (scene-start-time time-frame :offset-assert 312) (targ-speed float :offset-assert 320) diff --git a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc index 3f0463f7bf..3cec138a10 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc @@ -1043,7 +1043,7 @@ (!= (-> *setting-control* user-current movie) (process->ppointer self)) ) *progress-process* - (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) 3) + (!= (get-status *gui-control* (-> self gui-id)) 3) ) ) (suspend) @@ -1712,25 +1712,24 @@ (set! (-> self scene) #f) ) ) - (set! (-> self gui-id) (the-as uint (add-process - *gui-control* - self - (gui-channel movie) - (gui-action play) - (the-as string (cond - ((= (rtype-of arg0) string) - (empty) - arg0 - ) - (else - "movie" - ) - ) - ) - -99.0 - 0 - ) - ) + (set! (-> self gui-id) (add-process + *gui-control* + self + (gui-channel movie) + (gui-action play) + (the-as string (cond + ((= (rtype-of arg0) string) + (empty) + arg0 + ) + (else + "movie" + ) + ) + ) + -99.0 + 0 + ) ) (set! *scene-player* (the-as (pointer scene-player) (process->ppointer self))) (set! *display-entity-errors* #f) diff --git a/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc b/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc index 3041e576ec..04354842de 100644 --- a/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/boss/castle-baron_REF.gc @@ -298,7 +298,7 @@ For example for an elevator pre-compute the distance between the first and last (gameplay-pass int32 :offset-assert 724) (hud-handle handle :offset-assert 728) (channel uint8 :offset-assert 736) - (id uint32 :offset-assert 740) + (id sound-id :offset-assert 740) (play-clone-wave-speech symbol :offset-assert 744) (last-damage-time time-frame :offset-assert 752) (spawn-charge symbol :offset-assert 760) @@ -348,143 +348,92 @@ For example for an elevator pre-compute the distance between the first and last ;; definition for function clones-wave-speech ;; WARN: Return type mismatch int vs none. (defun clones-wave-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 17))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf003" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf003" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf004" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf004" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf005" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf005" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf006" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf006" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf007" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf007" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf008" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf008" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf009" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf009" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf010" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf010" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf035" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf035" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf037" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf037" -99.0 0) ) ) ((= v1-3 10) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf040" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf040" -99.0 0) ) ) ((= v1-3 11) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf012" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf012" -99.0 0) ) ) ((= v1-3 12) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf039" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf039" -99.0 0) ) ) ((= v1-3 13) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds261" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds261" -99.0 0) ) ) ((= v1-3 14) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds262" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds262" -99.0 0) ) ) ((= v1-3 15) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds265" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds265" -99.0 0) ) ) ((= v1-3 16) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds266" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds266" -99.0 0) ) ) ) @@ -497,87 +446,57 @@ For example for an elevator pre-compute the distance between the first and last ;; definition for function krew-hit-speech ;; WARN: Return type mismatch int vs none. (defun krew-hit-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 14))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf016" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf016" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf017" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf017" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf018" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf018" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf019" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf019" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf020" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf020" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf025" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf025" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf042" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf042" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds264" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds264" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds267" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds267" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds268" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds268" -99.0 0) ) ) ) @@ -590,71 +509,47 @@ For example for an elevator pre-compute the distance between the first and last ;; definition for function krew-hits-jak-speech ;; WARN: Return type mismatch int vs none. (defun krew-hits-jak-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 12))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf028" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf028" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf030" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf030" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf031" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf031" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf032" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf032" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf033" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf033" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf034" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf034" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf036" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf036" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf038" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf038" -99.0 0) ) ) ) @@ -667,95 +562,62 @@ For example for an elevator pre-compute the distance between the first and last ;; definition for function krew-comes-in-speech ;; WARN: Return type mismatch int vs none. (defun krew-comes-in-speech ((arg0 krew-boss)) - (when (= (get-status *gui-control* (the-as sound-id (-> arg0 id))) (gui-status unknown)) + (when (= (get-status *gui-control* (-> arg0 id)) (gui-status unknown)) (let ((v1-3 (rand-vu-int-count 11))) (cond ((zero? v1-3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf014" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf014" -99.0 0) ) ) ((= v1-3 1) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf015" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf015" -99.0 0) ) ) ((= v1-3 2) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf022" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf022" -99.0 0) ) ) ((= v1-3 3) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf023" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf023" -99.0 0) ) ) ((= v1-3 4) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf024" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf024" -99.0 0) ) ) ((= v1-3 5) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf026" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf026" -99.0 0) ) ) ((= v1-3 6) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf027" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf027" -99.0 0) ) ) ((= v1-3 7) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf029" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf029" -99.0 0) ) ) ((= v1-3 8) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf011" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf011" -99.0 0) ) ) ((= v1-3 9) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf013" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "kwbf013" -99.0 0) ) ) ((= v1-3 10) (set! (-> arg0 id) - (the-as - uint - (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds263" -99.0 0) - ) + (add-process *gui-control* arg0 (the-as gui-channel (-> arg0 channel)) (gui-action play) "ds263" -99.0 0) ) ) ) @@ -2241,7 +2103,7 @@ For example for an elevator pre-compute the distance between the first and last (set! (-> obj num-clones-to-spawn) 0) (set! (-> obj gameplay-pass) 0) (set! (-> obj hud-handle) (the-as handle #f)) - (set! (-> obj id) (the-as uint 0)) + (set! (-> obj id) (new 'static 'sound-id)) (set! (-> obj channel) (the-as uint 35)) (set! (-> obj play-clone-wave-speech) #f) (set! (-> obj spawn-charge) #f) @@ -3210,7 +3072,7 @@ For example for an elevator pre-compute the distance between the first and last (ja-eval) (suspend) ) - (while (nonzero? (get-status *gui-control* (the-as sound-id (-> self id)))) + (while (nonzero? (get-status *gui-control* (-> self id))) (suspend) ) (set! (-> self movie-handle) (ppointer->handle (process-spawn diff --git a/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc b/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc index ef7c380628..18d6d061c3 100644 --- a/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc @@ -310,7 +310,7 @@ ((race-state race-state :offset-assert 128) (state-time time-frame :offset-assert 136) (player-on-track-time time-frame :offset-assert 144) - (message-id uint32 :offset-assert 152) + (message-id sound-id :offset-assert 152) (finish-sound-id sound-id :offset-assert 156) ) :heap-base #x20 diff --git a/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc b/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc index 3409d673a4..0638ae109b 100644 --- a/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/races/race-manager_REF.gc @@ -1287,7 +1287,7 @@ ;; definition for method 24 of type race-manager ;; WARN: Return type mismatch int vs none. (defmethod race-manager-method-24 race-manager ((obj race-manager)) - (when (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (when (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) (let ((gp-1 (new 'stack 'font-context @@ -1325,7 +1325,7 @@ ;; definition for method 25 of type race-manager ;; WARN: Return type mismatch int vs none. (defmethod race-manager-method-25 race-manager ((obj race-manager)) - (when (= (get-status *gui-control* (the-as sound-id (-> obj message-id))) (gui-status active)) + (when (= (get-status *gui-control* (-> obj message-id)) (gui-status active)) (let ((gp-1 (new 'stack 'font-context @@ -1526,7 +1526,7 @@ (set-setting! 'sound-mode #f 0.0 2) ) (set! (-> self message-id) - (the-as uint (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0)) + (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) ) (when #t (if (zero? (-> gp-0 finish-count)) diff --git a/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc b/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc index 8b16c39a3a..767852171e 100644 --- a/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/demo/demo-obs_REF.gc @@ -13,7 +13,7 @@ (draw int32 :offset-assert 316) (active symbol :offset-assert 320) (spark-time time-frame :offset-assert 328) - (gui-id uint32 :offset-assert 336) + (gui-id sound-id :offset-assert 336) ) :heap-base #xe0 :method-count-assert 15 @@ -650,19 +650,19 @@ ) ((= v1-1 10) (set! (-> self gui-id) - (the-as uint (add-process *gui-control* self (gui-channel jak) (gui-action queue) "demoend" -99.0 0)) + (add-process *gui-control* self (gui-channel jak) (gui-action queue) "demoend" -99.0 0) ) (if (and (!= (scf-get-territory) 2) (= (-> *setting-control* user-current language) (language-enum japanese))) (demo-screen-change (the-as symbol 2) -1 #t (the-as int #f)) (demo-screen-change (the-as symbol 2) -1 #t (the-as int #t)) ) - (while (!= (get-status *gui-control* (the-as sound-id (-> self gui-id))) (gui-status ready)) + (while (!= (get-status *gui-control* (-> self gui-id)) (gui-status ready)) (suspend) ) (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id)) + (-> self gui-id) (gui-channel none) (gui-action none) (the-as string #f) diff --git a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc index 37207252b3..443b2a6faf 100644 --- a/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/ammo_dump/fort-robotank-turret_REF.gc @@ -123,10 +123,10 @@ ;; definition of type fort-roboscreen (deftype fort-roboscreen (process-drawable) - ((anim-frame float :offset-assert 200) - (transition float :offset-assert 204) - (gui-id-1 uint32 :offset-assert 208) - (gui-id-2 uint32 :offset-assert 212) + ((anim-frame float :offset-assert 200) + (transition float :offset-assert 204) + (gui-id-1 sound-id :offset-assert 208) + (gui-id-2 sound-id :offset-assert 212) ) :heap-base #x60 :method-count-assert 25 @@ -204,7 +204,7 @@ (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id-1)) + (-> self gui-id-1) (gui-channel none) (gui-action none) (the-as string #f) @@ -214,7 +214,7 @@ (set-action! *gui-control* (gui-action play) - (the-as sound-id (-> self gui-id-2)) + (-> self gui-id-2) (gui-channel none) (gui-action none) (the-as string #f) @@ -227,7 +227,7 @@ (set-action! *gui-control* (gui-action hidden) - (the-as sound-id (-> self gui-id-1)) + (-> self gui-id-1) (gui-channel none) (gui-action none) (the-as string #f) @@ -237,7 +237,7 @@ (set-action! *gui-control* (gui-action hidden) - (the-as sound-id (-> self gui-id-2)) + (-> self gui-id-2) (gui-channel none) (gui-action none) (the-as string #f) @@ -371,16 +371,10 @@ (set! (-> self anim-frame) 15.0) (set! (-> self transition) 0.0) (set! (-> self gui-id-1) - (the-as - uint - (add-process *gui-control* self (gui-channel hud-center-left) (gui-action hidden) (-> self name) 81920.0 0) - ) + (add-process *gui-control* self (gui-channel hud-center-left) (gui-action hidden) (-> self name) 81920.0 0) ) (set! (-> self gui-id-2) - (the-as - uint - (add-process *gui-control* self (gui-channel hud-middle-left) (gui-action hidden) (-> self name) 81920.0 0) - ) + (add-process *gui-control* self (gui-channel hud-middle-left) (gui-action hidden) (-> self name) 81920.0 0) ) (set-vector! (-> self draw color-emissive) 0.0 0.0 0.0 0.0) (set-vector! (-> self draw color-emissive) 0.0 0.0 0.0 0.0) diff --git a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc index a3230e8688..c3f920f6c2 100644 --- a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc @@ -15,7 +15,7 @@ (draw-name basic :offset-assert 328) (active symbol :offset-assert 332) (spark-time time-frame :offset-assert 336) - (gui-id uint32 :offset-assert 344) + (gui-id sound-id :offset-assert 344) ) :heap-base #xe0 :method-count-assert 18 From 70cb7e31710fb5853e6ca3a5ec940f7fb4b81899 Mon Sep 17 00:00:00 2001 From: Luminar Light <18116946+LuminarLight@users.noreply.github.com> Date: Fri, 19 May 2023 01:36:19 +0200 Subject: [PATCH 3/5] Hungarian Custom Text JSON Disappearance fix, and translating new speedrun text (#2665) --- .../jak1/text/game_base_text_hu-HU.json | 2 - .../jak1/text/game_custom_text_hu-HU.json | 60 +++++++++---------- 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/game/assets/jak1/text/game_base_text_hu-HU.json b/game/assets/jak1/text/game_base_text_hu-HU.json index 59e295b800..ebfdeca441 100644 --- a/game/assets/jak1/text/game_base_text_hu-HU.json +++ b/game/assets/jak1/text/game_base_text_hu-HU.json @@ -42,7 +42,6 @@ "0135": "HA NEM FORMÁZOD MEG, AKKOR NEM FOGOD TUDNI ELMENTENI A JÁTÉKOT", "0136": "ADATOK MENTÉSE", "0137": "ADATOK BETÖLTÉSE", - "0138": "NE TÁVOLÍTSD EL A MEMORY_CARD_SLOT_~D-BEN LÉVŐ MEMORY_CARD_(PS2)-T, ÉS NE KAPCSOLD KI A RENDSZERT", "0139": "BIZTOSAN FELÜL AKAROD ÍRNI?", "013a": "MEGFORMÁZOD?", "013c": "IGEN", @@ -75,7 +74,6 @@ "015e": "OKÉ", "015f": "KILÉPÉS A DEMÓBÓL", "0160": "AMIKOR A KÖVETKEZŐ IKON MEGJELENIK, AKKOR A HALADÁSOD MENTÉS ALATT VAN", - "0161": "AMÉG EZ AZ IKON A KÉPEN VAN, NE TÁVOLÍTSD EL A MEMORY_CARD_(PS2)-T, ÉS NE KAPCSOLD KI A RENDSZERT", "0162": "FELADAT TELJESÍTVE", "0163": "ELLENŐRIZD A MEMORY_CARD_SLOT_~D-BEN LÉVŐ MEMORY_CARD_(PS2)-T ÉS PRÓBÁLD ÚJRA", "0164": "A KÉPERNYŐ MOST 60HZ-RE FOG VÁLTANI", diff --git a/game/assets/jak1/text/game_custom_text_hu-HU.json b/game/assets/jak1/text/game_custom_text_hu-HU.json index 036ff4c4a1..7bf4bae5ab 100644 --- a/game/assets/jak1/text/game_custom_text_hu-HU.json +++ b/game/assets/jak1/text/game_custom_text_hu-HU.json @@ -57,7 +57,7 @@ "1082": "ZENESZÁMSZÁM KIVÁLASZTÁSA", "1083": "VÁLTOZAT KIVÁLASZTÁSA", "1084": "VÉGSŐ HARC", - "1085": "KÉSZÍTŐK", + "1085": "STÁBLISTA", "1086": "?????", "1087": "KLAWW", "1088": "HALÁSZ MINIJÁTÉK", @@ -70,7 +70,7 @@ "1095": "SÉRTHETETLENSÉG", "1096": "ÖSSZES ZENEI VÁLTOZAT EGYSZERRE", "1097": "VALÓS NAPSZAK", - "1098": "ÉRJ EL 100%-OS TELJESÍTÉST", + "1098": "100%-RA TELJESÍTSD A JÁTÉKOT", "1099": "VIDD VÉGIG A JÁTÉKOT", "1100": "SÁRGA BÖLCS", "1101": "PIROS BÖLCS", @@ -92,8 +92,8 @@ "1119": "CATALÀ", "111a": "ÍSLANDSKA", "1500": "SPEEDRUNNER-MÓD", - "138": "NE HELYEZZ BE VAGY TÁVOLÍTS EL SEMMILYEN PERIFÉRIÁT, NE ÁLLÍTSD LE A RENDSZER, ÉS NE ZÁRD BE A JÁTÉKOT", - "161": "AMÉG EZ AZ IKON A KÉPEN VAN, NE HELYEZZ BE VAGY TÁVOLÍTS EL SEMMILYEN PERIFÉRIÁT, NE ÁLLÍTSD LE A RENDSZER, ÉS NE ZÁRD BE A JÁTÉKOT", + "138": "NE HELYEZZ BE VAGY TÁVOLÍTS EL SEMMILYEN PERIFÉRIÁT, NE ÁLLÍTSD LE A RENDSZERT, ÉS NE ZÁRD BE A JÁTÉKOT", + "161": "AMÉG EZ AZ IKON A KÉPEN VAN, NE HELYEZZ BE VAGY TÁVOLÍTS EL SEMMILYEN PERIFÉRIÁT, NE ÁLLÍTSD LE A RENDSZERT, ÉS NE ZÁRD BE A JÁTÉKOT", "100c": "AUTOMATIKUS MENTÉS KIKAPCSOLVA", "100d": "BIZTOSAN KI AKAROD KAPCSOLNI AZ AUTOMATIKUS MENTÉST?", "100e": "AUTOMATIKUS MENTÉS KIKAPCSOLÁSA", @@ -119,7 +119,7 @@ "10a0": "HATALMASFEJŰ JAK", "10c0": "ZENELEJÁTSZÓ", "10c1": "JELENETLEJÁTSZÓ", - "10c2": "KÉSZÍTŐK MUTATÁSA", + "10c2": "STÁBLISTA LEJÁTSZÁSA", "10c3": "KÉPESKÖNYV", "10d0": "ALAPÉRTELMEZETT", "10d1": "HASZNÁLATLAN", @@ -169,33 +169,33 @@ "10fd": "HÓGOLYÓK", "10fe": "A CSŐ KÖZEPE", "10ff": "A CSŐ VÉGE", - "1501": "ELNYOMHATÓ JELENETEK", - "1502": "CHECKPOINT SELECT", - "1503": "SPEEDRUN OPTIONS", - "1504": "CAUTION: THESE OPTIONS WILL AUTO SAVE IN YOUR FIRST SAVE SLOT!", - "1505": "RESET CURRENT SPEEDRUN", - "1506": "NEW FULL GAME RUN", - "150e": "NEW INDIVIDUAL LEVEL RUN", - "150f": "GEYSER ROCK IL", - "1510": "SANDOVER VILLAGE IL", - "1511": "SENTINEL BEACH IL", - "1512": "FORBIDDEN JUNGLE IL", - "1513": "MISTY ISLAND IL", - "1514": "FIRE CANYON IL", - "1515": "ROCK VILLAGE IL", - "1516": "LOST PRECURSOR CITY IL", - "1517": "BOGGY SWAMP IL", - "1518": "PRECURSOR BASIN IL", - "1519": "MOUNTAIN PASS IL", - "151a": "VOLCANIC CRATER IL", - "151b": "SNOWY MOUNTAIN IL", - "151c": "SPIDER CAVE IL", - "151d": "LAVA TUBE IL", - "151e": "GOL AND MAIA'S CITADEL IL", - "151f": "NEW CATEGORY EXTENSION RUN", + "1501": "ÁTUGORHATÓ JELENETEK", + "1502": "ELLENŐRZŐPONT-VÁLASZTÁS", + "1503": "SPEEDRUN BEÁLLÍTÁSOK", + "1504": "VIGYÁZAT: EZEK A BEÁLLÍTÁSOK AUTOMATIKUSAN ELMENTŐDNEK AZ ELSŐ MENTÉSI HELYRE!", + "1505": "JELENLEGI SPEEDRUN VISSZAÁLLÍTÁSA", + "1506": "ÚJ TELJES JÁTÉK SPEEDRUN", + "150e": "ÚJ KÜLÖNÁLLÓ PÁLYA SPEEDRUN", + "150f": "GEJZÍR SZIKLA IL", + "1510": "HOMOKVÉGFALU IL", + "1511": "ŐRSZEM-PART IL", + "1512": "TILTOTT DZSUNGEL IL", + "1513": "KÖDÖS SZIGET IL", + "1514": "TŰZSZURDOK IL", + "1515": "SZIKLAFALU IL", + "1516": "ELVESZETT PREKURZORVÁROS IL", + "1517": "LÁPOS MOCSÁR IL", + "1518": "PREKURZOR-VÖLGY IL", + "1519": "HEGYSZOROS IL", + "151a": "VULKÁNI KRÁTER IL", + "151b": "HAVAS-HEGY IL", + "151c": "PÓKBARLANG IL", + "151d": "LÁVACSŐ IL", + "151e": "GOL ÉS MAIA FELLEGVÁRA IL", + "151f": "ÚJ KATEGÓRIAKITERJESZTÉS SPEEDRUN", "1520": "NG+", "1521": "HUB 1 100%", "1522": "HUB 2 100%", "1523": "HUB 3 100%", - "1524": "ALL CUTSCENES" + "1524": "ÖSSZES JELENET" } From 288c093913c8188d24a138b66917342ae8fa7356 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Thu, 18 May 2023 19:54:59 -0500 Subject: [PATCH 4/5] i18n: Create a JSON subtitle format for translating via Crowdin (#2644) --- .../subtitles/subtitles_deser.cpp | 224 +- .../serialization/subtitles/subtitles_deser.h | 2 +- .../serialization/subtitles/subtitles_ser.cpp | 473 +- .../serialization/subtitles/subtitles_ser.h | 71 +- common/util/json_util.h | 7 + crowdin.yml | 9 + game/assets/jak1/game_subtitle.gp | 128 +- .../jak1/subtitle/_speaker_lookup.jsonc | 205 + .../assets/jak1/subtitle/cleanup-subtitles.py | 200 + game/assets/jak1/subtitle/game_subtitle_de.gd | 2536 --- .../jak1/subtitle/game_subtitle_en-uk.gd | 370 - game/assets/jak1/subtitle/game_subtitle_en.gd | 2648 --- game/assets/jak1/subtitle/game_subtitle_es.gd | 2438 --- game/assets/jak1/subtitle/game_subtitle_fr.gd | 2688 --- game/assets/jak1/subtitle/game_subtitle_it.gd | 2605 --- .../jak1/subtitle/game_subtitle_ptbr.gd | 2437 --- .../assets/jak1/subtitle/subtitle-groups.json | 6 +- .../jak1/subtitle/subtitle_lines_ca-ES.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_da-DK.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_de-DE.json | 2792 ++++ .../jak1/subtitle/subtitle_lines_en-GB.json | 217 + .../jak1/subtitle/subtitle_lines_en-US.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_es-ES.json | 2626 +++ .../jak1/subtitle/subtitle_lines_fi-FI.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_fr-FR.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_hu-HU.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_is-IS.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_it-IT.json | 2794 ++++ .../jak1/subtitle/subtitle_lines_jp-JP.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_nl-NL.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_no-NO.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_pt-BR.json | 2781 ++++ .../jak1/subtitle/subtitle_lines_pt-PT.json | 2868 ++++ .../jak1/subtitle/subtitle_lines_sv-SE.json | 2868 ++++ .../jak1/subtitle/subtitle_meta_ca-ES.json | 4 + .../jak1/subtitle/subtitle_meta_da-DK.json | 4 + .../jak1/subtitle/subtitle_meta_de-DE.json | 7921 +++++++++ .../jak1/subtitle/subtitle_meta_en-GB.json | 4 + .../jak1/subtitle/subtitle_meta_en-US.json | 13615 ++++++++++++++++ .../jak1/subtitle/subtitle_meta_es-ES.json | 7104 ++++++++ .../jak1/subtitle/subtitle_meta_fi-FI.json | 4 + .../jak1/subtitle/subtitle_meta_fr-FR.json | 8148 +++++++++ .../jak1/subtitle/subtitle_meta_hu-HU.json | 4 + .../jak1/subtitle/subtitle_meta_is-IS.json | 4 + .../jak1/subtitle/subtitle_meta_it-IT.json | 8850 ++++++++++ .../jak1/subtitle/subtitle_meta_jp-JP.json | 4 + .../jak1/subtitle/subtitle_meta_nl-NL.json | 4 + .../jak1/subtitle/subtitle_meta_no-NO.json | 4 + .../jak1/subtitle/subtitle_meta_pt-BR.json | 4 + .../jak1/subtitle/subtitle_meta_pt-PT.json | 4 + .../jak1/subtitle/subtitle_meta_sv-SE.json | 4 + game/tools/subtitles/subtitle_editor.cpp | 31 +- goal_src/jak1/pc/progress-pc.gc | 2 +- .../compiler/compilation/CompilerControl.cpp | 30 +- goalc/data_compiler/game_text_common.cpp | 19 +- goalc/data_compiler/game_text_common.h | 2 +- goalc/make/Tools.cpp | 30 +- 57 files changed, 92567 insertions(+), 15906 deletions(-) create mode 100644 game/assets/jak1/subtitle/_speaker_lookup.jsonc create mode 100644 game/assets/jak1/subtitle/cleanup-subtitles.py delete mode 100644 game/assets/jak1/subtitle/game_subtitle_de.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_en-uk.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_en.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_es.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_fr.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_it.gd delete mode 100644 game/assets/jak1/subtitle/game_subtitle_ptbr.gd create mode 100644 game/assets/jak1/subtitle/subtitle_lines_ca-ES.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_da-DK.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_de-DE.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_en-GB.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_en-US.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_es-ES.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_fi-FI.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_fr-FR.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_hu-HU.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_is-IS.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_it-IT.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_jp-JP.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_nl-NL.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_no-NO.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_pt-BR.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_pt-PT.json create mode 100644 game/assets/jak1/subtitle/subtitle_lines_sv-SE.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_ca-ES.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_da-DK.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_de-DE.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_en-GB.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_en-US.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_es-ES.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_fi-FI.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_fr-FR.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_hu-HU.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_is-IS.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_it-IT.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_jp-JP.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_nl-NL.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_no-NO.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_pt-BR.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_pt-PT.json create mode 100644 game/assets/jak1/subtitle/subtitle_meta_sv-SE.json diff --git a/common/serialization/subtitles/subtitles_deser.cpp b/common/serialization/subtitles/subtitles_deser.cpp index c0b7d52e48..e9393537f4 100644 --- a/common/serialization/subtitles/subtitles_deser.cpp +++ b/common/serialization/subtitles/subtitles_deser.cpp @@ -10,124 +10,128 @@ #include "third-party/fmt/ranges.h" #include "third-party/json.hpp" -bool write_subtitle_db_to_files(const GameSubtitleDB& db) { - // Write the subtitles out - std::vector completed_banks = {}; - for (const auto& [id, bank] : db.m_banks) { - // If we've done the bank before, skip it - auto it = find(completed_banks.begin(), completed_banks.end(), bank->m_lang_id); - if (it != completed_banks.end()) { - continue; - } - // Check to see if this bank is shared by any other, if so do it at the same time - // and skip it - // This is basically just to deal with US/UK english in a not so hacky way - std::vector banks = {}; - for (const auto& [_id, _bank] : db.m_banks) { - if (_bank->file_path == bank->file_path) { - banks.push_back(_bank->m_lang_id); - completed_banks.push_back(_bank->m_lang_id); +SubtitleMetadataFile dump_bank_as_meta_json(std::shared_ptr bank) { + auto meta_file = SubtitleMetadataFile(); + auto font = get_font_bank(bank->m_text_version); + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Movie) { + std::vector lines; + for (const auto& line : scene_info.m_lines) { + auto line_meta = SubtitleCutsceneLineMetadata(); + line_meta.frame = line.frame; + if (line.line.empty()) { + line_meta.clear = true; + } else { + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + line_meta.offscreen = line.offscreen; + line_meta.speaker = line_speaker; + } + lines.push_back(line_meta); } - } - - std::string file_contents = ""; - file_contents += fmt::format("(language-id {})\n", fmt::join(banks, " ")); - auto file_ver = parse_text_only_version(bank->file_path); - auto font = get_font_bank(file_ver); - file_contents += fmt::format("(text-version {})\n", get_text_version_name(file_ver)); - - for (const auto& group_name : db.m_subtitle_groups->m_group_order) { - bool last_was_single = false; - file_contents += - fmt::format("\n;; -----------------\n;; {}\n;; -----------------\n", group_name); - std::vector all_scenes; - for (const auto& [scene_name, scene] : bank->scenes()) { - all_scenes.push_back(scene); + meta_file.cutscenes[scene_name] = lines; + } else if (scene_info.m_kind == SubtitleSceneKind::Hint || + scene_info.m_kind == SubtitleSceneKind::HintNamed) { + SubtitleHintMetadata hint; + hint.id = fmt::format("{:x}", scene_info.m_id); + std::vector lines; + for (const auto& line : scene_info.m_lines) { + auto line_meta = SubtitleHintLineMetadata(); + line_meta.frame = line.frame; + if (line.line.empty()) { + line_meta.clear = true; + } else { + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + line_meta.speaker = line_speaker; + } + lines.push_back(line_meta); } - std::sort(all_scenes.begin(), all_scenes.end(), - [](const GameSubtitleSceneInfo& a, const GameSubtitleSceneInfo& b) { - if (a.kind() != b.kind()) { - return a.kind() < b.kind(); - } - if (a.kind() == SubtitleSceneKind::Movie) { - return a.name() < b.name(); - } else if (a.kind() == SubtitleSceneKind::HintNamed) { - if (a.id() == b.id()) { - return a.name() < b.name(); - } else { - return a.id() < b.id(); - } - } else if (a.kind() == SubtitleSceneKind::Hint) { - return a.id() < b.id(); - } - return false; - }); - for (const auto& scene : all_scenes) { - if (scene.m_sorting_group != group_name) { + hint.lines = lines; + meta_file.hints[scene_name] = hint; + } + } + return meta_file; +} + +SubtitleFile dump_bank_as_json(std::shared_ptr bank) { + SubtitleFile file; + auto font = get_font_bank(bank->m_text_version); + // Figure out speakers + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + for (const auto& line : scene_info.m_lines) { + if (line.line.empty()) { + continue; + } + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + file.speakers[line_speaker] = line_speaker; + } + } + // Hints + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Hint || + scene_info.m_kind == SubtitleSceneKind::HintNamed) { + file.hints[scene_name] = {}; + for (const auto& scene_line : scene_info.m_lines) { + if (scene_line.line.empty()) { continue; } - - if (last_was_single && scene.lines().size() == 1) { - file_contents += fmt::format("(\"{}\"", scene.name()); - } else { - file_contents += fmt::format("\n(\"{}\"", scene.name()); - } - if (scene.kind() == SubtitleSceneKind::Hint) { - file_contents += " :hint #x0"; - } else if (scene.kind() == SubtitleSceneKind::HintNamed) { - file_contents += fmt::format(" :hint #x{0:x}", scene.id()); - } - // more compact formatting for single-line entries - if (scene.lines().size() == 1) { - const auto& line = scene.lines().at(0); - if (line.line.empty()) { - file_contents += fmt::format(" ({})", line.frame); - } else { - file_contents += fmt::format(" ({}", line.frame); - if (line.offscreen && scene.kind() == SubtitleSceneKind::Movie) { - file_contents += " :offscreen"; - } - file_contents += - fmt::format(" \"{}\"", font->convert_game_to_utf8(line.speaker.c_str())); - file_contents += fmt::format(" \"{}\")", font->convert_game_to_utf8(line.line.c_str())); - } - file_contents += ")\n"; - last_was_single = true; - } else { - file_contents += "\n"; - for (auto& line : scene.lines()) { - // Clear screen entries - if (line.line.empty()) { - file_contents += fmt::format(" ({})\n", line.frame); - } else { - file_contents += fmt::format(" ({}", line.frame); - if (line.offscreen && scene.kind() == SubtitleSceneKind::Movie) { - file_contents += " :offscreen"; - } - file_contents += - fmt::format(" \"{}\"", font->convert_game_to_utf8(line.speaker.c_str())); - file_contents += - fmt::format(" \"{}\")\n", font->convert_game_to_utf8(line.line.c_str())); - } - } - file_contents += " )\n"; - last_was_single = false; - } + auto line_utf8 = font->convert_game_to_utf8(scene_line.line.c_str()); + file.hints[scene_name].push_back(line_utf8); } } - - // Commit it to the file - std::string full_path = (file_util::get_jak_project_dir() / fs::path(bank->file_path)).string(); - file_util::write_text_file(full_path, file_contents); } - // Write the subtitle group info out - nlohmann::json json(db.m_subtitle_groups->m_groups); - json[db.m_subtitle_groups->group_order_key] = nlohmann::json(db.m_subtitle_groups->m_group_order); - std::string file_path = (file_util::get_jak_project_dir() / "game" / "assets" / "jak1" / - "subtitle" / "subtitle-groups.json") - .string(); - file_util::write_text_file(file_path, json.dump(2)); + // Cutscenes + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Movie) { + file.cutscenes[scene_name] = {}; + for (const auto& scene_line : scene_info.m_lines) { + if (scene_line.line.empty()) { + continue; + } + auto line_utf8 = font->convert_game_to_utf8(scene_line.line.c_str()); + file.cutscenes[scene_name].push_back(line_utf8); + } + } + } + return file; +} + +const std::vector locale_lookup = { + "en-US", "fr-FR", "de-DE", "es-ES", "it-IT", "jp-JP", "en-GB", "pt-PT", "fi-FI", + "sv-SE", "da-DK", "no-NO", "nl-NL", "pt-BR", "hu-HU", "ca-ES", "is-IS"}; + +bool write_subtitle_db_to_files(const GameSubtitleDB& db, const GameVersion game_version) { + try { + for (const auto& [language_id, bank] : db.m_banks) { + auto meta_file = dump_bank_as_meta_json(bank); + std::string dump_path = (file_util::get_jak_project_dir() / "game" / "assets" / + version_to_game_name(game_version) / "subtitle" / + fmt::format("subtitle_meta_{}.json", locale_lookup.at(language_id))) + .string(); + json data = meta_file; + file_util::write_text_file(dump_path, data.dump(2)); + // Now dump the actual subtitles + auto subtitle_file = dump_bank_as_json(bank); + dump_path = (file_util::get_jak_project_dir() / "game" / "assets" / + version_to_game_name(game_version) / "subtitle" / + fmt::format("subtitle_lines_{}.json", locale_lookup.at(language_id))) + .string(); + data = subtitle_file; + file_util::write_text_file(dump_path, data.dump(2)); + } + // Write the subtitle group info out + nlohmann::json json(db.m_subtitle_groups->m_groups); + json[db.m_subtitle_groups->group_order_key] = + nlohmann::json(db.m_subtitle_groups->m_group_order); + std::string file_path = + (file_util::get_jak_project_dir() / "game" / "assets" / version_to_game_name(game_version) / + "subtitle" / "subtitle-groups.json") + .string(); + file_util::write_text_file(file_path, json.dump(2)); + } catch (std::exception& ex) { + lg::error(ex.what()); + return false; + } return true; } diff --git a/common/serialization/subtitles/subtitles_deser.h b/common/serialization/subtitles/subtitles_deser.h index 29a962c478..d867843acb 100644 --- a/common/serialization/subtitles/subtitles_deser.h +++ b/common/serialization/subtitles/subtitles_deser.h @@ -2,4 +2,4 @@ #include "common/serialization/subtitles/subtitles_ser.h" -bool write_subtitle_db_to_files(const GameSubtitleDB& db); +bool write_subtitle_db_to_files(const GameSubtitleDB& db, const GameVersion game_version); diff --git a/common/serialization/subtitles/subtitles_ser.cpp b/common/serialization/subtitles/subtitles_ser.cpp index fa6a836736..a8ec7fc7e0 100644 --- a/common/serialization/subtitles/subtitles_ser.cpp +++ b/common/serialization/subtitles/subtitles_ser.cpp @@ -289,10 +289,8 @@ void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::str if (!db.bank_exists(lang)) { // database has no lang yet banks[lang] = db.add_bank(std::make_shared(lang)); - banks[lang]->file_path = file_path; } else { banks[lang] = db.bank_by_id(lang); - banks[lang]->file_path = file_path; } }); } else if (head.is_symbol("text-version")) { @@ -304,7 +302,6 @@ void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::str if (!ver_name.is_symbol()) { throw std::runtime_error("invalid text version entry"); } - font = get_font_bank(ver_name.as_symbol()->name); } @@ -339,8 +336,6 @@ void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::str id = head.as_int(); } scene.set_id(id); - scene.m_sorting_group = db.m_subtitle_groups->find_group(scene.name()); - scene.m_sorting_group_idx = db.m_subtitle_groups->find_group_index(scene.m_sorting_group); for_each_in_list(entries, [&](const goos::Object& entry) { if (entry.is_pair()) { @@ -412,6 +407,172 @@ void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::str } } +void parse_subtitle_json(GameSubtitleDB& db, const GameSubtitleDefinitionFile& file_info) { + // TODO - some validation + // Init Settings + std::shared_ptr bank; + if (!db.bank_exists(file_info.language_id)) { + // database has no lang yet + bank = db.add_bank(std::make_shared(file_info.language_id)); + } else { + bank = db.bank_by_id(file_info.language_id); + } + bank->m_text_version = file_info.text_version; + bank->m_file_path = file_info.lines_path; + const GameTextFontBank* font = get_font_bank(file_info.text_version); + // Parse the file + SubtitleMetadataFile meta_file; + SubtitleFile lines_file; + try { + // If we have a base file defined, load that and merge it + if (file_info.meta_base_path) { + auto base_data = + parse_commented_json(file_util::read_text_file(file_util::get_jak_project_dir() / + file_info.meta_base_path.value()), + "subtitle_meta_base_path"); + auto data = parse_commented_json( + file_util::read_text_file(file_util::get_jak_project_dir() / file_info.meta_path), + "subtitle_meta_path"); + base_data.at("cutscenes").update(data.at("cutscenes")); + base_data.at("hints").update(data.at("hints")); + meta_file = base_data; + + } else { + meta_file = parse_commented_json( + file_util::read_text_file(file_util::get_jak_project_dir() / file_info.meta_path), + "subtitle_meta_path"); + } + if (file_info.lines_base_path) { + auto base_data = + parse_commented_json(file_util::read_text_file(file_util::get_jak_project_dir() / + file_info.lines_base_path.value()), + "subtitle_line_base_path"); + + auto data = parse_commented_json( + file_util::read_text_file(file_util::get_jak_project_dir() / file_info.lines_path), + "subtitle_line_path"); + base_data.at("cutscenes").update(data.at("cutscenes")); + base_data.at("hints").update(data.at("hints")); + base_data.at("speakers").update(data.at("speakers")); + auto test = base_data.dump(); + lines_file = base_data; + } else { + lines_file = parse_commented_json( + file_util::read_text_file(file_util::get_jak_project_dir() / file_info.lines_path), + "subtitle_line_path"); + } + } catch (std::exception& e) { + lg::error("Unable to parse subtitle json entry, couldn't successfully load files - {}", + e.what()); + throw; + } + // Iterate through the metadata file as blank lines are no omitted from the lines file now + // Cutscenes First + for (const auto& [cutscene_name, cutscene_lines] : meta_file.cutscenes) { + GameSubtitleSceneInfo scene(SubtitleSceneKind::Movie); + scene.set_name(cutscene_name); + scene.m_sorting_group = db.m_subtitle_groups->find_group(cutscene_name); + scene.m_sorting_group_idx = db.m_subtitle_groups->find_group_index(scene.m_sorting_group); + // Iterate the lines, grab the actual text from the lines file if it's not a clear screen entry + int line_idx = 0; + int lines_added = 0; + for (const auto& line : cutscene_lines) { + if (line.clear) { + scene.add_clear_entry(line.frame); + lines_added++; + } else { + if (lines_file.speakers.find(line.speaker) == lines_file.speakers.end() || + lines_file.cutscenes.find(cutscene_name) == lines_file.cutscenes.end() || + lines_file.cutscenes.at(cutscene_name).size() < line_idx) { + lg::warn( + "{} Couldn't find {} in line file, or line list is too small, or speaker could not " + "be resolved {}!", + file_info.language_id, cutscene_name, line.speaker); + } else { + // NOTE - the convert_utf8_to_game function is really really slow (about 80-90% of the + // time loading the subtitle files) + // TODO - improve that as a follow up sometime in the future + scene.add_line( + line.frame, + font->convert_utf8_to_game(lines_file.cutscenes.at(cutscene_name).at(line_idx)), + font->convert_utf8_to_game(lines_file.speakers.at(line.speaker)), line.offscreen); + lines_added++; + } + line_idx++; + } + } + // Verify we added the amount of lines we expected to + if (lines_added != cutscene_lines.size()) { + throw std::runtime_error( + fmt::format("Cutscene: '{}' has a mismatch in metadata lines vs text lines. Expected {} " + "only added {} lines", + cutscene_name, cutscene_lines.size(), lines_added)); + } + + // TODO - add scene, can't we just use an emplace here? + if (!bank->scene_exists(scene.name())) { + bank->add_scene(scene); + } else { + auto& old_scene = bank->scene_by_name(scene.name()); + old_scene.from_other_scene(scene); + } + } + // Now hints + for (const auto& [hint_name, hint_info] : meta_file.hints) { + GameSubtitleSceneInfo scene(SubtitleSceneKind::Hint); + scene.set_name(hint_name); + /*scene.m_sorting_group = db.m_subtitle_groups->find_group(hint_name); + scene.m_sorting_group_idx = db.m_subtitle_groups->find_group_index(scene.m_sorting_group);*/ + if (hint_info.id == "0") { + scene.m_kind = SubtitleSceneKind::HintNamed; + } else { + scene.set_id(std::stoi(hint_info.id, nullptr, 16)); + } + // Iterate the lines, grab the actual text from the lines file if it's not a clear screen entry + int line_idx = 0; + int lines_added = 0; + for (const auto& line : hint_info.lines) { + if (line.clear) { + scene.add_clear_entry(line.frame); + lines_added++; + } else { + if (lines_file.speakers.find(line.speaker) == lines_file.speakers.end() || + lines_file.hints.find(hint_name) == lines_file.hints.end() || + lines_file.hints.at(hint_name).size() < line_idx) { + lg::warn( + "{} Couldn't find {} in line file, or line list is too small, or speaker could not " + "be resolved {}!", + file_info.language_id, hint_name, line.speaker); + } else { + // NOTE - the convert_utf8_to_game function is really really slow (about 80-90% of the + // time loading the subtitle files) + // TODO - improve that as a follow up sometime in the future + scene.add_line(line.frame, + font->convert_utf8_to_game(lines_file.hints.at(hint_name).at(line_idx)), + font->convert_utf8_to_game(lines_file.speakers.at(line.speaker)), true); + lines_added++; + } + line_idx++; + } + } + // Verify we added the amount of lines we expected to + if (lines_added != hint_info.lines.size()) { + throw std::runtime_error( + fmt::format("Hint: '{}' has a mismatch in metadata lines vs text lines. Expected {} " + "only added {} lines", + hint_name, hint_info.lines.size(), lines_added)); + } + + // TODO - add scene, can't we just use an emplace here? + if (!bank->scene_exists(scene.name())) { + bank->add_scene(scene); + } else { + auto& old_scene = bank->scene_by_name(scene.name()); + old_scene.from_other_scene(scene); + } + } +} + GameTextVersion parse_text_only_version(const std::string& filename) { goos::Reader reader; return parse_text_only_version(reader.read_from_file({filename})); @@ -555,6 +716,244 @@ void open_text_project(const std::string& kind, }); } +void open_subtitle_project(const std::string& kind, + const std::string& filename, + std::vector& subtitle_files) { + goos::Reader reader; + auto& proj = reader.read_from_file({filename}).as_pair()->cdr.as_pair()->car; + if (!proj.is_pair() || !proj.as_pair()->car.is_symbol() || + proj.as_pair()->car.as_symbol()->name != kind) { + throw std::runtime_error(fmt::format("invalid {} project", kind)); + } + + goos::for_each_in_list(proj.as_pair()->cdr, [&](const goos::Object& o) { + if (o.is_pair() && o.as_pair()->cdr.is_pair()) { + auto args = o.as_pair(); + auto& action = args->car.as_symbol()->name; + args = args->cdr.as_pair(); + + if (action == "file") { + auto& file_path = args->car.as_string()->data; + auto new_file = GameSubtitleDefinitionFile(); + new_file.format = GameSubtitleDefinitionFile::Format::GOAL; + new_file.lines_path = file_path; + subtitle_files.push_back(new_file); + } else if (action == "file-json") { + auto new_file = GameSubtitleDefinitionFile(); + new_file.format = GameSubtitleDefinitionFile::Format::JSON; + while (true) { + const auto& kwarg = args->car.as_symbol()->name; + args = args->cdr.as_pair(); + if (kwarg == ":language-id") { + new_file.language_id = args->car.as_int(); + } else if (kwarg == ":text-version") { + new_file.text_version = args->car.as_string()->data; + } else if (kwarg == ":lines") { + new_file.lines_path = args->car.as_string()->data; + } else if (kwarg == ":meta") { + new_file.meta_path = args->car.as_string()->data; + } else if (kwarg == ":lines-base") { + new_file.lines_base_path = args->car.as_string()->data; + } else if (kwarg == ":meta-base") { + new_file.meta_base_path = args->car.as_string()->data; + } + if (args->cdr.is_empty_list()) { + break; + } + args = args->cdr.as_pair(); + } + subtitle_files.push_back(new_file); + } else { + throw std::runtime_error(fmt::format("unknown action {} in {} project", action, kind)); + } + } else { + throw std::runtime_error(fmt::format("invalid entry in {} project", kind)); + } + }); +} + +void to_json(json& j, const SubtitleCutsceneLineMetadata& obj) { + j = json{{"frame", obj.frame}, + {"offscreen", obj.offscreen}, + {"speaker", obj.speaker}, + {"clear", obj.clear}}; +} +void from_json(const json& j, SubtitleCutsceneLineMetadata& obj) { + json_deserialize_if_exists(frame); + json_deserialize_if_exists(offscreen); + json_deserialize_if_exists(speaker); + json_deserialize_if_exists(clear); +} +void to_json(json& j, const SubtitleHintLineMetadata& obj) { + j = json{{"frame", obj.frame}, {"speaker", obj.speaker}, {"clear", obj.clear}}; +} +void from_json(const json& j, SubtitleHintLineMetadata& obj) { + json_deserialize_if_exists(frame); + json_deserialize_if_exists(speaker); + json_deserialize_if_exists(clear); +} +void to_json(json& j, const SubtitleHintMetadata& obj) { + j = json{{"id", obj.id}, {"lines", obj.lines}}; +} +void from_json(const json& j, SubtitleHintMetadata& obj) { + json_deserialize_if_exists(id); + json_deserialize_if_exists(lines); +} +void to_json(json& j, const SubtitleMetadataFile& obj) { + j = json{{"cutscenes", obj.cutscenes}, {"hints", obj.hints}}; +} + +void from_json(const json& j, SubtitleMetadataFile& obj) { + json_deserialize_if_exists(cutscenes); + json_deserialize_if_exists(hints); +} +void to_json(json& j, const SubtitleFile& obj) { + j = json{{"speakers", obj.speakers}, {"cutscenes", obj.cutscenes}, {"hints", obj.hints}}; +} +void from_json(const json& j, SubtitleFile& obj) { + json_deserialize_if_exists(speakers); + json_deserialize_if_exists(cutscenes); + json_deserialize_if_exists(hints); +} + +// TODO - temporary code for migration +SubtitleMetadataFile dump_bank_as_meta_json( + std::shared_ptr bank, + std::unordered_map speaker_lookup) { + auto meta_file = SubtitleMetadataFile(); + auto font = get_font_bank("jak1-v2"); + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Movie) { + std::vector lines; + for (const auto& line : scene_info.m_lines) { + auto line_meta = SubtitleCutsceneLineMetadata(); + line_meta.frame = line.frame; + if (line.line.empty()) { + line_meta.clear = true; + } else { + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + for (const auto& [speaker, speaker_localized] : speaker_lookup) { + if (line_speaker == speaker_localized) { + line_speaker = speaker; + } + } + line_meta.offscreen = line.offscreen; + line_meta.speaker = line_speaker; + } + lines.push_back(line_meta); + } + meta_file.cutscenes[scene_name] = lines; + } else if (scene_info.m_kind == SubtitleSceneKind::Hint || + scene_info.m_kind == SubtitleSceneKind::HintNamed) { + SubtitleHintMetadata hint; + hint.id = fmt::format("{:x}", scene_info.m_id); + std::vector lines; + for (const auto& line : scene_info.m_lines) { + auto line_meta = SubtitleHintLineMetadata(); + line_meta.frame = line.frame; + if (line.line.empty()) { + line_meta.clear = true; + } else { + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + for (const auto& [speaker, speaker_localized] : speaker_lookup) { + if (line_speaker == speaker_localized) { + line_speaker = speaker; + } + } + line_meta.speaker = line_speaker; + } + lines.push_back(line_meta); + } + hint.lines = lines; + meta_file.hints[scene_name] = hint; + } + } + return meta_file; +} + +// TODO - temporary code for migration +SubtitleFile dump_bank_as_json(std::shared_ptr bank, + std::shared_ptr base_bank, + std::unordered_map speaker_lookup) { + SubtitleFile file; + file.speakers = speaker_lookup; + auto font = get_font_bank("jak1-v2"); + // Figure out speakers + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + for (const auto& line : scene_info.m_lines) { + if (line.line.empty()) { + continue; + } + auto line_speaker = font->convert_game_to_utf8(line.speaker.c_str()); + bool new_speaker = true; + for (const auto& [speaker, speaker_localized] : file.speakers) { + if (line_speaker == speaker_localized) { + new_speaker = false; + break; + } + } + if (new_speaker) { + // if the speaker is in the english speaker map, append it + if (speaker_lookup.find(line_speaker) != speaker_lookup.end()) { + file.speakers[line_speaker] = line_speaker; + } else { + // otherwise, go figure it out manually, most names are the same so this isn't worth + // writing code for + file.speakers[fmt::format("unknown-{}", scene_info.m_name)] = line_speaker; + } + } + } + } + // Hints + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Hint || + scene_info.m_kind == SubtitleSceneKind::HintNamed) { + // Check if the number of hints in the translated language match that of the base language + if (base_bank->m_scenes.find(scene_name) == base_bank->m_scenes.end()) { + lg::warn("scene not found in base language - {}:{}", bank->m_lang_id, scene_name); + } else { + if (scene_info.m_lines.size() > base_bank->m_scenes.at(scene_name).m_lines.size()) { + lg::info("hint - translation has more lines than base - {}:{}", bank->m_lang_id, + scene_name); + } + file.hints[scene_name] = {}; + for (const auto& scene_line : scene_info.m_lines) { + if (scene_line.line.empty()) { + continue; + } + auto line_utf8 = font->convert_game_to_utf8(scene_line.line.c_str()); + file.hints[scene_name].push_back(line_utf8); + } + } + } + } + + // Cutscenes + for (const auto& [scene_name, scene_info] : bank->m_scenes) { + if (scene_info.m_kind == SubtitleSceneKind::Movie) { + // Check if the number of hints in the translated language match that of the base language + if (base_bank->m_scenes.find(scene_name) == base_bank->m_scenes.end()) { + lg::warn("scene not found in base language - {}:{}", bank->m_lang_id, scene_name); + } else { + if (scene_info.m_lines.size() > base_bank->m_scenes.at(scene_name).m_lines.size()) { + lg::info("cutscene - translation has more lines than base - {}:{}", bank->m_lang_id, + scene_name); + } + file.cutscenes[scene_name] = {}; + for (const auto& scene_line : scene_info.m_lines) { + if (scene_line.line.empty()) { + continue; + } + auto line_utf8 = font->convert_game_to_utf8(scene_line.line.c_str()); + file.cutscenes[scene_name].push_back(line_utf8); + } + } + } + } + + return file; +} + GameSubtitleDB load_subtitle_project(GameVersion game_version) { // Load the subtitle files GameSubtitleDB db; @@ -562,22 +961,70 @@ GameSubtitleDB load_subtitle_project(GameVersion game_version) { db.m_subtitle_groups->hydrate_from_asset_file(); try { goos::Reader reader; - std::vector files; + std::vector files; std::string subtitle_project = (file_util::get_jak_project_dir() / "game" / "assets" / version_to_game_name(game_version) / "game_subtitle.gp") .string(); - open_text_project("subtitle", subtitle_project, files); + open_subtitle_project("subtitle", subtitle_project, files); for (auto& file : files) { - if (file.format != GameTextDefinitionFile::Format::GOAL) { - continue; // non-GOAL formats are not supported for subtitles + if (file.format == GameSubtitleDefinitionFile::Format::GOAL) { + auto code = reader.read_from_file({file.lines_path}); + parse_subtitle(code, db, file.lines_path); + } else if (file.format == GameSubtitleDefinitionFile::Format::JSON) { + parse_subtitle_json(db, file); } - auto code = reader.read_from_file({file.file_path}); - parse_subtitle(code, db, file.file_path); } } catch (std::runtime_error& e) { lg::error("error loading subtitle project: {}", e.what()); } + + // Dump new JSON format (uncomment if you need it) + // TODO -- TEMPORARY CODE FOR MIGRATION -- REMOVE LATER + // auto speaker_json = parse_commented_json( + // file_util::read_text_file((file_util::get_jak_project_dir() / "game" / "assets" / + // version_to_game_name(game_version) / "subtitle" / + // "_speaker_lookup.jsonc")), + // "_speaker_lookup.jsonc"); + // auto speaker_lookup = + // speaker_json + // .get>>(); + + // std::vector locale_lookup = {"en-US", "fr-FR", "de-DE", "es-ES", "it-IT", + // "jp-JP", "en-GB", "pt-PT", "fi-FI", "sv-SE", + // "da-DK", "no-NO", "nl-NL", "pt-BR", "hu-HU", "ca-ES", + // "is-IS"}; + + // for (const auto& [language_id, bank] : db.m_banks) { + // auto meta_file = + // dump_bank_as_meta_json(bank, speaker_lookup.at(fmt::format("{}", language_id))); + // std::string dump_path = + // (file_util::get_jak_project_dir() / "game" / "assets" / + // version_to_game_name(game_version) / + // "subtitle" / fmt::format("subtitle_meta_{}.json", locale_lookup.at(language_id))) + // .string(); + // json data = meta_file; + // try { + // std::string str = data.dump(2); + // file_util::write_text_file(dump_path, str); + // } catch (std::exception& ex) { + // lg::error(ex.what()); + // } + // // Now dump the actual subtitles + // auto subtitle_file = dump_bank_as_json(bank, db.m_banks.at(0), + // speaker_lookup.at(fmt::format("{}", language_id))); + // dump_path = + // (file_util::get_jak_project_dir() / "game" / "assets" / + // version_to_game_name(game_version) / + // "subtitle" / fmt::format("subtitle_lines_{}.json", locale_lookup.at(language_id))) + // .string(); + // data = subtitle_file; + // try { + // std::string str = data.dump(2); + // file_util::write_text_file(dump_path, str); + // } catch (std::exception& ex) { + // lg::error(ex.what()); + // } + // } + return db; } - -// TODO - write a deserializer, the compiler still can do the compiling! diff --git a/common/serialization/subtitles/subtitles_ser.h b/common/serialization/subtitles/subtitles_ser.h index a9bdbe5e97..35aad008f1 100644 --- a/common/serialization/subtitles/subtitles_ser.h +++ b/common/serialization/subtitles/subtitles_ser.h @@ -15,15 +15,69 @@ #include "common/util/json_util.h" #include "common/versions/versions.h" +struct SubtitleCutsceneLineMetadata { + // Always required + int frame; + // Actual lines + bool offscreen; + std::string speaker; + // Clear entries + bool clear; +}; +void to_json(json& j, const SubtitleCutsceneLineMetadata& obj); +void from_json(const json& j, SubtitleCutsceneLineMetadata& obj); + +struct SubtitleHintLineMetadata { + int frame; + std::string speaker; + // Clear entries + bool clear; +}; +void to_json(json& j, const SubtitleHintLineMetadata& obj); +void from_json(const json& j, SubtitleHintLineMetadata& obj); + +struct SubtitleHintMetadata { + std::string id; // hex + std::vector lines; +}; +void to_json(json& j, const SubtitleHintMetadata& obj); +void from_json(const json& j, SubtitleHintMetadata& obj); + +struct SubtitleMetadataFile { + std::unordered_map> cutscenes; + std::unordered_map hints; +}; +void to_json(json& j, const SubtitleMetadataFile& obj); +void from_json(const json& j, SubtitleMetadataFile& obj); + +struct SubtitleFile { + std::unordered_map speakers; + std::unordered_map> cutscenes; + std::unordered_map> hints; +}; +void to_json(json& j, const SubtitleFile& obj); +void from_json(const json& j, SubtitleFile& obj); + struct GameTextDefinitionFile { enum class Format { GOAL, JSON }; Format format; std::string file_path = ""; int language_id = -1; - std::string text_version = ""; + std::string text_version = "jak1-v2"; std::optional group_name = std::nullopt; }; +struct GameSubtitleDefinitionFile { + enum class Format { GOAL, JSON }; + Format format; + int language_id = -1; + std::string text_version = "jak1-v2"; + std::string lines_path = ""; + std::optional lines_base_path = std::nullopt; + std::string meta_path = ""; + std::optional meta_base_path = std::nullopt; +}; + /*! * The text bank contains all lines (accessed with an ID) for a language. */ @@ -117,6 +171,13 @@ class GameSubtitleSceneInfo { void add_line(int frame, std::string line, std::string speaker, bool offscreen) { m_lines.emplace_back(SubtitleLine(frame, line, speaker, offscreen)); + // TODO - sorting after every insertion is slow, sort on the add scene instead + std::sort(m_lines.begin(), m_lines.end()); + } + + void add_clear_entry(int frame) { + m_lines.emplace_back(SubtitleLine(frame, "", "", false)); + // TODO - sorting after every insertion is slow, sort on the add scene instead std::sort(m_lines.begin(), m_lines.end()); } @@ -146,8 +207,8 @@ class GameSubtitleBank { } int m_lang_id; - std::string file_path; - + std::string m_text_version; + std::string m_file_path; std::map m_scenes; }; @@ -199,6 +260,7 @@ void parse_text_json(const nlohmann::json& json, GameTextDB& db, const GameTextDefinitionFile& file_info); void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::string& file_path); +void parse_subtitle_json(GameSubtitleDB& db, const GameSubtitleDefinitionFile& file_info); GameTextVersion parse_text_only_version(const std::string& filename); GameTextVersion parse_text_only_version(const goos::Object& data); @@ -206,4 +268,7 @@ GameTextVersion parse_text_only_version(const goos::Object& data); void open_text_project(const std::string& kind, const std::string& filename, std::vector& inputs); +void open_subtitle_project(const std::string& kind, + const std::string& filename, + std::vector& inputs); GameSubtitleDB load_subtitle_project(GameVersion game_version); diff --git a/common/util/json_util.h b/common/util/json_util.h index 1e210a097c..c5e7948d18 100644 --- a/common/util/json_util.h +++ b/common/util/json_util.h @@ -6,6 +6,13 @@ #include "third-party/json.hpp" +using json = nlohmann::json; + std::string strip_cpp_style_comments(const std::string& input); nlohmann::json parse_commented_json(const std::string& input, const std::string& source_name); Range parse_json_optional_integer_range(const nlohmann::json& json); + +#define json_deserialize_if_exists(field_name) \ + if (j.contains(#field_name)) { \ + j.at(#field_name).get_to(obj.field_name); \ + } diff --git a/crowdin.yml b/crowdin.yml index 8647cfbc67..cba9fe188a 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,12 @@ files: - source: /game/assets/jak1/text/game_custom_text_en-US.json translation: /game/assets/jak1/text/game_custom_text_%locale%.json + - source: /game/assets/jak1/subtitle/subtitle_lines_en-US.json + translation: /game/assets/jak1/subtitle/subtitle_lines_%locale%.json + excluded_target_languages: + - "fr" + - "de" + - "es-ES" + - "it" + - "ja" + - "en-GB" diff --git a/game/assets/jak1/game_subtitle.gp b/game/assets/jak1/game_subtitle.gp index d24f8eb434..ec363303fe 100644 --- a/game/assets/jak1/game_subtitle.gp +++ b/game/assets/jak1/game_subtitle.gp @@ -1,17 +1,123 @@ ;; "project file" for subtitles make tool. -;; it's very simple... a list of (action args...) -;; There is one supported action: -;; - file (A path to a GOAL data file) -;; - the same arguments are provided within the file itself (subtitle - (file "game/assets/jak1/subtitle/game_subtitle_en.gd") - (file "game/assets/jak1/subtitle/game_subtitle_fr.gd") - (file "game/assets/jak1/subtitle/game_subtitle_en-uk.gd") - (file "game/assets/jak1/subtitle/game_subtitle_de.gd") - (file "game/assets/jak1/subtitle/game_subtitle_es.gd") - (file "game/assets/jak1/subtitle/game_subtitle_ptbr.gd") - (file "game/assets/jak1/subtitle/game_subtitle_it.gd") + (file-json + :language-id 0 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 1 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_fr-FR.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_fr-FR.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 2 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_de-DE.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_de-DE.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 3 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_es-ES.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_es-ES.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 4 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_it-IT.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_it-IT.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 5 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_jp-JP.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_jp-JP.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 6 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_en-GB.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_en-GB.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 7 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_pt-PT.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_pt-PT.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 8 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_fi-FI.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_fi-FI.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 9 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_sv-SE.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_sv-SE.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 10 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_da-DK.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_da-DK.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 11 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_no-NO.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_no-NO.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 12 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_nl-NL.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_nl-NL.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 13 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_pt-BR.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_pt-BR.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 14 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_hu-HU.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_hu-HU.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 15 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_ca-ES.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_ca-ES.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 16 + :text-version "jak1-v2" + :lines "game/assets/jak1/subtitle/subtitle_lines_is-IS.json" + :lines-base "game/assets/jak1/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak1/subtitle/subtitle_meta_is-IS.json" + :meta-base "game/assets/jak1/subtitle/subtitle_meta_en-US.json") ) diff --git a/game/assets/jak1/subtitle/_speaker_lookup.jsonc b/game/assets/jak1/subtitle/_speaker_lookup.jsonc new file mode 100644 index 0000000000..619c7a97ef --- /dev/null +++ b/game/assets/jak1/subtitle/_speaker_lookup.jsonc @@ -0,0 +1,205 @@ +// This file is just here to aid in the translating of the old format to the new +// once we are done needing that, this can be deleted +{ + "0": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE", + "MINER": "MINER", + "JAK": "JAK" + }, + "1": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "ORNITHOLOGUE", + "BLUE SAGE": "SAGE BLEU", + "DAXTER": "DAXTER", + "FARMER": "FERMIER", + "FISHERMAN": "PÊCHEUR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "PARIEUR", + "GEOLOGIST": "GÉOLOGUE", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "ONCLE DE JAK", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAIRE", + "OLD MAN": "VIEIL HOMME", + "ORACLE": "ORACLE", + "RED SAGE": "SAGE ROUGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTEUR", + "WARRIOR": "GUERRIER", + "WILLARD": "WILLARD", + "WOMAN": "FEMME", + "YELLOW SAGE": "SAGE JAUNE", + "MINER": "MINER" + }, + "2": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "VOGEL-BEOBACHTERIN", + "BLUE SAGE": "BLAUER WEISE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISCHER", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GLÜCKSSPIELER", + "GEOLOGIST": "GEOLOGIN", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "JAKS ONKEL", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "BÜRGERMEISTER", + "OLD MAN": "FRAU", + "ORACLE": "ORAKEL", + "RED SAGE": "ROTER WEISE", + "SAMOS": "SAMOS", + "SCULPTOR": "BILDHAUER", + "WARRIOR": "KRIEGER", + "WILLARD": "WILLARD", + "WOMAN": "ALTER MANN", + "YELLOW SAGE": "GELBER WEISE", + "MINER": "MINER", + "JAK": "JAK" + }, + "3": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "MUJER PÁJARO", + "BLUE SAGE": "SABIO AZUL", + "DAXTER": "DAXTER", + "FARMER": "GRANJERO", + "FISHERMAN": "PESCADOR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "JUGADOR", + "GEOLOGIST": "GEÓLOGA", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "EXPLORADOR", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "ALCALDE", + "OLD MAN": "MUJER", + "ORACLE": "ORÁCULO", + "RED SAGE": "SABIO ROJO", + "SAMOS": "SAMOS", + "SCULPTOR": "ESCULTOR", + "WARRIOR": "GUERRERO", + "WILLARD": "WILLARD", + "WOMAN": "ANCIANO", + "YELLOW SAGE": "SABIO AMARILLO", + "MINER": "MINER", + "JAK": "JAK" + }, + "4": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "ORNITOLOGA", + "BLUE SAGE": "SAGGIO BLU", + "DAXTER": "DAXTER", + "FARMER": "CONTADINO", + "FISHERMAN": "PESCATORE", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GIOCATORE D'AZZARDO", + "GEOLOGIST": "GEOLOGA", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "ZIO", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "SINDACO", + "OLD MAN": "VOCE MASCHILE", + "ORACLE": "ORACOLO", + "RED SAGE": "SAGGIO ROSSO", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULTORE", + "WARRIOR": "SOLDATO", + "WILLARD": "WILLARD", + "WOMAN": "VOCE FEMMINILE", + "YELLOW SAGE": "SAGGIO GIALLO", + "JAK": "JAK", + "MINER": "MINER" + }, + "6": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE", + "MINER": "MINER", + "JAK": "JAK" + }, + "13": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "SRA.PÁSSARO", + "BLUE SAGE": "SÁBIO AZUL", + "DAXTER": "DAXTER", + "FARMER": "FAZENDEIRO", + "FISHERMAN": "PESCADOR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "APOSTADOR", + "GEOLOGIST": "GEOLOGISTA", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "TIO DO JAK", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "PREFEITO", + "OLD MAN": "VELHO", + "ORACLE": "ORÁCULO", + "RED SAGE": "SÁBIO VERMELHO", + "SAMOS": "SAMOS", + "SCULPTOR": "ESCULTOR", + "WARRIOR": "GUERREIRO", + "WILLARD": "WILLARD", + "WOMAN": "MULHER", + "YELLOW SAGE": "SÁBIO AMARELO", + "MINER": "MINER" + } +} diff --git a/game/assets/jak1/subtitle/cleanup-subtitles.py b/game/assets/jak1/subtitle/cleanup-subtitles.py new file mode 100644 index 0000000000..644b6b5cb9 --- /dev/null +++ b/game/assets/jak1/subtitle/cleanup-subtitles.py @@ -0,0 +1,200 @@ +# Simple script that cleans up and de-duplicates the subtitle files +# Most of the duplication happens in the metadata files, as most cutscenes share the same timing +# for some languages though (ie. en-US and en-GB) the actual translation files are heavily duplicated. + +# Also this is a nice place to cleanup anything that C++ did not + +# This file can also die once any active (but not commited) translation efforts actually committed + +import os +import json +import shutil + +def clean_lines(lines): + new_lines = [] + for line in lines: + new_lines.append(line.replace('\\"', '"')) + return new_lines + +# For the purposes of this script, it's assumed the base files are en-US +english_meta = None +english_lines = None + +with open("./subtitle_meta_en-US.json", "r", encoding="utf-8") as f: + english_meta = json.load(f) + +with open("./subtitle_lines_en-US.json", "r", encoding="utf-8") as f: + english_lines = json.load(f) + for name, info in english_lines["cutscenes"].items(): + english_lines["cutscenes"][name] = clean_lines(info) + for name, info in english_lines["hints"].items(): + english_lines["hints"][name] = clean_lines(info) +with open("./subtitle_lines_en-US.json", "w", encoding="utf-8") as line_file: + json.dump(english_lines, line_file, indent=2, ensure_ascii=False) + +# I'm lazy, uncomment this to make the other language base files +locales = ["jp-JP", "hu-HU", "da-DK", "fi-FI", "nl-NL", "no-NO", "pt-PT", "sv-SE", "ca-ES", "is-IS"] +for locale in locales: + # duplicate the english files with the locale + shutil.copy("./subtitle_meta_en-US.json", "./subtitle_meta_" + locale + ".json") + +# Now, let's iterate through all the other files and remove any near-top level duplication. +# this is a very similar strategy to the cast file cleanup effort. + +for f in os.listdir("./"): + if not f.endswith(".json") or f.endswith("en-US.json"): + continue + # Check if it's a meta file, or a line file + if "meta" in f: + new_meta = { + "cutscenes": {}, + "hints": {} + } + with open(f, "r", encoding="utf-8") as meta_file: + print(f) + meta = json.load(meta_file) + # Iterate through every thing, if its the same as the base file, it can be removed from this file + # otherwise, leave it! + for name, info in meta["cutscenes"].items(): + if name not in english_meta["cutscenes"]: + print(f"{name} not in english_meta['cutscenes']") + new_meta["cutscenes"][name] = info + continue + # easy equality check since order matters and the files are machine generated, this should be good enough + if json.dumps(info) != json.dumps(english_meta["cutscenes"][name]): + new_meta["cutscenes"][name] = info + for name, info in meta["hints"].items(): + if name not in english_meta["hints"]: + print(f"{name} not in english_meta['hints']") + new_meta["hints"][name] = info + continue + # easy equality check since order matters and the files are machine generated, this should be good enough + if json.dumps(info) != json.dumps(english_meta["hints"][name]): + new_meta["hints"][name] = info + # write out the new file + with open(f, "w", encoding="utf-8") as meta_file: + json.dump(new_meta, meta_file, indent=2, ensure_ascii=False) + if "lines" in f: + new_lines = { + "cutscenes": {}, + "hints": {}, + "speakers": {} + } + # now lines files + with open(f, "r", encoding="utf-8") as line_file: + print(f) + lines = json.load(line_file) + new_lines["speakers"] = lines["speakers"] + # Iterate through every thing, if its the same as the base file, it can be removed from this file + # otherwise, leave it! + for name, info in lines["cutscenes"].items(): + if name not in english_lines["cutscenes"]: + print(f"{name} not in english_lines['cutscenes']") + new_lines["cutscenes"][name] = clean_lines(info) + continue + # easy equality check since order matters and the files are machine generated, this should be good enough + if json.dumps(info) != json.dumps(english_lines["cutscenes"][name]): + new_lines["cutscenes"][name] = clean_lines(info) + for name, info in lines["hints"].items(): + if name not in english_lines["hints"]: + print(f"{name} not in english_lines['hints']") + new_lines["hints"][name] = clean_lines(info) + continue + # easy equality check since order matters and the files are machine generated, this should be good enough + if json.dumps(info) != json.dumps(english_lines["hints"][name]): + new_lines["hints"][name] = clean_lines(info) + # write out the new file + with open(f, "w", encoding="utf-8") as line_file: + json.dump(new_lines, line_file, indent=2, ensure_ascii=False) + +# Lines get copied after because we actually don't want duplication to be removed (it needs to be translated!) +for locale in locales: + shutil.copy("./subtitle_lines_en-US.json", "./subtitle_lines_" + locale + ".json") + +# Special case for portuguese brazilian +# it was done based off the spanish timings, but there is no portuguese audio +# so manually find the cutscenes that don't match so they can be adjusted...manually... +with open("./subtitle_lines_pt-BR.json", "r", encoding="utf-8") as f: + port_lines = json.load(f) + +for cutscene_name, cutscene_lines in port_lines["cutscenes"].items(): + if len(cutscene_lines) != len(english_lines["cutscenes"][cutscene_name]): + print(cutscene_name) +for hint_name, hint_lines in port_lines["hints"].items(): + if len(hint_lines) != len(english_lines["hints"][hint_name]): + print(hint_name) + +# assistant-lavatube-end-resolution +# assistant-reminder-1-generic +# billy-accept +# billy-introduction +# billy-reject +# billy-resolution +# bird-lady-beach-resolution +# bird-lady-introduction +# bird-lady-reminder-2 +# bluesage-resolution +# explorer-introduction +# explorer-resolution +# farmer-introduction +# farmer-reminder-1 +# fisher-accept +# fisher-introduction +# fisher-reject +# fisher-resolution +# green-sagecage-daxter-sacrifice +# green-sagecage-introduction +# green-sagecage-outro-beat-boss-b +# green-sagecage-outro-preboss +# green-sagecage-resolution +# oracle-intro-1 +# oracle-intro-2 +# oracle-intro-3 +# oracle-reminder-1 +# oracle-reminder-2 +# oracle-reminder-3 +# redsage-resolution +# sage-intro-sequence-a +# sage-intro-sequence-d1 +# sage-intro-sequence-d2 +# sage-intro-sequence-e +# sage-village3-introduction +# sage-village3-introduction-dark-eco +# yellowsage-resolution +# ASSTLP24 +# ASSTLP36 +# CHI-AM03 +# CHI-AM04 +# EXP-AM01 +# EXP-AM05 +# FAR-AM01 +# FIS-AM01 +# FIS-AM02 +# MSH-AM12 +# SAGELP05 +# asstv100 +# asstv101 +# asstva73 +# asstvb02 +# asstvb04 +# asstvb08 +# asstvb21 +# asstvb23 +# asstvb24 +# asstvb25 +# asstvb45 +# asstvb47 +# sagevb01 +# sagevb02 +# sagevb03 +# sagevb23 +# sagevb24 +# sagevb25 +# sksp0013 +# sksp0017 +# sksp0059 +# sksp0060 +# sksp0067 +# sksp0116 +# sksp0145 +# sksp0b42 diff --git a/game/assets/jak1/subtitle/game_subtitle_de.gd b/game/assets/jak1/subtitle/game_subtitle_de.gd deleted file mode 100644 index 21ad25c8e7..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_de.gd +++ /dev/null @@ -1,2536 +0,0 @@ -(language-id 2) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (60 :offscreen "SAMOS" "MEIN LEBEN LANG HABE ICH DIE ANTWORTEN GESUCHT, DIE MEIN VATER") - (150 :offscreen "SAMOS" "UND MEINES VATERS VATER NIE GEFUNDEN HABEN.") - (247) - (250 :offscreen "SAMOS" "WER WAREN DIE PRECURSOR?") - (306 :offscreen "SAMOS" "WARUM ERSCHUFEN SIE DIE RIESIGEN MONOLITHEN,") - (378 :offscreen "SAMOS" "DIE ÜBERALL AUF UNSEREM PLANETEN VERSTREUT SIND?") - (467) - (470 :offscreen "SAMOS" "WIE HABEN SIE DAS ECO BEZWUNGEN, DIE LEBENSENERGIE DIESER WELT?") - (584) - (588 :offscreen "SAMOS" "WAS WAR IHR PLAN UND WIESO VERSCHWANDEN SIE?") - (708) - (713 :offscreen "SAMOS" "ICH HABE DIE PFLANZEN BEFRAGT, ABER SIE ERINNERN SICH NICHT.") - (828 :offscreen "SAMOS" "DIE PFLANZEN HABEN DIE FELSEN BEFRAGT, ABER DIE FELSEN WISSEN ES NICHT MEHR.") - (955 :offscreen "SAMOS" "NICHT EINMAL DIE FELSEN KÖNNEN SICH ERINNERN...") - (1064) - (1123 :offscreen "SAMOS" "JEDE FASER MEINES KÖRPERS SAGT MIR,") - (1185 :offscreen "SAMOS" "DASS SICH DIE ANTWORTEN IM BESITZ EINES JUNGEN MANNES BEFINDEN,") - (1297 :offscreen "SAMOS" "DER SICH SEINES SCHICKSALS NICHT BEWUSST IST, DEM NICHTS DARAN LIEGT,") - (1437 :offscreen "SAMOS" "DIE WAHRHEIT ZU FINDEN, DER MEINE FÜHRUNG ABLEHNT!") - (1536) - (1565 :offscreen "SAMOS" "ABER WARUM SOLLTE ER AUCH SCHON AUF DEN ALTEN SAMOS, DEN WEISEN, HÖREN?") - (1677) - (1705 :offscreen "SAMOS" "ICH BIN JA NUR DER HERRSCHER DES GRÜNEN ECOS, EINER DER WEISESTEN MENSCHEN DER WELT!") - (1872) - (1964 :offscreen "SAMOS" "SO SCHEINT ES,") - (1993 :offscreen "SAMOS" "DASS DIE ANTWORT NICHT ETWA DURCH SORGFÄLTIGE FORSCHUNG") - (2087 :offscreen "SAMOS" "ODER VERNÜNFTIGES ÜBERLEGEN GEFUNDEN WIRD.") - (2168) - (2175 :offscreen "SAMOS" "OH, NEIN! WIE SO VIELE SCHICKSALHAFTE GEHEIMNISSE") - (2300 :offscreen "SAMOS" "FÄNGT ALLES MIT EINER KLEINEN UNGEHORSAMKEIT AN.") - (2440 "DAXTER" "HEY! ÄH, JAK? DER GRÜNE KERL HAT UNS DOCH VERBOTEN, HIERHER ZU KOMMEN!") - ) - -("sage-intro-sequence-d1" - (137 "SAMOS" "WAS IN GRÜNEM TEUFELSNAMEN WOLLT IHR ZWEI?") - (227 "DAXTER" "WIR- WIR- WIR WAREN- DA WAR- ICH- ICH WAR-") - (283 "SAMOS" "DU, SEI STILL! ANSTATT MEINEM RAT ZU FOLGEN, SEID IHR BEIDEN") - (422 "SAMOS" "AN DEM EINZIGEN ORT HERUMGESTREUNT, DEN ICH EUCH VERBOTEN HATTE: DER NEBELINSEL!") - (550 "DAXTER" "DAS STIMMT UND ICH, ÄH-") - (579 "SAMOS" "UND DAXTER, DU HAST ENDLICH DAS ÜBERFÄLLIGE BAD GENOMMEN,") - (696 "SAMOS" "ABER IN EINER WANNE VOLL MIT DUNKLEM ECO.") - (793 "DAXTER" "ALSO, ALTER MANN, WILLST DU HIER JETZT RUMQUATSCHEN") - (862 "DAXTER" "ODER HILFST DU MIR RAUS AUS DEM SCHLAMASSEL?!") - (920 "SAMOS" "ICH WERDE WEITER HERUMQUATSCHEN, DENN ICH FINDE, DU SIEHST VIEL BESSER AUS ALS VORHER.") - (1079 "SAMOS" "UND AUSSERDEM... ICH KÖNNTE DIR GAR NICHT HELFEN, AUCH, WENN ICH WOLLTE.") - (1186 "DAXTER" "WAS?!") - (1220 "SAMOS" "ES GIBT NUR EINE EINZIGE PERSON, DIE DAS DUNKLE ECO LANGE GENUG ERFORSCHT HAT,") - (1353 "SAMOS" "UM DICH VIELLEICHT ZURÜCKZUVERWANDELN:") - (1431 "SAMOS" "GOL ACHERON, DER WEISE.") - (1493) - (1496 :offscreen "SAMOS" "ABER ER LEBT WEIT ENTFERNT IM NORDEN. WEIT, WEIT IM NORDEN.") - (1649 :offscreen "SAMOS" "SEIT EWIGKEITEN HAT NIEMAND MEHR MIT IHM GESPROCHEN.") - (1718 "SAMOS" "ICH WÜRDE EUCH JA DORTHIN TELEPORTIEREN, ABER AUCH DAS KANN ICH NICHT.") - (1831 "SAMOS" "KEINER DER DREI ANDEREN WEISEN HAT ES FÜR NOTWENDIG ERACHTET,") - (1960 "SAMOS" "SEIN TOR ANZUSCHALTEN, SCHON SEIT LANGER ZEIT NICHT MEHR!") - ) - -("sage-intro-sequence-d2" - (3 "SAMOS" "DER EINZIGE ANDERE WEG ZU FUSS NACH NORDEN FÜHRT DURCH DEN FEUER-CANYON,") - (114 :offscreen "SAMOS" "ABER DER HEISSE BODEN SCHMILZT SOGAR PRECURSOR-METALL,") - (224 "SAMOS" "IHR KÖNNT DA NICHT EINFACH SO DURCHGEHEN.") - (277 "KEIRA" "ABER IHR KÖNNTET DURCHFLIEGEN! WENN IHR EINEN ZOOMER MIT HITZESCHUTZSCHILD HÄTTET.") - (393) - (396 "KEIRA" "ZUFÄLLIG ARBEITE ICH IM MOMENT GERADE AN SO EINER MASCHINE.") - (512) - (515 "KEIRA" "MIT NUR ZWANZIG ENERGIEZELLEN HÄTTE SIE GENUG ENERGIE,") - (605 "KEIRA" "UM DER HITZE DES CANYONS ZU WIDERSTEHEN. NICHT WAHR, PAPI?") - (696) - (699 "SAMOS" "JA, KEIRA, DAS KÖNNTE KLAPPEN. ABER WO SOLLEN DER JUNGE") - (815 :offscreen "SAMOS" "UND DIE HALBE PORTION DA") - (857 "SAMOS" "ZWANZIG ENERGIEZELLEN HERBEKOMMEN?") - (910 "KEIRA" "VON DEN DORFBEWOHNERN!") - (962 "KEIRA" "DIE MEISTEN VON DENEN HABEN IRGENDWO EIN ODER ZWEI ENERGIEZELLEN RUMLIEGEN.") - (1076 :offscreen "KEIRA" "UND AUCH, WENN SIE SIE NICHT HERGEBEN WOLLEN,") - (1133 "KEIRA" "MIT EIN PAAR NETTEN PRECURSOR-ORBS KANN MAN IHRE MEINUNG SCHON ÄNDERN.") - (1243) - (1246 :offscreen "KEIRA" "UND BESTIMMT GIBT ES DRAUSSEN IN DER WILDNIS NOCH MEHR ENERGIEZELLEN,") - (1350 "KEIRA" "DIE NUR AUF EIN PAAR MUTIGE ABENTEURER WARTEN.") - (1435 "DAXTER" "NUN, EINEN MUTIGEN ABENTEURER HABEN WIR JA SCHON.") - (1529) - (1532 "SAMOS" "MUTIGE ABENTEURER?") - (1582 "SAMOS" "IHR BEIDE WÜRDET OHNE ANLEITUNG NICHT MAL AUS DEM DORF RAUSFINDEN!") - (1685) - (1689 "SAMOS" "BEVOR IHR MIT IRGENDETWAS ANFANGT, SOLLTET IHR LIEBER DURCH DAS WARPTOR GEHEN") - (1807 "SAMOS" "UND AM FELSGEYSIR EIN WENIG ÜBEN.") - (1872) - (1887 "DAXTER" "ÄHM, DA GIBT'S NICHT NOCH MEHR VON DIESEM DUNKLEN ECO-ZEUGS, ODER?") - (1993 "DAXTER" "ICH WILL NICHT NOCHMAL REINFALLEN UND DANN SO AUSSEHEN WIE DU!") - (2069) - (2072 "SAMOS" "REIN DA, BEVOR ICH EUCH BEIDE IN UNKRAUT VERWANDLE!") - (2189) - ) - -("sage-intro-sequence-e" - (200 "SAMOS" "GUT GEMACHT, JUNGS, ABER DAS IST NOCH GAR NICHTS IM VERGLEICH ZU DEN ABENTEUERN,") - (318 "SAMOS" "DIE NOCH VOR EUCH LIEGEN.") - (359 "DAXTER" "ÄH, IST GAR KEIN PROBLEM. WIR SIND GEWAPPNET, WAS, JAK?") - (496 "DAXTER" "WIR WÜRDEN JA GERNE NOCH BLEIBEN UND QUATSCHEN, GRÜNER HÄUPTLING,") - (573 "DAXTER" "ABER ES JUCKT UNS SCHON, AUF ABENTEUER ZU GEHEN.") - (660 "SAMOS" "SCHÖN, SCHÖN. DANN STÜRZT EUCH INS ABENTEUER.") - (787 "SAMOS" "UND WENN IHR SCHON BEIM \"ABENTEUERN\" SEID, MACHT EUCH DOCH EIN WENIG NÜTZLICH!") - (940) - (962 :offscreen "SAMOS" "MEINE VERFLIXTEN GRÜNEN ECO-SAMMLER SIND SCHON WIEDER VERSTOPFT.") - (1043) - (1082 :offscreen "SAMOS" "GEHT ANS ANDERE ENDE DES STRANDES UND REINIGT SIE, JA?") - (1160) - (1187 :offscreen "SAMOS" "FOLGT DEN LAMPEN, SIE FÜHREN EUCH GERADEWEGS DORTHIN.") - (1310) - (1313 :offscreen "SAMOS" "UND JETZT, ALLE...") - (1415) - (1439 :offscreen "SAMOS" "RAUS HIER!") - ) - -("sidekick-human-intro-sequence-b" - (559 "ALTER MANN" "SUCHT WEITER NACH ARTEFAKTEN UND NACH ECO.") - (674 "ALTER MANN" "WENN DIE EINWOHNER PRECURSOR-GEGENSTÄNDE BESITZEN:") - (767 "ALTER MANN" "IHR WISST, WAS ZU TUN IST.") - (842 "FRAU" "BESTRAFT JEDEN HART, DER DAS DORF VERLÄSST.") - (947 "FRAU" "WIR WERDEN ZUR RECHTEN ZEIT ANGREIFEN.") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (23 "DAXTER" "WAS WOLLEN WIR ÜBERHAUPT HIER, JAK? MIR LÄUFT'S HIER KALT DEN RÜCKEN RUNTER!") - (151) - (366 "DAXTER" "AH!") - (439 "DAXTER" "BLÖDER PRECURSOR-SCHROTT!") - (496) - (576 "DAXTER" "UAH! WAS IST DAS FÜR DUNKLES ZEUG DA? SIEHT JA NICHT GERADE EINLADEND AUS.") - (721) - (782 "DAXTER" "DER WEISE PLAPPERT STÄNDIG ÜBER DIE PRECURSOR, DIE DAS ZEUG HIER ERBAUT HABEN.") - (906 "DAXTER" "\"WOHIN SIND SIE GEGANGEN? WARUM ERBAUTEN SIE DIESEN SCHROTT?\"") - (1011 "DAXTER" "ICH MAG PRECURSOR-ORBS UND ENERGIEZELLEN GENAU SO WIE JEDER ANDERE,") - (1118 "DAXTER" "ABER WENN DU MICH FRAGST, WAREN DAS SCHON ECHTE LOSER.") - (1212 "DAXTER" "AH! WIE HAST DU DAS GEMACHT?") - (1271) - (1331 "DAXTER" "JAK, ICH GLAUB', ES GIBT ÄRGER!") - (1386) - (1857 "DAXTER" "MANN, WAR DAS HEISS.") - (1913) - (1950 "DAXTER" "WIR HÄTTEN NIE HERKOMMEN SOLLEN, HÄTTEST DU AUF MICH GEHÖRT, DANN...") - (2037) - (2057 "DAXTER" "WAS?") - (2104) - (2189 "DAXTER" "AAAAAAAAHHHHHHHH!!") - (2307 "DAXTER" "OKAY, OKAY. ALLES KLAR, MIR GEHT'S GUT...") - (2431) - (2481 "DAXTER" "AAAAAAAAHHHHHHHH!!") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" (0 "DAXTER" "NICHT INS LICHT KOMMEN, JAK! NICHT INS LICHT KOMMEN!")) - -("death-0182" - (0 "DAXTER" "WO DU SCHON MAL DA UNTEN BIST...") - (55) - (68 "DAXTER" "MASSIERST DU MIR DIE FÜSSE?") - ) - -("death-0184" - (0 "DAXTER" "WO DU SCHON MAL DU UNTEN BIST...") - (60) - (70 "DAXTER" "MASSIERST DU MIR DIE FÜSSE?") - ) - -("death-0186" - (0 "DAXTER" "KEINE SORGE, ICH WERDE DICH...") - (50) - (69 "DAXTER" "NICHT RÄCHEN.") - ) - -("death-0187" - (0 "DAXTER" "AH, JA...") - (46) - (56 "DAXTER" "BESSER DU ALS ICH.") - ) - -("death-0191" - (0 "DAXTER" "UH, DAS HAT WEHGETAN.") - (46 "DAXTER" "SOLL ICH VERSTÄRKUNG HOLEN?") - ) - -("death-0193" - (0 "DAXTER" "ERSTER SCHRITT: AM LEBEN BLEIBEN.") - (65 "DAXTER" "ZWEITER SCHRITT...") - (97) - (107 "DAXTER" "MACH SOWAS BLOSS NICHT NOCH MAL MIT MIR!") - ) - -("death-0195" - (0 "DAXTER" "ICH WAR DIREKT HINTER DIR, JAK!") - (69 "DAXTER" "...EHRLICH. GLAUB MIR.") - ) - -("death-0197" - (0 "DAXTER" "SANITÄTER! 'NE TRAGE!") - (62) - (72 "DAXTER" "ÄH, EIN ATEMFRISCH?") - ) - -("death-0199" - (0 "DAXTER" "ICH WERDE WAS ECHT BEWEGENDES AUF DEINEM BEGRÄBNIS SAGEN, WIE...") - (105 "DAXTER" "\"WER WIRD MICH JETZT ZURÜCKVERWANDELN?!\"") - ) - -("death-0202" (0 "DAXTER" "SAG \"GUTE NACHT\" JAK!")) -("sksp009a" :hint #x0 (0 "DAXTER" "HAHA, DEM HABEN WIR'S GEZEIGT, WAS?")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "WIR HABEN GENUG ORBS FÜR EINE ENERGIEZELLE ZUSAMMENGESCHNORRT.") - (215 "DAXTER" "KOMM, WIR GEHEN ZURÜCK UND TAUSCHEN SIE ENDLICH EIN!") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "WAS FÜR EIN SELTSAMES DING! ICH WETTE, WIR KRIEGEN DAS AUF,") - (188 "DAXTER" "WENN DU DICH MIT DIESEM BLUBBERNDEN BLAUEN ECO-ZEUGS AUFLÄDST.") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "HEY! DIE SÜSSE KEIRA-MAUS HATTE RECHT! HIER GIBT'S WIRKLICH TRANS-PADS!")) -("sksp0002" :hint #x281 (0 "DAXTER" "GLAUB' MIR, DIESE DUNKLEN ECO-BOXEN SIND ÜBERHAUPT NICHTS GUTES!")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "ICH WETTE, WENN WIR ALLE VON DIESEN NIEDLICHEN SPÄHFLIEGEN IN EINEM LEVEL FINDEN,") - (215 "DAXTER" "IST BESTIMMT EINE DABEI MIT EINER ENERGIEZELLE!") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "JAWOLL, EIN SCHATZ!")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "SO HART SEHEN DIESE HOLZ- UND METALLKISTEN NUN AUCH NICHT AUS!") - (194) - (200 "DAXTER" "ICH WETTE, MIT EINEM TAUCHSPRUNG KRIEGT MAN SIE AUF!") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "DIESE METALLKISTEN SIND JA DICKER ALS DER SCHÄDEL EINER YAKOW!") - (188 "DAXTER" "ABER ES MUSS DOCH WAS GEBEN, WOMIT MAN SIE AUFKRIEGT!") - ) - -("sksp0007" :hint #x286 - (0 "DAXTER" "NUR EIN WORT: ENERGIEZELLEN.") - (171 "DAXTER" "DIE MÜSSEN WIR FINDEN UND IM MOMENT SIND WIR DARIN GAR NICHT GUT!") - ) - -("sksp0008" :hint #x287 - (0 "DAXTER" "WIR BRAUCHEN ORBS. ORBS, JAK!") - (195 "DAXTER" "WIE SOLLEN WIR DENN JEMALS ENERGIEZELLEN KAUFEN, WENN WIR KEINE ORBS SAMMELN?!") - ) - -("sksp009b" :hint #x28e (0 "DAXTER" "JAWOLL, NOCH MEHR ORBS!")) -("sksp009c" :hint #x28f (0 "DAXTER" "TU MIR DEN GEFALLEN UND HALT DICH VON DIESEN DUNKLEN ECO-KISTEN FERN!")) -("sksp009d" :hint #x290 (0 "DAXTER" "JA, HA, HA, HA, HA, HA!")) -("sksp009e" :hint #x291 (0 "DAXTER" "WA-HUU!")) -("sksp009f" :hint #x292 (0 "DAXTER" "SCHNAPP DIR WELCHE, SCHNAPP DIR WELCHE! HA, HA, HA!")) -("sksp009g" :hint #x293 (0 "DAXTER" "DIREKT HINTER DIR, JAK!")) -("sksp009i" :hint #x294 (0 "DAXTER" "HABEN WIR JETZT ALLE SPÄHFLIEGEN IN DIESEM GEBIET GEFUNDEN?")) -("sksp009j" :hint #x295 (0 "DAXTER" "HEY! SIEHT GANZ SO AUS, ALS BEFINDEN SICH DIE SPÄHFLIEGEN IMMER IN ROTEN KISTEN!")) -("sksp009k" :hint #x296 (0 "DAXTER" "JAWOLL! DU HAST ALLE SPÄHFLIEGEN IN DIESEM GEBIET GEFUNDEN!")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORAKEL" "WER WECKT DAS ORAKEL AUF?") - (75) - (81 "ORAKEL" "WARTET, EINER VON EUCH HAT DAS INNERE LICHT!") - (198) - (206 "ORAKEL" "SEIT ANBEGINN DER ZEIT SUCHE ICH UND WARTE AUF DIE RÜCKKEHR DES WAHREN HELDEN.") - (390) - (395 "ORAKEL" "BRINGT MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE, DIE ICH BESITZE.") - ) - -("oracle-intro-2" - (0 "ORAKEL" "HÜTET EUCH VOR DEM DUNKLEN LICHT,") - (95 "ORAKEL" "DENN ES BIRGT EIN SCHLIMMES SCHICKSAL FÜR EINEN VON EUCH.") - (171) - (181 "ORAKEL" "BRINGT MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE, DIE ICH BESITZE.") - ) - -("oracle-intro-3" - (0 "ORAKEL" "SUCHT DAS REINE LICHT, DENN IN SEINER FLAMME RUHEN DIE ANTWORTEN.") - (143) - (146 "ORAKEL" "VERDIENT MEINE ENERGIEZELLEN, INDEM IHR MIR 120 PRECURSOR-ORBS FÜR JEDE DAVON DARBRINGT.") - ) - -("oracle-left-eye-1" (0 "ORAKEL" "IHR HABT EUCH ALS WÜRDIG ERWIESEN. HIER IST EINE ENERGIEZELLE.")) -("oracle-left-eye-2" (0 "ORAKEL" "FÜR DEIN OPFER ÜBERREICHE ICH DIR EINE ENERGIEZELLE")) -("oracle-left-eye-3" (0 "ORAKEL" "FÜR EURE MÜHEN ERHALTET IHR EINE ENERGIEZELLE ALS BELOHNUNG.")) -("oracle-reminder-1" (0 "ORAKEL" "BRINGT MIR 120 PRECURSOR-ORBS UND ICH BELOHNE EUCH MIT EINER ENERGIEZELLE.")) -("oracle-reminder-2" (0 "ORAKEL" "BRINGT MIR 120 PRECURSOR-ORBS UND EINE ENERGIEZELLE SOLL EURE BELOHNUNG SEIN.")) -("oracle-reminder-3" (0 "ORAKEL" "IHR MÜSST MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE IN MEINEM BESITZ BRINGEN.")) -("oracle-right-eye-1" (0 "ORAKEL" "FÜR EURE GABE ERHALTET IHR EINE WEITERE ENERGIEZELLE.")) -("oracle-right-eye-2" (0 "ORAKEL" "HIER IST EINE WEITERE ENERGIEZELLE FÜR EURE SUCHE.")) -("oracle-right-eye-3" (0 "ORAKEL" "IHR HABT EUCH EINE WEITERE ENERGIEZELLE VERDIENT.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "DIESES GERÄT IST EIN KOMMUNIKATOR, DAMIT KÖNNEN MEIN VATER UND ICH") - (219 "KEIRA" "EUCH JEDERZEIT BEI EURER SUCHE RATSCHLÄGE GEBEN.") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "DIESE SCHWEBENDEN EIFÖRMIGEN DINGER SIND PRECURSOR-ORBS.") - (182) - (185 "KEIRA" "WENN IHR GENUG DAVON SAMMELT, GEBEN EUCH EIN PAAR DER DORFBEWOHNER") - (376 "KEIRA" "EINE ENERGIEZELLE DAFÜR.") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "DAS IST EINE ENERGIEZELLE, DAS WICHTIGSTE PRECURSOR-ARTEFAKT, DAS IHR FINDEN KÖNNT.") - (272) - (275 "KEIRA" "IHR MÜSST 20 DAVON SAMMELN, DAMIT ICH DEN HITZESCHILD") - (453 "KEIRA" "FÜR EUREN A-GRAV-ZOOMER AKTIVIEREN KANN.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "HEY, IHR HABT EINE MEINER SPÄHFLIEGEN GEFUNDEN!") - (160 "KEIRA" "ICH HABE SIEBEN DAVON IN JEDES GEBIET ENTSANDT, UM NACH ENERGIEZELLEN ZU SUCHEN,") - (428 "KEIRA" "ABER DIE LURKER MÜSSEN SIE ALLE EINGEFANGEN HABEN.") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "WOW! DIESE LETZTE SPÄHFLIEGE HATTE EINE ENERGIEZELLE!") - (219 "KEIRA" "ICH WETTE, WENN IHR ALLE SIEBEN IN EINEM GEBIET FINDET,") - (426 "KEIRA" "BEKOMMT IHR BESTIMMT NOCH MEHR ENERGIEZELLEN.") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "SEID VORSICHTIG IM OZEAN, DIE GEWÄSSER WIMMELN NUR SO VOR LURKER-HAIEN") - (255 "KEIRA" "UND ICH HABE NOCH NIE ERLEBT, DASS JEMAND EINEN DAVON BESIEGT HAT.") - (419) - (426 "KEIRA" "HALTET EUCH VON IHNEN FERN, WENN EUCH EUER LEBEN LIEB IST!") - ) - -("asstvb47" :hint #x906 (0 "KEIRA" "DENK DRAN, DAS IST EINE ENERGIEZELLE. IHR MÜSST SO VIELE SAMMELN WIE NUR MÖGLICH!")) - -("asstvb48" :hint #x907 - (0 "KEIRA" "DAS IST EINE BLAUE ECO-ÖFFNUNG!") - (124 "KEIRA" "HIER IST DAS BLAUE ECO VIEL KONZENTRIERTER ALS BEI DEN SCHWEBENDEN HAUFEN,") - (344 "KEIRA" "DESHALB BEKOMMST DU HIER EINE VOLLE LADUNG DAVON,") - (492 "KEIRA" "DIE DU FÜR DIE MAXIMALE ZEITDAUER NUTZEN KANNST.") - ) - -("sagevb21" :hint #x908 - (3 "SAMOS" "DIESE KLEINEN GRÜNEN ENERGIEBÄLLE AUF DEM BODEN SIND EINE ECO-ART.") - (280 "SAMOS" "HEBE 50 KLEINE ODER EINEN GROSSEN GRÜNEN ECO AUF, DANN WIRD DEINE GESUNDHEIT VERBESSERT.") - ) - -("sagevb22" :hint #x909 - (0 "SAMOS" "DAS HIER IST BLAUES ECO, ES ENTHÄLT DIE BEWEGUNGSENERGIE.") - (275 "SAMOS" "MIT BLAUEM ECO KANNST DU SCHNELL RENNEN,") - (455 "SAMOS" "KISTEN AUFBRECHEN UND SOGAR EINIGE PRECURSOR-ARTEFAKTE AKTIVIEREN,") - (660 "SAMOS" "WENN DU IN IHRE NÄHE KOMMST.") - ) - -("sagevb23" :hint #x90a - (0 "SAMOS" "SCHAU, WIE SICH MIT JEDEM AUFGEHOBENEN BLAUEN ECO-HAUFEN DIE ZEIT VERLÄNGERT,") - (279 "SAMOS" "IN DER DU ES BENUTZEN KANNST.") - ) - -("sagevb24" :hint #x90b - (3 "SAMOS" "DAS IST EINE PRECURSOR-TÜR. SIE LÄSST SICH NUR ÖFFNEN,") - (194 "SAMOS" "WENN DU BLAUES ECO DURCH DEINEN KÖRPER LAUFEN LÄSST.") - ) - -("sagevb25" :hint #x90c - (3 "SAMOS" "GUT GEMACHT, DAS BLAUE ECO HAT DIE TÜR GEÖFFNET.") - (222 "SAMOS" "MIT BLAUEM ECO KANNST DU SELBST DEN PRECURSOR-ARTEFAKTEN,") - (456 "SAMOS" "DIE SCHON SEIT JAHREN NICHT MEHR AKTIVIERT WORDEN SIND, ENERGIE EINHAUCHEN.") - ) - -("sagevb26" :hint #x90d (0 "SAMOS" "DURCH DEINE SCHUTZBRILLE KANNST DU DEINE FORTSCHRITTE IM SPIEL ANSEHEN.")) - -("sagevb27" :hint #x90e - (1 "SAMOS" "WENN DU SPRINGST UND DANN IN DER LUFT GLEICH NOCHMAL SPRINGST,") - (255 "SAMOS" "KANNST DU AUF EINEN HÖHER GELEGENEN VORSPRUNG GELANGEN.") - ) - -("sagevb28" :hint #x90f (0 "SAMOS" "WENN DU VON FEINDEN UMZINGELT BIST, BENUTZE DIE ROTIER-TRET-METHODE.")) -("sagevb29" :hint #x910 (0 "SAMOS" "DAS WAR'S NOCH NICHT! VERSUCH'S NOCHMAL!")) -("sagevb30" :hint #x911 (0 "SAMOS" "NA LOS, JAK! ROTIERE UND TRETE.")) -("sagevb31" :hint #x912 (0 "SAMOS" "BENUTZE DIE ROTIER-TRET-METHODE FÜR EINEN RUNDUMSCHLAG.")) -("sagevb32" :hint #x913 (0 "SAMOS" "BENUTZE BEI EINEM FRONTALANGRIFF EINEN BOXHIEB.")) -("sagevb33" :hint #x914 (0 "SAMOS" "DAS IST DOCH KEIN BOXHIEB! JETZT ZEIG' UNS MAL, WIE DU RICHTIG BOXT!")) -("sagevb34" :hint #x915 (0 "SAMOS" "JAK! VERSUCH'S MIT EINEM BOXHIEB.")) -("sagevb35" :hint #x916 (0 "SAMOS" "TOLL! MIT DEM BOXHIEB KANNST DU DICH SCHNELL DURCHKÄMPFEN, WENN'S BRENZLIG WIRD.")) - -("sagevb36" :hint #x917 - (0 "SAMOS" "MANCHMAL MUSST DU MIT GRÖSSERER KRAFT ZUSCHLAGEN.") - (148) - (154 "SAMOS" "UM EINE DIESER KISTEN ZU ÖFFNEN, MUSST DU HOCH SPRINGEN") - (309 "SAMOS" "UND DANN MIT DEN HÄNDEN VORAN ABTAUCHEN.") - ) - -("sagevb37" :hint #x918 (0 "SAMOS" "MIT EIN BISSCHEN ÜBUNG KANNST DU AUCH VERSUCHEN, EINIGE DIESER BEWEGUNGEN ZU VERBINDEN.")) - -("sagevb38" :hint #x919 - (0 "SAMOS" "DU KANNST NICHT ZURÜCK DURCH'S SPRUNGTOR,") - (120 "SAMOS" "BIS DU ALLE VIER ENERGIEZELLEN AUF DIESER INSEL GEFUNDEN HAST.") - ) - -("sagevb39" :hint #x91a - (0 "SAMOS" "SUPER! DU HAST ALLE ENERGIEZELLEN AUF DER INSEL GEFUNDEN.") - (210 "SAMOS" "KOMM ZURÜCK ZUM SPRUNGTOR, DAMIT ICH DICH ZURÜCK INS LABOR BEFÖRDERN KANN! BEEIL DICH!") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (23 "DAXTER" "HEY, BABY. WOLLEN WIR NICHT ZUSAMMEN EIN PAAR RUNDEN AUF DIESEM A-GRAV ZOOMER DREHEN?") - (175) - (200 "KEIRA" "REGEL NUMMER EINS: ICH VERABREDE MICH NICHT MIT TIEREN.") - (308) - (312 "DAXTER" "ACH, DU WEISST JA GAR NICHT, WAS DIR ENTGEHT, EH HEH HEH...") - (430) - (505 "KEIRA" "HÖR ZU, WENN IHR BESCHÄFTIGUNG BRAUCHT, MEIN VATER HAT VON EINEM") - (635 "KEIRA" "ALTEN PRECURSOR-ROHRSYSTEM TIEF UNTER DER ERDE ERZÄHLT.") - (739) - (742 :offscreen "KEIRA" "AM ENDE VON EINIGEN ROHREN SIND ÖFFNUNGEN, AUS DENEN DAS ECO HERAUSSTRÖMT,") - (855 :offscreen "KEIRA" "ANDERE SIND VERRIEGELT, SODASS DAS ECO EINGESCHLOSSEN IST.") - (945) - (954 "KEIRA" "ES MUSS MÖGLICH SEIN, DIE VERRIEGELTEN ÖFFNUNGEN AUFZUMACHEN.") - (1052 :offscreen "KEIRA" "ICH HAB RAUSGEFUNDEN, DASS EIN TEIL DER ROHRE UNTER DEM VERBOTENEN TEMPEL LIEGT.") - (1165 "KEIRA" "SUCHT DORT MAL NACH EINEM SCHALTER.") - (1246) - ) - -("assistant-introduction-race-bike" - (9 "DAXTER" "HEY BABY, WAS IST'N DAS HIER?") - (78 "KEIRA" "SEI VORSICHTIG! ICH VERSUCHE, HERAUSZUFINDEN, WIE MAN DEN ZOOMER MITHILFE DER") - (205 "KEIRA" "PRECURSOR-TRANS-PADS TRANSPORTIEREN KANN.") - (308) - (312 :offscreen "KEIRA" "WENN IHR AN EINES DIESER PADS KOMMT, KANN ICH DIE POSITION EURES KOMMUNIKATORS ERMITTELN") - (453 :offscreen "KEIRA" "UND EUCH DEN ZOOMER SCHICKEN!") - (508 "KEIRA" "HALTET AUF DER NEBELINSEL AUSSCHAU NACH SOLCHEN TRANS-PADS, ODER SONSTWO!") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "WENN IHR IM VERBOTENEN PRECURSOR-TEMPEL SUCHT, SCHAFFT IHR ES BESTIMMT,") - (160 "KEIRA" "DIE VERSCHLOSSENE BLAUE ECO-ÖFFNUNG AM WÄCHTERSTRAND AUFZUMACHEN.") - (295) - ) - -("assistant-reminder-1-generic" (25 "KEIRA" "HEY, JUNGS! SAMMELT WEITER ENERGIEZELLEN, IHR BRAUCHT SIE, UM WEITER NACH NORDEN ZU REISEN.")) - -("assistant-reminder-1-race-bike" - (25 "KEIRA" "ICH WEISS JETZT, WIE MAN DIE TRANS-PADS BENUTZT.") - (106 "KEIRA" "GEHT ZUR NEBELINSEL UND ICH SCHICKE EUCH DEN ZOOMER RÜBER.") - (229) - ) - -("explorer-introduction" - (23 "JAKS ONKEL" "OH, HALLO, MEIN LIEBER JUNGE.") - (121 "JAKS ONKEL" "DU KOMMST MIR JETZT ABER GERADE EIN WENIG UNGELEGEN.") - (197 "JAKS ONKEL" "WEISST DU, ICH WOLLTE SCHON GESTERN ZU MEINER REISE AUFBRECHEN,") - (300 "JAKS ONKEL" "ABER ICH HABE SCHEINBAR ZU WENIG PRECURSOR-ORBS.") - (426) - (430 "JAKS ONKEL" "ICH HÄTTE SCHWÖREN KÖNNEN, DASS ICH 90 STÜCK HATTE.") - (538 "JAKS ONKEL" "ABER ICH VERMUTE, DEIN JUNGER FREUND,") - (635 "JAKS ONKEL" "DIESER LÄSTIGE, FURCHTBAR HÄSSLICHE KLEINE KERL HIER,") - (716 "JAKS ONKEL" "HAT MIR AUS JUX GERADE EIN PAAR ENTWENDET.") - (829) - (865 "JAKS ONKEL" "NUN DENN,") - (905 "JAKS ONKEL" "WÜRDEST DU DEINEM LIEBEN ALTEN ONKEL FREUNDLICHERWEISE 90 PRECURSOR-ORBS LEIHEN,") - (1043 "JAKS ONKEL" "DAMIT ER AUFBRECHEN KANN? ICH BIETE DIR EINE ENERGIEZELLE DAFÜR.") - ) - -("explorer-reminder-1" - (25 "JAKS ONKEL" "WAS? SO VIELE HAST DU NICHT? HARUMPH!") - (148 "JAKS ONKEL" "TJA, MIT WENIGER ALS 90 PRECURSOR-ORBS KANN ICH NICHT AUFBRECHEN,") - (328 "JAKS ONKEL" "MEIN JUNGE.") - (370) - ) - -("explorer-reminder-2" - (33 "JAKS ONKEL" "NUN JA, 90 PRECURSOR-ORBS FÜR EINE ENERGIEZELLE") - (188 "JAKS ONKEL" "SIND EIN AUSGESPROCHEN FAIRES GESCHÄFT.") - ) - -("explorer-resolution" - (28 "JAKS ONKEL" "AH, IHR WOLLT DAS GESCHÄFT ALSO DOCH MACHEN? PRÄCHTIG, AUSGESPROCHEN PRÄCHTIG!") - (179 "JAKS ONKEL" "HEY, HABT IHR DIE VEREINBARTEN PRECURSOR-ORBS?") - (310) - (324 "JAKS ONKEL" "HM, HOFFENTLICH VERGEUDET IHR DIESE SCHWER VERDIENTE ENERGIEZELLE NICHT.") - (462 "JAKS ONKEL" "MACHT'S GUT, CIAO CIAO, BYE BYE!") - ) - -("farmer-introduction" - (1 "FARMER" "MUSS DIE YAKOWS MELKEN, MUSS DIE YAKOWS MELKEN...") - (113 "FARMER" "OH! IHR SEID'S... ICH RUH MICH NUR EIN BISSCHEN AUS.") - (234 "FARMER" "HAB DEN GANZEN TAG VERSUCHT, DIESE STREITLUSTIGEN KÜHE") - (317 "FARMER" "ZURÜCK IN DEN PFERCH ZU KRIEGEN! EIN PAAR SELTSAME TYPEN WOLLTEN SIE SCHON STEHLEN.") - (454) - (456 "FARMER" "KÖNNTET IHR WOHL EINEM ALTEN MANN HELFEN UND SIE IN DEN PFERCH BRINGEN?") - ) - -("farmer-reminder-1" - (0 "FARMER" "HEY! MEINE YAKOWS SIND JA IMMER NOCH DRAUSSEN!") - (102 "FARMER" "SEID BITTE SO NETT UND HOLT SIE JETZT REIN.") - ) - -("farmer-reminder-2" - (0 "FARMER" "DIESE BLÖDEN YAKOWS STROLLEN IMMER NOCH RUM!") - (85 "FARMER" "JETZT BRINGT SIE DOCH ENDLICH MAL IN DEN PFERCH!") - ) - -("farmer-resolution" - (0 "FARMER" "AH, GUT GEMACHT, MEIN JUNGE. DIE VERLAUSTEN VIECHER SIND JETZT IM PFERCH.") - (134 "FARMER" "NUN KANN ICH BERUHIGT SCHLAFEN. HIER IST EINE ENERGIEZELLE FÜR DEINE MÜHE.") - (340) - ) - -("sage-introduction-misty-cannon" - (50 "SAMOS" "OH, IHR SEID'S, DIE GROSSEN BEZWINGER.") - (136 "SAMOS" "GUT, ICH HABE DA ETWAS ERNSTES MIT EUCH ZU BESPRECHEN.") - (258) - (261 :offscreen "SAMOS" "ES SCHEINT, ALS SEIEN DIE LURKER AUF DER NEBELINSEL ENORM AKTIV.") - (375) - (380 :offscreen "SAMOS" "VON MEINEM BEOBACHTUNGSTURM AUS KANN ICH ERKENNEN,") - (446 "SAMOS" "WIE SIE DIE PRECURSOR-ECO-STATION BOMBARDIEREN.") - (525) - (528 "SAMOS" "FALLS SIE SIE ÖFFNEN UND DAS DUNKLE ECO FREISETZEN, WERDEN WIR AM ENDE") - (663 "SAMOS" "NOCH SO HERUMLAUFEN WIE DIESE HÄSSLICHE KLEINE FLOHQUASTE HIER.") - (788) - (807 "SAMOS" "JAK, WIR MÜSSEN DEINE... TAUGLICHKEIT PRÜFEN.") - (920 "SAMOS" "BRING DEN FISCHER DAZU, DIR SEIN BOOT ZU LEIHEN UND FAHR ZUR NEBELINSEL.") - (1018 "SAMOS" "DU MUSST AUF DIE SPITZE DER PRECURSOR-ECO-STATION") - (1093 "SAMOS" "UND DIE VERMALEDEITE KANONE AUSSER GEFECHT SETZEN.") - (1171) - (1177 "DAXTER" "UND WAS... IST MIT MIR?") - (1232) - (1235 "SAMOS" "DU? DU KANNST MEINE FUSSBÖDEN WISCHEN, IN LETZTER ZEIT GLÄNZEN SIE NICHT MEHR SO SCHÖN.") - ) - -("sage-reminder-1-ecorocks" - (45 "SAMOS" "NA, IHR SEID MIR JA ZWEI TOLLE ABENTEURER!") - (132 "SAMOS" "SCHON ZURÜCK") - (165 "SAMOS" "UND HABT NOCH NICHT EINMAL MEINE BLOCKIERTEN ECO-ERNTER IN ORDNUNG GEBRACHT!") - (244) - (270 :offscreen "SAMOS" "SIE SIND AM ANDEREN ENDE DES STRANDES, JUNGS.") - (365) - (370 :offscreen "SAMOS" "JETZT...") - (400 :offscreen "SAMOS" "MACHT ENDLICH!") - ) - -("sage-reminder-1-generic" - (54 "SAMOS" "WAS MACHT IHR DENN HIER? IHR SOLLT ENERGIEZELLEN SAMMELN!") - (178) - (181 "SAMOS" "LASST MICH IN FRIEDEN, BIS IHR GENUG HABT!") - ) - -("sage-reminder-1-misty-cannon" - (24 "SAMOS" "DAS BOMBARDMENT WIRD SCHLIMMER!") - (86 :offscreen "SAMOS" "SUCH DEN FISCHER IM DSCHUNGEL, HOL DIR DIE ERLAUBNIS, SEIN BOOT ZU BENUTZEN") - (200 :offscreen "SAMOS" "UND FAHR ZUR NEBELINSEL, UM ENDLICH DIE KANONE ZU STOPPEN.") - (317) - (320 "SAMOS" "UND DU, DAXTER. FANG AN, AUFZUWISCHEN. SIEHT JA SCHLIMM AUS HIER!") - ) - -("sage-reminder-2-generic" - (27 "SAMOS" "IHR ZWEI VERSTEHT DEN ERNST DER LAGE WOHL IMMER NOCH NICHT.") - (137 "SAMOS" "HIER GEHT ES UM MEHR ALS NUR EINEN DUMMEN JUNGENSTREICH.") - (242 "SAMOS" "HIER GEHT UM DAS LEBEN, SO, WIE WIR ES KENNEN.") - (320) - (323 "SAMOS" "JETZT MACHT EUCH ENDLICH AUF UND STELLT EUCH EUREM SCHICKSAL.") - (455) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "HMM...")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "HMM, ICH MUSS DEN HITZESCHILD HIER IN GANG KRIEGEN...")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "WIR BRAUCHEN ENERGIEZELLEN, UM DEN HITZESCHILD ZU AKTIVIEREN...")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "WHERE'S MY SPANNER?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "FIRE CANYON IS SO HOT...")) -("EXP-AM01" :hint #x0 (0 "JAKS ONKEL" "ICH MUSS BALD ZU MEINER REISE AUFBRECHEN, ICH BRAUCHE PRECURSOR-ORBS!")) -("EXP-AM02" :hint #x0 (0 "JAKS ONKEL" "HM, MAL SEHEN, WO SOLL ICH ZUERST HIN?")) -("EXP-AM03" :hint #x0 (0 "JAKS ONKEL" "AH, ICH VERMISSE DIE LANDSTRASSE.")) -("EXP-AM04" :hint #x0 (0 "JAKS ONKEL" "ES GIBT SO VIEL ZU SEHEN UND SO WENIG ZEIT DAFÜR.")) -("EXP-AM05" :hint #x0 (0 "JAKS ONKEL" "HMPF, ZU MEINER ZEIT KONNTE MAN NOCH REISEN, OHNE VON MONSTERN ANGEGRIFFEN ZU WERDEN!")) -("EXP-LO02" :hint #x0 (0 "JAKS ONKEL" "ICH BRAUCHE MEHR PRECURSOR-ORBS.")) -("EXP-LO1A" :hint #x0 (0 "JAKS ONKEL" "(MURMELT)")) -("FAR-AM01" :hint #x0 (0 "FARMER" "(SCHNARCHT) HIER, BESSIE... HIER, BESSIE BESSIE... MEIN MÄDCHEN...")) -("FAR-AM02" :hint #x0 (0 "FARMER" "MUSS DIE ERNTE EINBRINGEN, BEVOR DIE JUNEKÄFER SIE HOLEN...")) -("FAR-AM2A" :hint #x0 (0 "FARMER" "MUSS DIE ERNTE EINBRINGEN, BEVOR DIE JUNEKÄFER SIE HOLEN...")) -("FAR-LO01" :hint #x0 (0 "FARMER" "(SCHNARCHT)")) -("FAR-LO1A" :hint #x0 (0 "FARMER" "(SCHNARCHT)")) -("SAGELP03" :hint #x0 (0 "SAMOS" "DIESE BEIDEN KÖNNTEN NOCH NICHT EINMAL IHRE EIGENEN OHREN FREIBEKOMMEN...")) - -("SAGELP04" :hint #x0 - (0 "SAMOS" "ER WIRD SEINEM ONKEL NIE DAS WASSER REICHEN KÖNNEN,") - (200 "SAMOS" "GANZ GLEICH, WAS DIE ANDEREN BEHAUPTEN.") - ) - -("SAGELP05" :hint #x0 (0 "SAMOS" "HALLO, BLAUER WEISER? HALLO? WO ZUM TEUFEL KANN ER NUR SEIN?!")) -("SAGELP06" :hint #x0 (0 "SAMOS" "ACH, DU MEINE GÜTE...")) -("SAGELP11" :hint #x0 (0 "SAMOS" "HALLO? IRGENDJEMAND, BITTE MELDEN!")) -("sksp0010" :hint #x231 (0 "DAXTER" "HEY! KOMM, WIR SEHEN UNS MAL DAS SPEEDBOOT VON DEM ALTEN FISCHKOPP AM DOCK AN!")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "HAST DU GESEHEN, WAS FÜR EIN RIESENSTÜCK DIESER LURKER-HAI") - (167 "DAXTER" "AUS DEM BOOT DES FISCHERS GEBISSEN HAT?") - (283) - (305 "DAXTER" "AM BESTEN, WIR HALTEN VIEL ABSTAND ZU DIESEN VIECHERN,") - (530 "DAXTER" "ICH GLAUBE NICHT, DASS WIR ES MIT SO EINEM HÖLLENTIER AUFNEHMEN KÖNNEN!") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "DAS MUSS EINS VON DEN PRECURSOR-ORAKELN SEIN, VON DENEN DER WEISE DAUERND ERZÄHLT!") - (238 "DAXTER" "HOFFENTLICH SIND DIE NICHT GENAU SO HÄSSLICH WIE ER!") - ) - -("sksp0017" :hint #x235 (0 "DAXTER" "WOW, GUCK DIR BLOSS MAL DIESE IRRE SKULPTUR AUF DEN FELSEN DA DRÜBEN AN!")) - -("sksp0043" :hint #x24e - (0 "DAXTER" "VIELLEICHT SOLLTEN WIR MAL DEN FISCHER AUSFINDIG MACHEN.") - (136 "DAXTER" "SOVIEL ICH WEISS, SOLL ER AM UNTEREN FLUSS IM DSCHUNGEL FISCHEN!") - ) - -("asstvb09" :hint #x24f - (0 "KEIRA" "IHR HABT KEINE 20 ENERGIEZELLEN, UM MEINEN HITZESCHILD ZU AKTIVIEREN!") - (216) - (234 "KEIRA" "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS.") - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "DIESER FAULE FARMER SCHULDET UNS EINE ENERGIEZELLE!") - (130 "DAXTER" "MIT DEM WERDEN WIR JETZT MAL REDEN!") - ) - -("asstvb04" :hint #x2b1 - (0 "KEIRA" "GUT, IHR HABT GENUG ENERGIEZELLEN GESAMMELT, UM MEINEN HITZESCHILD ZU AKTIVIEREN!") - (288 "KEIRA" "KLETTERT DIE KLIPPE HINTER DEM HAUS DES FARMERS HOCH") - (484 "KEIRA" "UND TREFFT MICH AM EINGANG ZUM FEUER-CANYON!") - (636 "KEIRA" "BRINGT DIE ENERGIEZELLEN MIT UND BEEILT EUCH!") - (810 "KEIRA" "MEIN VATER SAGT, ER HABE HIER WIEDER MEHR LURKER GESEHEN.") - ) - -("asstvb08" :hint #x2b2 - (0 "KEIRA" "BEEILT EUCH MIT DEN ENERGIEZELLEN, ICH WARTE AM ANFANG DES FEUER-CANYONS,") - (216 "KEIRA" "OBEN AUF DER KLIPPE, HINTER DEM HAUS DES FARMERS!") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "VOGEL-BEOBACHTERIN" "OH, JE, HOFFENTLICH GEHT'S DEM ARMEN KLEINEN GUT.") - (162 "VOGEL-BEOBACHTERIN" "HIER, EINE ENERGIEZELLE FÜR EUREN MUT.") - (243) - (306 "FLUT FLUT" "MAMA!") - (354) - (406 "FLUT FLUT" "MAMA!") - (430 "DAXTER" "OH, NEIN! NEIN! NEIN! NEIN! NEIN!") - (533) - (535 "VOGEL-BEOBACHTERIN" "SCHAUT MAL, IST DAS NICHT SÜSS? ES GLAUBT, DU WÄRST SEINE MAMA.") - (696) - (699 "DAXTER" "HÄ? ICH BIN NICHT DEINE MAMA! HAB ICH ETWA FEDERN?") - (803) - (807 "VOGEL-BEOBACHTERIN" "AH, LIEBE AUF DEN ERSTEN BLICK! OH...") - (936) - (939 "VOGEL-BEOBACHTERIN" "HÖRT MAL, JUNGS, ICH NEHME DAS KLEINE KÜKEN MIT INS DORF") - (1049 "VOGEL-BEOBACHTERIN" "UND KÜMMERE MICH ZUSAMMEN MIT DEM WEISEN DARUM.") - ) - -("bird-lady-introduction" - (125 "VOGEL-BEOBACHTERIN" "ACH, HERRJE, SO EIN FURCHTBAR KRANKES VÖGELCHEN.") - (245) - (251 "DAXTER" "HAH! SIEHST AUCH NICHT GERADE GESUND AUS, LADY!") - (326) - (331 "VOGEL-BEOBACHTERIN" "OH, ENTSCHULDIGUNG.") - (375 "VOGEL-BEOBACHTERIN" "ICH DACHTE, DU WÄRST EIN ORANGEGEFLECKTER BAUCHRINGFRING.") - (454) - (457 "VOGEL-BEOBACHTERIN" "WISST IHR, GESTERN HABEN EIN PAAR SCHRECKLICH BÖSE WESEN") - (560 "VOGEL-BEOBACHTERIN" "HIER AM STRAND EINE FLUT-FLUT-MUTTER GEFANGEN.") - (648) - (654 :offscreen "VOGEL-BEOBACHTERIN" "JETZT LIEGT DIESES ARME KLEINE WAISENEI IM NEST OBEN AUF DER KLIPPE") - (803 "VOGEL-BEOBACHTERIN" "UND ICH KOMME NICHT DRAN.") - (855 :offscreen "VOGEL-BEOBACHTERIN" "KÖNNT IHR DA DRAUFKLETTERN UND ES RUNTERSCHUBSEN?") - (944 "VOGEL-BEOBACHTERIN" "ICH HABE UNTEN ETWAS HEU HINGELEGT, UM ES AUFZUFANGEN.") - (1041) - (1044 "VOGEL-BEOBACHTERIN" "TUT EINER ALTEN FRAU EINEN GEFALLEN UND IHR BEKOMMT EINE ENERGIEZELLE DAFÜR.") - (1198) - ) - -("bird-lady-reminder-1" - (56 "VOGEL-BEOBACHTERIN" "OH, HALLO NOCHMAL. HABT IHR JUNGS DAS BLAUE EI AUF DER KLIPPE GEFUNDEN?") - (208) - (211 "VOGEL-BEOBACHTERIN" "SCHUBST ES RUNTER UND IHR BEKOMMT EINE ENERGIEZELLE!") - (348) - ) - -("bird-lady-reminder-2" - (58 "VOGEL-BEOBACHTERIN" "SEID IHR JUNGS ETWA IMMER NOCH HIER? HA, HA, HA!") - (170) - (174 "VOGEL-BEOBACHTERIN" "DEM ARMEN KLEINEN BLAUEN EI AUF DEM ABHANG IST BESTIMMT SCHRECKLICH KALT.") - (313) - (316 "VOGEL-BEOBACHTERIN" "SCHUBST ES VON DER KLIPPE RUNTER UND RETTET ES,") - (410 "VOGEL-BEOBACHTERIN" "DAFÜR BEKOMMT IHR EINE ENERGIEZELLE!") - ) - -("mayor-introduction" - (44 "BÜRGERMEISTER" "OH... (MURMELT) JETZT SAGT MIR BLOSS NICHT, DASS IHR ZWEI AUCH EIN PROBLEM HABT!") - (206) - (209 "BÜRGERMEISTER" "ERST WERDEN IN DER NÄHE DES DORFES MONSTER GESICHTET UND JETZT DAS!") - (352) - (355 "BÜRGERMEISTER" "SEHT IHR DIE WINDMÜHLENFLÜGEL? DA OBEN, JUNGS, JA? DIE STEHEN STILL,") - (497 "BÜRGERMEISTER" "DAS BEDEUTET, IM DORF GIBT'S KEINEN STROM!") - (569) - (586 "BÜRGERMEISTER" "DER ECO-STRAHL AUS DEM DSCHUNGEL-TEMPEL IST UNTERBROCHEN WORDEN, JUNGS") - (737) - (740 "BÜRGERMEISTER" "UND NIEMAND TRAUT SICH, NACHZUSEHEN, WAS PASSIERT IST!") - (861) - (864 "DAXTER" "IST DIE RECHNUNG BEZAHLT?") - (936) - (939 "BÜRGERMEISTER" "JA? HMM, OH, DU BIST JA WITZIG.") - (1089) - (1092 "BÜRGERMEISTER" "WÜRDET IHR ZWEI DEN ECO-STRAHL REPARIEREN? FÜR EINE ENERGIEZELLE?") - (1288 "BÜRGERMEISTER" "OH, NOCH ETWAS...") - (1370 "BÜRGERMEISTER" "IHR ZWEI WOLLT NICHT ZUFÄLLIG EINE KLEINIGKEIT") - (1478 "BÜRGERMEISTER" "FÜR DIE KAMPAGNE ZU MEINER WIEDERWAHL SPENDEN?") - (1580 "BÜRGERMEISTER" "DAS WÄRE MIR GLATT NOCH EINE ENERGIEZELLE WERT!") - (1687) - (1690 "BÜRGERMEISTER" "DAS MINIMUM FÜR EINE SPENDE BETRÄGT, ÄHM, JA, BESCHEIDENE 90 PRECURSOR-ORBS!") - ) - -("mayor-reminder-beams" - (25 "BÜRGERMEISTER" "SCHON ZURÜCK? UND OHNE DIE ECO-STRAHLEN ZU REPARIEREN?") - (157 "BÜRGERMEISTER" "(SCHLUCHZT) EUER DORF BRAUCHT EUCH, JUNGS!") - ) - -("mayor-reminder-donation" - (26 "BÜRGERMEISTER" "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.") - (159 "BÜRGERMEISTER" "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU.") - ) - -("mayor-resolution-beams" - (28 "BÜRGERMEISTER" "OH HO HO, WAS FÜR EIN WUNDERVOLLER ANBLICK! ICH DANKE EUCH!") - (190 "BÜRGERMEISTER" "UND DAS GANZE DORF WIRD MIR DANKEN.") - (280 "BÜRGERMEISTER" "OH, JUNGS, DANK EUCH HABEN WIR WIEDER STROM UND MEINE WIEDERWAHL IST GESICHERT!") - (472) - (475 "BÜRGERMEISTER" "UND DAFÜR, MEIN JUNGE, HAST DU DIR EINE ENERGIEZELLE VERDIENT!") - ) - -("mayor-resolution-donation" - (28 "BÜRGERMEISTER" "IHR WOLLT ALSO ETWAS SPENDEN? GUT... HOFFENTLICH EIN SCHÖNES SÜMMCHEN!") - (219) - (220 "BÜRGERMEISTER" "JUHU! OHHH, DAS IST EINE GROSSZÜGIGE SPENDE!") - (350 "BÜRGERMEISTER" "ICH-ICH-ICH HOFFE NUR,") - (386 "BÜRGERMEISTER" "D-D-DA-DASS DIESE ENERGIEZELLE EUREN EINSATZ GEBÜHREND BELOHNT!") - ) - -("sculptor-introduction" - (30 "BILDHAUER" "HEY... DU HAARIGER KLEINER KUMPEL!") - (154) - (161 "BILDHAUER" "OH... ICH DACHTE, DU WÄRST MEINE MUSE.") - (282) - (285 "DAXTER" "DEINE WAS?") - (334) - (343 "BILDHAUER" "HAST DU NOCH NIE EINE MUSE GESEHEN?") - (430) - (434 "BILDHAUER" "DAS IST EIN KLEINES LEUCHTENDES EICHHÖRNCHEN,") - (505 "BILDHAUER" "SO GROSS WIE DU, SEHR MUTIG UND IMMER GUT DRAUF!") - (622) - (632 "DAXTER" "OH, JETZT KAPIER ICH! WIE EIN KUMPELCHEN, HÄ?") - (757) - (763 "BILDHAUER" "ALSO, ES IST SO: OHNE MEINE MUSE KANN ICH NICHT BILDHAUERN.") - (920) - (923 "BILDHAUER" "ABER WENN SIE DA IST, SEHE ICH NUR SCHÖNHEIT IN ALLEN DINGEN, WISST IHR?") - (1087) - (1091 "BILDHAUER" "IM MOMENT KÖNNTE ICH MICH NICHT MAL AUS 'NER KISTE RAUSMEISSELN.") - (1182) - (1191 :offscreen "BILDHAUER" "ICH GLAUBE, SIE IST ZUR NEBELINSEL GELAUFEN.") - (1278) - (1281 "BILDHAUER" "ACH, ICH HOFFE BLOSS, IHR GEHTS GUT.") - (1370) - (1376 "BILDHAUER" "EINE ENERGIEZELLE, WENN IHR SIE ZURÜCKBRINGT!") - (1441) - (1467 "DAXTER" "MOMENT MAL! WIR WERDEN AUF KEINEN FALL ZURÜCK ZUR NEBELINSEL GEHEN!") - (1646) - (1649 "DAXTER" "ODER DOCH?") - ) - -("sculptor-reminder-1" - (27 "BILDHAUER" "OH, HEY, LEUTE! HABT IHR MEINE MUSE SCHON GEFUNDEN?") - (169) - ) - -("sculptor-resolution" - (90 "BILDHAUER" "OH, MEINE MUSE! IHR HABT SIE GERETTET! OH, MANN, IHR SEID DIE GRÖSSTEN!") - (230 "BILDHAUER" "HIER, NEHMT DIESE ENERGIEZELLE,") - (298 "BILDHAUER" "ICH BRAUCHE SIE NICHT MEHR, MEINE INSPIRATION IST WIEDER DA!") - ) - -("BIR-AM01" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "SEID IHR SCHON BEIM EI?")) -("BIR-AM02" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "JA, DA! EIN STÜCKCHEN WEITER NOCH!")) -("BIR-AM03" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "GUT, UND JETZT SCHUBST ES, ABER SACHTE!")) -("BIR-AM04" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "OH, JE, DAS WAR ABER NICHT SACHTE!")) -("BIR-AM05" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "NA LOS, SCHUBST DAS EI VON DER KLIPPE!")) -("BIR-AM06" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "OH!")) -("BIR-AM07" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "HIER, VÖGELCHEN! HIER, VÖGELCHEN!")) -("BIR-AM08" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "HIER, MEIN VÖGELCHEN!")) -("BIR-AM09" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "SEID VORSICHTIG, DA OBEN IST'S GEFÄHRLICH!")) -("BIR-AM10" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "VORSICHTIG, GANZ RUHIG, JETZT!")) -("BIR-AM11" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "GUT GEMACHT! WIR TREFFEN UNS HIER UNTEN BEIM EI!")) -("BIR-AM12" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "DU MUSST EIN WAHRER TIERFREUND SEIN!")) -("BIR-AM13" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "SEHT IHR DA OBEN NOCH ANDERE VÖGEL?")) -("BIR-LO01" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "(KUSS) (PFEIFEN)")) -("BIR-LO02" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "OH, SO EIN HÜBSCHES DING!")) -("BIR-LO03" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "SIEH MAL AN, EIN MUCKY-MUCK.")) -("BIR-am08" :hint #x0 (0 "VOGEL-BEOBACHTERIN" "HIER, MEIN VÖGELCHEN...")) -("CHI-AM01" :hint #x0 (0 "BÜRGERMEISTER" "OH, WAS FÜR EINE KATASTROPHE, EINE KATASTROPHE!")) - -("CHI-AM02" :hint #x0 - (0 "BÜRGERMEISTER" "JETZT WOLLEN SIE AUCH NOCH, DASS ICH IN DEN DSCHUNGEL GEHE - I-ICH!...") - (270) - (275 "BÜRGERMEISTER" "DA KÄMPFE ICH LIEBER MIT 'NEM WÜTENDEN FLUT FLUT!") - ) - -("CHI-AM03" :hint #x0 - (0 "BÜRGERMEISTER" "...E-ERST GREIFT EIN M-MONSTER DAS BOOT DES FISCHERS AN U-UND JETZT - JETZT DAS...") - (320) - (323 "BÜRGERMEISTER" "WAS - W-WAS KANN DENN SONST NOCH SCHIEFGEHEN?") - ) - -("CHI-AM04" :hint #x0 - (0 "BÜRGERMEISTER" "ÄHM... I-ICH, ÄHM... ICH... ÄHM...") - (220 "BÜRGERMEISTER" "VIELLEICHT BESEITIGT EINE... Ä-ÄHM... STEUERERHÖHUNG DIESEN SCHLAMASSEL?") - ) - -("CHI-AM05" :hint #x0 (0 "BÜRGERMEISTER" "PROBLEME... PROBLEME... PROBLEME!")) -("CHI-AM06" :hint #x0 (0 "MAYOR" "(SCHLUCHZT) JETZT WERDE ICH BESTIMMT NICHT WIEDERGEWÄHLT...")) -("CHI-AM07" :hint #x0 (0 "BÜRGERMEISTER" "(JAMMERT) WAS IST MIT DEM ENERGIESTRAHL DES DORFES GESCHEHEN?")) -("CHI-AM08" :hint #x0 (0 "BÜRGERMEISTER" "(JAMMERT) WARUM...?")) -("CHI-LO01" :hint #x0 (0 "BÜRGERMEISTER" "...WINDMÜHLE, MONSTER, STROM, WIEDERWAHLEN...")) -("CHI-LO02" :hint #x0 (0 "BÜRGERMEISTER" "...W-WAHLEN, MONSTER, WIEDERWAHLEN...")) -("SCU-AM01" :hint #x0 (0 "BILDHAUER" "ACH... ICH KANN ES EINFACH NICHT MEHR.")) -("SCU-AM02" :hint #x0 (0 "BILDHAUER" "ACH, HÄTTE ICH DOCH BLOSS EINE INSPIRATION.")) -("SCU-AM03" :hint #x0 (0 "BILDHAUER" "ICH BIN SO INSPIRIERT WIE... DIESER FELS.")) -("SCU-AM04" :hint #x0 (0 "BILDHAUER" "ACH... WO IST BLOSS MEINE MUSE?")) -("SCU-AM05" :hint #x0 (0 "BILDHAUER" "ICH KANN SO NICHT ARBEITEN!")) -("SCU-AM06" :hint #x0 (0 "BILDHAUER" "OH, MANN... OB SIE WOHL JE ZU MIR ZURÜCKKOMMT?")) -("SCU-LO01" :hint #x0 (0 "BILDHAUER" "ACH...")) -("sksp0028" :hint #x0 (0 "DAXTER" "TRITT DAS EI, HEHE, TRITT ES, TRITT ES!")) -("sksp0019" :hint #x236 (0 "DAXTER" "HEY, SEEMÖWEN! KOMM, WIR MACHEN UNS EINEN SPASS UND JAGEN SIE.")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "HEY! DIESER PELIKAN HAT SICH GERADE EINE ENERGIEZELLE GESCHNAPPT!") - (200) - (221 "DAXTER" "KOMM, WIR TRETEN IHM MAL ORDENTLICH IN DEN VOGELHINTERN!") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "HEY, VERSUCH MAL, GEGEN DIE FELSEN ZU BOXEN, UM SIE BEISEITE ZU SCHIEBEN!")) -("sksp0031" :hint #x23a (0 "DAXTER" "UUH! KOMM, WIR JAGEN MIT DER KANONE ALLES IN DIE LUFT!")) -("sksp0034" :hint #x23b (0 "DAXTER" "AWOOGA! AWOOGA! TAUCH NACH DIESEN EIERN, JAK, TAUCH!")) -("sksp0020" :hint #x268 (0 "DAXTER" "JA, HA, HA! KOMM, DAS MACHEN WIR NOCHMAL!")) -("sksp0021" :hint #x269 (0 "DAXTER" "DA SIND DIESE SEEMÖWEN SCHON WIEDER... SCHNAPPEN WIR SIE UNS!")) -("sksp0022" :hint #x26a (0 "DAXTER" "JA, HA, HA, HA, HA, HA, HA, HA, HA! JUHUHUU!")) -("sksp0023" :hint #x26b (0 "DAXTER" "WUHUU!")) -("sksp0024" :hint #x26c (0 "DAXTER" "JA, HA, HA! YEAH!")) -("sksp0025" :hint #x273 (0 "DAXTER" "WOW! SIE HABEN EINE LAWINE AUSGELÖST! KOMM, WIR SEHEN UNS DAS MAL AN!")) -("sksp0027" :hint #x274 (0 "DAXTER" "SCHNELL! WIR MÜSSEN DIE ENERGIEZELLE KRIEGEN, BEVOR DER PELIKAN SIE WIEDER ERWISCHT!")) - -("sksp0029" :hint #x275 - (0 "DAXTER" "AH, VIELLEICHT SOLLTEN WIR MAL MIT DER VOGEL-BEOBACHTERIN REDEN,") - (137 "DAXTER" "UM ZU SEHEN, OB WIR KEIN RÜHREI AUS DEM FLUT-FLUT-EI GEMACHT HABEN!") - ) - -("sagevb01" :hint #x288 - (0 "SAMOS" "IHR SCHEINT EUCH ENDLICH DAZU ENTSCHLOSSEN ZU HABEN,") - (173 "SAMOS" "MEINE ERNTER FREIZUSETZEN.") - (313) - (316 "SAMOS" "ICH WÜRDE EUCH JA GERNE GRATULIEREN, ABER IHR HABT SO VIEL ZU TUN,") - (569 "SAMOS" "DA WILL ICH EURE ZEIT NICHT VERSCHWENDEN.") - (705) - (712 "SAMOS" "ÜBRIGENS, FALLS EURE PLÄNE FEHLSCHLAGEN,") - (884 "SAMOS" "KÖNNTE DAXTER BESTIMMT JEDERZEIT IM DORF ANHEUERN UND SICH UM DAS RATTENPROBLEM KÜMMERN.") - (1237 "SAMOS" "(LACHT)") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "SCHLAG DIESE PFOSTEN VON UNTEN HOCH!")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (0 :offscreen "FISCHER" "MUSST DREI SACHEN WISSEN, WENN DU FISCHST.") - (79 :offscreen "FISCHER" "ERSTENS: KANNST ZWEI ARTEN VON FISCHEN FANGEN, EINPFÜNDER UND FÜNFPFÜNDER.") - (275 :offscreen "FISCHER" "ZWEITENS: LÄSSTE 20 PFUND VON DEN GUTEN FISCHEN ENTWISCHEN,") - (407 :offscreen "FISCHER" "DU, DANN NEHM ICH DIR DAS NETZ WEG.") - (470 :offscreen "FISCHER" "DRITTENS GIBT'S GIFTIGE AALE IM FLUSS,") - (573 :offscreen "FISCHER" "AUCH WENN DU NUR EINEN VON DEN BURSCHEN ERWISCHST, VERGIFTET ER DEN GANZEN FANG!") - ) - -("fisher-introduction" - (0 "DAXTER" "WAS HAST'N DA IM KORB?") - (50 "FISCHER" "ACH, NICHT DER REDE WERT.") - (107) - (110 "FISCHER" "DIE MONSTER DA AM OZEAN HABEN EIN STÜCK AUS MEINEM BOOT RAUSGEBISSEN") - (210) - (212 "FISCHER" "UND NUN VERLEIBEN SIE SICH MEINEN FANG EIN!") - (290) - (293 "FISCHER" "EGAL, WAS ICH MACHE, ICH FANG' HIER IM FLUSS EINFACH KEINEN FISCH MEHR.") - (419) - (425 "DAXTER" "UUH, VIELLEICHT IST'S DEIN MUNDGERUCH.") - (515) - (525 "FISCHER" "MEINST, DU KANNST DAS BESSER? VERSUCH MAL, MIT 'NEM WINZIGEN NETZ FLUSSFISCHE ZU FANGEN!") - (665) - (671 "FISCHER" "KRIEGST 'NE ENERGIEZELLE VON MIR, WENN DU 200 PFUND VON DEN VIECHERN FÄNGST!") - (808) - (814 "FISCHER" "UND ICH LASS DICH UND DEN KNIRPS HIER MEIN SCHNELLBOOT BENUTZEN,") - (917 "FISCHER" "UM ZUR NEBELINSEL ZU KOMMEN.") - (955) - (964 "FISCHER" "NA, WOLLT IHR ES VERSUCHEN?") - ) - -("fisher-reject" - (2 "FISCHER" "NAJA, NUN, WENN IHR ES EUCH ANDERS ÜBERLEGEN TUT,") - (90 "FISCHER" "DANN WISST IHR JA, WO IHR MICH FINDET.") - ) - -("fisher-reminder-1" (6 "FISCHER" "WOLLT'S WOHL MIT DEM FLUSS AUFNEHMEN, WAS?")) - -("fisher-resolution" - (0 "FISCHER" "IHR HABT'S GESCHAFFT! HABT 200 PFUND FISCH GEFANGEN!") - (115) - (120 "FISCHER" "NICHT SCHLECHT FÜR EIN PAAR LANDRATTEN!") - (185) - (199 "FISCHER" "HIER, DIE ENERGIEZELLE.") - (282 "FISCHER" "UND IHR KÖNNT EUCH MEIN BOOT VOM DOCK IM DORF HOLEN, WENN IHR ES BRAUCHT!") - ) - -("FIS-AM01" :hint #x0 (0 "FISCHER" "GRR, THESE DARN FISH... I NEVER CATCH ME A SINGLE ONE.")) -("FIS-AM02" :hint #x0 (0 "FISCHER" "DIE MONSTER, DIE'N STÜCK AUS'M BOOT RAUSGEBISSEN HABEN, WERDEN MICH NOCH RUINIEREN.")) - -("FIS-AM03" :hint #x0 - (0 "FISCHER" "VERFLUCHTE MISTDINGER!") - (105 "FISCHER" "KOMMT IN'S KÖRBCHEN, BLÖDE FISCHE...") - (367) - (370 "FISCHER" "HE, HE, HE, HE, HE...") - ) - -("FIS-AM04" :hint #x0 (0 "FISCHER" "TJA, ICH LIEB' DEN GERUCH VON FISCH AM MORGEN.")) -("FIS-AM05" :hint #x0 (0 "FISCHER" "TJA, ALSO, JETZT KÖNNT' ICH 'N SALZFISCH AUF ROGGENBROT VERTRAGEN.")) -("FIS-AM06" :hint #x0 (0 "FISCHER" "HMM, DAS WAR VIELLEICHT 'N RIESE, DER MIT DA ABGEHAUEN IS'...")) -("FIS-LO01" :hint #x0 (0 "FISCHER" "(MURMELT) SO WAS...")) -("FIS-LO03" :hint #x0 (0 "FISCHER" "(LACHT)")) -("FIS-LO04" :hint #x0 (0 "FISCHER" "BLÖDE FISCHE... WOLLEN EINFACH NICH' IN MEIN NETZ!")) -("FIS-LO05" :hint #x0 (0 "FISCHER" "(LACHT)")) -("FIS-TA01" :hint #x0 (0 "FISCHER" "NACH LINKS!")) -("FIS-TA02" :hint #x0 (0 "FISCHER" "NACH RECHTS!")) -("FIS-TA03" :hint #x0 (0 "FISCHER" "DA KOMMT'N GROSSER!")) -("FIS-TA04" :hint #x0 (0 "FISCHER" "DIR IS'N RIESEN KERL ERWISCHT!")) -("FIS-TA05" :hint #x0 (0 "FISCHER" "LASS SO EINEN NICHT NOCHMA' DURCH!")) -("FIS-TA06" :hint #x0 (0 "FISCHER" "RUHIG, JUNGE.")) -("FIS-TA07" :hint #x0 (0 "FISCHER" "DEINE SEGEL HÄNGEN IM WIND, JUNGCHEN.")) -("FIS-TA08" :hint #x0 (0 "FISCHER" "AH, ENTWISCHT!")) -("FIS-TA09" :hint #x0 (0 "FISCHER" "DU KÖNNTEST EIN GRÖSSERES NETZ BRAUCHEN.")) -("FIS-TA10" :hint #x0 (0 "FISCHER" "WIEDER VORBEI!")) -("FIS-TA11" :hint #x0 (0 "FISCHER" "RUHIG HALTEN! HAST'S FAST GESCHAFFT!")) -("FIS-TA1A" :hint #x0 (0 "FISCHER" "LINKS!")) -("FIS-TA2A" :hint #x0 (0 "FISCHER" "RECHTS!")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "HMM, WENN DAS BLAUE ECO EINE BRÜCKE BAUEN KANN,") - (148 "DAXTER" "DANN WETTE ICH, DASS ES AUCH EINE TÜR ÖFFNEN KANN!") - (275) - (281 "DAXTER" "KOMM, WIR GEHEN ZURÜCK UND LADEN DICH WIEDER AUF!") - ) - -("sksp0040" :hint #x23d - (0 "DAXTER" "KOMM, WIR KLETTERN AUF DIESE MASCHINE UND ZERSTÖREN DEN SPIEGEL,") - (150 "DAXTER" "DER DEN PRECURSOR-STRAHL ABLENKT!") - ) - -("sksp0041" :hint #x23e (0 "DAXTER" "WIR MÜSSEN AUF DIE SPITZE DIESES TURMES!")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "VIELLEICHT FRAGEN WIR MAL DEN FISCHER UNTEN AM DSCHUNGELFLUSS,") - (161 "DAXTER" "OB WIR UNS SEIN SPEEDBOOT AUSLEIHEN KÖNNEN, UM DAMIT RÜBER ZUR NEBELINSEL ZU ZISCHEN!") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "HEY, DA SIND KLEINE BLITZSPUREN AN DIESEN PFOSTEN") - (171 "DAXTER" "UND AUS DER ECO-ÖFFNUNG DA DRÜBEN KOMMEN BLITZE.") - (344) - (347 "DAXTER" "DENKST DU, WAS ICH DENKE?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "SUPER, JETZT HABEN WIR HIER EINEN PRECURSOR-STARTER,") - (117 "DAXTER" "ABER DEINE ENERGIE IST NICHT VOLL AUFGELADEN MIT DIESEM BLAUEN ZEUG,") - (297 "DAXTER" "ALSO BRINGT UNS DAS ÜBERHAUPT NICHTS!") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "WIR SOLLTEN DIESEM SCHWÄTZER VON EINEM BÜRGERMEISTER SAGEN,") - (135 "DAXTER" "DASS ER VERDAMMT TIEF IN UNSERER SCHULD STEHT,") - (230 "DAXTER" "WEIL WIR DEN ENERGIESTRAHL DES DORFES WIEDER ANGESCHLOSSEN HABEN!") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "DIESE TURMDINGSBUMSE, DIE IM GANZEN DSCHUNGEL VERTEILT SIND,") - (137 "DAXTER" "MÜSSEN DEN ECO-STRAHL WIEDER UMLENKEN.") - (233) - (236 "DAXTER" "KOMM, WIR BASTELN MAL DARAN HERUM!") - ) - -("sksp0b42" :hint #x278 - (0 "DAXTER" "JETZT LASS DOCH NICHT ALLE GELBEN FISCHE DURCH,") - (145 "DAXTER" "DAVON WIEGT JEDER FÜNF PFUND UND DAS IST GANZ SCHÖN VIEL, JAK!") - ) - -("asstvb02" :hint #x289 - (0 "KEIRA" "WOW, HABT IHR DAS GESEHEN? AUF DER GANZEN WELT SIND BLAUE ECO-ÖFFNUNGEN AKTIVIERT WORDEN!") - (350) - (355 "KEIRA" "ICH HAB' DOCH GEWUSST, DASS ES EINE MÖGLICHKEIT GIBT, SIE AUFZUMACHEN.") - (579) - (584 "KEIRA" "ES MUSS NOCH ANDERE ORTE GEBEN,") - (677 "KEIRA" "VON DENEN AUS MAN AUCH DIE RESTLICHEN ECO-ÖFFNUNGEN AUFMACHEN KANN.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "RICHTE DEN STRAHL AUS, INDEM DU DEN NÄCHSTEN TURM ANPEILST!")) -("sksp0050" :hint #x29d (0 "DAXTER" "ZERSTÖRE DEN SPIEGEL, JAK!")) -("sksp0051" :hint #x29e (0 "DAXTER" "SCHNAPP' DIR DIE KÄFER, JAK, SCHNAPP' DIR DIE KÄFER!")) -("sksp0052" :hint #x29f (0 "DAXTER" "LASS UNS ZUM NÄCHSTEN TURM GEHEN UND DORT AUCH DEN ECO-STRAHL WIEDER ANSCHLIESSEN!")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "HEY! WIR KÖNNEN JA DEM STRAHL FOLGEN, DANN KOMMEN WIR AUTOMATISCH ZUM NÄCHSTEN TURM!")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "WIR MÜSSEN DICH MIT DIESEM BLAUEN ZEUG AUFLADEN, UM DIE TÜR ZU ÖFFNEN!")) - -;; ----------------- -;; misty -;; ----------------- - -("sksp0064" :hint #x245 - (0 "DAXTER" "GUCK AUCH HINTER DICH!") - (87 "DAXTER" "WIR WISSEN DOCH NOCH, WAS DAS LETZTE MAL HIER DRINNEN PASSIERT IST!") - ) - -("sksp0067" :hint #x249 - (0 "DAXTER" "FALL JA NICHT IN DEN NEBEL UNTER UNS!") - (185 "DAXTER" "ICH GLAUB' NÄMLICH NICHT, DASS WIR ES DANN NOCH ZURÜCKSCHAFFEN!") - ) - -("sksp0059" :hint #x26e - (0 "DAXTER" "HIER DRIN GEFÄLLT'S MIR GAR NICHT!") - (115 "DAXTER" "JETZT HALTEN WIR DICH ABER MAL AUS DEM ZEUG RAUS, OKAY?") - ) - -("sksp0060" :hint #x26f - (0 "DAXTER" "OH, HIER LÄUFT'S MIR KALT DEN RÜCKEN RUNTER!") - (178 "DAXTER" "UND GLAUB MIR, DAS IST EINE GANZ NEUE ERFAHRUNG,") - (304 "DAXTER" "WENN MAN FELL HAT!") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "HEY! ICH SEHE DIE MUSE DES BILDHAUERS!")) -("sksp0062" :hint #x27e (0 "DAXTER" "LASS UNS DIESE BALLONLURKER UMPFLÜGEN UND KLEINHOLZ AUS IHNEN MACHEN!")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "AUS DEN LURKERN SOLLEN WIR KLEINHOLZ MACHEN, JAK, NICHT AUS DEN MINEN!") - (332) - (344 "DAXTER" "REGEL NUMMER EINS: HALT DICH IMMER VON DEN MINEN FERN!") - ) - -("sagevb02" :hint #x28a - (6 "SAMOS" "ICH MUSS ZUGEBEN, ICH BIN BEEINDRUCKT! IHR ZWEI HABT'S TATSÄCHLICH GESCHAFFT!") - (320) - (325 "SAMOS" "JETZT KÖNNEN DIE LURKER DIE PRECURSOR-ECO-STATION NICHT ÖFFNEN") - (525 "SAMOS" "UND DAMIT DIE WELT AUCH NICHT MIT DUNKLEM ECO ÜBERFLUTEN") - (700 "SAMOS" "UND NOCH NIE DAGEWESENE ZERSTÖRUNG ANRICHTEN.") - (863) - (880 "SAMOS" "...HÖR ENDLICH AUF, SO BLÖDE ZU GRINSEN, DAXTER! IHR ZWEI HABT NOCH VIEL ZU TUN!") - (1160 "SAMOS" "ALSO LOS!") - ) - -("asstvb03" :hint #x28b - (0 "KEIRA" "GUT! IHR HABT ALLE LURKER DARAN GEHINDERT, WEITER MINEN ABZUWERFEN!") - (250 "KEIRA" "SIE HABEN DIE GEWÄSSER UM UNSER DORF SCHON SEIT WOCHEN UNSICHER GEMACHT.") - (475 "KEIRA" "BRINGT EUREN ZOOMER ZURÜCK ZUM TRANS-PAD UND ICH TEELPORTIERE IHN WIEDER HIERHER!") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "DAS IST EIN HINTERHALT, JAK! EIN HINTERHALT!")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "MACH EINEN TAUCHSPRUNG AUF DIE WIPPE!")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "HOL DAS ROTE ECO!")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "ROTES ECO VERSTÄRKT DEINE ANGRIFFE!")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "WIR BRAUCHEN BLAUES ECO, UM DAS HIER AUFZULADEN!")) -("sksp0435" :hint #x2aa (0 "DAXTER" "SCHLAG DIESE KNOCHEN WEG!")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (25 "KEIRA" "SUPER! IHR HABT DIE 20 ENERGIEZELLEN, UM MEINEN HITZESCHILD ZU AKTIVIEREN!") - (147) - (150 "KEIRA" "SEID ABER VORSICHTIG,") - (196 "KEIRA" "DER SCHILD SCHÜTZT DEN ZOOMER NUR BIS ZU EINER TEMPERATUR VON 500 GRAD.") - (310 "KEIRA" "ALSO LASST IHN NICHT ZU HEISS LAUFEN.") - (352) - (355 :offscreen "KEIRA" "WENN IHR ÜBER GLÜHENDE LAVA FLIEGT, HEIZT IHN DAS GANZ SCHÖN SCHNELL AUF.") - (462) - (466 "KEIRA" "WENN IHR 500 GRAD ERREICHT, IST ES AUS!") - (554) - (559 "DAXTER" "AUS?! DU MEINST WIE IN \"AUS UND VORBEI\"?!") - (636) - (639 "KEIRA" "DER FEUER-CANYON IST SEHR HEISS,") - (700 "KEIRA" "ACHTET AUF SPRUNGMÖGLICHKEITEN, UM DEN ABSTAND ZUR LAVA ZU VERGRÖSSERN.") - (797) - (800 :offscreen "KEIRA" "ICH HABE AUCH MEHRERE BLAUE KÜHLBALLONS STEIGEN LASSEN,") - (874 "KEIRA" "MIT DENEN IHR DIE TEMPERATUR DES SCHILDES SCHNELL SENKEN KÖNNT.") - (956) - (962 "KEIRA" "ACH, JA, WENN IHR DURCH DEN CANYON SEID, VERGESST JA NICHT, DAS TELEPORTTOR") - (1063 "KEIRA" "IM LABOR DES BLAUEN WEISEN ZU AKTIVIEREN.") - (1148 "KEIRA" "DANN KÖNNEN WIR UNS ZU EUCH HINÜBERTELEPORTIEREN!") - (1222 "KEIRA" "VIEL GLÜCK!") - ) - -("sksp0076" :hint #x501 - (0 "DAXTER" "JAK, WIR MÜSSEN EIN PAAR SPRUNGPLATTFORMEN BENUTZEN,") - (164 "DAXTER" "UM NICHT AUF DEN HEISSEN BODEN ZU KOMMEN!") - ) - -("sksp0077" :hint #x502 (0 "DAXTER" "BALLONS GUT, GLÜHENDES HEISSES MAGMA SCHLECHT!")) -("sksp0078" :hint #x503 (0 "DAXTER" "FLIEG ÜBER DAS PRECURSOR-ZEUG, UM UNS ABZUKÜHLEN!")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "AHH! ICH WERDE STERBEN! ICH KOMME, GROSSVATER!") - (238) - (241 "DAXTER" "DU MUSST DIESES DING AUF DIE ANDERE SEITE BRINGEN, BEVOR ES ÜBERHITZT!") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "MIT DEM HÜPFDREHER KANNST DU ENGERE KURVEN FLIEGEN!")) -("sksp0081" :hint #x506 (0 "DAXTER" "AH! VIELLEICHT SOLLTE ICH LIEBER FLIEGEN!")) -("sksp0082" :hint #x507 (0 "DAXTER" "DU GIBST DIR MÜHE, DICH VON DIESEN DUNKLEN ECO-KISTEN FERNZUHALTEN, ODER?")) -("sksp0083" :hint #x508 (0 "DAXTER" "HUCH! MAL SEHEN, OB WIR DURCH DIESE LURKER AN HÖHE GEWINNEN!")) -("sksp0084" :hint #x509 (0 "DAXTER" "ZU NAHE, ZU NAHE!")) -("sksp0085" :hint #x50a (0 "DAXTER" "WOW! DIESES BABY WIRD VIEL ZU HEISS!")) -("sksp0086" :hint #x50b (0 "DAXTER" "IN EIN PAAR SEKUNDEN SIND WIR GEGRILLTES FLUT FLUT!")) -("sksp0087" :hint #x50d (0 "DAXTER" "TRIFF DIE BALLONS, UM UNS ABZUKÜHLEN!")) -("sksp0088" :hint #x50e (0 "DAXTER" "DA KOMMT WIEDER EIN BALLON!")) -("sksp0089" :hint #x50f (0 "DAXTER" "HÄTTE ICH DOCH HEUTE BLOSS VERSCHLAFEN!")) - -("sksp0090" :hint #x510 - (0 "DAXTER" "DU HAST EINEN BALLON VERPASST!") - (105 "DAXTER" "WIR BRAUCHEN DIESE BALLONS, SONST WERDEN WIR GEBRATEN!") - ) - -("sksp0091" :hint #x511 (0 "DAXTER" "DIESES BABY WIRD ZU HEISS!")) -("sksp0092" :hint #x512 (0 "DAXTER" "RIECHT'S HIER ETWA ANGEBRANNT?!")) -("sksp0093" :hint #x513 (0 "DAXTER" "ICH GLAUBE, MEIN SCHWANZ BRENNT!")) -("sksp0094" :hint #x514 (0 "DAXTER" "GLEICH EXPLODIERT ER!")) -("sksp0095" :hint #x515 (0 "DAXTER" "JUHUU! WIR HABEN'S GESCHAFFT!")) -("sksp0096" :hint #x516 (0 "DAXTER" "HIER GIBT'S AUCH SPÄHFLIEGEN!")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (60 "SAMOS" "WOW!") - (120) - (165 "SAMOS" "ICH GLAUBE, ICH WERDE MICH NIE AN DIESES KRIBBELN BEIM TELEPORTIEREN GEWÖHNEN.") - (280) - (300 "SAMOS" "...HEY!") - (330 :offscreen "SAMOS" "SIEHT AUS, ALS HÄTTE DER BLAUE WEISE EINE PARTY GESCHMISSEN.") - (410 "KEIRA" "OH, JE! IN FELSDORF IST DIE HÖLLE LOS!") - (500 "SAMOS" "WOW, UND WAS FÜR EINE PARTY!") - (565 "KEIRA" "NEIN, NEIN! ICH MEINTE, FELSDORF WIRD GERADE MIT BRENNENDEN FELSBLÖCKEN BOMBARDIERT!") - (720) - (810 "KEIRA" "OH! SIEHT SO AUS, ALS HÄTTE DER BLAUE WEISE AN EINER SCHWEBEMASCHINE GEARBEITET,") - (940 "KEIRA" "UM DIE BROCKEN VORZUSCHAFFEN.") - (988 :offscreen "KEIRA" "FALLS SIE FUNKTIONIERT, BRAUCHEN WIR ENERGIEZELLEN, UM SIE ANZUTREIBEN.") - (1070 "KEIRA" "DA WERDET IHR WOHL NOCH MEHR BESORGEN MÜSSEN.") - (1145 "SAMOS" "WIR SEHEN UNS BESSER SEINE AUFZEICHNUNGEN AN.") - (1220 :offscreen "SAMOS" "JAK, SIEH MAL NACH, WIE ES DEN DORFBEWOHNERN GEHT") - (1310 "SAMOS" "UND DANN KOMM ZURÜCK UND BERICHTE MIR.") - (1370 :offscreen "SAMOS" "UND NIMM DIE RATTE MIT!") - ) - -("assistant-village2-introduction-flutflut" - (30 "KEIRA" "WIEDER ZURÜCK, JUNGS?") - (69) - (75 "DAXTER" "\"JUNGE\"?") - (103) - (110 "DAXTER" "HEY, BABY, ICH BIN EIN AUSGEWACHSENER...") - (169) - (188 "DAXTER" "ÄH...") - (210) - (222 "DAXTER" "PELZIGER... WIESEL?") - (302) - (309 "KEIRA" "HEY, WISST IHR, WAS? MIT ERLAUBNIS DER VOGEL-BEOBACHTERIN") - (414 "KEIRA" "HABE ICH DAS FLUT-FLUT-BABY MIT EINEM SATTEL AUSGERÜSTET.") - (512) - (522 "KEIRA" "IM SUMPF SCHEINT NÄMLICH AUCH EIN TRANS-PAD ZU SEIN UND...") - (644) - (648 "KEIRA" "WENN IHR ES GEFUNDEN HABT, SCHICKE ICH EUCH DAS FLUT FLUT IN VOLLER REITAUSRÜSTUNG.") - (772) - (775 "KEIRA" "MIT SEINEN GROSSEN SPRÜNGEN HILFT ES EUCH BEIM ÜBERQUEREN DES TEERS.") - (870) - ) - -("assistant-village2-introduction-robbers" - (50 "KEIRA" "HEY, IHR ZWEI!") - (77 "KEIRA" "ICH WEISS, WO NOCH EINE ENERGIEZELLE IST!") - (132) - (150 "KEIRA" "IN DEN AUFZEICHNUNGEN DES BLAUEN WEISEN STEHT,") - (200 "KEIRA" "DASS IHM EIN PAAR FLIEGENDE LURKER EINE GESTOHLEN HABEN") - (292 "KEIRA" "UND DAMIT ZUM PRECURSOR-BECKEN GEFLOGEN SIND.") - (376 "KEIRA" "IHR KÖNNT DIE LURKER MIT EUREM ZOOMER JAGEN,") - (435 "KEIRA" "BIS IHR DEN MIT DER ENERGIEZELLE GEFUNDEN HABT.") - (502 "KEIRA" "DER ZOOMER STEHT AUF DEM TRANS-PAD IN DER NÄHE DES EINGANGS ZUM PRECURSOR-BECKEN.") - (614) - ) - -("assistant-village2-introduction-room" - (36 "KEIRA" "SCHEINBAR FÜHRT DAS PRECURSOR-BAUWERK VOR DER KÜSTE") - (132 "KEIRA" "ZU EINER VERLORENEN UNTERWASSERSTADT.") - (191) - (210 "KEIRA" "DER BLAUE WEISE HAT VERSUCHT, RAUSZUFINDEN,") - (265 "KEIRA" "WIE ER EINE DER KAMMERN AN DIE WASSEROBERFLÄCHE HOLEN KANN.") - (338 "KEIRA" "ER HATTE LEIDER KEINEN ERFOLG.") - (395 "KEIRA" "SEHT ES EUCH MAL AN!") - (424) - (436 "DAXTER" "ÄH... GIBT ES DORT NICHT VIELE...") - (495 "DAXTER" "LURKER-HAIE IN DEN GEWÄSSERN?") - (555 "KEIRA" "WIESO? HAST DU ANGST?") - (635 "DAXTER" "ICH? AUF KEINEN FALL!") - (702 "DAXTER" "ICH FRAG NUR WEGEN JAK...") - (752 "DAXTER" "DU WEISST JA...") - (782) - (800 "DAXTER" "WAS ER FÜR EIN ANGSTHASE IST.") - (845) - (870 "KEIRA" "NUN JA, WENN IHR BIS ZUM KORALLENRIFF SCHWIMMT,") - (929 "KEIRA" "GLAUBE ICH, LASSEN EUCH DIE LURKER-HAIE IN RUHE.") - (1000 "KEIRA" "DIE MÖGEN KEIN FLACHES WASSER.") - ) - -("assistant-village2-reminder-1-flutflut" - (34 "KEIRA" "DAS FLUT FLUT WIRD EUCH IM SUMPF VON NUTZEN SEIN.") - (118 "KEIRA" "SUCHT DAS TRANS-PAD, DANN SCHICKE ICH EUCH DAS FLUT FLUT.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (36 "KEIRA" "ICH WERDE EUCH DEN ZOOMER IN DIE NÄHE DES PRECURSOR-BECKENS TELEPORTIEREN,") - (130 "KEIRA" "DAMIT IHR DIESE FLIEGENDEN LURKER JAGEN KÖNNT, ALLES KLAR?") - (230) - ) - -("assistant-village2-reminder-1-room" - (45 "KEIRA" "SEID IHR SCHON ZUR VERLORENEN PRECURSOR-STADT GESCHWOMMEN?") - (122 "KEIRA" "VERSUCHT DOCH, DIE KAMMER ZU HEBEN, DIE DEN BLAUEN WEISEN INTERESSIERTE.") - (230) - ) - -("assistant-village2-resolution" - (40 "KEIRA" "TOLL!") - (60 "KEIRA" "DIE ENERGIEZELLEN FÜR DIE MASCHINE!") - (124 "KEIRA" "DAS SOLLTE AUSREICHEN, UM DEN FELSBLOCK ZU HEBEN.") - (200) - (305 "KEIRA" "NA, ALSO!") - (326) - (340 "KEIRA" "ABER PASST AUF, WENN IHR AUF DAS LURKER-MONSTER DORT OBEN TREFFT.") - (430) - (442 "DAXTER" "MOMENT!") - (470 "DAXTER" "ÄH...") - (500 "DAXTER" "ICH BLEIB' HIER UND BESCHÜTZE KEIRA!") - (563) - (574 "DAXTER" "JAK, DU WIRST BESTIMMT AUCH OHNE MICH MIT DEM MONSTER FERTIG.") - (662) - (672 "KEIRA" "OH, WIE HELDENHAFT.") - (728) - ) - -("gambler-introduction-1" - (24 "GLÜCKSSPIELER" "OH, NEIN. NICHT NOCH SO EIN \"HELD\".") - (97 "GLÜCKSSPIELER" "DER KAMPF DIESES SOGENANNTEN HELDEN GEGEN DAS MONSTER") - (176 "GLÜCKSSPIELER" "HAT MICH MEINE UNTERHOSE GEKOSTET.") - (238) - (241 "GLÜCKSSPIELER" "VERTRAUT MIR, SETZT ALLES AUF DAS MONSTER.") - (330) - (344 "GLÜCKSSPIELER" "NACH DIESER WETTE BIN ICH VÖLLIG BLANK!") - (414 "GLÜCKSSPIELER" "ICH SCHLAG' EUCH WAS VOR, HÖRT ZU.") - (473 "GLÜCKSSPIELER" "BESORGT MIR 90 ORBS, DANN KANN ICH ENDLICH AUS DIESEM ELENDEN FASS RAUS,") - (579 "GLÜCKSSPIELER" "DAFÜR KRIEGT IHR EINE ENERGIEZELLE.") - (651 "GLÜCKSSPIELER" "UND WENN IHR EIN SPIELCHEN WAGEN WOLLT, ICH HAB' EINE WETTE PARAT:") - (734 :offscreen "GLÜCKSSPIELER" "MEIN GROSSES COMEBACK!") - (780) - (784 :offscreen "GLÜCKSSPIELER" "SCHLAGT DIE REKORDZEIT BEIM RENNEN IN DER TOTENSCHLUCHT IM PRECURSOR-BECKEN!") - (902 :offscreen "GLÜCKSSPIELER" "ICH KASSIERE EIN NETTES SÜMMCHEN") - (949 "GLÜCKSSPIELER" "UND IHR BEKOMMT VON MIR NOCH EINE ZUSÄTZLICHE ENERGIEZELLE.") - ) - -("gambler-reminder-money" - (2 "GLÜCKSSPIELER" "HEY, DENKT AN MEINE ORBS.") - (57 "GLÜCKSSPIELER" "90 FÜR MICH UND EINE FÜR EUCH BEIDE. EINE ENERGIEZELLE MEINE ICH NATÜRLICH!") - ) - -("gambler-reminder-race" - (1 "GLÜCKSSPIELER" "NA, WORAUF WARTET IHR NOCH?") - (66 "GLÜCKSSPIELER" "DIESES FASS WIRD LANGSAM UNGEMÜTLICH!") - (113) - (116 "GLÜCKSSPIELER" "SCHLAGT DIE BESTZEIT FÜR DIE STRECKE IN DER TOTENSCHLUCHT,") - (200 "GLÜCKSSPIELER" "DANN GEWINNEN WIR BEIDE!") - ) - -("gambler-resolution-money" - (0 "GLÜCKSSPIELER" "HAHAHA! OH, JA!") - (66) - (70 "GLÜCKSSPIELER" "DIESE ORBS WERDEN MIR WIEDER AUS MEINEM FASS RAUSHELFEN!") - (146 "GLÜCKSSPIELER" "UND HIER IST DIE ENERGIEZELLE, DIE ICH DIR VORHIN VERSPROCHEN HABE!") - ) - -("gambler-resolution-race" - (12 "GLÜCKSSPIELER" "HA, TOLL GELAUFEN, JUNGCHEN.") - (65 "GLÜCKSSPIELER" "ICH WUSSTE, DASS DU ES SCHAFFST! WIR WERDEN'S WEIT BRINGEN!") - (159 "GLÜCKSSPIELER" "HIER IST DEINE ENERGIEZELLE UND ICH WERD' MIR JETZT MEIN GELD HOLEN!") - ) - -("geologist-introduction" - (27 "GEOLOGIN" "IHR ZWEI SEHT WIE FÄHIGE LEUTE AUS.") - (104 "GEOLOGIN" "ICH LEITE GERADE EIN FORSCHUNGSPROJEKT") - (149 "GEOLOGIN" "UND VIELLEICHT KÖNNT IHR MICH UNTERSTÜTZEN.") - (198) - (203 "DAXTER" "HEY, DAS IST HIER UNSER ABENTEUER,") - (276 "DAXTER" "DU SOLLST UNS HELFEN!") - (323) - (326 "GEOLOGIN" "NAJA, VIELLEICHT KÖNNEN WIR EINANDER HELFEN.") - (392) - (402 "GEOLOGIN" "SEIT JAHREN ERFORSCHE ICH DAS GRABVERHALTEN DER BLITZMAULWÜRFE") - (486 "GEOLOGIN" "IM PRECURSOR-BECKEN NAHE UNSERES DORFES.") - (557) - (566 :offscreen "GEOLOGIN" "ABER JETZT HABEN DIE BÖSEN LURKER DIE MAULWÜRFE AN DIE OBERFLÄCHE GETRIEBEN!") - (682) - (685 :offscreen "GEOLOGIN" "UND BLIND, WIE SIE SIND, FINDEN SIE DEN WEG UNTER DIE ERDE NICHT MEHR.") - (808) - (822 "GEOLOGIN" "TREIBT SIE DOCH BITTE WIEDER IN IHRE TUNNEL ZURÜCK,") - (890 "GEOLOGIN" "DAMIT WÜRDET IHR IHNEN DAS LEBEN RETTEN.") - (945) - (955 "GEOLOGIN" "ICH GEB' EUCH AUCH EINE ENERGIEZELLE DAFÜR, OKAY?") - (1028) - (1035 "DAXTER" "KLAR, BLITZMAULWÜRFE. GANZ TOLL.") - (1150) - (1163 "DAXTER" "OKAY, FÜR ZWEI ENERGIEZELLEN.") - (1232 "GEOLOGIN" "NETTER VERSUCH.") - (1269 "GEOLOGIN" "ABER WENN IHR ZWEI MIR 90 PRECURSOR-ORBS") - (1330 "GEOLOGIN" "FÜR MEIN FORSCHUNGSPROJEKT BESORGT,") - (1374 "GEOLOGIN" "BEKOMMT IHR VON MIR NOCH EINE ZUSÄTZLICHE ENERGIEZELLE.") - (1460 "GEOLOGIN" "EINVERSTANDEN?") - (1506) - ) - -("geologist-reminder-moles" - (24 "GEOLOGIN" "HABT IHR DIE BLITZMAULWÜRFE ZURÜCK UNTER DIE ERDE GETRIEBEN?") - (109) - (118 "GEOLOGIN" "IHR BEEILT EUCH BESSER, DIREKTES SONNENLICHT SCHADET IHNEN!") - ) - -("geologist-reminder-money" (26 "GEOLOGIN" "ICH BRAUCHE DIESE ORBS UNBEDINGT FÜR MEINE FORSCHUNGEN!")) - -("geologist-resolution-moles" - (30 "GEOLOGIN" "DANKE, DASS IHR DIE MAULWÜRFE GERETTET HABT, DAS WAS SO LIEB VON EUCH!") - (140) - (150 "GEOLOGIN" "HIER IST DIE ENERGIEZELLE, SIE HILFT EUCH WEITER.") - (227) - (237 "GEOLOGIN" "JETZT KANN ICH MICH WIEDER MEINER FORSCHUNG WIDMEN!") - ) - -("geologist-resolution-money" - (27 "GEOLOGIN" "OH, IHR HABT DIE ORBS!") - (80) - (80 "GEOLOGIN" "HIER IST DIE VEREINBARTE ENERGIEZELLE.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (26 "SAMOS" "TJA, DIE SITUATION HIER SIEHT SCHLIMMER AUS ALS EIN LURKER-GESICHT.") - (144) - (158 "SAMOS" "BEVOR DER BLAUE WEISE VERSCHWAND,") - (226 "SAMOS" "MACHTE ER NOTIZEN ÜBER SCHWIERIGKEITEN IN ALLEN ANGRENZENDEN GEBIETEN.") - (360 "SAMOS" "BESONDERS INTERESSANT FINDE ICH DIE DUNKLE-ECO-INFEKTION") - (490 "SAMOS" "EINIGER UNSCHULDIGER PFLANZEN IM PRECURSOR-BECKEN.") - (600 :offscreen "SAMOS" "KEIRA WIRD EUREN A-GRAV-ZOOMER ZUM NÄCHSTEN TRANS-PAD TELEPORTIEREN.") - (720 "SAMOS" "FLIEGT MIT DEM ZOOMER ZU EINER GRÜNEN-ECO-ÖFFNUNG") - (814 "SAMOS" "UND BRINGT DANN GRÜNES ECO ZU DEN BEFALLENEN PFLANZEN.") - (896 "SAMOS" "DAS HEILT SIE.") - (954 "SAMOS" "LASST ABER KEINE PLFANZE AUS,") - (1022 "SAMOS" "SONST INFIZIEREN NÄMLICH DIE KRANKEN PFLANZEN ERNEUT DIE GESUNDEN.") - (1155) - (1195 :offscreen "SAMOS" "UND DAXTER...") - (1260 "SAMOS" "FANG ENDLICH AN, ZU WISCHEN!") - (1310 "SAMOS" "BESONDERS IN DEN ECKEN!") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAMOS" "ICH HOFFE, IHR HABT AUCH WAS ZU ESSEN DABEI, DENN DAS IST ERST DER ANFANG.") - (130) - (142 "SAMOS" "LAUT DEM BLAUEN WEISEN WIMMELT ES") - (208 "SAMOS" "IM SUMPF AUF DER ANDEREN SEITE DER BUCHT NUR SO VON LURKERN.") - (300) - (310 :offscreen "SAMOS" "SCHEINBAR WOLLEN SIE EINEN ZEPPELIN BENUTZEN,") - (400 :offscreen "SAMOS" "UM EIN WICHTIGES PRECURSOR-ARTEFAKT AUS DEM SCHLAMM ZU BERGEN.") - (505) - (510 :offscreen "SAMOS" "UND IHR ZWEI MÜSST UNBEDINGT DORT HINÜBER, UM DIE HALTESEILE ZU LÖSEN.") - (660) - (690 "SAMOS" "WER WEISS, WOZU SIE DAS ARTEFAKT BENUTZEN WOLLEN?") - (764 "SAMOS" "ABER ES IST SICHER NICHTS GUTES, WIE DER MUNDGERUCH VON IHM HIER.") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (24 "SAMOS" "ICH GLAUBE FAST, ICH SEHE NICHT RICHTIG!") - (86) - (100 "SAMOS" "WEIL ICH DOCH GENAU WEISS...") - (145 "SAMOS" "...DASS IHR BEIDEN DORT UNTEN IM PRECURSOR-BECKEN SEID") - (240 "SAMOS" "UND DIE VOM DUNKLEN ECO BEFALLENEN PFLANZEN RETTET.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (0 "SAMOS" "WIESO SEID IHR SCHON ZURÜCK?") - (70) - (82 "SAMOS" "VON MEINEM BALKON AUS KANN ICH") - (134 :offscreen "SAMOS" "DEN LURKER-ZEPPELIN IMMER NOCH ÜBER DEM SUMPF SCHWEBEN SEHEN.") - (250) - (265 "SAMOS" "IHR HABT EURE AUFGABE OFFENSICHTLICH NOCH NICHT ERFÜLLT.") - (340) - (356 "SAMOS" "JETZT MACHT ENDLICH!") - (400) - ) - -("warrior-introduction" - (24 "KRIEGER" "OH... MEIN KOPF TUT SO WEH.") - (128) - (137 "DAXTER" "NA, IST BESTIMMT KEIN WICHTIGES KÖRPERTEIL BEI DIR!") - (212 "DAXTER" "MACH' DICH LOCKER, HARTER BURSCHE!") - (264 "KRIEGER" "JA, ICH WAR EINMAL EIN HARTER BURSCHE.") - (346 "KRIEGER" "VIELLEICHT SOGAR DER HÄRTESTE.") - (413 "KRIEGER" "FAST EIN JAHR LANG HAB' ICH DIESES DORF GANZ ALLEIN") - (488 "KRIEGER" "GEGEN DIESE SCHEUSSLICHEN KREATUREN VERTEIDIGT!") - (609 :offscreen "KRIEGER" "DOCH DANN KAM DIESES SCHRECKLICHE MONSTER UND BOMBARDIERTE UNS MIT FELSBROCKEN.") - (820 :offscreen "KRIEGER" "MIT GLÄNZENDER RÜSTUNG KLETTERTE ICH TAPFER DEN HÜGEL HINAUF,") - (949 "KRIEGER" "UM ES ZUM KAMPF AUFZUFORDERN!") - (1033) - (1044 "KRIEGER" "ABER ES HAT MICH WINDELWEICH GEKLOPFT, WIE EIN YAKOW-STEAK.") - (1172) - (1178 "DAXTER" "DANN GREIF'S DOCH MAL MIT DEINEM GEJAMMER AN!") - (1255 "DAXTER" "DAS IST ECHT TÖDLICH!") - (1303) - (1349 :offscreen "KRIEGER" "NACH MEINER LETZTEN BITTEREN NIEDERLAGE") - (1428 :offscreen "KRIEGER" "HAT ES DEN DURCHGANG ZU SEINEM UNTERSCHLUPF") - (1484 "KRIEGER" "MIT EINEM 30-TONNEN-FELSBLOCK VERSPERRT,") - (1570 :offscreen "KRIEGER" "SODASS MAN ES NUN NICHT MEHR ANGREIFEN KANN.") - (1640) - (1705 "KRIEGER" "DESHALB ERFAND UNSER WEISER MANN, MEISTER DES BLAUEN ECOS UND GENIE DER MECHANIK,") - (1905 "KRIEGER" "EINE MASCHINE, UM DEN FELSBLOCK WEGZURÄUMEN!") - (2030) - (2065 "KRIEGER" "DOCH BEVOR WIR SIE EINSCHALTEN KONNTEN, VERSCHWAND ER") - (2200) - (2240 "KRIEGER" "UND NAHM LEIDER ALLE SEINE ENERGIEZELLEN MIT.") - (2330) - (2384 :offscreen "KRIEGER" "WENIGSTENS HAB' ICH GENUG PONTONS AUS DER BRÜCKE ENTFERNT,") - (2465 :offscreen "KRIEGER" "SO KANN DAS MONSTER NICHT HIER HERUNTERKOMMEN UND MIR WEHTUN.") - (2561) - (2585 "DAXTER" "JA, GANZ, GANZ TOLL GEMACHT, MANN. ABER...") - (2683 "DAXTER" "DU MUSST SIE, ÄH... WIEDER IN DIE BRÜCKE EINSETZEN, OKAY?") - (2766) - (2770 "KRIEGER" "OH, NA KLAR. DA KANN ICH MIR JA GLEICH 'N STRICK NEHMEN!") - (2880 "KRIEGER" "(SEUFZT)") - (2943) - (2955 "KRIEGER" "NA SCHÖN, OKAY.") - (3036 "KRIEGER" "BRINGT MIR 90 PRECURSOR-ORBS UND ICH GEBE DIE PONTONS WIEDER FREI.") - (3173) - (3197 "KRIEGER" "ABER ICH KÄMPFE NICHT NOCH EIN MAL MIT DIESEM MONSTER!") - ) - -("warrior-reminder-1" - (27 "KRIEGER" "LASST EUCH RUHIG ZEIT BEIM BESORGEN DER PRECURSOR-ORBS.") - (125 "KRIEGER" "ICH HABE NICHT VOR, DIE PONTON-BRÜCKE SO BALD ZU REPARIEREN.") - ) - -("warrior-resolution" - (41 "KRIEGER" "OH.") - (67) - (85 "KRIEGER" "DAS IST JA TOLL.") - (120) - (137 "KRIEGER" "IHR HABT MIR DIE PRECURSOR-ORBS GEBRACHT.") - (234) - (254 "KRIEGER" "NA SCHÖN.") - (279) - (294 "KRIEGER" "ICH REPARIERE DIE BRÜCKE.") - (334) - (356 "KRIEGER" "ABER MIT DIESEM MONSTER MÖCHTE ICH NICHTS MEHR ZU TUN HABEN!") - (476) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "WIE HAT ER BLOSS DIESE SCHWEBEMASCHINE ZUM FUNKTIONIEREN GEBRACHT?")) -("ASSTLP24" :hint #x0 (0 "KEIRA" "OB UNS ALL DIESE ZELLEN AUCH GENUG ENERGIE LIEFERN WERDEN?")) -("GAM-AM01" :hint #x0 (0 "GLÜCKSSPIELER" "HEY, EINE ZWANZIG-ZU-EINS CHANCE IST NICHT SO SCHLECHT!")) -("GAM-AM02" :hint #x0 (0 "GLÜCKSSPIELER" "ACH, ES WAR 'NE SICHERE SACHE!")) -("GAM-AM03" :hint #x0 (0 "GLÜCKSSPIELER" "HEHEHEHE... NÄCHSTES MAL WERD' ICH DEN JACKPOT KNACHEN!")) -("GAM-AM04" :hint #x0 (0 "GLÜCKSSPIELER" "ACH, WENN ICH NUR EINEN ORB FÜR JEDE VERPASSTE CHANCE BEKOMMEN WÜRDE...")) -("GAM-AM05" :hint #x0 (0 "GLÜCKSSPIELER" "NAJA, VIELLEICHT KOMMEN FÄSSER JA WIEDER IN MODE!")) -("GAM-AM06" :hint #x0 (0 "GLÜCKSSPIELER" "OH, ICH BRAUCH' NE GLÜCKSSTRÄHNE.")) -("GAM-AM07" :hint #x0 (0 "GLÜCKSSPIELER" "AH, WIE STEHEN DIE WETTEN, DASS ICH MICH NICHT IN DIE BELAGERTE STADT TRAUE?")) -("GAM-AM08" :hint #x0 (0 "GLÜCKSSPIELER" "ICH DACHTE, DAS WAR EIN GUTER TIPP!")) -("GAM-AM09" :hint #x0 (0 "GLÜCKSSPIELER" "NEUER TAG, NEUE WETTE.")) -("GAM-AM10" :hint #x0 (0 "GLÜCKSSPIELER" "WETTEN, KEINER KANN'S MIT DIESEM MONSTER AUFNEHMEN?")) -("GAM-AM11" :hint #x0 (0 "GLÜCKSSPIELER" "HAHA, ICH HOL' MIR MEIN GELD UND ZIEHE WEITER.")) -("GAM-AM12" :hint #x0 (0 "GLÜCKSSPIELER" "NAJA, MAN KANN NICHT IMMER GEWINNEN.")) -("GAM-AM13" :hint #x0 (0 "GLÜCKSSPIELER" "HEY, WARUM LACHT IHR? FINDET IHR DAS ETWA LUSTIG?")) -("GEO-AM01" :hint #x0 (0 "GEOLOGIN" "HMM, INTERESSANTE SCHICHT...")) -("GEO-AM02" :hint #x0 (0 "GEOLOGIN" "ARME KLEINE MAULWÜRFE...")) -("GEO-AM03" :hint #x0 (0 "GEOLOGIN" "INTERESSANT...")) -("GEO-AM04" :hint #x0 (0 "GEOLOGIN" "VIEL GLÜCK, JUNGS!")) -("GEO-AM05" :hint #x0 (0 "GEOLOGIN" "GEMEINE LURKER...")) -("GEO-AM06" :hint #x0 (0 "GEOLOGIN" "AUCH STEINE HABEN GEFÜHLE...")) -("GEO-AM07" :hint #x0 (0 "GEOLOGIN" "HALTET DURCH, IHR KLEINEN!")) -("GEO-AM08" :hint #x0 (0 "GEOLOGIN" "JETZT KANN ICH MICH WIEDER MEINER FORSCHUNG WIDMEN!")) -("GEO-LO01" :hint #x0 (0 "GEOLOGIN" "ICH MUSS ZU MEINER FORSCHUNGSARBEIT ZURÜCK.")) -("GEO-LO02" :hint #x0 (0 "GEOLOGIN" "HMM, DIESER STEIN IST SEHR ALT...")) -("SAGELP20" :hint #x0 (0 "SAMOS" "HMM... HMM... HMM... HMM...")) -("SAGELP21" :hint #x0 (0 "SAMOS" "MAN MUSS DIESE LURKER AUFHALTEN.")) -("SAGELP22" :hint #x0 (0 "SAMOS" "VERSTEHE...")) -("SAGELP23" :hint #x0 (0 "SAMOS" "NEIN...")) -("SAGELP24" :hint #x0 (0 "SAMOS" "WAS KANN IHM NUR ZUGESTOSSEN SEIN?")) -("WAR-LO1A" :hint #x0 (0 "KRIEGER" "(HEULT)")) -("WAR-LO1B" :hint #x0 (0 "KRIEGER" "(HEULT)")) - -("WAR-LO1C" :hint #x0 - (0 "KRIEGER" "(HEULT)") - (270 "KRIEGER" "(HEULT) NEIN, NEIN, NEIN, NEIN...") - ) - -("asstvb22" :hint #x326 - (0 "KEIRA" "WOW! IHR HABT EIN PAAR DER UNTERWASSER-RUINEN AN DIE OBERFLÄCHE GEHOBEN!") - (300 "KEIRA" "WIE ES SCHEINT, KANN MAN MIT ECO MEHR MACHEN, ALS WIR BISHER WUSSTEN.") - (520 "KEIRA" "UND MIT DER KAMMER IST AUCH EINE ENERGIEZELLE HOCHGEKOMMEN.") - (714 "KEIRA" "KLETTERT RAUF UND HOLT SIE!") - ) - -("asstvb20" :hint #x327 - (0 "KEIRA" "GUT GEFLOGEN! DIESE LURKER SIND KEINE WIRKLICHEN GEGNER FÜR DEN ZOOMER!") - (270 "KEIRA" "JETZT HABEN WIR EINE ENERGIEZELLE MEHR!") - ) - -("asstvb21" :hint #x328 - (0 "KEIRA" "GUT GEMACHT! SEID IHR NICHT FROH, DASS IHR UNSERE KLEINE FLUT FLUT-FREUNDIN GERETTET HABT?") - (314 "KEIRA" "SIE WIRD EUCH VIELLEICHT NOCH EINMAL BEHILFLICH SEIN KÖNNEN.") - (515 "KEIRA" "JETZT BRINGT SIE ZUM TRANS-PAD, DANN HOLE ICH SIE NACH HAUSE.") - ) - -("sagevb03" :hint #x36a - (0 "SAMOS" "IHR BEEIDRUCKT MICH IMMER MEHR!") - (175 "SAMOS" "ABER VIELLEICHT LIEGT DAS AUCH NUR AN MEINEN NIEDRIGEN ERWARTUNGEN!") - (420 "SAMOS" "OKAY, GENUG DER SCHMEICHELEI! WEITERMACHEN!") - ) - -("sagevb04" :hint #x36b - (0 "SAMOS" "GUT GEMACHT, JAK! DEIN ONKEL WÄRE STOLZ AUF DICH!") - (240 "SAMOS" "DAS WAR DER RIESIGE ARM EINES PRECURSOR-ROBOTERS.") - (440 "SAMOS" "ICH HABE NOCH NIE EINEN IN SOLCH GUTEM ZUSTAND GESEHEN.") - (666 "SAMOS" "ICH KANN MIR NICHT VORSTELLEN, WAS DIE LURKER DAMIT VORHATTEN,") - (868 "SAMOS" "ABER ES IST BESSER, DASS SIE IHN NICHT BEKOMMEN HABEN.") - (1090) - (1100 "SAMOS" "WENN DU SO WEITERMACHST...") - (1260 "SAMOS" "ACH, NEIN. EIN HELD WIRST DU NIE WERDEN.") - (1420) - (1425 "SAMOS" "ABER GIB' NICHT AUF, DU MACHST DAS GANZ HERVORRAGEND!") - ) - -("asstvb71" :hint #x36c - (0 "KEIRA" "IHR HABT NICHT GENUG ENERGIEZELLEN, UM DIE MASCHINE DES BLAUEN WEISEN ZU BETREIBEN.") - (215 "KEIRA" "WIR KÖNNEN DIESEN FELSBLOCK NICHT BEWEGEN, BIS IHR 45 ENERGIEZELLEN GESAMMELT HABT.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "SOLANGE WIR NICHT WISSEN, WARUM DER BLAUE WEISE VERSCHWUNDEN IST,") - (200 "KEIRA" "MÜSST IHR 45 ENERGIEZELLEN SAMMELN, UM SEINE MASCHINE ANZUTREIBEN.") - (436 "KEIRA" "GEHT UND BESORGT SIE!") - ) - -("asstvb28" :hint #x36f - (0 "KEIRA" "HEY! VERGESST DEN WEISEN UND MICH NICHT!") - (178) - (184 "KEIRA" "IHR MÜSST DAS TELEPORTTOR EINSCHALTEN, SODASS WIR DURCHKOMMEN KÖNNEN!") - (374) - (380 "KEIRA" "ES BEFINDET SICH IM LABOR DES BLAUEN WEISEN, AM ENDE DES FEUER-CANYONS.") - (674) - (680 "KEIRA" "WENN IHR UNS NICHT DURCHKOMMEN LASST, KÖNNEN WIR EUCH AUCH NICHT HELFEN!") - ) - -("asstvb29" :hint #x370 - (0 "KEIRA" "HEY! WIR WARTEN IMMER NOCH!") - (150 "KEIRA" "SCHALTET ENDLICH DAS TELEPORTTOR EIN!") - ) - -("asstvb30" :hint #x371 (1 "KEIRA" "HEY! WIR KÖNNEN NICHT DURCHKOMMEN, WENN DAS TELEPORTTOR NICHT EINGESCHALTET IST!")) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (5 "BILLY" "GUT! DIESE RATTEN KÖNNEN JEDERZEIT ZURÜCKKOMMEN.") - (129 "BILLY" "ERSCHIESST SIE, DAMIT WENIGSTENS EIN LECKERCHEN ÜBRIGBLEIBT.") - ) - -("billy-introduction" - (6 "BILLY" "HALLO, FREUNDE! GEFÄLLT EUCH MEIN SCHÖNER SUMPF? DAS GEHÖRT ALLES MIR,") - (200 "BILLY" "ZUMINDEST DAS, WAS NICHT IM SCHLAMM VERSINKT! HA, HA, HA!") - (349) - (380 "DAXTER" "SO, WIE ES HIER RIECHT, IST DEINE BADEWANNE SCHON GANZ SCHÖN LANGE IM SCHLAMM VERSUNKEN!") - (520) - (540 "BILLY" "WAS? BADEWANNE? ICH HAB HIER GANZ ANDERE PROBLEME...") - (677) - (706 "BILLY" "IN DER GEGEND TREIBEN EIN PAAR WIDERLICHE LURKER IHR UNWESEN") - (830 "BILLY" "UND GREIFEN SICH HIER ECHT ALLES AB.") - (910 "BILLY" "UND SIE HABEN MEIN ZAHMES HIPHOG FARTHY VERSCHEUCHT...") - (1000 "BILLY" "ES IST JETZT SCHON SO LANGE WEG...") - (1136 :offscreen "BILLY" "ICH STELLE IMMER SEIN LIEBLINGSFRESSEN RAUS, ABER DIESE SUMPFRATTEN STEHLEN ES JEDES MAL!") - (1318 :offscreen "BILLY" "WENN IHR DIESE VERDAMMTEN VIECHER IN SCHACH HALTET,") - (1414 "BILLY" "RIECHT FARTHY GANZ SICHER DIE LECKEREIEN UND KOMMT ZURÜCK!") - (1509) - (1527 "BILLY" "KÖNNT IHR MIR HELFEN?") - ) - -("billy-reject" - (7 "BILLY" "WENN IHR EUCH DAS NATÜRLICH ANDERS ÜBERLEGT,") - (113 "BILLY" "DANN WISST IHR JA, WO IHR MICH FINDET! (LACHT)") - (249) - ) - -("billy-reminder-1" (36 "BILLY" "NA, WOLLT IHR MIR JETZT DOCH NOCH HELFEN?")) -("billy-resolution" (0 "BILLY" "BRAT' MIR EINER'N STORCH, KANNST DU ABER SCHIESSEN! VIELEN DANK FÜR DIE HILFE!")) -("BIL-AM01" :hint #x0 (0 "BILLY" "MM-HMM, ICH LIEBE DIESEN SCHLAMM.")) -("BIL-AM02" :hint #x0 (0 "BILLY" "VERDAMMTE SUMPFRATTE.")) -("BIL-AM03" :hint #x0 (0 "BILLY" "JETZT BRAUCHE ICH EINEN ORDENTLICHEN SCHLUCK VON MAMAS MEDIZIN.")) -("BIL-AM04" :hint #x0 (0 "BILLY" "JIPPIE!")) -("BIL-AM05" :hint #x0 (0 "BILLY" "ICH BRAUCHE JETZT MEINE BRAUNE MEDIZIN.")) -("BIL-AM06" :hint #x0 (0 "BILLY" "ICH BRAUCH' WAS ZUM ABKÜHLEN.")) -("BIL-AM07" :hint #x0 (0 "BILLY" "VERDAMMTE HITZE... MICH JUCKT'S ÜBERALL.")) -("BIL-AM08" :hint #x0 (0 "BILLY" "VERDAMMT... VON DIESER HITZE KRIEG' ICH NOCH AUSSCHLAG.")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "MM-HMM! ICH LIEBE DIESEN SCHLAMM!")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "VERDAMMTE SUMPFRATTE!")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "VERDAMMTE SUMPFRATTE!")) -("BIL-LO01" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO02" :hint #x0 (0 "BILLY" "KOMM-KOMM-KOMM-KOMM!")) -("BIL-LO03" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "KOMM JETZT HER, KOMM!")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "KOMM! KOMM!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "ERSCHIESS SIE!")) -("BIL-TA02" :hint #x0 (0 "BILLY" "GUTER SCHUSS!")) -("BIL-TA03" :hint #x0 (0 "BILLY" "DA DRÜBEN!")) -("BIL-TA04" :hint #x0 (0 "BILLY" "VERDAMMT!")) -("BIL-TA05" :hint #x0 (0 "BILLY" "'NE RATTE HAT DAS FRESSEN!")) -("BIL-TA06" :hint #x0 (0 "BILLY" "UND NOCH EINE...")) -("BIL-TA07" :hint #x0 (0 "BILLY" "NUR NOCH EINE ÜBRIG...")) -("BIL-TA08" :hint #x0 (0 "BILLY" "VOLLTREFFER.")) -("BIL-TA09" :hint #x0 (0 "BILLY" "YEEHAW!")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "ERSCHIESS SIE!")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "GUTER SCHUSS!")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "DA DRÜBEN!")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "OH, VERDAMMT!")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "VERDAMMT!")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "'NE RATTE HAT DAS FRESSEN!")) -("SKSP009F" :hint #x0 (0 "DAXTER" "SCHNAPP' DIR WELCHE! SCHNAPP' DIR WELCHE, HA, HA, HA!")) - -("sksp0137" :hint #x351 - (0 "DAXTER" "BESTIMMT KÖNNEN WIR DIESE FELSBROCKEN ZERSCHIESSEN,") - (136 "DAXTER" "WENN WIR MIT GELBEM ECO AUFGELADEN SIND!") - ) - -("sksp0138" :hint #x352 - (0 "DAXTER" "WIR SOLLTEN DIESE GROSSEN FELSBROCKEN ZERSCHIESSEN,") - (132 "DAXTER" "AN DENEN DAS HALTESEIL FESTGEMACHT IST.") - ) - -("sksp0139" :hint #x353 (0 "DAXTER" "VIELLEICHT SOLLTEN WIR DIESEM SPINNER HELFEN, SEIN VIECH ZU FINDEN.")) -("sksp0140" :hint #x354 (0 "DAXTER" "DAS FLUT FLUT KANN LÄNGER GLEITEN, WENN ES IN DER LUFT NOCH MAL SPRINGT!")) -("sksp0141" :hint #x355 (0 "DAXTER" "BERÜHR' DIESEN HEISSEN SCHWARZEN TEER NICHT, ODER DU WIRST DIR WEHTUN!")) -("sksp0142" :hint #x356 (0 "DAXTER" "HIER KANNST DU SICHER DURCH'S WASSER WATEN.")) -("sksp0143" :hint #x357 (0 "DAXTER" "AAH! BEFREI' DICH AUS DER ZUNGE!")) -("sksp0144" :hint #x358 (0 "DAXTER" "SCHIESS AUF DIE RATTENNESTER, DAMIT NICHT IMMER NOCH MEHR RATTEN DORT RAUSKOMMEN!")) -("sksp0145" :hint #x359 (0 "DAXTER" "WOW! DU KANNST FEUERBÄLLE ABSCHIESSEN, WENN DU MIT GELBEM ECO AUFGELADEN BIST!")) -("sksp0146" :hint #x35a (0 "DAXTER" "HEY! DAS IST GELBES ECO!")) -("sksp0147" :hint #x35b (0 "DAXTER" "AN DIESER STANGE DA DRÜBEN KANNST DU SCHWINGEN!")) -("sksp0148" :hint #x35c (0 "DAXTER" "PASS AUF, DIESE BROMBEERRANKE HAT HÖLLISCH VIELE DORNEN!")) -("sksp0149" :hint #x35d (0 "DAXTER" "HEY, SIEHT AUS WIE EINES VON DEN ZEPPELIN-HALTESEILEN!")) -("sksp0150" :hint #x35e (0 "DAXTER" "SEI VORSICHTIG, WENN DER FROSCH AUFGELADEN IST!")) -("sksp0151" :hint #x35f (0 "DAXTER" "LAUF WEG, JAK!")) -("sksp0152" :hint #x360 (0 "DAXTER" "PASS AUF, JAK! DAS IST EIN HINTERHALT!")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "HEY, DAS MUSS DAS PRECURSOR-ARTEFAKT SEIN, HINTER DEM DIE LURKER HER SIND!") - (226 "DAXTER" "SIEHT AUS WIE EIN RIESIGER ROBOTER-ARM!") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "DIESER SCHWARZE TEER SIEHT HEISS UND GEFÄHRLICH AUS!")) -("sksp0155" :hint #x363 (0 "DAXTER" "SCHIESS MIT DEM GELBEN-ECO-ZEUG AUF DIE FLEDERMÄUSE!")) -("sksp0156" :hint #x364 (0 "DAXTER" "VIELLEICHT KÖNNEN WIR UNS UNTER DEN FLEDERMÄUSEN DURCHDUCKEN!")) -("sksp0157" :hint #x365 (0 "DAXTER" "HAST DU DAS GESEHEN? NUR NOCH DREI HALTESEILE!")) -("sksp0158" :hint #x366 (0 "DAXTER" "WOW! NUR NOCH ZWEI HALTESEILE!")) -("sksp0159" :hint #x367 (0 "DAXTER" "DIESER ZEPPELIN WIRD KAUM NOCH GEHALTEN! KOMM, WIR SUCHEN DAS LETZTE HALTESEIL!")) -("sksp0160" :hint #x368 (0 "DAXTER" "HEY! HIER IST DAS FLUT FLUT!")) -("sksp0161" :hint #x369 (0 "DAXTER" "ICH HASSE RATTEN! UND DABEI SEHE ICH FAST WIE EINE AUS.")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "WOW! WIR HABEN DIE REKORDZEIT GESCHLAGEN!")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "ICH HAB'S DIR EINMAL GESAGT UND ICH SAG'S DIR NOCHMAL...") - (164 "DAXTER" "HALT DICH VON DEN DUNKLEN ECO-KISTEN FERN!") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "KOMM, WIR TREIBEN WIEDER DIESE MAULWÜRFE WIEDER ZURÜCK UNTER DIE ERDE!")) -("sksp0112" :hint #x338 (0 "DAXTER" "JETZT HOLEN WIR UNS UNSERE ENERGIEZELLEN VON DER GEOLOGIN.")) -("sksp0113" :hint #x339 (0 "DAXTER" "DAS MÜSSEN DIE INFIZIERTEN PFLANZEN SEIN, VON DENEN DER ALTE HOLZKOPF GEREDET HAT.")) -("sksp0114" :hint #x33a (0 "DAXTER" "WIR MÜSSEN GRÜNES ECO BENUTZEN, UM DIESE PFLANZEN ZU HEILEN!")) -("sksp0115" :hint #x33b (0 "DAXTER" "JAK, FLIEG DURCH DIE GRÜNE ECO-ÖFFNUNG.")) -("sksp0116" :hint #x33c (0 "DAXTER" "DA IST EINER VON DIESEN FLIEGENDEN LURKERN! VIELLEICHT HAT ER EINE ENERGIEZELLE!")) -("sksp0117" :hint #x33d (0 "DAXTER" "DAS IST DAS MAULWURFLOCH!")) -("sksp0118" :hint #x33e (0 "DAXTER" "LASS UNS JETZT ÜBER DIE INFIZIERTEN PFLANZEN FLIEGEN!")) -("sksp0119" :hint #x33f (0 "DAXTER" "EIN RING GESCHAFFT, ABER ES WARTEN NOCH JEDE MENGE AUF UNS!")) -("sksp0120" :hint #x340 (0 "DAXTER" "BEEIL DICH! DA IST DER NÄCHSTE RING!")) -("sksp0121" :hint #x341 (0 "DAXTER" "SCHNELL! DU MUSST DURCH ALLE RINGE FLIEGEN, BEVOR SIE ERLÖSCHEN!")) -("sksp0122" :hint #x342 (0 "DAXTER" "HEY! DAS GRASS BREMST UNS!")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "SCHNELL! FOLGE DEM ROHR!")) -("sksp0124" :hint #x344 (0 "DAXTER" "ICH HABE EIN GANZ SCHLECHTES GEFÜHL BEI DER SACHE.")) -("sksp0125" :hint #x345 (0 "DAXTER" "WIE ES SCHEINT, MÜSSEN DIESE DINGER MIT BLAUEM ECO AUFGELADEN WERDEN.")) -("sksp0126" :hint #x346 (0 "DAXTER" "KOMM, WIR HOLEN UNS DIE ENERGIEZELLE VOM DACH DIESER KAMMER!")) -("sksp0127" :hint #x347 (0 "DAXTER" "TRITT DEN KLEINEN WICHT DA OBEN!")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK! RENN! DAS DUNKLE ECO STEIGT!")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHH! DAS DUNKLE ECO KOMMT NÄHER!")) -("sksp0130" :hint #x34a (0 "DAXTER" "AH, ICH GLAUBE, WIR MÜSSEN DIESE PLATTFORMEN EINSCHALTEN ODER SO WAS.")) -("sksp0131" :hint #x34b (0 "DAXTER" "HEY! ICH GLAUBE, DU KANNST EINEN TAUCHSPRUNG AUF DIESE KERLE MACHEN!")) -("sksp0132" :hint #x34c (0 "DAXTER" "EE-EE! WHOA! WHO-AH! WHO-AHH!")) -("sksp0133" :hint #x34d (0 "DAXTER" "ICH WETTE, DIESE DINGER KÖNNEN WIR ALLE AUF EINMAL AUFLADEN!")) - -("sksp0134" :hint #x34e - (0 "DAXTER" "WAS HÄLTST DU DAVON,") - (50 "DAXTER" "VIELLEICHT MAL EIN BISSCHEN VORSICHTIGER MIT DIESEN HEISSEN ROHREN ZU SEIN?") - ) - -("sksp0135" :hint #x34f (0 "DAXTER" "DIESES WASSER SIEHT GEFÄHRLICH AUS, WENN ES DIE FARBE WECHSELT!")) -("sksp0136" :hint #x350 (0 "DAXTER" "DU MUSST AUS DEM WASSER RAUS, BEVOR ES DIE FARBE WECHSELT!")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (0 "KEIRA" "TOLLE ARBEIT! DEN BEWOHNERN VON FELSDORF IST EIN RIESIGER STEIN VOM HERZEN GEFALLEN!") - (346 "KEIRA" "ABER ES BLEIBT LEIDER KEINE ZEIT ZUM FEIERN! FLIEGT MIT DEM ZOOMER DEN GEBERGSPASS HINAUF,") - (626 "KEIRA" "ABER SEID VORSICHTIG! DIE LURKER HABEN DEN GANZEN PASS VERMINT!") - (863 "KEIRA" "WENN IHR DEN VULKANKRATER ERREICHT,") - (987 "KEIRA" "MÜSST IHR UNBEDINGT IM LABOR DES ROTEN WEISEN DAS TELEPORTTOR AKTIVIEREN,") - (1200 "KEIRA" "DAMIT VATER UND ICH ZU EUCH STOSSEN KÖNNEN.") - ) - -("asstvb24" :hint #x605 - (0 "KEIRA" "OH, JE! DIESE LURKER SIND AUF DEM WEG ZU EINER SPRENGKAPSEL AM ENDE DES CANYONS!") - (304 "KEIRA" "WENN SIE DIE VOR EUCH ERREICHEN, SPRENGEN SIE DEN GANZEN PASS IN DIE LUFT!") - (574 "KEIRA" "IHR MÜSST VOR IHNEN DORT SEIN UND DIE SPRENGKAPSEL ZERSTÖREN ODER ALLES IST AUS!") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "WIR MÜSSEN VOR DEN LURKERN AM ENDE DES PASSES SEIN!")) -("sksp0301" :hint #x608 (0 "DAXTER" "KOMM JA NICHT AN DIESE SPRENGLADUNGEN!")) -("sksp0302" :hint #x609 (0 "DAXTER" "BLEIB VOR IHNEN, DANN HABEN WIR'S GESCHAFFT!")) -("sksp0303" :hint #x60a (0 "DAXTER" "SPRING AUF DAS BLAUE ECO, DANN ZISCHEN WIR LOS WIE DER WIND!")) -("sksp0304" :hint #x60b (0 "DAXTER" "HALT DICH VON DEN BÄUMEN FERN, JAK, SIE BREMSEN UNS!")) -("sksp0305" :hint #x60c (0 "DAXTER" "JE MEHR BLAUES ECO DU TRIFFST, UMSO SCHNELLER SIND WIR!")) -("sksp0306" :hint #x60d (0 "DAXTER" "PASS AUF DIE SPRENGLADUNGEN AUF!")) -("sksp0307" :hint #x60e (0 "DAXTER" "FALL NICHT IN DIE LÖCHER!")) -("sksp0308" :hint #x60f (0 "DAXTER" "VIELLEICHT SOLLTE ICH LIEBER FLIEGEN!")) -("sksp0309" :hint #x610 (0 "DAXTER" "DA IST EINER VON DEN LURKERN!")) -("sksp0310" :hint #x611 (0 "DAXTER" "SCHNAPP' SIE DIR, JAK!")) -("sksp0311" :hint #x612 (0 "DAXTER" "WIR HABEN EINEN ÜBERHOLT!")) -("sksp0312" :hint #x613 (0 "DAXTER" "AHH, EINER DER LURKER HAT UNS ÜBERHOLT!")) -("sksp0313" :hint #x614 (0 "DAXTER" "SIE HABEN EINEN RIESEN VORSPRUNG!")) -("sksp0314" :hint #x615 (0 "DAXTER" "JA, WIR FÜHREN!")) -("sksp0315" :hint #x616 (0 "DAXTER" "SCHNELLER, JAK, SCHNELLER!")) -("sksp0316" :hint #x617 (0 "DAXTER" "SPRINGEN, SPRINGEN!")) -("sksp0317" :hint #x618 (0 "DAXTER" "FESTHALTEN!")) -("sksp0318" :hint #x619 (0 "DAXTER" "JAAAAA!")) -("sksp0319" :hint #x61a (0 "DAXTER" "DAS WIRD EIN KOPF-AN-KOPF-RENNEN!")) -("sksp0320" :hint #x61b (0 "DAXTER" "SIE SIND VOR UNS AM DETONATOR!")) -("sksp0321" :hint #x61c (0 "DAXTER" "GESCHAFFT! WIR HABEN SIE DAVON ABGEHALTEN, DEN PASS ZU SPRENGEN!")) - -("asstvb25" :hint #x61d - (0 "KEIRA" "GUT GEMACHT! IHR WART VOR IHNEN BEI DER SPRENGKAPSEL!") - (200 "KEIRA" "DAS LABOR DES ROTEN WEISEN LIEGT GLEICH DA VORNE!") - (377 "KEIRA" "SCHALTET DAS TELEPORTTOR EIN, DAMIT WIR ZU EUCH KÖNNEN!") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (25 "KEIRA" "HEY, JUNGS! SAMMELT WEITER ENERGIEZELLEN.") - (98 "KEIRA" "IHR BRAUCHT SIE, UM WEITER NACH NORDEN ZU REISEN.") - (196) - ) - -("minershort-introduction-gnawers" - (5 "GORDY" "HM, WARUM MACHT IHR BEIDEN EUCH NICHT NÜTZLICH?") - (89 "GORDY" "DIE LURKER SIND DABEI, DIE DUNKLEN HÖHLEN DA DRÜBEN ZU DURCHGRABEN.") - (196 :offscreen "GORDY" "SIE SCHEINEN NACH PRECURSOR-ARTEFAKTEN ZU SUCHEN.") - (280) - (284 :offscreen "GORDY" "DIE ARTEFAKTE KÖNNEN SIE RUHIG HABEN, DAS IST MIR EGAL.") - (357) - (390 :offscreen "WILLARD" "DAS IST UNS EGAL!") - (454) - (459 "GORDY" "WILLARD, FÜTTER' DEINEN VOGEL.") - (505) - (508 "GORDY" "MIR GEHT'S NUR UM DIE EDELSTEINE!") - (575 "GORDY" "ABER ICH KOMME NICHT AN DIE EDELSTEINE IN DER HÖHLE RAN,") - (644 "GORDY" "DENN WENN SIE FERTIG SIND, WERDEN SIE DIE HÖHLE ZUM EINSTÜRZEN BRINGEN!") - (738) - (743 "GORDY" "WENN IHR DIE LURKER AUSSCHALTET, DIE AN DEN STÜTZBALKEN NAGEN,") - (838 "GORDY" "WÜRDET IHR DIE HÖHLE FÜR MICH RETTEN.") - (875) - (898 "GORDY" "JETZT MACHT SCHON!") - ) - -("minershort-introduction-orbs" - (18 "WILLARD" "HEY, GORDY, ICH, ÄH, DENKE, WIR HABEN BESUCH.") - (153) - (157 "GORDY" "DU DENKST, WILLARD? TAGCHEN, FREUNDE, AUF DER DURCHREISE?") - (283) - (286 "GORDY" "JA, WIR AUCH. TJA, WIR MÜSSEN WEITER, ÄHM, NICHTS ZU SEHEN HIER.") - (410 "WILLARD" "ÄH, ICH DACHTE, DAS SEI EIN UNBEZAHLBARER EDELSTEIN-") - (548 :offscreen "GORDY" "WILLARD!") - (591 "DAXTER" "EIGENTLICH WOLLEN WIR ENERGIEZELLEN, KEINE EDELSTEINE.") - (691) - (694 "WILLARD" "WIR HABEN VIER STÜCK DAVON. WOLLT IHR SIE?") - (804) - (810 "GORDY" "WAS EUCH DAS SPATZENHIRN HIER SAGEN WILL, IST,") - (908 "GORDY" "DASS WIR VIELLEICHT EIN PAAR ENERGIEZELLEN ÜBRIG HABEN") - (1005 "GORDY" "UND UNS VIELLEICHT DAVON TRENNEN KÖNNTEN.") - (1111 :offscreen "GORDY" "FÜR 90 ORBS PRO ZELLE.") - (1166 "DAXTER" "WO HAB' ICH DAS BLOSS SCHON MAL GEHÖRT?") - (1222 "DAXTER" "HEY, WIE WOLLT IHR BEIDEN GENIES DIESEN RIESENEDELSTEIN EIGENTLICH HIER WEGBEKOMMEN?") - (1383) - (1402 "GORDY" "TJA, SCHLAUMEIER, WIR HABEN NOCH ZWÖLF JAHRE GRABEN VOR UNS,") - (1527 "GORDY" "UM UNS WAS EINFALLEN ZU LASSEN.") - (1570) - (1579 "WILLARD" "ÄH, GORDY, WÜRDE ES NICHT SCHNELLER GEHEN, WENN DU MITGRÄBST?") - (1774) - ) - -("minershort-introduction-switch" - (38 :offscreen "WILLARD" "PSST, JUNGS. ÄHHM...") - (123 "WILLARD" "BIRDIE UND ICH HABEN DA EINE HÖHLE ERFORSCHT, DIE WÜRDE EUCH GEFALLEN!") - (282) - (286 "WILLARD" "SIE WAR VOLL MIT HÜBSCHEM ORANGENEM METALL") - (375 "WILLARD" "UND LAG ECHT GUT VERSTECKT HINTER EIN PAAR BÄUMEN IM SCHNEEGEBIRGE!") - (500) - (505 "WILLARD" "ICH HAB'S GORDY ERZÄHLT,") - (549 "WILLARD" "ABER DER HAT MICH NUR ANGESCHRIEN, WEIL ICH NICHT GEGRABEN HAB'!") - (699 :offscreen "GORDY" "WIESO GRÄBST DU NICHT?!") - (760 "WILLARD" "ENTSCHULDIGUNG!") - ) - -("minershort-reminder-1-gnawers" - (15 "GORDY" "WÜRDET IHR EUCH ENDLICH UM DIE LURKER KÜMMERN,") - (93 "GORDY" "DIE AN DEN STÜTZBALKEN DER DUNKLEN HÖHLE NAGEN?") - (198 "GORDY" "DIE BALKEN HALTEN DAS SCHLIESSLICH NICHT EWIG AUS!") - ) - -("minershort-reminder-1-orbs" - (25 "GORDY" "VERGESST UNSERE ABMACHUNG NICHT. BRINGT UNS 100 ORBS.") - (136 :offscreen "WILLARD" "DU HATTEST DOCH 90 GESAGT.") - (200 "GORDY" "WILLARD!") - (230) - (240 "GORDY" "NA SCHÖN. 90 ORBS PRO ZELLE.") - (346) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "HABT IHR DIE HÖHLE GEFUNDEN?") - (69 "WILLARD" "DA HINTER DEN BÄUMEN IM SCHNEEGEBIRGE UND DIE WÜRDE EUCH GEFALLEN.") - (203) - (208 "WILLARD" "JA, BALD GEH' ICH DA HIN UND VERSTECK' MICH VOR GORDY,") - (329 "WILLARD" "DER SCHREIT MICH BLOSS DAUERND AN!") - (418 :offscreen "GORDY" "WILLARD!") - ) - -("minershort-reminder-2-orbs" - (27 "WILLARD" "ÄH, GORDY?") - (78 "GORDY" "90 ORBS PRO ENERGIEZELLE, WILLARD! ARGH!") - ) - -("minershort-resolution-1-orbs" - (25 "GORDY" "ACH, SCHON GUT.") - (75 "GORDY" "HIER HABT IHR EINE ENERGIEZELLE FÜR EURE ORBS.") - (150) - ) - -("minershort-resolution-2-orbs" - (28 "WILLARD" "OH! DIESMAL DARF ICH, JA!") - (150) - (165 "WILLARD" "HIER IST EINE...") - (196) - (205 "WILLARD" "HIER IST, ÄHHH...!") - (264) - (270 :offscreen "GORDY" "EINE ENERGIEZELLE!") - (358 "WILLARD" "JA, JA, WAS ER GRAD' GESAGT HAT.") - (458 "GORDY" "DAS WAR'S. IHR HABT UNS VÖLLIG AUSGENOMMEN!") - (540 "GORDY" "KEINE! ENERGIEZELLEN! MEHR!") - (666) - ) - -("sage-village3-introduction" - (6 "SAMOS" "AH! ICH FRAG' MICH JEDES MAL, OB ICH NOCH IN EINEM STÜCK AUS DIESEN DINGERN RAUSKOMME!") - (153) - (184 "SAMOS" "HEILIGE YAKOW! DAS LABOR DES ROTEN WEISEN SIEHT JA NOCH SCHLIMMER AUS ALS DAS DES BLAUEN!") - (321) - (321 "KEIRA" "TJA, SIEHT SO AUS, ALS HÄTTE HIER EIN KAMPF STATTGEFUNDEN.") - (418) - (441 "ALTER MANN" "(LACHT)") - (500) - (528 "ALTER MANN" "ICH WÜRDE ES NICHT GERADE EINEN \"KAMPF\" NENNEN, ODER, SCHWESTERHERZ?") - (683 "FRAU" "GEWISS NICHT. DER ROTE WEISE HAT SO SCHNELL AUFGEGEBEN...") - (799) - (817 "FRAU" "HAT KEINEN SPASS GEMACHT.") - (860) - (884 "SAMOS" "GOL? BIST DU DAS?") - (965) - (978 "SAMOS" "BIST JETZT WOHL VÖLLIG ÜBERGESCHNAPPT, WAS?") - (1060 "SAMOS" "UND MAIA! HAB ICH DIR NICHT GESAGT, DAS DUNKLE ECO WÜRDE EUCH BEIDE VERÄNDERN?") - (1180 "SAMOS" "ACH, NIE GLAUBT JEMAND DEM ALTEN SAMOS...") - (1265) - (1288 "SAMOS" "WAS HABT IHR BEIDEN MIT DEM BLAUEN UND DEM ROTEN WEISEN GEMACHT?") - (1380 "GOL" "MACH' DIR KEINE SORGEN UM DEINE BUNTEN FREUNDE, DU ALTER NARR.") - (1516 "GOL" "SIE SIND VÖLLIG SICHER IN UNSERER ZITADELLE. UNSERE EHRENGÄSTE.") - (1690 "MAIA" "SIE SIND SO LIEBENSWÜRDIG, UNS ZU HELFEN. BEI EINEM KLEINEN PROJEKT.") - (1813) - (1840 "GOL" "DU HATTEST UNRECHT, SAMOS. MAN KANN DAS DUNKLE ECO KONTROLLIEREN!") - (1990) - (1996 "GOL" "WIR HABEN SEINE GEHEIMNISSE GELÜFTET") - (2090 "GOL" "UND KÖNNEN NUN DIE WELT NACH UNSEREN WÜNSCHEN NEU GESTALTEN.") - (2212) - (2228 "SAMOS" "DU KANNST DAS DUNKLE ECO NICHT EINFACH SO KONTROLLIEREN! SOGAR DIE PRECURSOR-") - (2367 "MAIA" "BIS JETZT MUSSTEN WIR UNS MIT DEM BISSCHEN ECO ZUFRIEDEN GEBEN,") - (2456 "MAIA" "DAS WIR AN DER ERDOBERFLÄCHE FINDEN KONNTEN.") - (2508) - (2535 "MAIA" "ABER BALD HABEN WIR ZUGANG ZU DEN RIESIGEN LAGERN") - (2625 "MAIA" "VON DUNKLEM ECO TIEF UNTER DER ERDE.") - (2715 "SAMOS" "NICHT DIE SILOS!") - (2758) - (2768 "GOL" "DOCH, DIE ECO-STATIONEN!") - (2855 "GOL" "WIR WERDEN SIE ÖFFNEN UND DAS DUNKLE ECO DER GANZEN WELT WIRD UNS GEHÖREN!") - (3028) - (3044 "SAMOS" "ABER DAS IST UNMÖGLICH! NUR EIN PRECURSOR-ROBOTER-") - (3138 "MAIA" "ACH, REG' DICH NICHT SO AUF, SAMOS. MIT DIR HABEN WIR NOCH GROSSE PLÄNE.") - (3300) - (3323 :offscreen "MAIA" "(LACHT)") - (3460) - (3500 "DAXTER" "MOMENT MAL!") - (3538) - (3544 "DAXTER" "DAS WAR GOL?") - (3586) - (3602 "DAXTER" "DERSELBE GOL, DER MICH ZURÜCKVERWANDELN SOLL?") - (3690 "DAXTER" "GOL IST DER KERL, DER UNS TÖTEN WILL?") - (3772) - (3794 "DAXTER" "ICH BIN ERLEDIGT.") - (3822) - (3828 "SAMOS" "WIR SIND VIELLEICHT ALLE ERLEDIGT.") - (3897) - (3903 "SAMOS" "WENN SIE DIE SILOS ÖFFNEN, WIRD DAS DUNKLE ECO ALLES VERDERBEN UND ZERSTÖREN,") - (4020 "SAMOS" "WAS DAMIT IN BERÜHRUNG KOMMT!") - (4080 "SAMOS" "WIR MÜSSEN EINFACH IHRE ZITADELLE ERREICHEN, UM SIE AUFZUHALTEN!") - (4189) - (4192 "KEIRA" "DER SCHNELLSTE WEG DORTHIN FÜHRT DURCH DAS LAVA-ROHR AM GRUND DIESES KRATERS.") - (4316) - (4324 "KEIRA" "MIT EIN PAAR WEITEREN ENERGIEZELLEN MÜSSTE EUCH DAS HITZESCHILD DES ZOOMERS") - (4428 "KEIRA" "SICHER ÜBER DIE LAVA BRINGEN.") - (4460) - (4464 "SAMOS" "IN ORDNUNG, MEIN JUNGE. TU, WAS DU KANNST.") - (4545 "SAMOS" "NIMM' DIE FLOHQUASTE MIT UND SAMMLE NOCH MEHR ENERGIEZELLEN.") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (7 "SAMOS" "ACH, DU HEILIGES ECO!") - (60) - (66 "SAMOS" "IN DEN SPINNENHÖHLEN SCHEINEN SICH EINE GANZE MENGE LURKER ZU BEFINDEN!") - (179) - (185 "DAXTER" "TOLL, HÖRT SICH JA RICHTIG GEMÜTLICH AN.") - (284) - (296 "DAXTER" "LASS MICH RATEN. ES GIBT SPINNEN IN DEN SPINNENHÖHLEN, RICHTIG?") - (453 "SAMOS" "NATÜRLICH GIBT ES SPINNEN IN SPINNENHÖHLEN!") - (562) - (568 "SAMOS" "ABER DAS IST EUER KLEINSTES PROBLEM!") - (634) - (637 "SAMOS" "DIE LURKER SIND HINTER KRISTALLEN AUS KONZENTRIERTEM DUNKLEN ECO HER.") - (752) - (761 "SAMOS" "IHR MÜSST DIE KRISTALLE ZERSTÖREN, BEVOR DIESE MONSTER SIE IN DIE FINGER BEKOMMEN!") - (896) - (907 "SAMOS" "NA LOS, JETZT!") - (950) - ) - -("sage-village3-introduction-rams" - (8 "SAMOS" "ICH BIN FROH, DASS IHR ZWEI HIER SEID. ES GIBT LURKER-AKTIVITÄTEN IN DEN BERGEN.") - (152) - (177 :offscreen "SAMOS" "SCHEINBAR HABEN SIE EINIGE EINGEFRORENE DUNKLE ECO-VORRÄTE IN DEN GLETSCHERN ENTDECKT,") - (305 :offscreen "SAMOS" "DIE SIE JETZT ZU BERGEN VERSUCHEN.") - (378) - (381 "SAMOS" "WÄHREND IHR DA OBEN NACH ENERGIEZELLEN SUCHT, HALTET DOCH BITTE DIE LURKER AUF") - (537 "SAMOS" "UND GOL DAVON AB, NOCH MEHR DUNKLES ECO IN DIE FINGER ZU BEKOMMEN.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (0 "SAMOS" "IHR MÜSST DIE DUNKLEN ECO-KRISTALLE IN DEN SPINNENHÖHLEN ZERSTÖREN!") - (126) - ) - -("sage-village3-reminder-1-rams" - (0 "SAMOS" "WIR DÜRFEN NICHT ZULASSEN, DASS DIE LURKER DIE DUNKLEN ECO-KANISTER BEKOMMEN.") - (125 "SAMOS" "BEGEBT EUCH AUF DIESEN VERSCHNEITEN GIPFEL UND HALTET SIE AUF!") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "HM, MAL SEHEN...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "HMM.")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "OH, MY...")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "AHA!")) -("ASSTLP34" :hint #x0 (0 "KEIRA" "HMM... WAS HABEN GOL UND MAIA BLOSS VOR?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "HMM... WIR MÜSSEN UNBEDINGT ZUR PRECURSOR-STADT.")) -("ASSTLP36" :hint #x0 (0 "KEIRA" "HMM... DER HITZESCHILD BRAUCHT NOCH MEHR ENERGIE, UM DER LAVA STANDZUHALTEN.")) -("ASSTLP37" :hint #x0 (0 "KEIRA" "ACH... WIR MÜSSEN DIE ANDEREN WEISEN RETTEN!")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "BALD WERDE ICH REICH SEIN...") - (156 "WILLARD" "ÄH, DU MEINST, WIR WERDEN REICH SEIN.") - (420 "GORDY" "JA, WIE AUCH IMMER.") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "GRAB, WILLARD, GRAB!") - (149 "WILLARD" "JA, DOCH, ABER WARUM GRÄBST DU DENN NICHT?") - (405 "GORDY" "ICH, ÄH, MUSS DOCH DAS, ÄH, DENKEN ÜBERNEHMEN!") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "ÄH, GORDY? KANN ICH DAS GRABEN MAL KURZ UNTERBRECHEN?") - (280 "GORDY" "MANN, ICH BRECH' DIR GLEICH WAS! GRAB WEITER!") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "OH, ICH BIN AM VERHUNGERN, GORDY!") - (233 "GORDY" "DANN FRISS DEINEN VOGEL!") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "ÄH, GORDY? ICH BRAUCH' 'NE SPITZERE HACKE!") - (238 "GORDY" "WAS DU BRAUCHST, IST MEHR GRIPS!") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "HAHA, ICH WERDE REICH SEIN!")) -("MSH-AM02" :hint #x0 (0 "GORDY" "GRABE, GRABE, GRABE!")) -("MSH-AM03" :hint #x0 (0 "GORDY" "WILLARD! DENK' NICHT, ARBEITE!")) -("MSH-AM04" :hint #x0 (0 "GORDY" "(LACHT) ICH WERDE DER REICHSTE MANN DER WELT SEIN! (LACHT)")) -("MSH-AM05" :hint #x0 (0 "GORDY" "OHH! SO EINEN RIESIGEN EDELSTEIN HAT NOCH NIEMAND GESEHEN! (LACHT)")) -("MSH-AM06" :hint #x0 (0 "GORDY" "WOHLSTAND, ICH KOMME!")) -("MSH-AM07" :hint #x0 (0 "GORDY" "MEINE EDELSTEINE! ALLES MEINE EDELSTEINE!")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "ACH, WIE VIEL GELD ICH FÜR DIESES BABY BEKOMMEN WERDE! (LACHT)")) -("MSH-AM10" :hint #x0 (0 "GORDY" "SIEHT AUS WIE EIN SELTENER CRYSTITE ZLARCONIA!")) -("MSH-AM11" :hint #x0 (0 "GORDY" "NICHT SO SCHNELL, DIE GEHÖREN ALLE MIR! MIR, SAG' ICH!")) -("MSH-AM12" :hint #x0 (0 "GORDY" "UND, WILLARD? WAS WIRST DU DENN MIT DEINEM VIERTEL - ÄH, DEINER HÄLFTE, ANFANGEN?")) -("MSH-AM1A" :hint #x0 (0 "GORDY" "ICH WERDE REICH SEIN!")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "GRABE, GRABE, GRABE!")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "WILLARD, DENK' NICHT, ARBEITE!")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "ÄH, SIND WIR BALD FERTIG?")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "ÄH, MANN, KÖNNEN WIR MAL 'NE PAUSE MACHEN?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "JUNGE, HAB' ICH 'N HUNGER!")) -("MTA-AM04" :hint #x0 (0 "WILLARD" "(RIECHT) ÄH, ICH GLAUBE, ICH MUSS BIRDIES KÄFIG MAL WIEDER SAUBER MACHEN.")) -("MTA-AM05" :hint #x0 (0 "WILLARD" "DAS IST ABER EIN SCHRECKLICH GROSSER EDELSTEIN!")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "ÄHM... ICH WOLLTE SCHON IMMER HOLZFÄLLER WERDEN...")) -("MTA-AM07" :hint #x0 (0 "WILLARD" "WOW, GORDY HAT MIR DIE HÄLFTE VON ALLEM VERSPROCHEN, WAS ICH TRAGEN KANN!")) -("MTA-AM08" :hint #x0 (0 "WILLARD" "HAHA, BIRDIE IST MEIN BESTER FREUND!")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "ICH LIEBE MEINEN KLEINEN BIRDIE!")) -("SAGELP31" :hint #x0 (0 "SAMOS" "DAS IST GAR NICHT GUT.")) -("SAGELP32" :hint #x0 (0 "SAMOS" "DUNKLE ECO-KRISTALLE?")) -("SAGELP33" :hint #x0 (0 "SAMOS" "MAIA UND GOL STECKEN BIS ÜBER BEIDE OHREN DRIN!")) -("SAGELP34" :hint #x0 (0 "SAMOS" "DIE KRÄFTE DES DUNKLEN ECOS LASSEN SICH NICHT KONTROLLIEREN!")) -("SAGELP35" :hint #x0 (0 "SAMOS" "DUNKLES ECO IN DEN GLETSCHERN?")) -("SAGELP36" :hint #x0 (0 "SAMOS" "ACH! DA SIND LURKER-TRUPPEN IN DEN BERGEN!")) -("SAGELP37" :hint #x0 (0 "SAMOS" "WAS HAT GOL NUR VOR...?")) -("SAGELP38" :hint #x0 (0 "SAMOS" "HAT ER VIELLEICHT...?")) - -("asstva73" :hint #x427 - (0 "KEIRA" "HEY, JUNGS! NACH MEINEN BERECHNUNGEN BRAUCHT MAN 72 ENERGIEZELLEN, UM DEN HITZESCHILD") - (323 "KEIRA" "GEGEN DIE LAVA AUF DEM WEG ZU GOL UND MAIAS ZITADELLE ZU WAPPNEN.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "IHR HABT NICHT GENUG ENERGIEZELLEN, UM DURCH DIE LAVA ZU KOMMEN!") - (182 "KEIRA" "IHR KÖNNT NICHT ZU GOL UND MAIAS ZITADELLE GELANGEN, BIS IHR 72 ENERGIEZELLEN GESAMMELT HABT!") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "DIESE GONDEL SCHEINT NICHT ZU FUNKTIONIEREN.") - (165 "KEIRA" "ICH WERDE MAL DARAN HERUMBASTELN UND VERSUCHEN, SIE WIEDER IN GANG ZU KRIEGEN.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "ICH HABE DIE GONDEL WIEDER AKTIVIERT! SIE KANN EUCH INS SCHNEEGEBIRGE BRINGEN.") - (216 "KEIRA" "BENUTZT SIE, WANN IHR WOLLT.") - ) - -("asstv100" :hint #x44f - (0 "KEIRA" "OKAY, IHR HABT GENUG ENERGIEZELLEN, UM DIE STÄRKE DES HITZESCHILDES ZU ERHÖHEN.") - (275 "KEIRA" "FAHRT MIT DER HÖLZERNEN LORE DEN SCHACHT AM LAVA-GEYSIR HINUNTER.") - (473 "KEIRA" "ICH TREFFE EUCH AM EINGANG DES LAVA-ROHRS, DAMIT ICH DEN ZOOMER EINSTELLEN KANN. BEEILT EUCH!") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HAHA, OKAY! IHR HABT GENUG ENERGIEZELLEN, UM DIE STÄRKE DES HITZESCHILDES ZU ERHÖHEN!") - (373 "KEIRA" "TREFFT EUCH AM VULKANKRATER WIEDER MIT MIR,") - (519 "KEIRA" "ICH WERDE AM LAVA-ROHR UNTEN AM SCHACHT BEIM LAVA-GEYSIR WARTEN.") - (738 "KEIRA" "BRINGT MIR DIE ENERGIEZELLEN!") - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "BEEILT EUCH MIT DEN ENERGIEZELLEN!") - (139 "KEIRA" "ICH WARTE AM SCHACHT DER HÖLZERNEN LORE IN DER NÄHE DES LAVA-GEYSIRS.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "VERGESST NICHT, DAS TELEPORTTOR EINZUSCHALTEN, DAMIT WIR DURCH KÖNNEN.") - (206 "KEIRA" "IHR MÜSST INS LABOR DES ROTEN WEISEN") - (320 "KEIRA" "IM ZENTRUM DES VULKANKRATERS GEHEN, UM ES EINZUSCHALTEN.") - (496 "KEIRA" "WIR KÖNNEN NICHT DURCH, SOLANGE ES NICHT EINGESCHALTET IST.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "HEY, WIR SIND IMMER NOCH IN FELSDORF!") - (144 "KEIRA" "SCHALTET DAS TELEPORTTOR EIN!") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "WIR WOLLEN ZU EUCH IN DEN VULKANKRATER KOMMEN!") - (128 "KEIRA" "GEHT INS LABOR DES ROTEN WEISEN UND SCHALTET DAS TOR EIN!") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "WIE KOMMEN WIR IN DIESES FORT REIN?")) -("sksp0346" :hint #x444 (0 "DAXTER" "VIELLEICHT KANN ROTES ECO DIESEN KERL BESIEGEN!")) -("sksp0347" :hint #x445 (0 "DAXTER" "WIR MÜSSEN EINEN ROLLSPRUNG MACHEN!")) -("sksp0348" :hint #x446 (0 "DAXTER" "WIR MÜSSEN UNBEDINGT DIESE ECO-ÖFFNUNG AUFBEKOMMEN!")) -("sksp0349" :hint #x447 (0 "DAXTER" "DAS DA UNTEN SIEHT AUS WIE EIN ECO-SCHALTER!")) -("sksp0350" :hint #x448 (0 "DAXTER" "SCHNAPP IHN DIR, WENN SEINE STACHELN DRIN SIND!")) -("sksp0351" :hint #x449 (0 "DAXTER" "DRÜCK' AUF DEN KNOPF!")) -("sksp0352" :hint #x44a (0 "DAXTER" "SCHNELL! BEVOR SIE WIEDER RUNTERFALLEN!")) -("sksp0359" :hint #x44b (0 "DAXTER" "DU MUSST ROTES ECO BENUTZEN!")) -("sksp0360" :hint #x44c (0 "DAXTER" "JAWOLL! WIR HABEN DIE VERSIEGELTEN GELBEN ECO-ÖFFNUNGEN AUFGEMACHT!")) -("sksp0362" :hint #x44d (0 "DAXTER" "SIEH MAL! EINE EINGEFRORENE ENERGIEZELLE!")) -("sksp0363" :hint #x44e (0 "DAXTER" "NUR EIN FLUT FLUT KANN SO WEIT SPRINGEN!")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "ICH GLAUBE, DAS WAR DER LETZTE DUNKLE ECO-KRISTALL!")) -("sksp0328" :hint #x433 (0 "DAXTER" "VIELLEICHT KANNST DU BESSER SCHIESSEN, WENN DU DURCH DEINE SCHUTZBRILLE ZIELST!")) -("sksp0329" :hint #x434 (0 "DAXTER" "OH, NEIN! NOCH MEHR DUNKLES ECO!")) -("sksp0330" :hint #x435 (0 "DAXTER" "ICH GLAUBE, WIR HABEN NICHT ALLE DUNKLEN ECO-KRISTALLE GEFUNDEN!")) -("sksp0331" :hint #x436 (0 "DAXTER" "SCHIESS AUF DIE LURKER, DIE AN DEN PFOSTEN NAGEN!")) -("sksp0332" :hint #x437 (0 "DAXTER" "PASS AUF, DASS DAS LICHT NICHT AUSGEHT!")) -("sksp0333" :hint #x438 (0 "DAXTER" "STOSS AN EINEN KRISTALL, DANN BEKOMMST DU LICHT!")) -("sksp0334" :hint #x439 (0 "DAXTER" "HAU AB! DIESER KRISTALL EXPLODIERT GLEICH!")) -("sksp0335" :hint #x43a (0 "DAXTER" "OH, JE, SIE HABEN EINEN PRECURSOR-ROBOTER GEFUNDEN!")) -("sksp0336" :hint #x43b (0 "DAXTER" "MACH' DIE EIER KAPUTT, BEVOR SIE SCHLÜPFEN!")) -("sksp0337" :hint #x43c (0 "DAXTER" "HIER DRIN IST'S RICHTIG UNHEIMLICH...")) -("sksp0338" :hint #x43d (0 "DAXTER" "SIEHT AUS, ALS GINGEN DIE SPINNENNETZE KAPUTT, WENN MAN ZWEI MAL DAGEGEN SPRINGT!")) -("sksp0339" :hint #x43e (0 "DAXTER" "ICH. HASSE. SPINNEN.")) -("sksp0340" :hint #x43f (0 "DAXTER" "DA KOMMEN BABY-SPINNEN!")) -("sksp0341" :hint #x440 (0 "DAXTER" "ICH GLAUBE, WIR SIND HIER IN EINEM SPINNENNEST!")) -("sksp0342" :hint #x441 (0 "DAXTER" "PASS' AUF, NOCH MEHR SPINNEN!")) -("sksp0343" :hint #x442 (0 "DAXTER" "LOS, RAUS HIER!")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (58 "DAXTER" "HEY! WO IST DENN DER KLEINE SCHRUBBELIGE?") - (140) - (150 "KEIRA" "ES IST FURCHTBAR! VATER IST VERSCHWUNDEN!") - (233 "KEIRA" "GOL UND MAIA HABEN MÖGLICHERWEISE AUCH IHN ENTFÜHRT!") - (320 "DAXTER" "IMMER MIT DER RUHE, SÜSSE. ICH HABE ALLES UNTER KONTROLLE.") - (458 "KEIRA" "UNTER KONTROLLE? LURKER-ARMEEN BREITEN SICH IM GANZEN LAND AUS,") - (594 "KEIRA" "DIE WEISEN SIND ENTFÜHRT WORDEN,") - (655 "KEIRA" "GOL UND MAIA HABEN GENUG ECO, UM IHREN FÜRCHTERLICHEN PLAN AUSZUFÜHREN!") - (771 "KEIRA" "UM SIE AUFZUHALTEN, WERDET IHR EUCH DURCH IHRE ZITADELLE KÄMPFEN MÜSSEN!") - (870) - (894 "DAXTER" "ÄH... JA. HAST DU... SCHÖN GESAGT.") - (1014 "KEIRA" "IHR MÜSST MEINEN VATER RETTEN, BEVOR ES ZU SPÄT IST.") - (1120 "KEIRA" "UND JAK? SEI VORSICHTIG.") - (1186) - (1200 "DAXTER" "JA. WIR SIND ES!") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "HAHA! IN ORDNUNG!") - (52 "KEIRA" "MIT DIESEN ZUSÄTZLICHEN ENERGIEZELLEN MÜSSTE ICH ES SCHAFFEN, DEN HITZESCHILD") - (148 "KEIRA" "MIT GENUG ENERGIE ZU VERSORGEN, UM DER LAVA STANDZUHALTEN.") - (236 "KEIRA" "ABER DER HITZESCHILD HAT AUCH SEINE GRENZEN!") - (300 "KEIRA" "ER HÄLT JETZT TEMPERATUREN VON BIS ZU 800 GRAD STAND, ABER NICHT MEHR.") - (414 "KEIRA" "BEHALTET DIE ANZEIGE IM AUGE.") - (470 "KEIRA" "NICHT AUSZUDENKEN, WAS DIESE TEMPERATUREN MIT EUREM ZOOMER MACHEN,") - (564 "KEIRA" "WENN DER HITZESCHILD VERSAGT.") - (590) - (620 "DAXTER" "JA, DIE HITZE.") - (660) - (672 "DAXTER" "ÄH, WAS?! DER ZOOMER?! HEY, WAS IST MIT UNS?!") - (768) - (790 "DAXTER" "KÖNNEN WIR NICHT EINEN SICHEREN WEG ZU GOLS ZITADELLE FINDEN?") - (886) - (890 "KEIRA" "GANZ RUHIG. ICH HABE NOCH MEHR KÜHLBALLONS IN DAS LAVA-ROHR GESCHICKT.") - (990 "KEIRA" "DIE KÖNNT IHR BENUTZEN, UM DIE TEMPERATUR ZU REGULIEREN.") - (1090 "KEIRA" "UND VERGESST NICHT, DAS TELEPORTTOR IM LABOR DES GELBEN WEISEN ZU AKTIVIEREN.") - (1190 "KEIRA" "WIR ZÄHLEN AUF EUCH.") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "WIR MÜSSEN UNS BEEILEN, SONST WERDEN WIR GERÖSTET!")) -("sksp0365" :hint #x703 (0 "DAXTER" "SUCH' DIR EINEN PFAD AUS, IRGENDEINEN!")) -("sksp0366" :hint #x704 (0 "DAXTER" "HALT DICH ENTWEDER VON DEN MINEN FERN ODER SCHIESSE AUF SIE, JAK!")) -("sksp0367" :hint #x705 (0 "DAXTER" "SUCH DIR EINEN WEG DURCH DIESE DUNKLEN-ECO-FÄSSER!")) -("sksp0368" :hint #x706 (0 "DAXTER" "WEITER SO, TRIFF DIE KÜHLBALLONS!")) -("sksp0369" :hint #x707 (0 "DAXTER" "DAS WIRD LANGSAM ZU HEISS HIER!")) -("sksp0370" :hint #x708 (0 "DAXTER" "GLEICH EXPLODIERT ER!")) -("sksp0371" :hint #x709 (0 "DAXTER" "SCHNAPP DIR DAS BLAUE ECO, JAK!")) -("sksp0372" :hint #x70a (0 "DAXTER" "SCHIESS' DIR DEN WEG FREI!")) -("sksp0373" :hint #x70b (0 "DAXTER" "UUUH! WAS FÜR EIN FLUG!")) -("sksp0374" :hint #x70c (0 "DAXTER" "JA! JETZT WIRST DU GEGRILLT, SCHÄTZCHEN!")) -("sksp0375" :hint #x70d (0 "DAXTER" "SCHIESS AUF DEN ENERGIEBEREICH, UM DIE TÜR ZU ÖFFNEN!")) -("sksp0376" :hint #x70e (0 "DAXTER" "SCHIESS AUF DEN ENERGIEBEREICH, BEVOR WIR VERBRENNEN!")) -("sksp0379" :hint #x711 (0 "DAXTER" "WIR ZOOMEN!")) -("sksp0380" :hint #x712 (0 "DAXTER" "WIR SIND DURCH!")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (63 "BLAUER WEISE" "GUT GEMACHT, JUNGS! DER ALTE SAMOS HATTE RECHT MIT EUCH!") - (162) - (180 "BLAUER WEISE" "ACH, DU HEILIGES PRECURSOR-METALL!") - (259 "BLAUER WEISE" "WIR DÜRFEN NICHT ZULASSEN, DASS DIESE HEIMTÜCKISCHE MASCHINE ALLES ZERSTÖRT!") - (420 "BLAUER WEISE" "ICH WERDE VERSUCHEN, DIE SCHUTZSCHILDTÜR IN BEWEGUNG ZU SETZEN,") - (525 "BLAUER WEISE" "INDEM ICH EINEN ENERGIESTRAHL") - (570 "BLAUER WEISE" "ZWISCHEN MIR UND DEM GROSSEN PORTAL DARUNTER ERZEUGE!") - (666 "DAXTER" "ÄH... JA. MACH DAS MAL. WIR, ÄH... WERDEN NOCH MEHR HILFE HOLEN.") - (873) - (891 :offscreen "DAXTER" "VOLLKOMMEN IRRE!") - (980) - ) - -("green-sagecage-introduction" - (130 "SAMOS" "WIRD AUCH LANGSAM ZEIT, DASS IHR ZWEI HIER AUFTAUCHT!") - (213 "DAXTER" "SCHÖNEN GUTEN TAG, AUCH! LÄSST MAN DICH JETZT DIE BÖDEN HIER WISCHEN?") - (343 "SAMOS" "WIR HABEN KEINE ZEIT ZUM SCHERZEN, DAXTER.") - (435 "SAMOS" "GOL UND MAIA HABEN UNS ENTFÜHRT, UM MIT UNSERER ENERGIE") - (515 "SAMOS" "IHRE SCHEUSSLICHE MASCHINE ANZUTREIBEN.") - (574) - (600 :offscreen "SAMOS" "WIE ES SCHEINT, HABEN SIE DIE FUNKTIONIERENDEN TEILE EINES PRECURSOR-ROBOTERS") - (710 :offscreen "SAMOS" "MIT DEN AUS DEM GANZEN LAND ZUSAMMENGETRAGENEN ARTEFAKTEN VERBUNDEN,") - (800) - (803 :offscreen "SAMOS" "EIGENE TEUFLISCHE VERÄNDERUNGEN VORGENOMMEN UND EINE KREATUR ERSCHAFFEN,") - (930 "SAMOS" "DIE ALS EINZIGE DIE DUNKLEN PRECURSOR-ECO-STATIONEN ÖFFNEN KANN.") - (1060 "SAMOS" "WENN DU UNS VIER BEFREIEN KANNST,") - (1134 "SAMOS" "KÖNNEN WIR ALLE MIT VEREINTEN KRÄFTEN DAS SCHUTZSCHILD UM DEN ROBOTER ZERSTÖREN,") - (1276 "SAMOS" "BEVOR SIE MIT IHM DIE GANZE WELT VERNICHTEN.") - ) - -("green-sagecage-outro-preboss" - (56 "GOL" "DU KOMMST ZU SPÄT, SAMOS.") - (144 "GOL" "SOBALD ICH UNBEGRENZT DUNKLES ECO BESITZE, WERDE ICH DEN SCHLÜSSEL ZUR SCHÖPFUNG HABEN!") - (335 "SAMOS" "DAS IST WAHNSINN! WENN DU SO VIEL DUNKLES ECO FREISETZT, WIRD ALLES ZERSTÖRT! ALLES!") - (525 "SAMOS" "SIEH DOCH, WAS ES AUS EUCH GEMACHT HAT!") - (578) - (581 "MAIA" "ES HAT UNS EINE ART SCHÖNHEIT GESCHENKT, DIE DU NIE VERSTEHEN WÜRDEST.") - (693) - (696 "DAXTER" "SCHÖNHEIT? HABT IHR BEIDEN IN LETZTER ZEIT MAL IN DEN SPIEGEL GESCHAUT?") - (825) - (828 "MAIA" "WENN DU DENKST, EIN HAARIGER WINZLING ZU SEIN, WÄRE SCHLIMM,") - (944 "MAIA" "WARTE NUR, BIS WIR DIE ECO-STATIONEN GEÖFFNET HABEN!") - (1065 "GOL" "UND IHR ZWEI SEID NUR WEGEN MEINER HILFE SO WEIT GEREIST.") - (1180 "GOL" "NARREN! LEHNT EUCH ZURÜCK UND GENIESST DIE NEUERSCHAFFUNG DER WELT!") - (1391) - (1605 "SAMOS" "JAK! NIMM DEN AUFZUG UND HALTE DIESEN ROBOTER AUF!") - ) - -("green-sagecage-resolution" - (35 "SAMOS" "TOLL GEMACHT, JUNGS! JETZT SEID IHR WAHRE HELDEN!") - (158 "SAMOS" "ICH VEREINE JETZT MEINE GRÜNE ECO-KRAFT MIT DEN ANDEREN DREI WEISEN") - (280 "SAMOS" "UND ZUSAMMEN ÖFFNEN WIR DIE TÜR DES SCHUTZSCHILDES,") - (353 "SAMOS" "DAS DEN PRECURSOR-ROBOTER UMGIBT.") - (405 "DAXTER" "JA, JA, FÜR DEN ANFANG SCHON GANZ GUT.") - (457 "DAXTER" "UND WENN IHR DIESEN SCHILD GEÖFFNET HABT, WAS MACHT IHR DANN MIT DEM ROBOTER?") - (586 "SAMOS" "GAR NICHTS, DAXTER. WIR MÜSSEN NUR DAS SCHUTZSCHILD OFFEN HALTEN.") - (715 "SAMOS" "DANN LIEGT ES AN EUCH BEIDEN HIER, DEN ROBOTER ZU ZERSTÖREN.") - (823 "DAXTER" "OH, KLASSE. JETZT KANN ICH DEM KERL HELFEN, DER MICH IN EINER RATTE VERWANDELT HAT") - (983 "DAXTER" "UND DIE EINZIGE PERSON VERNICHTEN, DIE MICH ZURÜCKVERWANDELN KANN!") - (1111) - (1171 "SAMOS" "RETTET ZUERST EINMAL DIE WELT, DANN VERSUCHEN WIR,") - (1258 "SAMOS" "GOL DAZU ZU BRINGEN, DAXTER ZU HELFEN.") - ) - -("redsage-resolution" - (58 "ROTER WEISE" "(LACHT) ENDLICH KOMMT IHR MICH RETTEN.") - (206 "ROTER WEISE" "WISST IHR, WIE LANGE ICH SCHON HIER BIN? WIESO HABT IHR SO LANGE GEBRAUCHT? (LACHT) ") - (389 "ROTER WEISE" "UND WIE HEISST IHR?") - (429) - (450 "DAXTER" "ICH BIN DAXTER! DAS IST JAK, GEHÖRT ZU MIR.") - (540 :offscreen "ROTER WEISE" "GUT GEMACHT, DAXTER. DU BIST EIN WAHRER HELD.") - (677) - (716 "ROTER WEISE" "IHR MÜSST GOL DARAN HINDERN, DEN ROBOTER ZU STARTEN.") - (848 "ROTER WEISE" "MIT MEINER ECO-KRAFT HELFE ICH EUCH, DIE SCHUTZSCHILDTÜR ZU ÖFFNEN.") - ) - -("yellowsage-resolution" - (57 "GELBER WEISE" "WER HÄTTE GEDACHT, DASS ICH MICH EINES TAGES") - (137 "GELBER WEISE" "VON EINEM JUNGEN UND SEINER RATTE RETTEN LASSEN MÜSSTE!") - (271 "GELBER WEISE" "AHHH, DIESE PEINLICHKEIT WERDE ICH GOL UND MAIA GANZ SICHER HEIMZAHLEN!") - (471) - (495 "GELBER WEISE" "DANACH KÖNNEN WIR UNS JA UM DEN RATTENEINTOPF KÜMMERN...") - (605) - ) - -("BLU-AM01" :hint #x0 (0 "BLAUER WEISE" "ETWAS HILFE WÄRE NICHT SCHLECHT!")) -("BLU-AM02" :hint #x0 (0 "BLAUER WEISE" "OH, DAS IST JA EIN SCHÖNES SCHLAMASSEL!")) -("BLU-AM03" :hint #x0 (0 "BLAUER WEISE" "OH, WAS FÜR EIN RÄTSEL.")) -("RED-AM01" :hint #x0 (0 "ROTER WEISE" "IST DA IRGENDJEMAND?")) -("RED-AM02" :hint #x0 (0 "ROTER WEISE" "TJA...")) -("RED-AM03" :hint #x0 (0 "ROTER WEISE" "WAS HAT EUCH AUFGEHALTEN?")) -("YEL-AM01" :hint #x0 (0 "GELBER WEISE" "DIE ZEIT WIRD KNAPP!")) -("YEL-AM02" :hint #x0 (0 "GELBER WEISE" "HEY! HOLT MICH HIER RAUS!")) -("YEL-AM03" :hint #x0 (0 "GELBER WEISE" "WENN ICH HIER RAUSKOMME, DANN IST ABER JEMAND FÄLLIG!")) -("sksp0381" :hint #x806 (0 "DAXTER" "ZERSTÖR' DEN GENERATOR, UM DEN WEISEN ZU BEFREIEN!")) -("sksp0382" :hint #x807 (0 "DAXTER" "HALT DICH AM RAND FEST!")) -("sksp0383" :hint #x808 (0 "DAXTER" "WIR HABEN GESELLSCHAFT, JAK. LAUTER LURKER!")) -("sksp0384" :hint #x809 (0 "DAXTER" "ZERSTÖRE DIESE GENERATOREN!")) -("sksp0385" :hint #x80a (0 "DAXTER" "DRÜCK' AUF DEN KNOPF!")) -("sksp0386" :hint #x80b (0 "DAXTER" "DIESER ROBOTER MACHT MIR ÜBERHAUPT KEINE ANGST!")) -("sksp0387" :hint #x80c (0 "DAXTER" "LASS UNS AUF DIESE PLATTFORMEN KLETTERN!")) -("sksp0388" :hint #x80d (0 "DAXTER" "VERPASS' DEN NÄCHSTEN STARTER NICHT!")) -("sksp0389" :hint #x80e (0 "DAXTER" "VORSICHT!")) -("sksp0390" :hint #x80f (0 "DAXTER" "WIR MÜSSEN ALLE WEISEN RETTEN!")) -("sksp0391" :hint #x810 (0 "DAXTER" "MEINST DU, GOL WIRD MICH JETZT NOCH ZURÜCKVERWANDELN?")) -("sksp0392" :hint #x811 (0 "DAXTER" "DAS IST ALSO GOLS UND MAIAS ZITADELLE. WIE GEMÜTLICH!")) -("sksp0393" :hint #x812 (0 "DAXTER" "LANDE AUF DEM NÄCHSTEN STARTER!")) -("sksp0378" :hint #x813 (0 "DAXTER" "DIE TÜR IST AUF, WEITER JETZT!")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (143 :offscreen "GOL" "HELLES ECO?! ES EXISTIERT ALSO WIRKLICH!") - (268 :offscreen "MAIA" "SIE DÜRFEN ES NICHT BEKOMMEN!") - ) - -("green-sagecage-daxter-sacrifice" - (0 "DAXTER" "HELLES ECO! DAS KÖNNTE MICH ZURÜCKVERWANDELN, HAH!") - (114) - (123 "DAXTER" "ODER... ES KÖNNTE DEN ROBOTER AUFHALTEN.") - (235) - (274 "DAXTER" "HMM... WUSCHELIG BLEIBEN ODER DIE WELT RETTEN? MAL NACHDENKEN...") - (404) - (437 "DAXTER" "OKAY, NA GUT, DANN RETTEN WIR EBEN DIE WELT, ABER MACHT SCHNELL,") - (557 "DAXTER" "BEVOR ICH'S MIR ANDERS ÜBERLEGE!") - (634) - ) - -("green-sagecage-outro-beat-boss-a" - (165 :offscreen "MAIA" "TU DOCH WAS!") - (216) - (596 :offscreen "GOL" "NEEEEIN!") - ) - -("green-sagecage-outro-beat-boss-b" - (522 "SAMOS" "NUN JA, ES SCHEINT, ALS HÄTTE ICH EUCH JUNGS FALSCH EINGESCHÄTZT,") - (640 "SAMOS" "IHR HABT DOCH DAS ZEUG ZU HELDEN!") - (745) - (751 "KEIRA" "OH, DAXTER, JETZT MUSST DU IMMER SO BLEIBEN.") - (845) - (847 "DAXTER" "MACH DIR KEINE SORGEN UM MICH, SÜSSE.") - (926 "DAXTER" "DU WEISST DOCH, ES HEISST: \"KLEINER KERL, ABER GROSS WAS DAHINTER.\"") - (1096) - (1100 "BLAUER WEISE" "JAK, DU BESITZT EIN UNGLAUBLICHES TALENT, ECO ZU KANALISIEREN!") - (1219) - (1222 "BLAUER WEISE" "SAMOS, VIELLEICHT HATTEST DU DOCH RECHT MIT DEM BURSCHEN!") - (1321) - (1323 "ROTER WEISE" "UND KEIRA, OHNE DEINE HILFE UND DEINEN EINFALLSREICHTUM") - (1452 "ROTER WEISE" "WÄRE NICHTS DAVON MÖGLICH GEWESEN.") - (1515 "ROTER WEISE" "HA, HA, HA. VIELLEICHT HABEN WIR JA EINEN NEUEN WEISEN GEFUNDEN, JETZT,") - (1665 "ROTER WEISE" "WO GOL UND MAIA FORT SIND.") - (1728) - (1731 "SAMOS" "JA, GOL UND MAIA... DAS DUNKLE ECO HAT SIE MÖGLICHERWEISE GETÖTET.") - (1916 :offscreen "SAMOS" "MÖGLICHERWEISE...") - (1999) - (2003 "DAXTER" "ACH, WEN JUCKT'S? HOLT SIE HER, WIR MACHEN SIE NOCHMAL FERTIG! ODER, JAK?") - (2168) - (2172 "DAXTER" "ICH SAGTE, \"ODER, JAK?\"") - (2256) - (2302 "DAXTER" "WOW! NIMM MAL 'NE KALTE DUSCHE, DU HELD!") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (151 "SAMOS" "HEILIGE YAKOW! WAS IST DAS DENN?") - (270 "KEIRA" "WOW, DAS IST EINE ALTE PRECURSOR-TÜR!") - (342 :offscreen "KEIRA" "ES SCHEINT, ALS LIESSE SIE SICH ÖFFNEN, WENN WIR ALLE 100 LÖCHER MIT ENERGIEZELLEN FÜLLEN!") - (485 "DAXTER" "ÄHM, WIR SIND HELDEN, WISST IHR NOCH? WIR HABEN 100 ENERGIEZELLEN!") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (151 "SAMOS" "HEILIGE YAKOW! WAS IST DAS DENN?") - (266 "KEIRA" "WOW, DAS IST EINE ALTE PRECURSOR-TÜR!") - (342 :offscreen "KEIRA" "ES SCHEINT, ALS LIESSE SIE SICH ÖFFNEN, WENN WIR ALLE 100 LÖCHER MIT ENERGIEZELLEN FÜLLEN!") - (485 "DAXTER" "OH, MANN, JETZT GEHT DAS SCHON WIEDER LOS!") - ) - -("green-sagecage-outro-big-finish" - (322 "DAXTER" "WOW! WAS... IST DAS?") - (425) - (428 "KEIRA" "OH, ES IST WUNDERSCHÖN...") - (516) - (519 "SAMOS" "BEI ALLEN PRECURSORN...") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "IHR GEBT EINFACH NICHT AUF, WAS?")) -("GOL-AM02" :hint #x0 (0 "GOL" "BALD GEHÖRT DAS DUNKLE ECO UNS!")) -("GOL-AM03" :hint #x0 (0 "GOL" "ERLEDIGT SIE!")) -("GOL-AM04" :hint #x0 (0 "GOL" "FEUER FREI!")) -("GOL-AM05" :hint #x0 (0 "GOL" "JAGT SIE IN DIE LUFT!")) -("GOL-AM06" :hint #x0 (0 "GOL" "WAS? DIE SCHON WIEDER?!")) -("GOL-AM07" :hint #x0 (0 "GOL" "ES IST ZU SPÄT!")) -("GOL-AM08" :hint #x0 (0 "GOL" "IHR GEHÖRT MIR!")) -("GOL-AM09" :hint #x0 (0 "GOL" "JETZT HABE ICH EUCH!")) -("GOL-AM10" :hint #x0 (0 "GOL" "HA, HA, HA, HA, HA!")) -("GOL-AM11" :hint #x0 (0 "GOL" "KEINE GNADE!")) -("GOL-AM12" :hint #x0 (0 "GOL" "NIMM DAS!")) -("GOL-AM13" :hint #x0 (0 "GOL" "NETTER VERSUCH!")) -("GOL-AM14" :hint #x0 (0 "GOL" "HALT STILL!")) -("GOL-AM15" :hint #x0 (0 "GOL" "ERBÄRMLICH!")) -("GOL-AM16" :hint #x0 (0 "GOL" "NEEEIN!")) -("GOL-AM17" :hint #x0 (0 "GOL" "AHHH!")) -("GOL-AM18" :hint #x0 (0 "GOL" "WIR WERDEN DIE ECO-STATION GANZ ÖFFNEN UND EUCH ZWEI VERNICHTEN!")) -("GOL-AM19" :hint #x0 (0 "GOL" "HELLES ECO! ES EXISTIERT ALSO WIRKLICH!")) -("GOL-AM20" :hint #x0 (0 "GOL" "DAS LASSEN WIR UNS NICHT GEFALLEN!")) -("MAI-AM01" :hint #x0 (0 "MAIA" "ERLEDIGE SIE BEIDE, EIN FÜR ALLE MAL!")) -("MAI-AM02" :hint #x0 (0 "MAIA" "MACH SIE FERTIG!")) -("MAI-AM03" :hint #x0 (0 "MAIA" "HA, HA, HA!")) -("MAI-AM04" :hint #x0 (0 "MAIA" "ECO HILFT EUCH JETZT NICHT MEHR!")) -("MAI-AM05" :hint #x0 (0 "MAIA" "TU DOCH WAS!")) -("MAI-AM06" :hint #x0 (0 "MAIA" "AAAAH!")) -("MAI-AM07" :hint #x0 (0 "MAIA" "NEEEEEIN!")) -("MAI-AM08" :hint #x0 (0 "MAIA" "WIR WERDEN DIE ECO-STATION GANZ ÖFFNEN UND EUCH ZWEI VERNICHTEN!")) -("MAI-AM09" :hint #x0 (0 "MAIA" "SIE DÜRFEN ES NICHT BEKOMMEN!")) -("sksp0394" :hint #x0 (0 "DAXTER" "SCHNAPP' DIR DAS GELBE ECO!")) -("sksp0395" :hint #x0 (0 "DAXTER" "SCHIESS AUF DEN ROBOTER, JAK!")) -("sksp0396" :hint #x0 (0 "DAXTER" "SCHIESS AUF SEINEN ARM!")) -("sksp0397" :hint #x0 (0 "DAXTER" "SCHIESS AUF SEINE WAFFE!")) -("sksp0398" :hint #x0 (0 "DAXTER" "SCHIESS AUF SEINEN KOPF!")) -("sksp0399" :hint #x0 (0 "DAXTER" "PASS AUF DIE EXPLOSION AUF!")) -("sksp0400" :hint #x0 (0 "DAXTER" "ER LÄDT AUF!")) -("sksp0401" :hint #x0 (0 "DAXTER" "SCHNAPP' DIR DAS BLAUE ECO!")) -("sksp0402" :hint #x0 (0 "DAXTER" "SCHNAPP' DIR DAS ROTE ECO!")) -("sksp0403" :hint #x0 (0 "DAXTER" "ICH HAB' EIN GAANZ SCHLECHTES GEFÜHL!")) -("sksp0404" :hint #x0 (0 "DAXTER" "BENUTZE DEN STARTER, SCHNELL!")) -("sksp0405" :hint #x0 (0 "DAXTER" "JETZT HAST DU DAS VIECH VERÄRGERT!")) -("sksp0406" :hint #x0 (0 "DAXTER" "WIR DÜRFEN DIESE KERLE NICHT BERÜHREN!")) -("sksp0407" :hint #x0 (0 "DAXTER" "BENUTZE DAS GELBE ECO!")) -("sksp0408" :hint #x0 (0 "DAXTER" "SCHIESS AUF DIE KERLE!")) -("sksp0409" :hint #x0 (0 "DAXTER" "SCHNAPP' DIR DAS LICHT-ECO, JAK!")) -("sksp0410" :hint #x0 (0 "DAXTER" "ER SIEHT WÜTEND AUS!")) -("sksp0411" :hint #x0 (0 "DAXTER" "SPRING, UM DEN EXPLOSIONEN ZU ENTGEHEN!")) -("sksp0412" :hint #x0 (0 "DAXTER" "JETZT NEHMEN WIR DIE SACHE IN DIE HAND!")) -("sksp0413" :hint #x0 (0 "DAXTER" "GUT GESCHOSSEN, PARTNER!")) -("sksp0414" :hint #x0 (0 "DAXTER" "DAS HAT GESESSEN!")) -("sksp0415" :hint #x0 (0 "DAXTER" "LOS GEHT'S!")) -("sksp0416" :hint #x0 (0 "DAXTER" "JA, DU HAST ES GESCHAFFT!")) -("sksp0417" :hint #x0 (0 "DAXTER" "SAGT \"AUF WIEDERSEHEN\", GOL UND MAIA!")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "WIR WARTEN. HALLO?")) -("sksp0449" :hint #x0 (0 "DAXTER" "DRÜCKE DIE START-TASTE ZUM SPIELEN.")) -("sksp0450" :hint #x0 (0 "DAXTER" "WILLST DU AUFHÖREN?")) -("sksp0451" :hint #x0 (0 "DAXTER" "DAS HATTE ICH AUCH NICHT ERWARTET.")) -("sksp0452" :hint #x0 (0 "DAXTER" "OKAY, BIS SPÄTER DANN.")) -("sksp0455" :hint #x0 (0 "DAXTER" "MAN, WER SIND DENN BLOSS DIESE GANZEN LEUTE?")) -("sksp0466" :hint #x0 (0 "DAXTER" "ICH WAR ECHT GUT. NICHT WAHR, MÄDELS?")) - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/game_subtitle_en-uk.gd b/game/assets/jak1/subtitle/game_subtitle_en-uk.gd deleted file mode 100644 index 4ceafe613e..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_en-uk.gd +++ /dev/null @@ -1,370 +0,0 @@ -(language-id 6) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sidekick-human-intro-sequence-b" - (547 "OLD MAN" "CONTINUE YOUR SEARCH FOR ARTEFACTS AND ECO.") - (664) - (674 "OLD MAN" "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.") - (819) - (839 "WOMAN" "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.") - (937 "WOMAN" "WE WILL ATTACK IT IN DUE TIME.") - (1027) - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("sksp009c" :hint #x28f (0 "DAXTER" "DO ME A FAVOUR AND KEEP AWAY FROM THOSE DARK ECO BOXES!")) - -;; ----------------- -;; oracle -;; ----------------- - -;; ----------------- -;; training -;; ----------------- - -("asstvb42" :hint #x902 - (0 "KEIRA" "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTEFACT YOU CAN FIND!") - (327) - (333 "KEIRA" "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD") - (507 "KEIRA" "FOR YOUR A-GRAV ZOOMER.") - ) - -("sagevb22" :hint #x909 - (0 "SAGE" "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.") - (291 "SAGE" "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR") - (640 "SAGE" "ARTEFACTS WHEN YOU GET NEAR THEM.") - ) - -("sagevb25" :hint #x90c - (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.") - (250 "SAGE" "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS") - (476 "SAGE" "OF PRECURSOR ARTEFACTS THAT HAVE LAIN DORMANT FOR YEARS.") - ) - -;; ----------------- -;; village1 -;; ----------------- - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "BIRDWATCHER" "OH MY, I HOPE THE POOR DEAR'S OKAY.") - (148) - (157 "BIRDWATCHER" "HERE'S A POWER CELL FOR YOUR VALOUR.") - (237) - (306 "FLUT FLUT" "MAMA!") - (351) - (406 "FLUT FLUT" "MAMA!") - (430 "DAXTER" "OH NO! NO, NO, NO, NO!") - (533) - (535 "BIRDWATCHER" "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.") - (696) - (699 "DAXTER" "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?") - (803) - (807 "BIRDWATCHER" "OH, LOVE AT FIRST SIGHT! AH...") - (936) - (939 "BIRDWATCHER" "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME") - (1054 "BIRDWATCHER" "AND WORK WITH THE SAGE TO TAKE CARE OF HER.") - ) - -("bird-lady-introduction" - (125 "BIRDWATCHER" "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.") - (245) - (251 "DAXTER" "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!") - (328) - (331 "BIRDWATCHER" "OH, SORRY. I THOUGHT YOU WERE A SPOTTED") - (408 "BIRDWATCHER" "ORANGE-BELLIED RAIN FRAY.") - (454) - (457 "BIRDWATCHER" "YOU KNOW, YESTERDAY I SAW SOME") - (536 "BIRDWATCHER" "TERRIBLY VICIOUS CREATURES CAPTURE") - (590 "BIRDWATCHER" "A MOTHER FLUT FLUT NEAR THE BEACH.") - (648) - (654 :offscreen "BIRDWATCHER" "NOW THERE'S THIS POOR LITTLE ORPHAN EGG") - (730 :offscreen "BIRDWATCHER" "SITTING IN A NEST AT THE TOP OF THE CLIFF") - (794 :offscreen "BIRDWATCHER" "AND I CAN'T GET TO IT.") - (854 :offscreen "BIRDWATCHER" "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED") - (946 :offscreen "BIRDWATCHER" "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.") - (1041) - (1044 "BIRDWATCHER" "DO AN OLD LADY A FAVOUR, AND I'LL GIVE YOU A POWER CELL.") - (1198) - ) - -;; ----------------- -;; jungle -;; ----------------- - -;; ----------------- -;; misty -;; ----------------- - -;; ----------------- -;; firecanyon -;; ----------------- - -;; ----------------- -;; village2 -;; ----------------- - -("sage-bluehut-introduction-prec-arm" - (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.") - (130) - (140 "SAGE" "ACCORDING TO THE BLUE SAGE'S NOTES,") - (208 "SAGE" "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.") - (300) - (304 :offscreen "SAGE" "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE") - (417 :offscreen "SAGE" "TO LIFT AN IMPORTANT PRECURSOR ARTEFACT FROM THE MUCK.") - (531) - (549 :offscreen "SAGE" "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.") - (675) - (685 "SAGE" "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTEFACT,") - (764 "SAGE" "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD.") - ) - -("warrior-introduction" - (24 "WARRIOR" "OHH... MY ACHING HEAD.") - (128) - (137 "DAXTER" "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!") - (212 "DAXTER" "WALK IT OFF, TOUGH GUY!") - (264 "WARRIOR" "OH, SURE, I WAS TOUGH ONCE.") - (337 "WARRIOR" "MAYBE EVEN THE TOUGHEST OF THEM ALL.") - (402 "WARRIOR" "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!") - (594 :offscreen "WARRIOR" "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.") - (760 :offscreen "WARRIOR" "SO, FULL OF VALOUR, ARMOR SHINING IN THE SUN...") - (928 "WARRIOR" "I CLIMBED THE HILL TO TAKE HIM ON...!") - (1033) - (1044 "WARRIOR" "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.") - (1172) - (1178 "DAXTER" "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?") - (1255 "DAXTER" "'CAUSE IT'S KILLIN' ME!") - (1303) - (1310 :offscreen "WARRIOR" "AFTER MY LAST STUNNING FAILURE,") - (1395 :offscreen "WARRIOR" "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,") - (1515 :offscreen "WARRIOR" "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.") - (1640) - (1669 "WARRIOR" "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE") - (1905 "WARRIOR" "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!") - (2030) - (2040 "WARRIOR" "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.") - (2200) - (2222 "WARRIOR" "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.") - (2330) - (2360 :offscreen "WARRIOR" "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT") - (2465 :offscreen "WARRIOR" "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.") - (2561) - (2566 "DAXTER" "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...") - (2659 "DAXTER" "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.") - (2766) - (2770 "WARRIOR" "OH, SURE! AND SEAL MY DOOM?") - (2880 "WARRIOR" "(SIGHS)") - (2943) - (2949 "WARRIOR" "ALRIGHT. FINE.") - (3036 "WARRIOR" "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.") - (3173) - (3197 "WARRIOR" "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!") - ) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-introduction" - (6 "BILLY" "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?") - (123 "BILLY" "I OWN THESE HERE PARTS. EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...") - (349) - (369 "DAXTER" "JUDGING BY THE SMELL, I'D WAGER YOUR BATHTUB SANK IN THE MUD LONG AGO.") - (497) - (519 "BILLY" "WHAT'S A BATHTUB? ANYWAY I GOT BIGGER PROBLEMS NOW...") - (680) - (691 "BILLY" "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,") - (798 "BILLY" "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.") - (910 "BILLY" "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.") - (1017) - (1021 "BILLY" "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.") - (1133) - (1136 :offscreen "BILLY" "I'VE BEEN PUTTIN' OUT HIS FAVOURITE SNACK, BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!") - (1318 :offscreen "BILLY" "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,") - (1408 :offscreen "BILLY" "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!") - (1519) - (1530 "BILLY" "WILL YA HELP ME OUT?") - ) - -("sksp0153" :hint #x361 - (0 "DAXTER" "HEY, THAT MUST BE THE PRECURSOR ARTEFACT THE LURKERS ARE AFTER!") - (175 "DAXTER" "IT LOOKS LIKE A GIANT ROBOT ARM!") - ) - -;; ----------------- -;; rolling -;; ----------------- - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0135" :hint #x34f (0 "DAXTER" "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOUR!")) -("sksp0136" :hint #x350 (0 "DAXTER" "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOUR!")) - -;; ----------------- -;; ogre -;; ----------------- - -;; ----------------- -;; village3 -;; ----------------- - -("minershort-introduction-gnawers" - (5 "GORDY" "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?") - (89 "GORDY" "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.") - (191 :offscreen "GORDY" "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTEFACTS.") - (265) - (271 :offscreen "GORDY" "THEY CAN HAVE THE ARTEFACTS, FOR ALL I CARE.") - (357) - (360 :offscreen "WILLARD" "FOR ALL WE CARE!") - (441) - (444 "GORDY" "WILLARD, FEED YOUR BIRD.") - (490) - (496 "GORDY" "ALL I CARE ABOUT ARE GEMS!") - (566 "GORDY" "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS") - (625 "GORDY" "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!") - (715) - (721 "GORDY" "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,") - (827 "GORDY" "YOU COULD SAVE THE CAVE FOR ME.") - (875) - (884 "GORDY" "NOW BEAT IT!") - ) - -("sage-village3-introduction" - (6 "SAGE" "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!") - (153) - (183 "SAGE" "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!") - (321) - (321 "KEIRA" "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.") - (418) - (441 "OLD MAN" "HA HA HA HA HA!") - (500) - (528 "OLD MAN" "I'D HARDLY CALL IT \"STRUGGLE.\"") - (618 "OLD MAN" "WOULD YOU, DEAR SISTER?") - (672 "WOMAN" "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.") - (800) - (805 "WOMAN" "NO FUN AT ALL.") - (860) - (884 "SAGE" "GOL? IS THAT YOU?") - (965) - (969 "SAGE" "YOU'VE FINALLY GONE OFF THE DEEP END, EH?") - (1060 "SAGE" "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!") - (1180 "SAGE" "HNG, NOBODY EVER LISTENS TO OLD SAMOS...") - (1265) - (1282 "SAGE" "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?") - (1372 "GOL" "DON'T WORRY ABOUT YOUR COLOURFUL FRIENDS, YOU OLD FOOL.") - (1516 "GOL" "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.") - (1680 "MAIA" "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.") - (1813) - (1828 "GOL" "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!") - (1990) - (1996 "GOL" "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.") - (2212) - (2223 "SAGE" "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-") - (2357 "MAIA" "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO") - (2452 "MAIA" "WE COULD FIND NEAR THE SURFACE.") - (2508) - (2520 "MAIA" "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES") - (2611 "MAIA" "OF DARK ECO HIDDEN DEEP UNDERGROUND.") - (2715 "SAGE" "NOT THE SILOS!") - (2758) - (2768 "GOL" "YES, THE SILOS!") - (2841 "GOL" "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!") - (3028) - (3034 "SAGE" "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-") - (3128 "MAIA" "OH, DON'T LOOK SO UPSET, SAMOS.") - (3210 "MAIA" "WE'VE GOT BIG PLANS FOR YOU.") - (3300) - (3303 :offscreen "MAIA" "AH HA HA HA HA HA HA! AHH...") - (3460) - (3495 "DAXTER" "WAIT A MINUTE!") - (3538) - (3541 "DAXTER" "THAT WAS GOL?") - (3586) - (3595 "DAXTER" "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?") - (3690 "DAXTER" "GOL IS THE GUY TRYING TO KILL US?!") - (3772) - (3785 "DAXTER" "I'M DOOMED.") - (3822) - (3828 "SAGE" "WE MAY ALL BE DOOMED.") - (3897) - (3903 "SAGE" "IF THEY OPEN THE SILOS, THE DARK ECO WILL") - (3995 "SAGE" "TWIST AND DESTROY EVERYTHING IT TOUCHES!") - (4080 "SAGE" "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!") - (4189) - (4192 "KEIRA" "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE") - (4276 "KEIRA" "AT THE BOTTOM OF THIS CRATER.") - (4316) - (4324 "KEIRA" "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD") - (4398 "KEIRA" "SHOULD GET YOU ACROSS THE LAVA SAFELY.") - (4460) - (4464 "SAGE" "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.") - (4545 "SAGE" "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS.") - (4664) - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.") - (160 "KEIRA" "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB") - (280 "KEIRA" "IN THE CENTRE OF THE VOLCANIC CRATER TO TURN IT ON.") - (450 "KEIRA" "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE.") - ) - -;; ----------------- -;; snowy -;; ----------------- - -;; ----------------- -;; spidercave -;; ----------------- - -;; ----------------- -;; lavatube -;; ----------------- - -;; ----------------- -;; citadel -;; ----------------- - -("green-sagecage-introduction" - (128 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") - (207 "DAXTER" "NICE TO SEE YOU TOO!") - (269) - (275 "DAXTER" "DO THEY HAVE YOU MOPPING THE FLOORS NOW?") - (343 "SAGE" "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US") - (477 "SAGE" "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.") - (574) - (583 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") - (709 :offscreen "SAGE" "WITH SCAVENGED ARTEFACTS FROM ACROSS THE LAND.") - (800) - (816 :offscreen "SAGE" "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,") - (926 :offscreen "SAGE" "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.") - (1060 "SAGE" "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS") - (1180 "SAGE" "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT") - (1265 "SAGE" "BEFORE THEY USE IT TO DESTROY THE WORLD.") - ) - -;; ----------------- -;; finalboss -;; ----------------- - -;; ----------------- -;; title -;; ----------------- - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/game_subtitle_en.gd b/game/assets/jak1/subtitle/game_subtitle_en.gd deleted file mode 100644 index f91d6c0f5f..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_en.gd +++ /dev/null @@ -1,2648 +0,0 @@ -(language-id 0 6) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (24 :offscreen "SAGE" "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,") - (156 :offscreen "SAGE" "AND MY FATHER'S FATHERS FAILED TO FIND.") - (255) - (260 :offscreen "SAGE" "WHO WERE THE PRECURSORS?") - (324 :offscreen "SAGE" "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?") - (451) - (454 :offscreen "SAGE" "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?") - (578) - (581 :offscreen "SAGE" "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?") - (708) - (720 :offscreen "SAGE" "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.") - (818 :offscreen "SAGE" "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.") - (955 :offscreen "SAGE" "EVEN THE ROCKS DO NOT RECALL...") - (1064) - (1087 :offscreen "SAGE" "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST") - (1197 :offscreen "SAGE" "ON THE SHOULDERS OF A YOUNG BOY") - (1297 :offscreen "SAGE" "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH") - (1444 :offscreen "SAGE" "AND REJECTING OF MY GUIDANCE!") - (1536) - (1542 :offscreen "SAGE" "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?") - (1677) - (1683 :offscreen "SAGE" "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!") - (1872) - (1955 :offscreen "SAGE" "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH") - (2080 :offscreen "SAGE" "OR SENSIBLE THINKING.") - (2141) - (2145 :offscreen "SAGE" "NAY! AS WITH MANY OF FATE'S MYSTERIES") - (2281 :offscreen "SAGE" "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.") - (2440 "DAXTER" "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!") - ) - -("sage-intro-sequence-d1" - (137 "SAGE" "WHAT IN GREEN TARNATION DO YOU TWO WANT?") - (220 "DAXTER" "WE- WE- WE WAS- THEY WAS- I'M- I WAS-") - (283 "SAGE" "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM") - (383 "SAGE" "THE TWO OF YOU WENT MUCKING AROUND") - (440 "SAGE" "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!") - (550 "DAXTER" "THAT'S RIGHT! AND THEN-") - (579 "SAGE" "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH") - (692 "SAGE" "BUT IN A BATHTUB FILLED WITH DARK ECO.") - (793 "DAXTER" "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'") - (861 "DAXTER" "OR YOU GONNA HELP ME OUTTA THIS MESS!?") - (920 "SAGE" "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION") - (1016 "SAGE" "THE CHANGE IS AN IMPROVEMENT.") - (1079 "SAGE" "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.") - (1186 "DAXTER" "WHAT!?") - (1220 "SAGE" "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH") - (1329 "SAGE" "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:") - (1431 "SAGE" "GOL ACHERON, THE SAGE.") - (1493) - (1496 :offscreen "SAGE" "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.") - (1639 :offscreen "SAGE" "NOBODY HAS SPOKEN TO HIM IN AGES.") - (1718 "SAGE" "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.") - (1831 "SAGE" "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES") - (1934 "SAGE" "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!") - ) - -("sage-intro-sequence-d2" - (3 "SAGE" "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON") - (114 :offscreen "SAGE" "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.") - (224 "SAGE" "YOU CAN'T JUST WALK THROUGH IT.") - (270 "KEIRA" "BUT YOU COULD FLY OVER IT") - (329 "KEIRA" "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.") - (393) - (396 "KEIRA" "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.") - (512) - (515 "KEIRA" "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY") - (605 "KEIRA" "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?") - (696) - (699 "SAGE" "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY") - (826 :offscreen "SAGE" "AND A HALF!") - (857 "SAGE" "GOING TO GET TWENTY POWER CELLS?") - (910 "KEIRA" "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO") - (998 "KEIRA" "STASHED AWAY SOMEWHERE.") - (1049 :offscreen "KEIRA" "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY") - (1133 "KEIRA" "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.") - (1243) - (1246 :offscreen "KEIRA" "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME") - (1364 "KEIRA" "BRAVE ADVENTURER TO FIND.") - (1435 "DAXTER" "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.") - (1529) - (1532 "SAGE" "BRAVE ADVENTURER?") - (1582 "SAGE" "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!") - (1685) - (1689 "SAGE" "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET") - (1810 "SAGE" "SOME PRACTICE ON GEYSER ROCK.") - (1872) - (1878 "DAXTER" "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?") - (1993 "DAXTER" "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!") - (2069) - (2072 "SAGE" "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!") - (2189) - ) - -("sage-intro-sequence-e" - (200 "SAGE" "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.") - (359 "DAXTER" "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?") - (496 "DAXTER" "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...") - (586 "DAXTER" "ITCHING TO GET ON WITH OUR ADVENTURES.") - (660 "SAGE" "FINE, FINE, \"ADVENTURE\" AWAY THEN.") - (787 "SAGE" "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?") - (940) - (952 :offscreen "SAGE" "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.") - (1043) - (1046 :offscreen "SAGE" "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.") - (1160) - (1169 :offscreen "SAGE" "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.") - (1310) - (1313 :offscreen "SAGE" "NOW, ALL OF YOU...") - (1415) - (1439 :offscreen "SAGE" "GET OUT OF HERE!") - ) - -("sidekick-human-intro-sequence-b" - (547 "OLD MAN" "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.") - (664) - (674 "OLD MAN" "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.") - (819) - (839 "WOMAN" "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.") - (937 "WOMAN" "WE WILL ATTACK IT IN DUE TIME.") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (12 "DAXTER" "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!") - (151) - (366 "DAXTER" "HUH?") - (402 "DAXTER" "(GROAN) STUPID PRECURSOR JUNK!") - (496) - (576 "DAXTER" "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.") - (721) - (774 "DAXTER" "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.") - (906 "DAXTER" "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"") - (1011 "DAXTER" "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY") - (1124 "DAXTER" "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.") - (1212 "DAXTER" "WHOA! HOW DID YOU DO THAT?") - (1271) - (1331 "DAXTER" "JAK, I THINK WE'RE IN TROUBLE!") - (1386) - (1857 "DAXTER" "MAN, THAT STUNG.") - (1913) - (1941 "DAXTER" "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?") - (2037) - (2057 "DAXTER" "WHAAAT?") - (2104) - (2189 "DAXTER" "WAAAAAAAAHHHHHHHH!!") - (2307 "DAXTER" "OKAY, OKAY. I'M FINE, I'M FINE...") - (2431) - (2481 "DAXTER" "WAAAAAAAAHHHHHHHH!!") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" (0 "DAXTER" "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!")) - -("death-0182" - (0 "DAXTER" "HEY, JAK! CAN I...") - (55) - (68 "DAXTER" "HAVE YOUR INSECT COLLECTION?") - ) - -("death-0184" - (0 "DAXTER" "WHILE YOU'RE DOWN THERE, EHM...") - (60) - (70 "DAXTER" "COULD YA RUB MY FEET?") - ) - -("death-0186" - (0 "DAXTER" "DON'T WORRY! I'LL AVENGE YOU!") - (50) - (69 "DAXTER" "...NOT.") - ) - -("death-0187" - (0 "DAXTER" "WELL, UH...") - (46) - (56 "DAXTER" "BETTER YOU THAN ME.") - ) - -("death-0191" - (0 "DAXTER" "THAT LOOKS LIKE IT HURT.") - (46 "DAXTER" "SHOULD I CALL FOR BACKUP?") - ) - -("death-0193" - (0 "DAXTER" "STEP ONE: STAY ALIVE!") - (65 "DAXTER" "STEP TWO...") - (97) - (107 "DAXTER" "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!") - ) - -("death-0195" - (0 "DAXTER" "I WAS RIGHT BEHIND YA, JAK!") - (69 "DAXTER" "...REALLY. I WAS.") - ) - -("death-0197" - (0 "DAXTER" "HEIMLICH! UH... STRETCHER!") - (62) - (72 "DAXTER" "YUCK... BREATH MINT?") - ) - -("death-0199" - (0 "DAXTER" "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...") - (105 "DAXTER" "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"") - ) - -("death-0202" (0 "DAXTER" "SAY GOODNIGHT, JAK!")) -("sksp009a" :hint #x0 (0 "DAXTER" "HA HA! WE SHOWED HIM A THING OR TWO.")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.") - (215 "DAXTER" "LET'S GET BACK AND MAKE THE SWITCH ALREADY!") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN") - (204 "DAXTER" "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF.") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE.")) -("sksp0002" :hint #x281 (0 "DAXTER" "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL") - (215 "DAXTER" "AT LEAST ONE WILL HAVE A POWER CELL!") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "ALL RIGHT, TREASURE!")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!") - (163) - (169 "DAXTER" "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM.") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!") - (188 "DAXTER" "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN.") - ) - -("sksp0007" :hint #x286 (0 "DAXTER" "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW.")) -("sksp0008" :hint #x287 (0 "DAXTER" "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!")) -("sksp009b" :hint #x28e (0 "DAXTER" "ALL RIGHT, MORE ORBS!")) -("sksp009c" :hint #x28f (0 "DAXTER" "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!")) -("sksp009d" :hint #x290 (0 "DAXTER" "YEAH-HA-HA-HA!")) -("sksp009e" :hint #x291 (0 "DAXTER" "WA-HOO!")) -("sksp009f" :hint #x292 (0 "DAXTER" "GET SOME, GET SOME! HA HA HA!")) -("sksp009g" :hint #x293 (0 "DAXTER" "RIGHT BEHIND YA, JAK!")) -("sksp009i" :hint #x294 (0 "DAXTER" "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?")) -("sksp009j" :hint #x295 (0 "DAXTER" "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES.")) -("sksp009k" :hint #x296 (0 "DAXTER" "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORACLE" "WHO AWAKENS THE ORACLE?") - (75) - (81 "ORACLE" "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.") - (198) - (206 "ORACLE" "FROM BEFORE TIME, I HAVE WATCHED AND WAITED") - (308 "ORACLE" "FOR THE TRUE HERO TO RETURN.") - (390) - (395 "ORACLE" "PRESENT TO ME 120 PRECURSOR ORBS") - (500 "ORACLE" "FOR EACH POWER CELL I CONTAIN.") - ) - -("oracle-intro-2" - (0 "ORACLE" "BEWARE OF THE DARK LIGHT,") - (87 "ORACLE" "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.") - (171) - (181 "ORACLE" "BRING ME 120 PRECURSOR ORBS") - (273 "ORACLE" "FOR EACH POWER CELL I CONTAIN.") - ) - -("oracle-intro-3" - (0 "ORACLE" "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.") - (172) - (182 "ORACLE" "YOU CAN GAIN MY POWER CELLS") - (248 "ORACLE" "BY BRINGING 120 PRECURSOR ORBS FOR EACH.") - ) - -("oracle-left-eye-1" (0 "ORACLE" "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL.")) -("oracle-left-eye-2" (0 "ORACLE" "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL.")) -("oracle-left-eye-3" (0 "ORACLE" "FOR YOUR EFFORT, A POWER CELL IS THE REWARD.")) - -("oracle-reminder-1" - (0 "ORACLE" "BRING TO ME 120 PRECURSOR ORBS") - (116 "ORACLE" "AND I WILL AWARD YOU A POWER CELL.") - ) - -("oracle-reminder-2" - (0 "ORACLE" "PRESENT 120 PRECURSOR ORBS") - (89 "ORACLE" "AND A POWER CELL WILL BE YOUR REWARD.") - ) - -("oracle-reminder-3" - (0 "ORACLE" "YOU MUST BRING 120 PRECURSOR ORBS") - (98 "ORACLE" "TO ME FOR EACH POWER CELL I CONTAIN.") - ) - -("oracle-right-eye-1" (0 "ORACLE" "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS.")) -("oracle-right-eye-2" (0 "ORACLE" "HERE IS ANOTHER POWER CELL FOR YOUR QUEST.")) -("oracle-right-eye-3" (0 "ORACLE" "YOU HAVE OBTAINED ANOTHER POWER CELL.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I") - (181 "KEIRA" "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST.") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.") - (176) - (180 "KEIRA" "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU") - (315 "KEIRA" "A POWER CELL IN EXCHANGE.") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!") - (327) - (333 "KEIRA" "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD") - (507 "KEIRA" "FOR YOUR A-GRAV ZOOMER.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "HEY, YOU FOUND ONE OF MY SCOUT FLIES!") - (160 "KEIRA" "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS") - (343 "KEIRA" "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!") - (219 "KEIRA" "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA") - (387 "KEIRA" "YOU CAN FIND EVEN MORE POWER CELLS.") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF") - (188 "KEIRA" "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.") - (419) - (426 "KEIRA" "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!") - ) - -("asstvb47" :hint #x906 - (0 "KEIRA" "REMEMBER, THAT'S A POWER CELL.") - (140 "KEIRA" "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN.") - ) - -("asstvb48" :hint #x907 - (0 "KEIRA" "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,") - (253 "KEIRA" "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,") - (419 "KEIRA" "LETTING YOU USE IT FOR THE MAXIMUM TIME.") - ) - -("sagevb21" :hint #x908 - (3 "SAGE" "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.") - (280 "SAGE" "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH.") - ) - -("sagevb22" :hint #x909 - (0 "SAGE" "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.") - (291 "SAGE" "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR") - (640 "SAGE" "ARTIFACTS WHEN YOU GET NEAR THEM.") - ) - -("sagevb23" :hint #x90a - (0 "SAGE" "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP") - (199 "SAGE" "INCREASES THE TIME YOU CAN USE ITS POWER.") - ) - -("sagevb24" :hint #x90b - (3 "SAGE" "THIS IS A PRECURSOR DOOR.") - (169 "SAGE" "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR") - (357 "SAGE" "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY.") - ) - -("sagevb25" :hint #x90c - (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.") - (250 "SAGE" "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS") - (476 "SAGE" "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS.") - ) - -("sagevb26" :hint #x90d (0 "SAGE" "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE.")) -("sagevb27" :hint #x90e (1 "SAGE" "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES.")) -("sagevb28" :hint #x90f (0 "SAGE" "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK.")) -("sagevb29" :hint #x910 (0 "SAGE" "THAT'S NOT A SPIN KICK! TRY AGAIN.")) -("sagevb30" :hint #x911 (0 "SAGE" "COME ON, JAK! DO A SPIN KICK.")) -("sagevb31" :hint #x912 (0 "SAGE" "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK.")) -("sagevb32" :hint #x913 (0 "SAGE" "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH.")) -("sagevb33" :hint #x914 (0 "SAGE" "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY.")) -("sagevb34" :hint #x915 (0 "SAGE" "JAK! USE A PUNCH.")) -("sagevb35" :hint #x916 (0 "SAGE" "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT.")) - -("sagevb36" :hint #x917 - (0 "SAGE" "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.") - (210) - (216 "SAGE" "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR") - (418 "SAGE" "AND THEN DIVE DOWN ONTO IT, HANDS FIRST.") - ) - -("sagevb37" :hint #x918 (0 "SAGE" "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS.")) - -("sagevb38" :hint #x919 - (0 "SAGE" "YOU CAN'T COME BACK THROUGH THE WARP GATE") - (120 "SAGE" "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND.") - ) - -("sagevb39" :hint #x91a - (0 "SAGE" "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.") - (269 "SAGE" "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (23 "DAXTER" "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?") - (175) - (193 "KEIRA" "RULE NUMBER ONE: I DON'T DATE ANIMALS.") - (308) - (312 "DAXTER" "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.") - (430) - (505 "KEIRA" "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED") - (635 "KEIRA" "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.") - (739) - (742 :offscreen "KEIRA" "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,") - (842 :offscreen "KEIRA" "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.") - (945) - (954 "KEIRA" "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.") - (1052 :offscreen "KEIRA" "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.") - (1138 "KEIRA" "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH.") - (1246) - ) - -("assistant-introduction-race-bike" - (9 "DAXTER" "HEY BABY, WHAT'CHA WORKIN' ON?") - (63 "KEIRA" "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER") - (200 "KEIRA" "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.") - (308) - (312 :offscreen "KEIRA" "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION") - (453 :offscreen "KEIRA" "AND SEND YOU THE ZOOMER!") - (508 "KEIRA" "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE") - (143 "KEIRA" "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH.") - (295) - ) - -("assistant-reminder-1-generic" - (25 "KEIRA" "HEY GUYS! KEEP COLLECTING POWER CELLS") - (98 "KEIRA" "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH.") - ) - -("assistant-reminder-1-race-bike" - (19 "KEIRA" "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.") - (106 "KEIRA" "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU.") - (229) - ) - -("explorer-introduction" - (23 "JAK'S UNCLE" "WELL, HELLO THERE MY DEAR BOY.") - (112 "JAK'S UNCLE" "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.") - (197 "JAK'S UNCLE" "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY") - (288 "JAK'S UNCLE" "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.") - (426) - (430 "JAK'S UNCLE" "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,") - (538 "JAK'S UNCLE" "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE") - (626 "JAK'S UNCLE" "LITTLE ANNOYING MISERABLY UGLY ONE") - (715 "JAK'S UNCLE" "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.") - (829) - (865 "JAK'S UNCLE" "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE") - (985 "JAK'S UNCLE" "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?") - (1098 "JAK'S UNCLE" "I WOULD OFFER YOU A POWER CELL IN RETURN.") - ) - -("explorer-reminder-1" - (25 "JAK'S UNCLE" "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!") - (148 "JAK'S UNCLE" "WELL, ANY LESS THAN 90 PRECURSOR ORBS") - (251 "JAK'S UNCLE" "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY.") - (387) - ) - -("explorer-reminder-2" - (33 "JAK'S UNCLE" "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.") - (187 "JAK'S UNCLE" "A DOWNRIGHT EVEN TRADE.") - ) - -("explorer-resolution" - (28 "JAK'S UNCLE" "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!") - (179 "JAK'S UNCLE" "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?") - (310) - (324 "JAK'S UNCLE" "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.") - (453 "JAK'S UNCLE" "CHEERIO, TA TA, BYE BYE!") - ) - -("farmer-introduction" - (1 "FARMER" "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...") - (113 "FARMER" "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.") - (257 "FARMER" "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS") - (317 "FARMER" "BACK INTO THE PEN ALL DAY!") - (372 "FARMER" "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.") - (454) - (456 "FARMER" "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?") - ) - -("farmer-reminder-1" - (0 "FARMER" "HEY! MY YAKOWS ARE STILL ON THE LOOSE!") - (96 "FARMER" "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?") - ) - -("farmer-reminder-2" - (0 "FARMER" "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.") - (85 "FARMER" "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?") - ) - -("farmer-resolution" - (0 "FARMER" "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.") - (134 "FARMER" "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE.") - (340) - ) - -("sage-introduction-misty-cannon" - (24 "SAGE" "OH, IT'S THE CONQUERING HEROES.") - (136 "SAGE" "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.") - (258) - (261 :offscreen "SAGE" "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.") - (387) - (393 :offscreen "SAGE" "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.") - (525) - (528 "SAGE" "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP") - (663 "SAGE" "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.") - (788) - (807 "SAGE" "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.") - (906 "SAGE" "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND") - (1018 "SAGE" "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.") - (1171) - (1177 "DAXTER" "AND... WHAT ABOUT ME?") - (1232) - (1235 "SAGE" "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY.") - ) - -("sage-reminder-1-ecorocks" - (28 "SAGE" "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.") - (132 "SAGE" "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!") - (244) - (252 :offscreen "SAGE" "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.") - (365) - (366 :offscreen "SAGE" "NOW...") - (412 :offscreen "SAGE" "GET MOVING!") - ) - -("sage-reminder-1-generic" - (54 "SAGE" "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!") - (178) - (181 "SAGE" "LEAVE ME ALONE... UNTIL YOU HAVE THEM!") - ) - -("sage-reminder-1-misty-cannon" - (24 "SAGE" "THE BOMBARDMENT IS GETTING WORSE!") - (86 :offscreen "SAGE" "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT") - (215 :offscreen "SAGE" "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.") - (317) - (320 "SAGE" "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!") - ) - -("sage-reminder-2-generic" - (27 "SAGE" "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.") - (137 "SAGE" "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.") - (320) - (323 "SAGE" "NOW, GET OUT THERE AND FULFILL YOUR DESTINY.") - (455) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "HMM...")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "GOTTA GET THIS HEAT SHIELD WORKING...")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD...")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "WHERE'S MY SPANNER?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "FIRE CANYON IS SO HOT...")) - -("EXP-AM01" :hint #x0 - (0 "JAK'S UNCLE" "I NEED TO SET OFF ON MY JOURNEY SOON.") - (140 "JAK'S UNCLE" "I NEED PRECURSOR ORBS!") - ) - -("EXP-AM02" :hint #x0 (0 "JAK'S UNCLE" "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH...")) -("EXP-AM03" :hint #x0 (0 "JAK'S UNCLE" "OH I DO MISS THE OPEN ROAD.")) -("EXP-AM04" :hint #x0 (0 "JAK'S UNCLE" "SO MANY PLACES TO SEE, AND SO LITTLE TIME.")) - -("EXP-AM05" :hint #x0 - (0 "JAK'S UNCLE" "WELL IN MY DAY, YOU COULD WALK THE LANDS") - (185 "JAK'S UNCLE" "WITHOUT BEING ASSAULTED BY MONSTERS!") - ) - -("EXP-LO02" :hint #x0 (0 "JAK'S UNCLE" "I NEED MORE PRECURSOR ORBS.")) -("EXP-LO1A" :hint #x0 (0 "JAK'S UNCLE" "(MUTTERS)")) - -("FAR-AM01" :hint #x0 - (0 "FARMER" "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...") - (395 "FARMER" "THAT'S A GOOD GIRL...") - (500) - ) - -("FAR-AM02" :hint #x0 (0 "FARMER" "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS...")) -("FAR-AM2A" :hint #x0 (0 "FARMER" "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET...")) -("FAR-LO01" :hint #x0 (0 "FARMER" "(SNORES)")) -("FAR-LO1A" :hint #x0 (0 "FARMER" "(SNORES)")) -("SAGELP03" :hint #x0 (0 "SAGE" "THESE TWO COULDN'T UNBLOCK THEIR EARS...")) - -("SAGELP04" :hint #x0 - (0 "SAGE" "HE'LL JUST NEVER BE LIKE HIS UNCLE...") - (221 "SAGE" "I DON'T CARE WHAT THE OTHERS SAY.") - ) - -("SAGELP05" :hint #x0 - (0 "SAGE" "HELLO, BLUE SAGE? HELLO?") - (210) - (240 "SAGE" "WHERE IN THE BLUE BLAZES COULD HE BE...") - ) - -("SAGELP06" :hint #x0 (0 "SAGE" "MY, MY, MY...")) -("SAGELP11" :hint #x0 (0 "SAGE" "ANYONE? ANYONE AT ALL? COME IN?")) -("sksp0010" :hint #x231 (0 "DAXTER" "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "DID YOU SEE THE SIZE OF THE BITE") - (113 "DAXTER" "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?") - (300) - (325 "DAXTER" "WE BEST STAY WAY CLEAR OF THEM!") - (475 "DAXTER" "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY.") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.") - (228 "DAXTER" "I HOPE THEY WEREN'T AS UGLY IN PERSON!") - ) - -("sksp0017" :hint #x235 - (0 "DAXTER" "WHOA! CHECK OUT THAT FUNKY SCULPTURE") - (165 "DAXTER" "SITTIN' ON THE ROCKS OVER THERE!") - ) - -("sksp0043" :hint #x24e - (0 "DAXTER" "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.") - (95) - (100 "DAXTER" "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!") - ) - -("asstvb09" :hint #x24f - (0 "KEIRA" "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.") - (216) - (234 "KEIRA" "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS.") - (500) - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "THAT LAZY FARMER OWES US A POWER CELL!") - (156 "DAXTER" "LET'S GO TALK TO HIM!") - ) - -("asstvb04" :hint #x2b1 - (0 "KEIRA" "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!") - (220 "KEIRA" "MEET ME BY THE ENTRANCE TO THE FIRE CANYON") - (360 "KEIRA" "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.") - (555 "KEIRA" "BRING THE POWER CELLS, AND HURRY!") - (690 "KEIRA" "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!") - ) - -("asstvb08" :hint #x2b2 - (20 "KEIRA" "HURRY UP WITH THOSE POWER CELLS.") - (140 "KEIRA" "I'M WAITING AT THE HEAD OF FIRE CANYON") - (260 "KEIRA" "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "BIRDWATCHER" "OH MY, I HOPE THE POOR DEAR'S OKAY.") - (148) - (157 "BIRDWATCHER" "HERE'S A POWER CELL FOR YOUR VALOR.") - (237) - (306 "FLUT FLUT" "MAMA!") - (351) - (406 "FLUT FLUT" "MAMA!") - (430 "DAXTER" "OH NO! NO, NO, NO, NO!") - (533) - (535 "BIRDWATCHER" "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.") - (696) - (699 "DAXTER" "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?") - (803) - (807 "BIRDWATCHER" "OH, LOVE AT FIRST SIGHT! AH...") - (936) - (939 "BIRDWATCHER" "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME") - (1054 "BIRDWATCHER" "AND WORK WITH THE SAGE TO TAKE CARE OF HER.") - ) - -("bird-lady-introduction" - (125 "BIRDWATCHER" "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.") - (245) - (251 "DAXTER" "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!") - (328) - (331 "BIRDWATCHER" "OH, SORRY. I THOUGHT YOU WERE A SPOTTED") - (408 "BIRDWATCHER" "ORANGE-BELLIED RAIN FRAY.") - (454) - (457 "BIRDWATCHER" "YOU KNOW, YESTERDAY I SAW SOME") - (536 "BIRDWATCHER" "TERRIBLY VICIOUS CREATURES CAPTURE") - (590 "BIRDWATCHER" "A MOTHER FLUT FLUT NEAR THE BEACH.") - (648) - (654 :offscreen "BIRDWATCHER" "NOW THERE'S THIS POOR LITTLE ORPHAN EGG") - (730 :offscreen "BIRDWATCHER" "SITTING IN A NEST AT THE TOP OF THE CLIFF") - (794 :offscreen "BIRDWATCHER" "AND I CAN'T GET TO IT.") - (854 :offscreen "BIRDWATCHER" "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED") - (946 :offscreen "BIRDWATCHER" "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.") - (1041) - (1044 "BIRDWATCHER" "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL.") - (1198) - ) - -("bird-lady-reminder-1" - (56 "BIRDWATCHER" "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?") - (208) - (211 "BIRDWATCHER" "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!") - (348) - ) - -("bird-lady-reminder-2" - (58 "BIRDWATCHER" "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.") - (170) - (174 "BIRDWATCHER" "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF") - (244 "BIRDWATCHER" "IS GETTING AWFULLY COLD BY NOW.") - (313) - (316 "BIRDWATCHER" "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,") - (405 "BIRDWATCHER" "AND I'LL GIVE YOU A POWER CELL.") - ) - -("mayor-introduction" - (31 "MAYOR" "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!") - (171) - (174 "MAYOR" "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.") - (313) - (320 "MAYOR" "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?") - (479 "MAYOR" "THAT MEANS OUR VILLAGE HAS NO POWER!") - (569) - (576 "MAYOR" "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!") - (685) - (689 "MAYOR" "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.") - (850) - (864 "DAXTER" "DID YOU PAY THE BILL?") - (911) - (915 "MAYOR" "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.") - (1068) - (1074 "MAYOR" "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.") - (1262 "MAYOR" "OH OOH OOH AND-AND ANOTHER THING, UH...") - (1346 "MAYOR" "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,") - (1551 "MAYOR" "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!") - (1668) - (1671 "MAYOR" "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...") - (1797 "MAYOR" "90 PRECURSOR ORBS.") - ) - -("mayor-reminder-beams" - (26 "MAYOR" "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?") - (157 "MAYOR" "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!") - ) - -("mayor-reminder-donation" - (26 "MAYOR" "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.") - (157) - (160 "MAYOR" "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU.") - ) - -("mayor-resolution-beams" - (28 "MAYOR" "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!") - (205 "MAYOR" "AND THE ENTIRE VILLAGE WILL THANK ME -") - (269 "MAYOR" "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!") - (472) - (475 "MAYOR" "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL.") - ) - -("mayor-resolution-donation" - (28 "MAYOR" "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.") - (219) - (224 "MAYOR" "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!") - (365 "MAYOR" "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE.") - ) - -("sculptor-introduction" - (30 "SCULPTOR" "HEY... LITTLE FURRY DUDE!") - (154) - (161 "SCULPTOR" "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.") - (282) - (285 "DAXTER" "YOUR WHAT?") - (334) - (343 "SCULPTOR" "HAVEN'T YOU EVER SEEN A MUSE BEFORE?") - (424) - (428 "SCULPTOR" "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!") - (622) - (631 "DAXTER" "OH, I GET IT! LIKE A SIDEKICK.") - (751) - (757 "SCULPTOR" "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.") - (915) - (918 "SCULPTOR" "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?") - (1085) - (1089 "SCULPTOR" "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.") - (1182) - (1191 :offscreen "SCULPTOR" "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.") - (1278) - (1281 "SCULPTOR" "AWW, I JUST HOPE SHE'S ALL RIGHT.") - (1370) - (1376 "SCULPTOR" "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!") - (1436) - (1464 "DAXTER" "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!") - (1634) - (1643 "DAXTER" "ARE WE?") - ) - -("sculptor-reminder-1" - (27 "SCULPTOR" "AW HEY DUDES! DID YOU FIND MY MUSE YET?") - (169) - ) - -("sculptor-resolution" - (87 "SCULPTOR" "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!") - (230 "SCULPTOR" "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!") - ) - -("BIR-AM01" :hint #x0 (0 "BIRDWATCHER" "ARE YOU NEAR THE EGG YET?")) -("BIR-AM02" :hint #x0 (0 "BIRDWATCHER" "THAT'S IT, JUST A LITTLE FURTHER!")) -("BIR-AM03" :hint #x0 (0 "BIRDWATCHER" "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!")) -("BIR-AM04" :hint #x0 (0 "BIRDWATCHER" "OH, MY, THAT WASN'T GENTLE!")) -("BIR-AM05" :hint #x0 (0 "BIRDWATCHER" "COME ON, PUSH THE EGG OFF THE CLIFF!")) -("BIR-AM06" :hint #x0 (0 "BIRDWATCHER" "OHH!")) -("BIR-AM07" :hint #x0 (0 "BIRDWATCHER" "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE.")) -("BIR-AM08" :hint #x0 (0 "BIRDWATCHER" "HERE, BIRDIE BIRDIE.")) -("BIR-AM09" :hint #x0 (0 "BIRDWATCHER" "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!")) -("BIR-AM10" :hint #x0 (0 "BIRDWATCHER" "CAREFUL, EASY DOES IT!")) -("BIR-AM11" :hint #x0 (0 "BIRDWATCHER" "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG.")) -("BIR-AM12" :hint #x0 (0 "BIRDWATCHER" "YOU MUST BE A TRUE ANIMAL LOVER!")) -("BIR-AM13" :hint #x0 (0 "BIRDWATCHER" "DO YOU SEE ANY OTHER BIRDS UP THERE?")) -("BIR-LO01" :hint #x0 (0 "BIRDWATCHER" "(KISS) (WHISTLE)")) -("BIR-LO02" :hint #x0 (0 "BIRDWATCHER" "OH MY, THAT'S A PRETTY ONE.")) -("BIR-LO03" :hint #x0 (0 "BIRDWATCHER" "OH LOOK, A MUCKY-MUCK.")) -("BIR-am08" :hint #x0 (0 "BIRDWATCHER" "HERE, BIRDIE BIRDIE...")) -("CHI-AM01" :hint #x0 (0 "MAYOR" "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!")) - -("CHI-AM02" :hint #x0 - (0 "MAYOR" "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...") - (214) - (219 "MAYOR" "I'D SOONER WRESTLE AN ENRAGED FLUT FLUT.") - ) - -("CHI-AM03" :hint #x0 - (80 "MAYOR" "F-FIRST THE FISHERMAN'S BOAT IS...") - (230 "MAYOR" "IT'S ATTACKED BY A MONSTER...") - (350) - (390 "MAYOR" "AND NOW, NOW THIS...") - (540) - (570 "MAYOR" "WHAT ELSE COULD GO WRONG?") - ) - -("CHI-AM04" :hint #x0 - (0 "MAYOR" "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...") - (450 "MAYOR" "TO PAY FOR THIS MESS.") - ) - -("CHI-AM05" :hint #x0 (0 "MAYOR" "PROBLEMS... PROBLEMS... PROBLEMS!")) -("CHI-AM06" :hint #x0 (0 "MAYOR" "(SOBS) I'LL NEVER GET RE-ELECTED NOW...")) -("CHI-AM07" :hint #x0 (0 "MAYOR" "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?")) -("CHI-AM08" :hint #x0 (0 "MAYOR" "I... THEY, I DON'T... (MUTTERS)")) -("CHI-LO01" :hint #x0 (0 "MAYOR" "...WINDMILL, MONSTERS, POWER, RE-ELECTION...")) -("CHI-LO02" :hint #x0 (0 "MAYOR" "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH...")) -("SCU-AM01" :hint #x0 (0 "SCULPTOR" "AW... I JUST CAN'T DO IT ANYMORE.")) -("SCU-AM02" :hint #x0 (0 "SCULPTOR" "AW, I WISH I HAD SOME INSPIRATION.")) -("SCU-AM03" :hint #x0 (0 "SCULPTOR" "I'M AS INSPIRED AS... THIS ROCK.")) -("SCU-AM04" :hint #x0 (0 "SCULPTOR" "AW... WHERE IS MY MUSE?")) -("SCU-AM05" :hint #x0 (0 "SCULPTOR" "I CAN'T WORK LIKE THIS!")) -("SCU-AM06" :hint #x0 (0 "SCULPTOR" "AW MAN... WILL SHE EVER COME BACK TO ME?")) -("SCU-LO01" :hint #x0 (0 "SCULPTOR" "AW MAN...")) -("sksp0028" :hint #x0 (0 "DAXTER" "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!")) -("sksp0019" :hint #x236 (0 "DAXTER" "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS.")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!") - (197) - (200 "DAXTER" "LET'S GO KICK SOME BIG BIRD BUTT!") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!")) -("sksp0031" :hint #x23a (0 "DAXTER" "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!")) -("sksp0034" :hint #x23b (0 "DAXTER" "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!")) -("sksp0020" :hint #x268 (0 "DAXTER" "YEAH HA HA! LET'S DO THAT AGAIN!")) -("sksp0021" :hint #x269 (0 "DAXTER" "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!")) -("sksp0022" :hint #x26a (0 "DAXTER" "YEAH HA HA HA HA HA!! WOO HO HO HO!")) -("sksp0023" :hint #x26b (0 "DAXTER" "WOOHOO!")) -("sksp0024" :hint #x26c (0 "DAXTER" "YEAH HA HA! YEAH!")) -("sksp0025" :hint #x273 (0 "DAXTER" "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT.")) -("sksp0027" :hint #x274 (0 "DAXTER" "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN.")) - -("sksp0029" :hint #x275 - (0 "DAXTER" "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER") - (125 "DAXTER" "AND SEE IF WE SCRAMBLED THAT FLUT FLUT EGG.") - ) - -("sagevb01" :hint #x288 - (0 "SAGE" "WELL, I SEE THAT YOU TWO HAVE FINALLY") - (163 "SAGE" "DECIDED TO UNBLOCK MY COLLECTORS.") - (347) - (352 "SAGE" "I WOULD OFFER MY CONGRATULATIONS") - (493 "SAGE" "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.") - (705) - (712 "SAGE" "BY THE WAY, IF THINGS DON'T WORK OUT,") - (884 "SAGE" "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.") - (1116 "SAGE" "NYEH HA HA HA HA HA.") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "PUNCH THOSE POLES UP FROM BELOW!")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (0 :offscreen "FISHERMAN" "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:") - (83 :offscreen "FISHERMAN" "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.") - (220 :offscreen "FISHERMAN" "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH") - (322 :offscreen "FISHERMAN" "THEN I'M GONNA TAKE ME NET BACK FROM YA!") - (432) - (438 :offscreen "FISHERMAN" "THERE ARE POISONOUS EELS IN THIS RIVER.") - (542) - (545 :offscreen "FISHERMAN" "CATCH EVEN ONE OF THEM BOOGERS") - (642 :offscreen "FISHERMAN" "AND YOU'LL POISON THE WHOLE DARN CATCH!") - ) - -("fisher-introduction" - (0 "DAXTER" "WHAT DO YOU HAVE IN THE BASKET?") - (47 "FISHERMAN" "NOTHING TO TALK ABOUT.") - (100) - (103 "FISHERMAN" "THEM MONSTERS PATROLIN' THE OCEAN") - (169 "FISHERMAN" "TOOK A BITE OUT OF ME FISHIN' RIG.") - (226) - (229 "FISHERMAN" "AND NOW THEY'RE GOBLIN' UP ME CATCH!") - (290) - (293 "FISHERMAN" "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.") - (419) - (425 "DAXTER" "WHOO! MAYBE... IT'S YOUR BREATH.") - (515) - (521 "FISHERMAN" "YOU THINK YOU CAN DO BETTER?") - (569) - (572 "FISHERMAN" "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!") - (665) - (671 "FISHERMAN" "I'LL GIVE YOU A POWER CELL") - (719 "FISHERMAN" "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!") - (808) - (814 "FISHERMAN" "AND I'LL LET YOU AND SHRIMP HERE") - (864 "FISHERMAN" "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.") - (955) - (961 "FISHERMAN" "YOU'S WANT TO TRY THE CHALLENGE?") - ) - -("fisher-reject" - (2 "FISHERMAN" "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME") - (102 "FISHERMAN" "YOU KNOW WHERE TO FIND ME.") - ) - -("fisher-reminder-1" (6 "FISHERMAN" "WANT TO TRY AND BEAT THE RIVER, DO YA?")) - -("fisher-resolution" - (0 "FISHERMAN" "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!") - (115) - (120 "FISHERMAN" "NOT BAD FOR A COUPLE OF LAND LUBBERS!") - (185) - (199 "FISHERMAN" "HERE'S THE POWER CELL I PROMISED") - (277 "FISHERMAN" "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK") - (351 "FISHERMAN" "WHENEVER YOU LIKE!") - ) - -("FIS-AM01" :hint #x0 - (0 "FISHERMAN" "GRR, THESE DARN FISH...") - (180 "FISHERMAN" "I NEVER CATCH ME A SINGLE ONE.") - ) - -("FIS-AM02" :hint #x0 - (0 "FISHERMAN" "THEM MONSTERS THAT DONE BIT ME SHIP") - (115 "FISHERMAN" "WILL DRIVE ME BROKE.") - ) - -("FIS-AM03" :hint #x0 - (0 "FISHERMAN" "DRAT, THESE BLIGHTERS!") - (135 "FISHERMAN" "IN ME BASKET, DARN FISHIES, COME ON YEAH...") - (419) - (425 "FISHERMAN" "HEH HE HE HE HE...") - ) - -("FIS-AM04" :hint #x0 (0 "FISHERMAN" "OH I LOVE THE SMELL OF FISH IN THE MORNIN'.")) -("FIS-AM05" :hint #x0 (0 "FISHERMAN" "OOH I COULD USE ME A SALTED FISH LIPS ON RYE.")) -("FIS-AM06" :hint #x0 (0 "FISHERMAN" "I 'MEMBER THE BIG ONE THAT GOT AWAY...")) -("FIS-LO01" :hint #x0 (0 "FISHERMAN" "GRR!")) -("FIS-LO03" :hint #x0 (0 "FISHERMAN" "HA HA HA HA HA HAH!")) -("FIS-LO04" :hint #x0 (0 "FISHERMAN" "DARN FISH... THEY NEVER GET IN ME NET!")) -("FIS-LO05" :hint #x0 (0 "FISHERMAN" "HA HA HA AH HA HA HA HAH!")) -("FIS-TA01" :hint #x0 (0 "FISHERMAN" "TO THE LEFT!")) -("FIS-TA02" :hint #x0 (0 "FISHERMAN" "RIGHT WITH YA!")) -("FIS-TA03" :hint #x0 (0 "FISHERMAN" "HERE COMES A BIG ONE!")) -("FIS-TA04" :hint #x0 (0 "FISHERMAN" "YE MISSED A JUMBO, LADDIE!")) -("FIS-TA05" :hint #x0 (0 "FISHERMAN" "DON'T MISS ONE LIKE THAT AGAIN!")) -("FIS-TA06" :hint #x0 (0 "FISHERMAN" "STEADY BOY.")) -("FIS-TA07" :hint #x0 (0 "FISHERMAN" "YOUR SAILS ARE SAGGING IN THE WIND, BOY.")) -("FIS-TA08" :hint #x0 (0 "FISHERMAN" "MISSED.")) -("FIS-TA09" :hint #x0 (0 "FISHERMAN" "LOOKS LIKE YOU COULD USE A BIGGER NET...")) -("FIS-TA10" :hint #x0 (0 "FISHERMAN" "MISSED AGAIN!")) -("FIS-TA11" :hint #x0 (0 "FISHERMAN" "HOLD STEADY! YOU'RE ALMOST THERE...")) -("FIS-TA1A" :hint #x0 (0 "FISHERMAN" "LEFT!")) -("FIS-TA2A" :hint #x0 (0 "FISHERMAN" "RIGHT!")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!") - (275) - (281 "DAXTER" "LET'S GO BACK AND GET YOU JUICED UP AGAIN.") - ) - -("sksp0040" :hint #x23d (0 "DAXTER" "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!")) -("sksp0041" :hint #x23e (0 "DAXTER" "WE NEED TO GET TO THE TOP OF THAT TOWER!")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER") - (136 "DAXTER" "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS") - (202 "DAXTER" "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.") - (391) - (400 "DAXTER" "ARE YOU THINKING WHAT I'M THINKING?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE") - (117 "DAXTER" "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME") - (223 "DAXTER" "FOR CONNECTING THE VILLAGE ENERGY BEAM!") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.") - (214) - (220 "DAXTER" "LET'S GO FIDDLE WITH THEM!") - ) - -("sksp0b42" :hint #x278 - (0 "DAXTER" "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!") - (240 "DAXTER" "AND THAT'S A LOTTA FISH, JAK.") - ) - -("asstvb02" :hint #x289 - (0 "KEIRA" "WOW, DID YOU SEE THAT?") - (110 "KEIRA" "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!") - (300) - (310 "KEIRA" "I KNEW THERE WAS A WAY TO TURN THEM ON.") - (430) - (440 "KEIRA" "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!")) -("sksp0050" :hint #x29d (0 "DAXTER" "BREAK THE MIRROR, JAK!")) -("sksp0051" :hint #x29e (0 "DAXTER" "GET THE BUGS, JAK! GET THE BUGS!")) -("sksp0052" :hint #x29f (0 "DAXTER" "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER.")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!")) - -;; ----------------- -;; misty -;; ----------------- - -("fishermans-boat-ride-to-village1-alt" - (167 :offscreen "OLD MAN" "THOSE TWO COULD PROVE TO BE TROUBLE.") - (261) - (264 :offscreen "WOMAN" "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.") - (408) - (411 "OLD MAN" "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.") - (556) - (562 "WOMAN" "I DOUBT THEY'LL GET THAT FAR.") - (623 "WOMAN" "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.") - (785) - (790 "OLD MAN" "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?") - (957) - (966 "WOMAN" "I THINK IT'S WORTH THE RISK.") - (1053) - (1078 "OLD MAN" "INDEED.") - (1148) - ) - -("sksp0064" :hint #x245 (0 "DAXTER" "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE.")) -("sksp0067" :hint #x249 - (0 "DAXTER" "DON'T FALL INTO THE MIST BELOW US!") - (125 "DAXTER" "'CAUSE I DON'T THINK WE'LL MAKE IT BACK.") - ) - -("sksp0059" :hint #x26e - (0 "DAXTER" "THIS PLACE GIVES ME THE WILLIES!") - (110) - (125 "DAXTER" "LET'S KEEP YOU OUT OF THE OOZE, OKAY?") - ) - -("sksp0060" :hint #x26f - (0 "DAXTER" "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!") - (170 "DAXTER" "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE") - (335 "DAXTER" "WHEN YOU'RE COVERED IN FUZZ!") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "HEY! I SEE THE SCULPTOR'S MUSE!")) -("sksp0062" :hint #x27e (0 "DAXTER" "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!") - (332) - (344 "DAXTER" "RULE NUMBER ONE: ALWAYS AVOID THE MINES!") - ) - -("sagevb02" :hint #x28a - (6 "SAGE" "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!") - (390) - (410 "SAGE" "NOW THAT THE LURKERS CAN'T OPEN THAT SILO") - (555 "SAGE" "THEY CAN'T FLOOD THE WORLD WITH DARK ECO") - (710 "SAGE" "AND CAUSE UNTOLD DESTRUCTION.") - (863) - (880 "SAGE" "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!") - (1065 "SAGE" "THE TWO OF YOU HAVE PLENTY TO DO.") - (1188 "SAGE" "GET ON WITH IT!") - ) - -("asstvb03" :hint #x28b - (0 "KEIRA" "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!") - (190 "KEIRA" "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.") - (370 "KEIRA" "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "JUMP, THEN DIVE ONTO THE TEETER-TOTTER.")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "GET THE RED ECO!")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "RED ECO MAKES YOUR ATTACKS STRONGER.")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!")) -("sksp0435" :hint #x2aa (0 "DAXTER" "KNOCK OVER THOSE BONES!")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (25 "KEIRA" "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!") - (140) - (143 "KEIRA" "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER") - (233 "KEIRA" "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.") - (343) - (346 :offscreen "KEIRA" "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.") - (458) - (462 "KEIRA" "HIT 500 DEGREES, AND IT'S OVER.") - (546) - (552 "DAXTER" "OVER?! LIKE BURNING MOLTEN METAL OVER?!") - (636) - (639 "KEIRA" "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS") - (744 :offscreen "KEIRA" "TO KEEP YOU OFF THE HOT GROUND.") - (792) - (795 :offscreen "KEIRA" "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP") - (894 :offscreen "KEIRA" "THE SHIELD'S TEMPERATURE QUICKLY.") - (956) - (962 "KEIRA" "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE") - (1062 "KEIRA" "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.") - (1140) - (1146 "KEIRA" "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!") - (1222) - (1228 "KEIRA" "GOOD LUCK!") - ) - -("sksp0077" :hint #x502 (0 "DAXTER" "BALLOONS GOOD, BURNING HOT MAGMA BAD!")) -("sksp0078" :hint #x503 (0 "DAXTER" "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL.")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!") - (257) - (270 "DAXTER" "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "USE THE HOP-TURN TO STEER HARDER!")) -("sksp0081" :hint #x506 (0 "DAXTER" "AHH! MAYBE I SHOULD DRIVE!")) -("sksp0082" :hint #x507 (0 "DAXTER" "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?")) -("sksp0083" :hint #x508 (0 "DAXTER" "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!")) -("sksp0084" :hint #x509 (0 "DAXTER" "TOO CLOSE, TOO CLOSE!")) -("sksp0085" :hint #x50a (0 "DAXTER" "WHOA! THIS BABY'S GETTING WAY TOO HOT!")) -("sksp0086" :hint #x50b (0 "DAXTER" "A FEW MORE SECONDS AND WE'RE FRIED FLUT FLUT!")) -("sksp0087" :hint #x50d (0 "DAXTER" "HIT THOSE BALLOONS TO COOL OFF!")) -("sksp0088" :hint #x50e (0 "DAXTER" "HERE COMES ANOTHER BALLOON!")) -("sksp0089" :hint #x50f (0 "DAXTER" "I WISH I SLEPT IN THIS MORNING!")) -("sksp0090" :hint #x510 (0 "DAXTER" "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!")) -("sksp0091" :hint #x511 (0 "DAXTER" "THIS PUPPY'S GETTING TOO HOT!")) -("sksp0092" :hint #x512 (0 "DAXTER" "DO YOU SMELL SOMETHING BURNING?!")) -("sksp0093" :hint #x513 (0 "DAXTER" "I THINK MY TAIL'S ON FIRE!")) -("sksp0094" :hint #x514 (0 "DAXTER" "SHE'S GONNA BLOW!")) -("sksp0095" :hint #x515 (0 "DAXTER" "WAHOO! WE MADE IT!")) -("sksp0096" :hint #x516 (0 "DAXTER" "THERE'S SCOUT FLIES OUT HERE, TOO!")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (57 "SAGE" "WHOA!") - (117) - (157 "SAGE" "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.") - (280) - (298 "SAGE" "HEY!") - (326) - (332 :offscreen "SAGE" "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.") - (410 "KEIRA" "OH MY! ROCK VILLAGE IS ON FIRE!") - (497) - (500 "SAGE" "ONE HECK OF A PARTY.") - (562) - (565 "KEIRA" "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!") - (726) - (807 "KEIRA" "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.") - (957 :offscreen "KEIRA" "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.") - (1070 "KEIRA" "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.") - (1145 "SAGE" "WE'D BETTER TAKE A LOOK AT HIS NOTES.") - (1220 :offscreen "SAGE" "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.") - (1370 :offscreen "SAGE" "AND TAKE THE FURBALL WITH YOU!") - ) - -("assistant-village2-introduction-flutflut" - (22 "KEIRA" "BACK AGAIN, BOYS?") - (69) - (75 "DAXTER" "\"BOY\"?") - (103) - (110 "DAXTER" "HEY BABE, I'M A FULL-GROWN...") - (169) - (188 "DAXTER" "AH...") - (210) - (222 "DAXTER" "SOMETHIN'... SOMETHIN' FUZZY.") - (302) - (309 "KEIRA" "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,") - (414 "KEIRA" "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.") - (512) - (522 "KEIRA" "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.") - (644) - (648 "KEIRA" "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.") - (772) - (775 "KEIRA" "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR.") - (870) - ) - -("assistant-village2-introduction-robbers" - (30 "KEIRA" "HEY, YOU TWO!") - (66 "KEIRA" "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!") - (132) - (138 "KEIRA" "ACCORDING TO HIS NOTES,") - (176 "KEIRA" "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,") - (292 "KEIRA" "AND FLEW OFF INTO THE PRECURSOR BASIN.") - (367 "KEIRA" "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER") - (435 "KEIRA" "UNTIL YOU FIND THE ONE WITH THE POWER CELL.") - (502 "KEIRA" "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN.") - (614) - ) - -("assistant-village2-introduction-room" - (30 "KEIRA" "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST") - (124 "KEIRA" "LEADS TO AN UNDERWATER LOST CITY.") - (201) - (204 "KEIRA" "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT") - (258 "KEIRA" "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.") - (338 "KEIRA" "BUT HE WAS NEVER SUCCESSFUL.") - (395 "KEIRA" "YOU SHOULD CHECK IT OUT!") - (427) - (436 "DAXTER" "UH... AREN'T THERE A LOT OF, UM...") - (495 "DAXTER" "LURKER SHARKS IN THAT WATER?") - (555 "KEIRA" "WHY? ARE YOU SCARED?") - (635 "DAXTER" "ME? OF COURSE NOT!") - (702 "DAXTER" "JUST LOOKIN' OUT FOR JAK HERE!") - (752 "DAXTER" "YOU, UH, HEH...") - (782) - (800 "DAXTER" "YOU KNOW WHAT A CHICKEN HE CAN BE.") - (845) - (870 "KEIRA" "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.") - (998 "KEIRA" "THEY DON'T LIKE SHALLOW WATER.") - ) - -("assistant-village2-reminder-1-flutflut" - (24 "KEIRA" "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.") - (115 "KEIRA" "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (23 "KEIRA" "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,") - (111 "KEIRA" "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT.") - (230) - ) - -("assistant-village2-reminder-1-room" - (35 "KEIRA" "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?") - (118) - (121 "KEIRA" "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER.") - (230) - ) - -("assistant-village2-resolution" - (35 "KEIRA" "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!") - (112 "KEIRA" "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.") - (206) - (295 "KEIRA" "THERE WE GO!") - (330) - (335 "KEIRA" "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.") - (433) - (441 "DAXTER" "WAIT! UH...") - (489 "DAXTER" "I'LL STAY HERE AND PROTECT KEIRA!") - (562) - (568 "DAXTER" "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.") - (663) - (669 "KEIRA" "OH, REALLY HEROIC OF YOU.") - (734) - ) - -("gambler-introduction-1" - (24 "GAMBLER" "AW, NO. NOT ANOTHER \"HERO\".") - (97 "GAMBLER" "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT") - (186 "GAMBLER" "AGAINST THE MONSTER UP THERE.") - (238) - (241 "GAMBLER" "TRUST ME, THE SMART MONEY'S ON THE MONSTER.") - (330) - (344 "GAMBLER" "THAT WAGER PRETTY MUCH TAPPED ME OUT!") - (414 "GAMBLER" "SO'S, I GOT A PROPOSAL.") - (473 "GAMBLER" "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,") - (570 "GAMBLER" "AND I'LL GIVE YOU A POWER CELL IN RETURN.") - (651 "GAMBLER" "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.") - (734 :offscreen "GAMBLER" "MY BIG COMEBACK!") - (788) - (794 :offscreen "GAMBLER" "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,") - (902 :offscreen "GAMBLER" "AND I'LL GET A PRETTY PAYOFF!") - (949 "GAMBLER" "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL.") - ) - -("gambler-reminder-money" - (2 "GAMBLER" "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.") - (77 "GAMBLER" "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!") - ) - -("gambler-reminder-race" - (1 "GAMBLER" "WELL, WHAT ARE YOU WAITIN' FOR?") - (60 "GAMBLER" "THIS BARREL'S GETTIN' ITCHY!") - (113) - (116 "GAMBLER" "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,") - (181 "GAMBLER" "AND WE'LL BOTH BE WINNERS!") - ) - -("gambler-resolution-money" - (0 "GAMBLER" "HEH HEH HEH! OH, YEAH!") - (70) - (76 "GAMBLER" "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!") - (174 "GAMBLER" "HERE'S THE POWER CELL I PROMISED!") - ) - -("gambler-resolution-race" - (0 "GAMBLER" "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.") - (140 "GAMBLER" "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!") - ) - -("geologist-introduction" - (27 "GEOLOGIST" "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.") - (98 "GEOLOGIST" "I'VE GOT A RESEARCH PROJECT GOING,") - (149 "GEOLOGIST" "AND MAYBE YOU COULD HELP ME OUT.") - (198) - (203 "DAXTER" "HEY, WE'RE THE ONES ON A BIG QUEST HERE.") - (276 "DAXTER" "WE ASK YOU FOR HELP.") - (323) - (326 "GEOLOGIST" "WELL, PERHAPS WE CAN HELP EACH OTHER.") - (392) - (402 "GEOLOGIST" "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES") - (470 "GEOLOGIST" "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.") - (557) - (566 :offscreen "GEOLOGIST" "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!") - (682) - (685 :offscreen "GEOLOGIST" "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.") - (808) - (822 "GEOLOGIST" "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,") - (890 "GEOLOGIST" "YOU MIGHT JUST SAVE THEIR LIVES.") - (945) - (955 "GEOLOGIST" "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.") - (1028) - (1035 "DAXTER" "YEAH, LIGHTNING MOLES... WE CARE.") - (1150) - (1163 "DAXTER" "MAYBE FOR TWO POWER CELLS!") - (1232 "GEOLOGIST" "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL") - (1342 "GEOLOGIST" "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.") - (1460 "GEOLOGIST" "FAIR ENOUGH?") - (1506) - ) - -("geologist-reminder-moles" - (24 "GEOLOGIST" "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?") - (109) - (118 "GEOLOGIST" "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!") - ) - -("geologist-reminder-money" (26 "GEOLOGIST" "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!")) - -("geologist-resolution-moles" - (30 "GEOLOGIST" "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.") - (140) - (150 "GEOLOGIST" "HERE'S A POWER CELL TO HELP YOU OUT.") - (227) - (237 "GEOLOGIST" "NOW I CAN GET BACK TO MY RESEARCH!") - ) - -("geologist-resolution-money" - (27 "GEOLOGIST" "OH, YOU HAVE THE ORBS!") - (80) - (80 "GEOLOGIST" "HERE'S A POWER CELL WE AGREED UPON.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (3 "SAGE" "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.") - (144) - (152 "SAGE" "BEFORE BLUE SAGE'S DISAPPEARANCE,") - (220 "SAGE" "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.") - (357) - (360 "SAGE" "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION") - (490 "SAGE" "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.") - (591) - (597 :offscreen "SAGE" "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.") - (720 "SAGE" "RIDE THE ZOOMER TO A GREEN ECO VENT,") - (787 "SAGE" "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.") - (896 "SAGE" "THAT SHOULD HEAL THEM.") - (948) - (951 "SAGE" "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.") - (1168) - (1195 :offscreen "SAGE" "AND, DAXTER...") - (1254 "SAGE" "START CLEANING UP IN HERE!") - (1310 "SAGE" "AND DON'T FORGET THE CORNERS!") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.") - (130) - (140 "SAGE" "ACCORDING TO THE BLUE SAGE'S NOTES,") - (208 "SAGE" "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.") - (300) - (304 :offscreen "SAGE" "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE") - (417 :offscreen "SAGE" "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.") - (531) - (549 :offscreen "SAGE" "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.") - (675) - (685 "SAGE" "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,") - (764 "SAGE" "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD.") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (26 "SAGE" "MY EYES MUST BE DECEIVING ME!") - (93) - (99 "SAGE" "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,") - (240 "SAGE" "SAVING THE DARK ECO-INFECTED PLANTS.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (0 "SAGE" "WHAT ARE YOU DOING BACK HERE ALREADY?") - (70) - (82 "SAGE" "I CAN SEE FROM THE BALCONY") - (132 :offscreen "SAGE" "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.") - (250) - (255 "SAGE" "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.") - (340) - (364 "SAGE" "GET MOVING!") - (400) - ) - -("warrior-introduction" - (24 "WARRIOR" "OHH... MY ACHING HEAD.") - (128) - (137 "DAXTER" "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!") - (212 "DAXTER" "WALK IT OFF, TOUGH GUY!") - (264 "WARRIOR" "OH, SURE, I WAS TOUGH ONCE.") - (337 "WARRIOR" "MAYBE EVEN THE TOUGHEST OF THEM ALL.") - (402 "WARRIOR" "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!") - (594 :offscreen "WARRIOR" "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.") - (760 :offscreen "WARRIOR" "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...") - (928 "WARRIOR" "I CLIMBED THE HILL TO TAKE HIM ON...!") - (1033) - (1044 "WARRIOR" "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.") - (1172) - (1178 "DAXTER" "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?") - (1255 "DAXTER" "'CAUSE IT'S KILLIN' ME!") - (1303) - (1310 :offscreen "WARRIOR" "AFTER MY LAST STUNNING FAILURE,") - (1395 :offscreen "WARRIOR" "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,") - (1515 :offscreen "WARRIOR" "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.") - (1640) - (1669 "WARRIOR" "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE") - (1905 "WARRIOR" "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!") - (2030) - (2040 "WARRIOR" "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.") - (2200) - (2222 "WARRIOR" "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.") - (2330) - (2360 :offscreen "WARRIOR" "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT") - (2465 :offscreen "WARRIOR" "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.") - (2561) - (2566 "DAXTER" "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...") - (2659 "DAXTER" "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.") - (2766) - (2770 "WARRIOR" "OH, SURE! AND SEAL MY DOOM?") - (2880 "WARRIOR" "(SIGHS)") - (2943) - (2949 "WARRIOR" "ALRIGHT. FINE.") - (3036 "WARRIOR" "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.") - (3173) - (3197 "WARRIOR" "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!") - ) - -("warrior-reminder-1" - (27 "WARRIOR" "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS") - (123 "WARRIOR" "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON.") - ) - -("warrior-resolution" - (30 "WARRIOR" "OH.") - (67) - (73 "WARRIOR" "WONDERFUL.") - (120) - (126 "WARRIOR" "YA BROUGHT ME THE PRECURSOR ORBS.") - (234) - (240 "WARRIOR" "ALL RIGHT.") - (279) - (285 "WARRIOR" "I'LL FIX THE BRIDGE.") - (334) - (340 "WARRIOR" "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!") - (476) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?")) - -("ASSTLP24" :hint #x0 - (0 "KEIRA" "NOW, EVEN WITH POWER CELLS,") - (150 "KEIRA" "WILL WE HAVE ENOUGH POWER?") - ) - -("GAM-AM01" :hint #x0 (0 "GAMBLER" "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!")) -("GAM-AM02" :hint #x0 (0 "GAMBLER" "NO, IT WAS A SURE THING!")) -("GAM-AM03" :hint #x0 (0 "GAMBLER" "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!")) -("GAM-AM04" :hint #x0 (0 "GAMBLER" "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!")) -("GAM-AM05" :hint #x0 (0 "GAMBLER" "HEY! BARRELS COULD COME BACK IN STYLE!")) -("GAM-AM06" :hint #x0 (0 "GAMBLER" "OH... I NEED A LUCKY BREAK.")) -("GAM-AM07" :hint #x0 (0 "GAMBLER" "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?")) -("GAM-AM08" :hint #x0 (0 "GAMBLER" "I THOUGHT I HAD A GOOD TIP!")) -("GAM-AM09" :hint #x0 (0 "GAMBLER" "ANOTHER DAY, ANOTHER WAGER.")) -("GAM-AM10" :hint #x0 (0 "GAMBLER" "I BET NO ONE CAN TAKE ON THAT MONSTER.")) -("GAM-AM11" :hint #x0 (0 "GAMBLER" "HUH-HUH... I SHOULD CASH OUT AND MOVE ON.")) -("GAM-AM12" :hint #x0 (0 "GAMBLER" "EH, SOMETIMES YOU JUST CAN'T WIN.")) -("GAM-AM13" :hint #x0 (0 "GAMBLER" "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?")) -("GEO-AM01" :hint #x0 (0 "GEOLOGIST" "MM, INTERESTING STRATA...")) -("GEO-AM02" :hint #x0 (0 "GEOLOGIST" "POOR LITTLE MOLES...")) -("GEO-AM03" :hint #x0 (0 "GEOLOGIST" "INTERESTING...")) -("GEO-AM04" :hint #x0 (0 "GEOLOGIST" "GOOD LUCK, BOYS!")) -("GEO-AM05" :hint #x0 (0 "GEOLOGIST" "NASTY LURKERS...")) -("GEO-AM06" :hint #x0 (0 "GEOLOGIST" "ROCKS HAVE FEELINGS, TOO...")) -("GEO-AM07" :hint #x0 (0 "GEOLOGIST" "HANG IN THERE, LITTLE ONES...")) -("GEO-AM08" :hint #x0 (0 "GEOLOGIST" "NOW I CAN GET BACK TO MY RESEARCH!")) -("GEO-LO01" :hint #x0 (0 "GEOLOGIST" "I'VE GOT TO GET BACK TO MY RESEARCH.")) -("GEO-LO02" :hint #x0 (0 "GEOLOGIST" "HM, THIS STONE IS VERY OLD...")) -("SAGELP20" :hint #x0 (0 "SAGE" "HMM...")) -("SAGELP21" :hint #x0 (0 "SAGE" "THE LURKERS MUST BE STOPPED.")) -("SAGELP22" :hint #x0 (0 "SAGE" "I SEE...")) -("SAGELP23" :hint #x0 (0 "SAGE" "NO...")) -("SAGELP24" :hint #x0 (0 "SAGE" "WHAT COULD HAVE HAPPENED TO THEM?")) -("WAR-LO1A" :hint #x0 (0 "WARRIOR" "(SOBBING)")) -("WAR-LO1B" :hint #x0 (0 "WARRIOR" "(SOBS)")) - -("WAR-LO1C" :hint #x0 - (0 "WARRIOR" "(BLOWS NOSE AND SPUTTERS)") - (200 "WARRIOR" "(CONTINUES SOBBING)") - ) - -("asstvb22" :hint #x326 - (50 "KEIRA" "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!") - (300 "KEIRA" "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!") - (520 "KEIRA" "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT.") - (775) - ) - -("asstvb20" :hint #x327 - (40 "KEIRA" "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!") - (295 "KEIRA" "THAT'S ONE MORE POWER CELL!") - ) - -("asstvb21" :hint #x328 - (50 "KEIRA" "GOOD WORK! AREN'T YOU GUYS HAPPY") - (163 "KEIRA" "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?") - (290 "KEIRA" "SHE MAY COME IN HANDY AGAIN SOMETIME.") - (420 "KEIRA" "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME.") - ) - -("sagevb03" :hint #x36a - (0 "SAGE" "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE") - (226 "SAGE" "I'VE GOT LOW EXPECTATIONS.") - (420 "SAGE" "OKAY, YOUR MOMENT OF GLOATING IS OVER.") - (598) - (613 "SAGE" "GET ON WITH IT!") - ) - -("sagevb04" :hint #x36b - (0 "SAGE" "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.") - (240 "SAGE" "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.") - (475 "SAGE" "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!") - (685 "SAGE" "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,") - (868 "SAGE" "BUT WE SURE DIDN'T WANT THEM TO GET IT.") - (1020) - (1040 "SAGE" "IF YOU KEEP THIS SUCCESS UP...") - (1205 "SAGE" "NAH, YOU'LL STILL FALL SHORT OF HERO.") - (1430) - (1450 "SAGE" "BUT KEEP TRYING. IT'S ENDEARING.") - ) - -("asstvb71" :hint #x36c - (16 "KEIRA" "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.") - (200 "KEIRA" "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,") - (179 "KEIRA" "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.") - (406 "KEIRA" "GO GET 'EM!") - ) - -("asstvb28" :hint #x36f - (0 "KEIRA" "HEY! DON'T FORGET ABOUT THE SAGE AND ME!") - (178) - (184 "KEIRA" "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!") - (374) - (380 "KEIRA" "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.") - (564) - (570 "KEIRA" "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!") - ) - -("asstvb29" :hint #x370 - (0 "KEIRA" "HEY! WE'RE STILL WAITING!") - (185 "KEIRA" "TURN ON THE TELEPORT GATE!") - ) - -("asstvb30" :hint #x371 (1 "KEIRA" "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!")) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (5 "BILLY" "GOOD! THOSE RATS WILL BE BACK ANYTIME.") - (109 "BILLY" "SHOOT ALL THEM RATS, AND KEEP 'EM") - (174 "BILLY" "FROM EATING AT LEAST ONE OF THEM SNACKS.") - ) - -("billy-introduction" - (6 "BILLY" "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?") - (123 "BILLY" "I OWN THESE HERE PARTS.") - (189 "BILLY" "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...") - (349) - (369 "DAXTER" "JUDGING BY THE SMELL, I'D WAGER YOUR") - (440 "DAXTER" "BATHTUB SANK IN THE MUD LONG AGO.") - (497) - (519 "BILLY" "WHAT'S A BATHTUB?") - (592) - (602 "BILLY" "ANYWAY I GOT BIGGER PROBLEMS NOW...") - (680) - (691 "BILLY" "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,") - (798 "BILLY" "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.") - (910 "BILLY" "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.") - (1017) - (1021 "BILLY" "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.") - (1133) - (1136 :offscreen "BILLY" "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,") - (1219 :offscreen "BILLY" "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!") - (1318 :offscreen "BILLY" "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,") - (1408 :offscreen "BILLY" "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!") - (1519) - (1534 "BILLY" "WILL YA HELP ME OUT?") - ) - -("billy-reject" - (7 "BILLY" "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!") - (155 "BILLY" "HE HE HE HE HEH...") - (240) - ) - -("billy-reminder-1" (37 "BILLY" "AHH, Y'ALL BACK TO HELP STOP THEM RATS?")) - -("billy-resolution" - (0 "BILLY" "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!") - (116 "BILLY" "THANKS A HEAP FOR THE HELP.") - ) - -("BIL-AM01" :hint #x0 (0 "BILLY" "I JUST LOVE THE MUD.")) -("BIL-AM02" :hint #x0 (0 "BILLY" "DARN SWAMP RATS.")) -("BIL-AM03" :hint #x0 (0 "BILLY" "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE.")) -("BIL-AM04" :hint #x0 (0 "BILLY" "GLADIOLA.")) -("BIL-AM05" :hint #x0 (0 "BILLY" "I NEED ME SOME BROWN MEDICINE.")) -("BIL-AM06" :hint #x0 (0 "BILLY" "I NEED ME SOME SUMMER COOLANT.")) -("BIL-AM07" :hint #x0 (0 "BILLY" "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES.")) -("BIL-AM08" :hint #x0 (0 "BILLY" "DARN... THIS HEAT'S GIVIN' ME A RASH.")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "MM-MM! I JUST LOVE THE MUD!")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "DARN SWAMP RATS!")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "DARN SWAMP RATS!")) -("BIL-LO01" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO02" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!")) -("BIL-LO03" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE!")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE!")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "SOIEE! SOIEE!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "GET 'EM!")) -("BIL-TA02" :hint #x0 (0 "BILLY" "NICE SHOT!")) -("BIL-TA03" :hint #x0 (0 "BILLY" "OVER THAR!")) -("BIL-TA04" :hint #x0 (0 "BILLY" "AW, DANG.")) -("BIL-TA05" :hint #x0 (0 "BILLY" "RAT GOT A SNACK.")) -("BIL-TA06" :hint #x0 (0 "BILLY" "AND ANOTHER...")) -("BIL-TA07" :hint #x0 (0 "BILLY" "THERE'S ONLY ONE LEFT...")) -("BIL-TA08" :hint #x0 (0 "BILLY" "GOT 'EM.")) -("BIL-TA09" :hint #x0 (0 "BILLY" "YEEHAW!")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "GET 'EM!")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "NICE SHOT!")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "OVER THAR.")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "DANG!")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "DANG!")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "RAT GOT A SNACK!")) -("SKSP009F" :hint #x0 (0 "DAXTER" "GET SOME! GET SOME! HA HA HA!")) -("sksp0137" :hint #x351 (0 "DAXTER" "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO.")) -("sksp0138" :hint #x352 (0 "DAXTER" "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER.")) -("sksp0139" :hint #x353 (0 "DAXTER" "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET.")) -("sksp0140" :hint #x354 (0 "DAXTER" "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!")) -("sksp0141" :hint #x355 (0 "DAXTER" "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!")) -("sksp0142" :hint #x356 (0 "DAXTER" "THE WATER'S SAFE TO WAIT IN.")) -("sksp0143" :hint #x357 (0 "DAXTER" "WAAH! BREAK THE TONGUE'S GRIP!")) -("sksp0144" :hint #x358 (0 "DAXTER" "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT.")) - -("sksp0145" :hint #x359 - (0 "DAXTER" "WOW! YOU CAN SHOOT FIREBALLS") - (113 "DAXTER" "WHEN YOU'RE POWERED UP WITH YELLOW ECO.") - ) - -("sksp0146" :hint #x35a (0 "DAXTER" "HEY! THAT'S YELLOW ECO!")) -("sksp0147" :hint #x35b (0 "DAXTER" "YOU CAN SWING ON THAT POLE OVER THERE!")) -("sksp0148" :hint #x35c (0 "DAXTER" "WATCH OUT, THAT BRAMBLE IS PRICKLY!")) -("sksp0149" :hint #x35d (0 "DAXTER" "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!")) -("sksp0150" :hint #x35e (0 "DAXTER" "WATCH OUT WHEN THAT FROG IS CHARGED UP!")) -("sksp0151" :hint #x35f (0 "DAXTER" "RUN AWAY, JAK!")) -("sksp0152" :hint #x360 (0 "DAXTER" "LOOK OUT, JAK! IT'S AN AMBUSH!")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!") - (175 "DAXTER" "IT LOOKS LIKE A GIANT ROBOT ARM!") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "THAT BLACK TAR LOOKS HOT AND DANGEROUS!")) -("sksp0155" :hint #x363 (0 "DAXTER" "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!")) -("sksp0156" :hint #x364 (0 "DAXTER" "MAYBE WE CAN DUCK THE BATS!")) -("sksp0157" :hint #x365 (0 "DAXTER" "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!")) -("sksp0158" :hint #x366 (0 "DAXTER" "WOW! ONLY TWO MORE TETHERS.")) -("sksp0159" :hint #x367 (0 "DAXTER" "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!")) -("sksp0160" :hint #x368 (0 "DAXTER" "HEY! THERE'S THE FLUT-FLUT!")) -("sksp0161" :hint #x369 (0 "DAXTER" "I HATE RATS! AND I'M ALMOST ONE OF THEM.")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "WOO! WE BEAT THE RECORD TIME!")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...") - (150 "DAXTER" "AVOID THE DARK ECO BOXES!") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "LET'S CHASE THOSE MOLES BACK UNDERGROUND.")) -("sksp0112" :hint #x338 (0 "DAXTER" "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST.")) -("sksp0113" :hint #x339 (0 "DAXTER" "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT.")) -("sksp0114" :hint #x33a (0 "DAXTER" "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS.")) -("sksp0115" :hint #x33b (0 "DAXTER" "JAK, DRIVE THROUGH THE GREEN ECO VENT.")) - -("sksp0116" :hint #x33c - (0 "DAXTER" "THAT'S ONE OF THOSE FLYING LURKERS!") - (103 "DAXTER" "HE MIGHT HAVE A POWER CELL!") - ) - -("sksp0117" :hint #x33d (0 "DAXTER" "THERE'S THE MOLE HOLE!")) -("sksp0118" :hint #x33e (0 "DAXTER" "NOW, LET'S FLY OVER THE INFECTED PLANTS!")) -("sksp0119" :hint #x33f (0 "DAXTER" "ONE RING DOWN, A BUNCH TO GO!")) -("sksp0120" :hint #x340 (0 "DAXTER" "HURRY! THERE'S THE NEXT RING!")) -("sksp0121" :hint #x341 (0 "DAXTER" "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!")) -("sksp0122" :hint #x342 (0 "DAXTER" "HEY! THAT GRASS SLOWS US DOWN...")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "QUICK! FOLLOW THAT PIPE!")) -("sksp0124" :hint #x344 (0 "DAXTER" "I GOT A BAD FEELING ABOUT THIS.")) -("sksp0125" :hint #x345 (0 "DAXTER" "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE.")) -("sksp0126" :hint #x346 (0 "DAXTER" "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!")) -("sksp0127" :hint #x347 (0 "DAXTER" "KICK THE LITTLE GUY ON THE TOP!")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK! RUN! THE DARK ECO IS RISING!")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHH! THAT DARK ECO'S GETTING CLOSE")) -("sksp0130" :hint #x34a (0 "DAXTER" "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'.")) -("sksp0131" :hint #x34b (0 "DAXTER" "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!")) -("sksp0132" :hint #x34c (0 "DAXTER" "EE-EE! WHOA! WHO-AH! WHO-AHH!")) -("sksp0133" :hint #x34d (0 "DAXTER" "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!")) -("sksp0134" :hint #x34e (0 "DAXTER" "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!")) -("sksp0135" :hint #x34f (0 "DAXTER" "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!")) -("sksp0136" :hint #x350 (0 "DAXTER" "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (45 "KEIRA" "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING") - (220 "KEIRA" "A COLLECTIVE SIGH OF RELIEF!") - (340 "KEIRA" "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER") - (500 "KEIRA" "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.") - (650 "KEIRA" "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED") - (805 "KEIRA" "THE WHOLE PASS WITH EXPLOSIVES!") - (940 "KEIRA" "WHEN YOU REACH THE VOLCANIC CRATER,") - (1030 "KEIRA" "BE SURE TO VISIT THE RED SAGE'S LAB") - (1176 "KEIRA" "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU.") - (1410) - ) - -("asstvb24" :hint #x605 - (30 "KEIRA" "OH MY! THOSE LURKERS MUST BE HEADED") - (180 "KEIRA" "FOR A DETONATOR AT THE END OF THE CANYON!") - (300) - (310 "KEIRA" "IF THEY REACH IT BEFORE YOU DO,") - (400 "KEIRA" "THEY'LL BLOW UP THE ENTIRE PASS!") - (525 "KEIRA" "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,") - (670 "KEIRA" "OR IT'S ALL OVER!") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!")) -("sksp0301" :hint #x608 (0 "DAXTER" "DON'T HIT THOSE EXPLOSIVES!")) -("sksp0302" :hint #x609 (0 "DAXTER" "STAY AHEAD OF THEM AND WE GOT IT MADE!")) -("sksp0303" :hint #x60a (0 "DAXTER" "HIT THE BLUE ECO TO GET SPEED BOOSTS!")) -("sksp0304" :hint #x60b (0 "DAXTER" "AVOID THE TREES, JAK! THEY SLOW US DOWN!")) -("sksp0305" :hint #x60c (0 "DAXTER" "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!")) -("sksp0306" :hint #x60d (0 "DAXTER" "WATCH OUT FOR THOSE EXPLOSIVES!")) -("sksp0307" :hint #x60e (0 "DAXTER" "STAY CLEAR OF THE PITS!")) -("sksp0308" :hint #x60f (0 "DAXTER" "MAYBE I SHOULD DRIVE!")) -("sksp0309" :hint #x610 (0 "DAXTER" "THERE'S ONE OF THE LURKERS!")) -("sksp0310" :hint #x611 (0 "DAXTER" "CATCH 'EM, JAK!")) -("sksp0311" :hint #x612 (0 "DAXTER" "WE PASSED ONE!")) -("sksp0312" :hint #x613 (0 "DAXTER" "WAH, ONE OF THE LURKERS PASSED US!")) -("sksp0313" :hint #x614 (0 "DAXTER" "THEY'RE WAY AHEAD!")) -("sksp0314" :hint #x615 (0 "DAXTER" "YEAH, WE'RE IN THE LEAD!")) -("sksp0315" :hint #x616 (0 "DAXTER" "FASTER, JAK, FASTER!")) -("sksp0316" :hint #x617 (0 "DAXTER" "BIG JUMP, BIG JUMP!")) -("sksp0317" :hint #x618 (0 "DAXTER" "HANG ON!")) -("sksp0318" :hint #x619 (0 "DAXTER" "YAAHH!")) -("sksp0319" :hint #x61a (0 "DAXTER" "IT'S GONNA BE CLOSE!")) -("sksp0320" :hint #x61b (0 "DAXTER" "THEY'RE GONNA BEAT US TO THE DETONATOR!")) -("sksp0321" :hint #x61c (0 "DAXTER" "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!")) - -("asstvb25" :hint #x61d - (10 "KEIRA" "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!") - (210 "KEIRA" "THE RED SAGE'S LAB IS JUST AHEAD.") - (350 "KEIRA" "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU.") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (25 "KEIRA" "HEY GUYS! KEEP COLLECTING POWER CELLS.") - (98 "KEIRA" "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH.") - (196) - ) - -("minershort-introduction-gnawers" - (5 "GORDY" "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?") - (89 "GORDY" "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.") - (191 :offscreen "GORDY" "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.") - (265) - (271 :offscreen "GORDY" "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.") - (357) - (360 :offscreen "WILLARD" "FOR ALL WE CARE!") - (441) - (444 "GORDY" "WILLARD, FEED YOUR BIRD.") - (490) - (496 "GORDY" "ALL I CARE ABOUT ARE GEMS!") - (566 "GORDY" "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS") - (625 "GORDY" "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!") - (715) - (721 "GORDY" "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,") - (827 "GORDY" "YOU COULD SAVE THE CAVE FOR ME.") - (875) - (884 "GORDY" "NOW BEAT IT!") - ) - -("minershort-introduction-orbs" - (18 "WILLARD" "HEY GORDY, DUH, I THINK WE GOT VISITORS.") - (153) - (157 "GORDY" "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?") - (288) - (291 "GORDY" "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.") - (410 "WILLARD" "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-") - (548 :offscreen "GORDY" "WILLARD!") - (591 "DAXTER" "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.") - (691) - (694 "WILLARD" "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?") - (804) - (810 "GORDY" "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,") - (908 "GORDY" "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,") - (1005 "GORDY" "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...") - (1111 :offscreen "GORDY" "90 ORBS EACH.") - (1154 "DAXTER" "WHERE HAVE I HEARD THAT BEFORE?") - (1222 "DAXTER" "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?") - (1383) - (1389 "GORDY" "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.") - (1545) - (1560 "WILLARD" "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?") - (1774) - ) - -("minershort-introduction-switch" - (38 :offscreen "WILLARD" "PSST, GUYS. DUH...") - (123 "WILLARD" "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!") - (244) - (247 "WILLARD" "IT WAS FILLED WITH PRETTY ORANGE METAL,") - (337 "WILLARD" "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!") - (512) - (518 "WILLARD" "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!") - (684 :offscreen "GORDY" "WHY AREN'T YOU DIGGING?!") - (753 "WILLARD" "I'M SORRY!") - ) - -("minershort-reminder-1-gnawers" - (15 "GORDY" "WOULD YOU TAKE CARE OF THOSE LURKERS") - (93 "GORDY" "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!") - (198 "GORDY" "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!") - ) - -("minershort-reminder-1-orbs" - (25 "GORDY" "DON'T FORGET OUR DEAL. BRING US 100 ORBS.") - (130 :offscreen "WILLARD" "DUH... YOU SAID 90.") - (200 "GORDY" "WILLARD!") - (230) - (240 "GORDY" "FINE. 90 ORBS A POWER CELL.") - (346) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?") - (165) - (186 "WILLARD" "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!") - (408 :offscreen "GORDY" "WILLARD!!") - ) - -("minershort-reminder-2-orbs" - (27 "WILLARD" "DUH, GORDY?") - (78 "GORDY" "90 ORBS A POWER CELL, WILLARD! URGH!") - ) - -("minershort-resolution-1-orbs" - (25 "GORDY" "OH, ALRIGHT ALREADY.") - (80 "GORDY" "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS.") - (150) - ) - -("minershort-resolution-2-orbs" - (28 "WILLARD" "OOH! OH, I GOT IT THIS TIME! UH...") - (150) - (165 "WILLARD" "HERE'S A...") - (196) - (205 "WILLARD" "DUHH.. HERE'S A...!") - (264) - (270 :offscreen "GORDY" "A POWER CELL!") - (358 "WILLARD" "YEAH, YEAH... WHAT HE SAID.") - (458 "GORDY" "THAT'S IT. YOU'VE CLEANED US OUT.") - (540 "GORDY" "NO! MORE! POWER! CELLS!") - (666) - ) - -("sage-village3-introduction" - (6 "SAGE" "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!") - (153) - (183 "SAGE" "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!") - (321) - (321 "KEIRA" "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.") - (418) - (441 "OLD MAN" "HA HA HA HA HA!") - (500) - (528 "OLD MAN" "I'D HARDLY CALL IT \"STRUGGLE.\"") - (618 "OLD MAN" "WOULD YOU, DEAR SISTER?") - (672 "WOMAN" "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.") - (800) - (805 "WOMAN" "NO FUN AT ALL.") - (860) - (884 "SAGE" "GOL? IS THAT YOU?") - (965) - (969 "SAGE" "YOU'VE FINALLY GONE OFF THE DEEP END, EH?") - (1060 "SAGE" "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!") - (1180 "SAGE" "HNG, NOBODY EVER LISTENS TO OLD SAMOS...") - (1265) - (1282 "SAGE" "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?") - (1372 "GOL" "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.") - (1516 "GOL" "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.") - (1680 "MAIA" "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.") - (1813) - (1828 "GOL" "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!") - (1990) - (1996 "GOL" "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.") - (2212) - (2223 "SAGE" "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-") - (2357 "MAIA" "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO") - (2452 "MAIA" "WE COULD FIND NEAR THE SURFACE.") - (2508) - (2520 "MAIA" "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES") - (2611 "MAIA" "OF DARK ECO HIDDEN DEEP UNDERGROUND.") - (2715 "SAGE" "NOT THE SILOS!") - (2758) - (2768 "GOL" "YES, THE SILOS!") - (2841 "GOL" "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!") - (3028) - (3034 "SAGE" "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-") - (3128 "MAIA" "OH, DON'T LOOK SO UPSET, SAMOS.") - (3210 "MAIA" "WE'VE GOT BIG PLANS FOR YOU.") - (3300) - (3303 :offscreen "MAIA" "AH HA HA HA HA HA HA! AHH...") - (3460) - (3495 "DAXTER" "WAIT A MINUTE!") - (3538) - (3541 "DAXTER" "THAT WAS GOL?") - (3586) - (3595 "DAXTER" "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?") - (3690 "DAXTER" "GOL IS THE GUY TRYING TO KILL US?!") - (3772) - (3785 "DAXTER" "I'M DOOMED.") - (3822) - (3828 "SAGE" "WE MAY ALL BE DOOMED.") - (3897) - (3903 "SAGE" "IF THEY OPEN THE SILOS, THE DARK ECO WILL") - (3995 "SAGE" "TWIST AND DESTROY EVERYTHING IT TOUCHES!") - (4080 "SAGE" "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!") - (4189) - (4192 "KEIRA" "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE") - (4276 "KEIRA" "AT THE BOTTOM OF THIS CRATER.") - (4316) - (4324 "KEIRA" "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD") - (4398 "KEIRA" "SHOULD GET YOU ACROSS THE LAVA SAFELY.") - (4460) - (4464 "SAGE" "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.") - (4545 "SAGE" "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS.") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (7 "SAGE" "GREAT BALLS OF ECO!") - (60) - (66 "SAGE" "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!") - (179) - (185 "DAXTER" "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.") - (284) - (296 "DAXTER" "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?") - (453 "SAGE" "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!") - (562) - (568 "SAGE" "BUT THAT'S THE LEAST OF YOUR PROBLEMS!") - (634) - (637 "SAGE" "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.") - (752) - (761 "SAGE" "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS") - (855 "SAGE" "GET THEIR HANDS ON THEM!") - (896) - (907 "SAGE" "HOP TO IT!") - (950) - ) - -("sage-village3-introduction-rams" - (8 "SAGE" "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.") - (152) - (158 :offscreen "SAGE" "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,") - (270 :offscreen "SAGE" "SOME DARK ECO STORES FROZEN IN THE GLACIERS.") - (378) - (381 "SAGE" "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS") - (490 "SAGE" "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (0 "SAGE" "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!") - (126) - ) - -("sage-village3-reminder-1-rams" - (0 "SAGE" "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.") - (125 "SAGE" "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "HM, LET'S SEE...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "HM.")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "OH, MY...")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "AH-HA!")) -("ASSTLP34" :hint #x0 (0 "KEIRA" "HUH... WHAT ARE GOL AND MAIA UP TO?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "HMM... WE'VE GOTTA GET TO PRECURSOR CITY.")) - -("ASSTLP36" :hint #x0 - (0 "KEIRA" "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER") - (200 "KEIRA" "TO WITHSTAND THE LAVA.") - ) - -("ASSTLP37" :hint #x0 (0 "KEIRA" "AW... WE'VE GOT TO SAVE THE OTHER SAGES...")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "ONE OF THESE DAYS I'LL BE RICH...") - (180 "WILLARD" "YOU MEAN WE'LL BE RICH!") - (360 "GORDY" "YEAH. WHATEVER.") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "DIG, WILLARD! DIG!") - (130 "WILLARD" "YEAH, BUT YOU'RE NOT DIGGING!") - (320 "GORDY" "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "DUH, GORDY? CAN I TAKE A BREAK?") - (220 "GORDY" "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "I'M STARVING, GORDY!") - (200 "GORDY" "EAT YOUR BIRD!") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "DUH, GORDY? I NEED A SHARPER PICK.") - (220 "GORDY" "WHAT YOU NEED IS A SHARPER WIT!") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!")) -("MSH-AM02" :hint #x0 (0 "GORDY" "DIG, DIG, DIG!")) -("MSH-AM03" :hint #x0 (0 "GORDY" "WILLARD! WORK HARDER, NOT SMARTER!")) -("MSH-AM04" :hint #x0 (0 "GORDY" "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA...")) -("MSH-AM05" :hint #x0 (0 "GORDY" "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!")) -("MSH-AM06" :hint #x0 (0 "GORDY" "EASY STREET, HERE I COME!")) -("MSH-AM07" :hint #x0 (0 "GORDY" "MY GEMS! ALL MY GEMS!")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!")) -("MSH-AM10" :hint #x0 (0 "GORDY" "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!")) -("MSH-AM11" :hint #x0 (0 "GORDY" "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!")) - -("MSH-AM12" :hint #x0 - (0 "GORDY" "SO, WILLARD. WHAT ARE YOU GONNA DO WITH") - (150 "GORDY" "YOUR QUARTER, OF YOUR HALF?") - ) - -("MSH-AM1A" :hint #x0 (0 "GORDY" "I'M GONNA BE RICH!")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "DIG, DIG, DIG!")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "WORK HARDER, NOT SMARTER!")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "DUH, ARE WE ALMOST DONE?")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "GEE, CAN WE TAKE A BREAK?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "AWW, I'M HUNGRY...")) -("MTA-AM04" :hint #x0 (0 "WILLARD" "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING...")) -("MTA-AM05" :hint #x0 (0 "WILLARD" "GEE, THAT'S AN AWFULLY BIG GEM!")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "DUH... I ALWAYS WANTED TO BE A LUMBERJACK...")) -("MTA-AM07" :hint #x0 (0 "WILLARD" "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!")) -("MTA-AM08" :hint #x0 (0 "WILLARD" "EH HEH... BIRDIE IS MY BEST FRIEND...")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "I LOVE MY LITTLE BIRDIE...")) -("SAGELP31" :hint #x0 (0 "SAGE" "THIS ISN'T GOOD.")) -("SAGELP32" :hint #x0 (0 "SAGE" "DARK ECO CRYSTALS?")) -("SAGELP33" :hint #x0 (0 "SAGE" "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!")) -("SAGELP34" :hint #x0 (0 "SAGE" "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!")) -("SAGELP35" :hint #x0 (0 "SAGE" "DARK ECO IN THE GLACIERS?")) -("SAGELP36" :hint #x0 (0 "SAGE" "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!")) -("SAGELP37" :hint #x0 (0 "SAGE" "WHAT IS GOL PLANNING...")) -("SAGELP38" :hint #x0 (0 "SAGE" "COULD HE ACTUALLY HAVE...?")) - -("asstva73" :hint #x427 - (0 "KEIRA" "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE") - (170 "KEIRA" "72 POWER CELLS TO FUEL THE HEAT SHIELD") - (330 "KEIRA" "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!") - (182 "KEIRA" "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL") - (324 "KEIRA" "UNTIL YOU'VE COLLECTED 72 POWER CELLS!") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.") - (165 "KEIRA" "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!") - (250 "KEIRA" "USE IT WHENEVER YOU WANT.") - ) - -("asstv100" :hint #x44f - (0 "KEIRA" "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.") - (220 "KEIRA" "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.") - (420 "KEIRA" "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,") - (550 "KEIRA" "SO I CAN MODIFY THE ZOOMER. HURRY!") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE") - (160 "KEIRA" "THE POWER ON THE HEAT SHIELD.") - (260 "KEIRA" "MEET ME BACK IN THE VOLCANIC CRATER.") - (390 "KEIRA" "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.") - (610 "KEIRA" "BRING ME THE POWER CELLS!") - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "HURRY UP WITH THOSE POWER CELLS!") - (100 "KEIRA" "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.") - (160 "KEIRA" "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB") - (280 "KEIRA" "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.") - (450 "KEIRA" "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "HEY, WE'RE STILL BACK IN ROCK VILLAGE!") - (120 "KEIRA" "TURN ON THE TELEPORT GATE!") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!") - (128 "KEIRA" "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE.") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "HOW DO WE GET INSIDE THIS FORT?")) -("sksp0346" :hint #x444 (0 "DAXTER" "MAYBE RED ECO CAN DEFEAT THIS GUY!")) -("sksp0347" :hint #x445 (0 "DAXTER" "WE NEED TO DO A ROLL JUMP!")) -("sksp0348" :hint #x446 (0 "DAXTER" "WE NEED TO FIND A WAY TO OPEN THIS VENT!")) -("sksp0349" :hint #x447 (0 "DAXTER" "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!")) -("sksp0350" :hint #x448 (0 "DAXTER" "HIT HIM WHEN THE SPIKES ARE IN!")) -("sksp0351" :hint #x449 (0 "DAXTER" "PUSH THE BUTTON!")) -("sksp0352" :hint #x44a (0 "DAXTER" "QUICK! BEFORE THEY DROP BACK DOWN!")) -("sksp0359" :hint #x44b (0 "DAXTER" "YOU GOTTA USE RED ECO!")) -("sksp0360" :hint #x44c (0 "DAXTER" "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!")) -("sksp0362" :hint #x44d (0 "DAXTER" "LOOK! A FROZEN POWER CELL!")) -("sksp0363" :hint #x44e (0 "DAXTER" "ONLY A FLUT-FLUT CAN JUMP THAT FAR!")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!")) -("sksp0328" :hint #x433 (0 "DAXTER" "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES.")) -("sksp0329" :hint #x434 (0 "DAXTER" "OH, NO! MORE DARK ECO!")) -("sksp0330" :hint #x435 (0 "DAXTER" "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS.")) -("sksp0331" :hint #x436 (0 "DAXTER" "SHOOT THE LURKERS EATING THE POLES!")) -("sksp0332" :hint #x437 (0 "DAXTER" "DON'T LET THE LIGHTS GO OUT!")) -("sksp0333" :hint #x438 (0 "DAXTER" "HIT A CRYSTAL TO GET SOME LIGHT.")) -("sksp0334" :hint #x439 (0 "DAXTER" "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!")) -("sksp0335" :hint #x43a (0 "DAXTER" "EWH, THEY FOUND A PRECURSOR ROBOT!")) -("sksp0336" :hint #x43b (0 "DAXTER" "POP THE EGGS, BEFORE THEY HATCH!")) -("sksp0337" :hint #x43c (0 "DAXTER" "IT'S SPOOKY IN HERE...")) -("sksp0338" :hint #x43d (0 "DAXTER" "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES.")) -("sksp0339" :hint #x43e (0 "DAXTER" "I. HATE. SPIDERS...")) -("sksp0340" :hint #x43f (0 "DAXTER" "BABY SPIDERS ARE COMING!")) -("sksp0341" :hint #x440 (0 "DAXTER" "I THINK WE'RE IN A SPIDER'S NEST HERE!")) -("sksp0342" :hint #x441 (0 "DAXTER" "LOOK OUT, MORE SPIDERS!")) -("sksp0343" :hint #x442 (0 "DAXTER" "LET'S GET OUTTA HERE!")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (58 "DAXTER" "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?") - (143) - (147 "KEIRA" "THIS IS TERRIBLE! FATHER IS MISSING!") - (227 "KEIRA" "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!") - (318 "DAXTER" "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.") - (447) - (450 "KEIRA" "UNDER CONTROL?!") - (503 "KEIRA" "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,") - (591 "KEIRA" "THE SAGES HAVE BEEN KIDNAPPED,") - (644 "KEIRA" "GOL AND MAIA HAVE GATHERED ENOUGH ECO") - (700 "KEIRA" "TO COMPLETE THEIR TERRIBLE PLAN,") - (755 "KEIRA" "AND TO STOP THEM, YOU'RE GOING TO HAVE TO") - (807 "KEIRA" "FIGHT YOUR WAY THROUGH THEIR CITADEL!") - (876) - (888 "DAXTER" "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.") - (1011) - (1014 "KEIRA" "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!") - (1112 "KEIRA" "AND JAK...") - (1158 "KEIRA" "BE CAREFUL.") - (1191) - (1200 "DAXTER" "YEAH. WE WILL BE!") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "HA HA! ALL RIGHT!") - (48 "KEIRA" "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD") - (157 "KEIRA" "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.") - (227) - (230 "KEIRA" "BUT THE SHIELD STILL HAS A LIMIT.") - (285) - (288 "KEIRA" "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.") - (400 "KEIRA" "SO KEEP AN EYE ON YOUR GAUGE.") - (457) - (463 "KEIRA" "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER") - (550 "KEIRA" "IF THE SHIELD GIVES OUT.") - (590) - (617 "DAXTER" "YEAH, THE HEAT...") - (663) - (672 "DAXTER" "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!") - (784) - (790 "DAXTER" "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?") - (885) - (895 "KEIRA" "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.") - (987 "KEIRA" "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.") - (1060 "KEIRA" "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.") - (1184) - (1187 "KEIRA" "WE'RE COUNTING ON YOU.") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "WE GOTTA HURRY, OR WE'RE TOAST!")) -("sksp0365" :hint #x703 (0 "DAXTER" "PICK A PATH, ANY PATH!")) -("sksp0366" :hint #x704 (0 "DAXTER" "AVOID, OR SHOOT THE MINES, JAK!")) -("sksp0367" :hint #x705 (0 "DAXTER" "FIND A WAY THROUGH THOSE DARK ECO BARRELS!")) -("sksp0368" :hint #x706 (0 "DAXTER" "KEEP HITTING THOSE COOLING BALLOONS!")) -("sksp0369" :hint #x707 (0 "DAXTER" "WE'RE GETTING TOO HOT!")) -("sksp0370" :hint #x708 (0 "DAXTER" "SHE'S GONNA BLOW!")) -("sksp0371" :hint #x709 (0 "DAXTER" "GO FOR THE BLUE ECO, JAK!")) -("sksp0372" :hint #x70a (0 "DAXTER" "SHOOT YOUR WAY THROUGH!")) -("sksp0373" :hint #x70b (0 "DAXTER" "WAHOO! WHAT A RIDE!")) -("sksp0374" :hint #x70c (0 "DAXTER" "YES! TURN AND BURN, BABY!")) -("sksp0375" :hint #x70d (0 "DAXTER" "SHOOT THE POWER SPHERES TO OPEN THE DOOR!")) -("sksp0376" :hint #x70e (0 "DAXTER" "SHOOT THE POWER SPHERES BEFORE WE BURN UP!")) -("sksp0379" :hint #x711 (0 "DAXTER" "ZOOMING!")) -("sksp0380" :hint #x712 (0 "DAXTER" "WE MADE IT THROUGH!")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (63 "BLUE SAGE" "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!") - (162) - (165 "BLUE SAGE" "GREAT PILES OF PRECURSOR METAL!") - (253 "BLUE SAGE" "THAT INSIDIOUS MECHANICAL CREATION") - (323 "BLUE SAGE" "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!") - (420) - (430 "BLUE SAGE" "I WILL TRY TO ACTUATE THE SHIELD DOOR") - (505 :offscreen "BLUE SAGE" "BY ELICITING A CONDUIT OF ENERGY") - (563 "BLUE SAGE" "BETWEEN MYSELF AND THE VAST PORTAL BELOW!") - (666) - (672 "DAXTER" "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.") - (879) - (894 :offscreen "DAXTER" "WEIRDO!") - (980) - ) - -("green-sagecage-introduction" - (128 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") - (207 "DAXTER" "NICE TO SEE YOU TOO!") - (269) - (275 "DAXTER" "DO THEY HAVE YOU MOPPING THE FLOORS NOW?") - (343 "SAGE" "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US") - (477 "SAGE" "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.") - (574) - (583 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") - (709 :offscreen "SAGE" "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.") - (800) - (816 :offscreen "SAGE" "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,") - (926 :offscreen "SAGE" "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.") - (1060 "SAGE" "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS") - (1180 "SAGE" "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT") - (1265 "SAGE" "BEFORE THEY USE IT TO DESTROY THE WORLD.") - ) - -("green-sagecage-outro-preboss" - (66 "GOL" "YOU'RE TOO LATE, SAMOS.") - (125 "GOL" "ONCE I POSSESS LIMITLESS DARK ECO") - (221 "GOL" "I WILL HAVE THE KEY TO CREATION ITSELF!") - (335 "SAGE" "THIS IS MADNESS!") - (394 "SAGE" "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!") - (503) - (510 "SAGE" "JUST LOOK WHAT IT'S DONE TO YOU!") - (578) - (586 "MAIA" "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.") - (693) - (700 "DAXTER" "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?") - (825) - (834 "MAIA" "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.") - (944 "MAIA" "YOU THINK SHORT AND FUZZY IS BAD?") - (1028) - (1036 "GOL" "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.") - (1180 "GOL" "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!") - (1391) - (1605 "SAGE" "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!") - ) - -("green-sagecage-resolution" - (35 "SAGE" "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.") - (158 "SAGE" "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES") - (282 "SAGE" "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.") - (402) - (405 "DAXTER" "YEAH YEAH THAT SOUNDS LIKE A GOOD START.") - (460 "DAXTER" "AND THEN AFTER YOU GUYS OPEN THAT SHIELD") - (520 "DAXTER" "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?") - (576 "SAGE" "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.") - (702) - (705 "SAGE" "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.") - (823 "DAXTER" "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL") - (983 "DAXTER" "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!") - (1108) - (1161 "SAGE" "FIRST, SAVE THE WORLD!") - (1238 "SAGE" "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER.") - ) - -("redsage-resolution" - (58 "RED SAGE" "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.") - (196 "RED SAGE" "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?") - (274 "RED SAGE" "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...") - (379 "RED SAGE" "WHAT ARE YOUR NAMES?") - (428) - (437 "DAXTER" "I'M DAXTER! HE'S JAK, HE'S WITH ME.") - (542 :offscreen "RED SAGE" "GOOD JOB, DAXTER. YOU'RE A REAL HERO.") - (678) - (704 "RED SAGE" "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.") - (837 "RED SAGE" "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR.") - ) - -("yellowsage-resolution" - (57 "YELLOW SAGE" "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY") - (137 "YELLOW SAGE" "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!") - (262) - (271 "YELLOW SAGE" "AHH... I'M GONNA GIVE GOL AND MAIA") - (377 "YELLOW SAGE" "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!") - (475) - (485 "YELLOW SAGE" "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...") - (601) - (609 "DAXTER" "(GULPS)") - (633) - ) - -("BLU-AM01" :hint #x0 (0 "BLUE SAGE" "A LITTLE BIT OF HELP WOULD BE GOOD!")) -("BLU-AM02" :hint #x0 (0 "BLUE SAGE" "OH, THIS IS A FINE MESS.")) -("BLU-AM03" :hint #x0 (0 "BLUE SAGE" "HMM, QUITE AN ENIGMA WE'RE FACING.")) -("RED-AM01" :hint #x0 (0 "RED SAGE" "IS ANYBODY THERE?")) -("RED-AM02" :hint #x0 (0 "RED SAGE" "WELL...")) -("RED-AM03" :hint #x0 (0 "RED SAGE" "WHAT KEPT YOU?")) -("YEL-AM01" :hint #x0 (0 "YELLOW SAGE" "TIME IS RUNNIN' OUT!")) -("YEL-AM02" :hint #x0 (0 "YELLOW SAGE" "HEY! GET ME OUTTA HERE!")) -("YEL-AM03" :hint #x0 (0 "YELLOW SAGE" "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!")) -("sksp0381" :hint #x806 (0 "DAXTER" "BREAK THE GENERATOR TO FREE THE SAGE!")) -("sksp0382" :hint #x807 (0 "DAXTER" "JUST HANG ON TO THE EDGE!")) -("sksp0383" :hint #x808 (0 "DAXTER" "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!")) -("sksp0384" :hint #x809 (0 "DAXTER" "DESTROY THOSE GENERATORS!")) -("sksp0385" :hint #x80a (0 "DAXTER" "PUSH THE BUTTON!")) -("sksp0386" :hint #x80b (0 "DAXTER" "THAT ROBOT DOESN'T SCARE ME!")) -("sksp0387" :hint #x80c (0 "DAXTER" "LET'S GO CLIMB UP THOSE PLATFORMS!")) -("sksp0388" :hint #x80d (0 "DAXTER" "DON'T MISS THE NEXT LAUNCHER!")) -("sksp0389" :hint #x80e (0 "DAXTER" "WATCH IT!")) -("sksp0390" :hint #x80f (0 "DAXTER" "WE HAVE TO RESCUE ALL THE SAGES!")) -("sksp0391" :hint #x810 (0 "DAXTER" "DO YOU THINK GOL WILL STILL CHANGE ME BACK?")) -("sksp0392" :hint #x811 (0 "DAXTER" "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY.")) -("sksp0393" :hint #x812 (0 "DAXTER" "LAND ON THE NEXT LAUNCHER!")) -("sksp0378" :hint #x813 (0 "DAXTER" "THE DOOR'S OPEN, LET'S GET GOING!")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (163 :offscreen "GOL" "LIGHT ECO! IT DOES EXIST!") - (268 :offscreen "MAIA" "THEY MUST NOT BE ALLOWED TO GET IT!") - ) - -("green-sagecage-daxter-sacrifice" - (0 "DAXTER" "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!") - (114) - (123 "DAXTER" "OR... IT MIGHT STOP THAT ROBOT.") - (235) - (274 "DAXTER" "STAY FUZZY, SAVE THE WORLD... CHOICES...") - (404) - (437 "DAXTER" "OKAY, FINE, WE'LL SAVE THE WORLD.") - (525 "DAXTER" "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!") - (634) - ) - -("green-sagecage-outro-beat-boss-a" - (165 :offscreen "MAIA" "DO SOMETHING!") - (216) - (596 :offscreen "GOL" "NOOO!") - ) - -("green-sagecage-outro-beat-boss-b" - (522 "SAGE" "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!") - (640 "SAGE" "YOU DO HAVE WHAT IT TAKES TO BE HEROES!") - (745) - (751 "KEIRA" "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.") - (845) - (847 "DAXTER" "DON'T WORRY ABOUT ME, BABY.") - (914 "DAXTER" "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.") - (1096) - (1104 "BLUE SAGE" "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!") - (1219) - (1226 "BLUE SAGE" "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!") - (1318) - (1323 "RED SAGE" "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY") - (1447 "RED SAGE" "NONE OF THIS WOULD HAVE BEEN POSSIBLE.") - (1515 "RED SAGE" "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE") - (1640 "RED SAGE" "NOW THAT GOL AND MAIA ARE LOST...") - (1728) - (1731 "SAGE" "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.") - (1916) - (1922 :offscreen "SAGE" "EH, PROBABLY...") - (1999) - (2003 "DAXTER" "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?") - (2168) - (2172 "DAXTER" "I SAID, RIGHT, JAK?") - (2256) - (2302 "DAXTER" "WHOA! PUT IT ON ICE, BIG GUY!") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (151 "SAGE" "HOLY YAKOW! WHAT COULD THAT BE?") - (247 "KEIRA" "WOW, IT'S AN ANCIENT PRECURSOR DOOR!") - (342 :offscreen "KEIRA" "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!") - (485 "DAXTER" "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (151 "SAGE" "HOLY YAKOW! WHAT COULD THAT BE?") - (247 "KEIRA" "WOW, IT'S AN ANCIENT PRECURSOR DOOR!") - (342 :offscreen "KEIRA" "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!") - (485 "DAXTER" "OH BOY... HERE WE GO AGAIN!") - ) - -("green-sagecage-outro-big-finish" - (322 "DAXTER" "WOW! WHAT IS IT?") - (425) - (428 "KEIRA" "IT'S SO BEAUTIFUL...") - (516) - (519 "SAGE" "BY THE PRECURSORS...") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "YOU JUST WON'T GIVE UP, WILL YOU?")) -("GOL-AM02" :hint #x0 (0 "GOL" "SOON, THE DARK ECO WILL BE OURS!")) -("GOL-AM03" :hint #x0 (0 "GOL" "FINISH THEM!")) -("GOL-AM04" :hint #x0 (0 "GOL" "FIRE!")) -("GOL-AM05" :hint #x0 (0 "GOL" "BLAST THEM!")) -("GOL-AM06" :hint #x0 (0 "GOL" "WHAT? THEM AGAIN!")) -("GOL-AM07" :hint #x0 (0 "GOL" "IT'S TOO LATE!")) -("GOL-AM08" :hint #x0 (0 "GOL" "YOU ARE MINE!")) -("GOL-AM09" :hint #x0 (0 "GOL" "I HAVE YOU NOW!")) -("GOL-AM10" :hint #x0 (0 "GOL" "AH HA HA HA HA!")) -("GOL-AM11" :hint #x0 (0 "GOL" "NO MERCY!")) -("GOL-AM12" :hint #x0 (0 "GOL" "TAKE THAT!")) -("GOL-AM13" :hint #x0 (0 "GOL" "NICE TRY!")) -("GOL-AM14" :hint #x0 (0 "GOL" "STAND STILL!")) -("GOL-AM15" :hint #x0 (0 "GOL" "PATHETIC!")) -("GOL-AM16" :hint #x0 (0 "GOL" "NOOO!")) -("GOL-AM17" :hint #x0 (0 "GOL" "AHHH!")) -("GOL-AM18" :hint #x0 (0 "GOL" "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!")) -("GOL-AM19" :hint #x0 (0 "GOL" "LIGHT ECO! IT DOES EXIST!")) -("GOL-AM20" :hint #x0 (0 "GOL" "WE'RE NOT GONNA TAKE IT!")) -("MAI-AM01" :hint #x0 (0 "MAIA" "FINISH THEM BOTH OFF ONCE AND FOR ALL!")) -("MAI-AM02" :hint #x0 (0 "MAIA" "TAKE THEM OUT!")) -("MAI-AM03" :hint #x0 (0 "MAIA" "HA HA HA!")) -("MAI-AM04" :hint #x0 (0 "MAIA" "ECO WON'T PROTECT YOU NOW!")) -("MAI-AM05" :hint #x0 (0 "MAIA" "DO SOMETHING!")) -("MAI-AM06" :hint #x0 (0 "MAIA" "AGH!")) -("MAI-AM07" :hint #x0 (0 "MAIA" "NOOOOO!")) -("MAI-AM08" :hint #x0 (0 "MAIA" "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!")) -("MAI-AM09" :hint #x0 (0 "MAIA" "THEY MUST NOT BE ALLOWED TO GET IT!")) -("sksp0394" :hint #x0 (0 "DAXTER" "GRAB THE YELLOW ECO!")) -("sksp0395" :hint #x0 (0 "DAXTER" "SHOOT THE ROBOT, JAK!")) -("sksp0396" :hint #x0 (0 "DAXTER" "SHOOT HIS ARM!")) -("sksp0397" :hint #x0 (0 "DAXTER" "SHOOT HIS GUN!")) -("sksp0398" :hint #x0 (0 "DAXTER" "SHOOT HIS HEAD!")) -("sksp0399" :hint #x0 (0 "DAXTER" "WATCH OUT FOR THE BLAST!")) -("sksp0400" :hint #x0 (0 "DAXTER" "HE'S CHARGING UP!")) -("sksp0401" :hint #x0 (0 "DAXTER" "GET THE BLUE ECO!")) -("sksp0402" :hint #x0 (0 "DAXTER" "GET THE RED ECO!")) -("sksp0403" :hint #x0 (0 "DAXTER" "I HAVE A BAD FEELING ABOUT THIS!")) -("sksp0404" :hint #x0 (0 "DAXTER" "USE THE LAUNCHER, QUICK!")) -("sksp0405" :hint #x0 (0 "DAXTER" "NOW YOU'VE MADE THE ANIMAL MAD!")) -("sksp0406" :hint #x0 (0 "DAXTER" "WE CAN'T TOUCH THESE GUYS!")) -("sksp0407" :hint #x0 (0 "DAXTER" "USE THE YELLOW ECO!")) -("sksp0408" :hint #x0 (0 "DAXTER" "SHOOT THOSE GUYS!")) -("sksp0409" :hint #x0 (0 "DAXTER" "GET THE LIGHT ECO, JAK!")) -("sksp0410" :hint #x0 (0 "DAXTER" "HE LOOKS ANGRY!")) -("sksp0411" :hint #x0 (0 "DAXTER" "JUMP TO AVOID THE EXPLOSIONS!")) -("sksp0412" :hint #x0 (0 "DAXTER" "NOW WE TAKE CARE OF BUSINESS!")) -("sksp0413" :hint #x0 (0 "DAXTER" "GOOD SHOOTING, PARTNER!")) -("sksp0414" :hint #x0 (0 "DAXTER" "THAT HURT HIM!")) -("sksp0415" :hint #x0 (0 "DAXTER" "HERE HE COMES!")) -("sksp0416" :hint #x0 (0 "DAXTER" "YEAH! YOU DID IT!")) -("sksp0417" :hint #x0 (0 "DAXTER" "SAY \"GOOD NIGHT,\" GOL AND MAIA!")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "WE'RE WAITING. HELLO?")) -("sksp0449" :hint #x0 (0 "DAXTER" "PRESS START TO PLAY.")) -("sksp0450" :hint #x0 (0 "DAXTER" "YOU WANNA STOP PLAYING?")) -("sksp0451" :hint #x0 (0 "DAXTER" "I DIDN'T THINK SO.")) -("sksp0452" :hint #x0 (0 "DAXTER" "OKAY, SEE YA LATER.")) -("sksp0455" :hint #x0 (0 "DAXTER" "MAN, WHO ARE ALL THESE PEOPLE?")) -("sksp0466" :hint #x0 (0 "DAXTER" "I WAS GOOD. WASN'T I, GIRLS?")) - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/game_subtitle_es.gd b/game/assets/jak1/subtitle/game_subtitle_es.gd deleted file mode 100644 index 1910d0359d..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_es.gd +++ /dev/null @@ -1,2438 +0,0 @@ -(language-id 3) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (24 :offscreen "SAMOS" "ME HE PASADO LA VIDA BUSCANDO RESPUESTAS QUE MI PADRE") - (150 :offscreen "SAMOS" "Y SUS ANTEPASADOS NO PUDIERON ENCONTRAR.") - (260 :offscreen "SAMOS" "¿QUIÉNES ERAN LOS PRECURSOR?") - (300 :offscreen "SAMOS" "¿POR QUÉ CREARON LOS ENORMES MONOLITOS QUE ENSUCIAN NUESTRO PLANETA?") - (454 :offscreen "SAMOS" "¿CÓMO PUDIERON DOMINAR EL ECO? LA ENERGÍA VITAL DEL MUNDO.") - (581 :offscreen "SAMOS" "¿Y POR QUÉ SE DESVANECIERON?") - (708) - (720 :offscreen "SAMOS" "HE PREGUNTADO A LAS PLANTAS PERO ELLAS NO LO RECUERDAN.") - (818 :offscreen "SAMOS" "LAS PLANTAS SE LO HAN PREGUNTADO A LAS PIEDRAS, PERO ELLAS TAMPOCO SE ACUERDAN.") - (955 :offscreen "SAMOS" "NI SIQUIERA LAS PIEDRAS SE ACUERDAN...") - (1064) - (1090 :offscreen "SAMOS" "CADA HUESO DE MI CUERPO ME DICE QUE LAS RESPUESTAN DESCANSAN.") - (1215 :offscreen "SAMOS" "EN LOS HOMBROS DE UN JOVEN.") - (1297 :offscreen "SAMOS" "INCONSCIENTE DE SU DESTINO, A QUIEN NO LE INTERESA AVERIGUAR LA VERDAD,") - (1460 :offscreen "SAMOS" "Y QUE RECHAZA MI GUÍA!") - (1536) - (1545 :offscreen "SAMOS" "¿Y POR QUÉ IBA ÉL A ESCUCHAR AL VIEJO SAMOS EL SABIO DE TODAS FORMAS?") - (1680) - (1686 :offscreen "SAMOS" "TAN SOLO SOY EL MAESTRO DEL ECO VERDE, UNO DE LOS HOMBRES MÁS SABIOS DEL PLANETA.") - (1875) - (1958 :offscreen "SAMOS" "ASÍ QUE PARECE QUE LA RESPUESTA NO ESTRIBA EN UNA CUIDADOSA INVESTIGACIÓN") - (2111 :offscreen "SAMOS" "NI EN SENSATAS DELIBERACIONES, NO.") - (2190) - (2200 :offscreen "SAMOS" "COMO EN MUCHOS MISTERIOS DEL DESTINO") - (2281 :offscreen "SAMOS" "COMIENZA CON UN PEQUEÑO ACTO DE DESOBEDIENCIA.") - (2440 "DAXTER" "¡EH, JAK! EL AMIGUETE VERDE NOS DIJO QUE NO VINIÉSEMOS POR AQUÍ.") - ) - -("sage-intro-sequence-d1" - (137 "SAMOS" "¿PERO QUÉ DEMONIOS QUERÉIS VOSOTROS DOS?") - (220 "DAXTER" "E- E- E- E- EEEESTÁBAMOS- MMMM- MMMM-") - (283 "SAMOS" "¡NO SIGAS! EN LUGAR DE SEGUIR MI CONSEJO, FUISTEIS A TRASTEAR AL ÚNICO SITIO") - (440 "SAMOS" "EN EL QUE OS DIJE QUE NO ENTRARAIS: ¡LA ISLA DE MISTY!") - (550 "DAXTER" "¡BUENO SÍ! Y-") - (579 "SAMOS" "Y TÚ, DAXTER, AL FINAL TE DISTE UN BAÑO, QUE TE HACÍA FALTA,") - (610 "SAMOS" "PERO EN UNA BAÑERA REBOSANTE DE ECO OSCURO.") - (793 "DAXTER" "MIRA ABUELETE, ¿VAS A SEGUIR REZONGANDO, O ME VAS A AYUDAR A SALIR DE ESTE LÍO?") - (920 "SAMOS" "¡VOY A SEGUIR REZONGANDO! PORQUE EN MI DOCTA OPINIÓN, ESTE CAMBIO ES MÁS BIEN UNA MEJORA.") - (1130 "SAMOS" "AUNQUE QUISIERA NO PODRÍA AYUDARTE.") - (1186 "DAXTER" "¿¡QUÉ!?") - (1220 "SAMOS" "SOLO HAY UNA PERSONA QUE HA ESTUDIADO EL TEMA DEL ECO OSCURO EL TIEMPO NECESARIO") - (1329 "SAMOS" "COMO PARA PODER DEVOLVERTE A TU ESTADO ANTERIOR:") - (1431 "SAMOS" "GOL ACHERON, EL SABIO.") - (1493) - (1496 :offscreen "SAMOS" "PERO VIVE LEJOS EN EL NORTE. MUY LEJOS EN EL NORTE. HACE AÑOS QUE NADIE HA HABLADO CON ÉL.") - (1718 "SAMOS" "OS TELETRANSPORTARÍA ALLÍ, PERO TAMPOCO PUEDO HACERLO.") - (1831 "SAMOS" "NINGUNO DE LOS TRES SABIOS QUE GUARDAN LAS OTRAS PUERTAS") - (1934 "SAMOS" "HA VISTO ADECUADO ACTIVAR SU LADO DESDE HACE TIEMPO.") - ) - -("sage-intro-sequence-d2" - (3 "SAMOS" "LA OTRA ÚNICA MANERA DE IR AL NORTE ES ATRAVESANDO EL DESFILADERO DEL FUEGO") - (114 :offscreen "SAMOS" "PERO SU SUELO VOLCÁNICO ES TAN CALIENTE QUE FUNDE EL METAL.") - (224 "SAMOS" "NO PODÉIS CAMINAR ENCIMA.") - (270 "KEIRA" "PERO PODRÍAIS VOLAR ENCIMA, SI TUVIESEIS UN ZOOMER CON ESCUDO TÉRMICO.") - (393) - (396 "KEIRA" "DA LA CASUALIDAD DE QUE ESTOY TRABAJANDO EN ESO AHORA MISMO.") - (512) - (515 "KEIRA" "SOLO NECESITO 20 BATERÍAS QUE LE DEN LA ENERGÍA") - (605 "KEIRA" "PARA RESISTIR EL CALOR DEL DESFILADERO. ¿VERDAD, PAPÁ?") - (696) - (699 "SAMOS" "SÍ, KEIRA, PODRÍA FUNCIONAR. ¿PERO DE DÓNDE VAN A SACAR UN CHICO") - (826 :offscreen "SAMOS" "Y UN BICHO") - (857 "SAMOS" "20 BATERÍAS?") - (910 "KEIRA" "DE LOS ALDEANOS. LA MAYORÍA TIENE UNA BATERÍA O DOS GUARDADAS EN ALGUNA PARTE.") - (1050 :offscreen "KEIRA" "Y SI NO QUIEREN DÁROSLAS POR LAS BUENAS") - (1133 "KEIRA" "SOBORNADLES CON UNAS CUANTAS ESFERAS DE PRECURSOR. Y YA VERÉIS CÓMO OS LAS DAN.") - (1243) - (1246 :offscreen "KEIRA" "Y ESTOY SEGURA DE QUE HABRÁ MÁS POR ESAS TIERRAS SALVAJES") - (1364 "KEIRA" "ESPERANDO A QUE LAS ENCUENTRE UN BRAVO AVENTURERO.") - (1435 "DAXTER" "POR LO MENOS TENEMOS AL BRAVO AVENTURERO.") - (1529) - (1532 "SAMOS" "¿BRAVO AVENTURERO?") - (1582 "SAMOS" "¡VOSOTROS DOS NO PODRÍAIS ENCONTRAR LA SALIDA DE LA ALDEA SIN ENTRENAMIENTO!") - (1685) - (1689 "SAMOS" "ANTES DE NADA, ATRAVESAD LA PUERTA TRANSPORTADORA") - (1810 "SAMOS" "Y PRACTICAD UN POCO EN LA ROCA DE GEYSER.") - (1872) - (1878 "DAXTER" "AAAMMMM, ¿NO IREMOS A ENCONTRAR MÁS ECO OSCURO DE ESE, VERDAD?") - (1993 "DAXTER" "PORQUE NO ME GUSTARÍA CAERME DE NUEVO DENTRO Y ¡CONVERTIRME EN TÍ!") - (2069) - (2072 "SAMOS" "¡METEOS AHÍ ANTES DE QUE OS CONVIERTA EN ALFALFA!") - (2189) - ) - -("sage-intro-sequence-e" - (200 "SAMOS" "BUEN ENTRENAMIENTO, CHICOS,") - (250 "SAMOS" "PERO ESO NO ES NADA COMPARADO CON LOS DESAFÍOS QUE OS AGUARDAN.") - (359 "DAXTER" "BUEEENO, NO HAY PROBLEEEMA. SABEMOS MOVERNOS, ¿EH, JAK?") - (496 "DAXTER" "NOS ENCANTARÍA QUEDARNOS A CHARLAR, PERO, ARDEMOS EN DESEOS DE EMPRENDER AVENTURAS.") - (660 "SAMOS" "BIEN, BIEN. PUES A LA \"AVENTURA\" ENTONCES..") - (787 "SAMOS" "Y DURANTE ESAS \"AVENTURAS,\" PODRÍAIS HACER ALGO ÚTIL.") - (940) - (952 :offscreen "SAMOS" "MIS MALDITOS RECOLECTORES DE ECO VERDE ESTÁN ATASCADOS DE NUEVO.") - (1105 :offscreen "SAMOS" "ID AL EXTREMO DE LA PLAYA Y DESBLOQUEADLOS, ¿DE ACUERDO?") - (1230 :offscreen "SAMOS" "SEGUID LAS LUCES. OS LLEVARÁN ALLÍ.") - (1330 :offscreen "SAMOS" "AHORA, LOS DOS...") - (1415) - (1439 :offscreen "SAMOS" "¡¡FUEEEEERA DE AQUÍ!!") - ) - -("sidekick-human-intro-sequence-b" - (547 "ANCIANO" "SEGUID BUSCANDO ARTEFACTOS Y ECO.") - (674 "ANCIANO" "SI LA GENTE DEL LUGAR TIENE OBJETOS DE PRECURSOR, YA SABÉIS QUÉ HACER.") - (842 "MUJER" "OCUPAOS BIEN DE AQUELLOS QUE SE DESPISTEN FUERA DE LA ALDEA.") - (937 "MUJER" "ATACAREMOS EN SU MOMENTO.") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (12 "DAXTER" "PERO ¿QUÉ HACEMOS AQUÍ, JAK? ¡ESTE SITIO ME ASUSTA!") - (151) - (369 "DAXTER" "EEH?") - (404 "DAXTER" "OH...¡MALDITA PORQUERÍA PRECURSOR!") - (496) - (577 "DAXTER" "¡AAY! ¿QUÉ ES ESO OSCURO QUE REZUMA? NO PARECE MUY AMISTOSO.") - (721) - (777 "DAXTER" "EL SABIO SE PASA EL DÍA REFUNFUÑANDO SOBRE") - (820 "DAXTER" "LOS PRECURSOR QUE CONSTRUYERON ESTE SITIO.") - (909 "DAXTER" "\"¿A DÓNDE SE FUERON? ¿POR QUÉ CONSTRUYERON ESTA PORQUERÍA?\"") - (1014 "DAXTER" "ME GUSTAN LAS ESFERAS DE PRECURSOR Y LAS BATERÍAS TANTO COMO A CUALQUIERA") - (1124 "DAXTER" "PERO, SI TE DIGO LA VERDAD, DEBIERON DE SER UNOS PRINGAOS.") - (1212 "DAXTER" "¡VAAYA! ¿CÓMO HAS HECHO ESO?") - (1271) - (1331 "DAXTER" "JAK, CREO QUE TENEMOS PROBLEMAS.") - (1386) - (1622 "DAXTER" "¡SOCORROOOO!") - (1660) - (1857 "DAXTER" "¡CHICO, ESO HA DOLIDO!.") - (1913) - (1941 "DAXTER" "TE DIJE QUE NO TENÍAMOS QUE HABER VENIDO, ¿HABÍAS OÍDO...") - (2028) - (2057 "DAXTER" "¿¿QUÉ??") - (2101) - (2189 "DAXTER" "AAAAAAAAHHHHHHHH!!") - (2307 "DAXTER" "¡VAALE!, VALE. ESTOY BIEN, ¿ESTOY BIEN?") - (2431) - (2481 "DAXTER" "AAAAAAAAAAAAAAAAAAAHHHHHHHH!!") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" - (1 "DAXTER" "NO VAYAS HACIA LA LUZ, JAK.") - (52 "DAXTER" "¡¡NO VAYAS HACIA LA LUZ!!") - ) - -("death-0182" - (1 "DAXTER" "¡OYE, JAK! ¿PUEDO...") - (67 "DAXTER" "QUEDARME CON TU COLECCIÓN DE INSECTOS?") - ) - -("death-0184" - (1 "DAXTER" "MIENTRAS ESTÁS AHÍ ABAJO, EMMMM...") - (72 "DAXTER" "MASAJÉAME LOS PIES.") - ) - -("death-0186" - (1 "DAXTER" "¡NO TEMAS, TE VENGARÉ!") - (65 "DAXTER" "¡ES BROMA!") - ) - -("death-0187" - (1 "DAXTER" "BUEEENO...ESTO...") - (57 "DAXTER" "¡MEJOR TÚ QUE YO!") - ) - -("death-0191" - (1 "DAXTER" "ESO TIENE PINTA DE HACER PUPA") - (49 "DAXTER" "¿PIDO REFUERZOS?") - ) - -("death-0193" - (1 "DAXTER" "PUNTO UNO:") - (30 "DAXTER" "SEGUIR VIVO.") - (73 "DAXTER" "PUNTO DOS:") - (105 "DAXTER" "¡¡NI SE TE OCURRA VOLVER A HACER ESO DE NUEVO!!") - ) - -("death-0195" - (1 "DAXTER" "¡ESTABA JUSTO DETRÁS DE TÍ, JAK!") - (74 "DAXTER" "SÍ...TE LO PROMETO...") - ) - -("death-0197" - (3 "DAXTER" "¿MANIOBRA DE HEMLICH?") - (62 "DAXTER" "AAMMM...¿UNA CAMILLA?") - (120 "DAXTER" "¿UN CHICLE?") - ) - -("death-0199" - (1 "DAXTER" "DIRÉ ALGO REALMENTE SENTIDO EN TU FUNERAL.") - (83 "DAXTER" "COMO...") - (105 "DAXTER" "¿Y AHORA CÓMO HAGO PARA TRANSFORMARME DE NUEVO?") - ) - -("death-0202" (1 "DAXTER" "DA LAS BUENAS NOCHES, JAK.")) -("sksp009a" :hint #x0 (0 "DAXTER" "¡JAJAJAJA! ¡LE HEMOS DADO UNA BUENA LECCIÓN!")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "HEMOS REUNIDO LAS ESFERAS SUFICIENTES PARA UNA BATERÍA.") - (215 "DAXTER" "¡VAYAMOS A HACER EL TRUEQUE!") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "¡QUÉ ASPECTO MÁS EXTRAÑO TIENE! SEGURO QUE LO PODEMOS ABRIR") - (206 "DAXTER" "SI LE APLICAS UN POCO...DEL ECO AZUL ESE.") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "¡EH! ESE BOMBÓN DE KEIRA TENÍA RAZÓN. ¡AQUÍ HAY TRANS-PADS!")) -("sksp0002" :hint #x281 (0 "DAXTER" "¡CRÉEME, ESAS CAJAS DE ECO OSCURO TIENEN MUUUUUUY MALA PINTA!")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "SEGURO QUE SI ENCONTRAMOS A TODAS ESAS CONDENADAS MOSCAS EXPLORADORAS DE CADA NIVEL") - (215 "DAXTER" "AL MENOS UNO TENDRÁ UNA BATERÍA!") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "¡SÍ SEÑOR, UN TESORO!")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "¡SEGURO QUE CAJAS DE MADERA Y METAL NO SON TAN RESISTENTES!") - (166 "DAXTER" "VERÁS COMO SE ROMPEN SI SALTAS EN PICADO ENCIMA.") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "ESAS CAJAS DE METAL SON MÁS GRUESAS QUE EL CRANEO DE UNA YAKOW.") - (188 "DAXTER" "PERO DEBE DE HABER UNA FORMA DE ABRIRLAS.") - ) - -("sksp0007" :hint #x286 - (0 "DAXTER" "DOS PALABRAS: LAS BATERÍAS. HAY QUE ENCONTRARLAS.") - (110 "DAXTER" "Y PARA ESO HAY QUE BUSCARLAS BIEN DE UNA VEZ.") - ) - -("sksp0008" :hint #x287 - (0 "DAXTER" "NECESITAMOS ESFERAS, ¡EEEESFERAS, JAK!") - (110 "DAXTER" "¡¿CÓMO VAMOS A COMPRAR BATERÍAS SI NO REUNIMOS ESFERAS?!") - ) - -("sksp009b" :hint #x28e (0 "DAXTER" "¡MUY BIEN, MÁS ESFERAS!")) -("sksp009c" :hint #x28f (0 "DAXTER" "¡HAZME UN FAVOR Y ALÉJATE DE ESAS CAJAS DE ECO OSCURO!")) -("sksp009d" :hint #x290 (0 "DAXTER" "YUUUUUUJUJUJUJUJUUYY!")) -("sksp009e" :hint #x291 (0 "DAXTER" "WUUUUUUUUU!")) -("sksp009f" :hint #x292 (0 "DAXTER" "¡TOMA!, ¡TOMA! JAJAJAJA!")) -("sksp009g" :hint #x293 (0 "DAXTER" "¡DETRÁS DE TÍ, JAK!")) -("sksp009i" :hint #x294 (0 "DAXTER" "¿HEMOS ENCONTRADO TODAS LAS MOSCAS EXPLORADORAS DE ESTA ZONA?")) -("sksp009j" :hint #x295 (0 "DAXTER" "¡EH! PARECE SER QUE LAS MOSCAS EXPLORADORAS SIEMPRE ESTÁN EN CAJAS ROJAS.")) -("sksp009k" :hint #x296 (0 "DAXTER" "¡MUY BIEN! ¡HAS ENCONTRADO TODAS LAS MOSCAS EXPLORADORAS DE ESTA ZONA!")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORÁCULO" "¿QUIÉN DESPIERTA AL ORÁCULO?") - (75) - (81 "ORÁCULO" "¡ESPERA!, UNO DE LOS DOS LLEVA LA LUZ DENTRO.") - (198) - (206 "ORÁCULO" "HE ESTADO AGUARDANDO EL RETORNO DEL HÉROE VERDADERO DESDE HACE MILENIOS.") - (390) - (395 "ORÁCULO" "TREAEDME 120 ESFERAS DE PRECURSOR POR CADA BATERÍA QUE ALBERGO.") - ) - -("oracle-intro-2" - (0 "ORÁCULO" "GUARDÁOS DE LA LUZ OSCURA, QUE HA SESGADO EL DESTINO DE UNO DE LOS DOS.") - (182 "ORÁCULO" "TRAEDME 120 ESFERAS DE PRECURSOR, POR CADA BATERÍA QUE ALBERGO.") - ) - -("oracle-intro-3" - (0 "ORÁCULO" "BUSCAD LA LUZ PURA, YA QUE EN SU LLAMA RESIDEN LAS RESPUESTAS.") - (185 "ORÁCULO" "TENDRÉIS MIS BATERÍAS A CAMBIO DE 120 ESFERAS DE PRECURSOR POR CADA UNA.") - ) - -("oracle-left-eye-1" (0 "ORÁCULO" "HABÉIS DEMOSTRADO SER HONESTOS. HE AQUÍ UNA BATERÍA.")) -("oracle-left-eye-2" (0 "ORÁCULO" "POR VUESTRO SACRIFICIO, UNA BATERÍA OS DOY.")) -("oracle-left-eye-3" (0 "ORÁCULO" "A CAMBIO DE VUESTRO DENUEDO, HE AQUÍ UNA BATERÍA.")) -("oracle-reminder-1" (0 "ORÁCULO" "TRAEDME 120 ESFERAS DE PRECURSOR, Y OS DARÉ UNA BATERÍA.")) -("oracle-reminder-2" (0 "ORÁCULO" "OBSEQUIADME CON 120 ESFERAS DE PRECURSOR, Y CON UNA BATERÍA OS RECOMPENSARÉ.")) -("oracle-reminder-3" (0 "ORÁCULO" "DEBERÉIS TRAERME 120 ESFERAS DE PRECURSOR POR CADA BATERÍA QUE ALBERGO.")) -("oracle-right-eye-1" (0 "ORÁCULO" "TOMAD UNA BATERÍA A CAMBIO DE VUESTRO REGALO.")) -("oracle-right-eye-2" (0 "ORÁCULO" "HE AQUÍ OTRA BATERÍA POR VUESTROS ESFUERZOS.")) -("oracle-right-eye-3" (0 "ORÁCULO" "HABÉIS CONSEGUIDO OTRA BATERÍA.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "ESTE APARATO ES UN COMUNICADOR. CON ÉL, MI PADRE Y YO") - (181 "KEIRA" "PODREMOS ACONSEJAROS EN CUALQUIER MOMENTO DURANTE VUESTRA AVENTURA.") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "ESTAS COSAS CON FORMA DE HUEVO QUE FLOTAN SON ESFERAS DE PRECURSOR.") - (176) - (180 "KEIRA" "SI RECOGÉIS LAS SUFICIENTES, ALGUNOS DE LOS ALDEANOS OS DARÁN") - (405 "KEIRA" "A CAMBIO UNA BATERÍA.") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "ESTO ES UNA BATERÍA, EL ARTEFACTO PRECURSOR MÁS IMPORTANTE QUE PODÉIS ENCONTRAR.") - (327) - (333 "KEIRA" "TENÉIS QUE RECOGER 20 COMO ESTAS, Y ASÍ PODRÍA HACER QUE FUNCIONE EL ESCUDO TÉRMICO") - (507 "KEIRA" "DE VUESTRO ZOOMER ANTI-GRAVITATORIO.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "¡EHH! ¡HABÉIS ENCONTRADO UNA DE MIS MOSCAS EXPLORADORAS!") - (160 "KEIRA" "ENVÍE 7 A CADA ZONA PARA QUE BUSCARAN BATERÍAS,") - (343 "KEIRA" "PERO LOS LURKERS DEBEN DE HABERLAS CAPTURADO A TODAS-") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "¡VAYA! ¡ESA ÚLTIMA MOSCA EXPLORADORA TENÍA UNA BATERÍA!") - (219 "KEIRA" "SEGURO QUE SI REUNÍS LAS 7 DE CADA ZONA PODRÉIS ENCONTRAR MÁS BATERÍAS TODAVÍA.") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "¡TENED CUIDADO EN EL OCÉANO! ¡LAS AGUAS ESTÁN ATESTADAS DE TIBURONES LURKER!") - (258 "KEIRA" "¡Y JAMÁS HE VISTO A NADIE QUE LOGRE DERROTAR A UNO!") - (419) - (426 "KEIRA" "¡MANTENÉOS ALEJADOS DE ELLOS SI SABÉIS LO QUE OS CONVIENE!") - ) - -("asstvb47" :hint #x906 (0 "KEIRA" "RECORDAD, ESO ES UNA BATERÍA. TENÉIS QUE RECOGER EL MAYOR NÚMERO DE ELLAS POSIBLE.")) - -("asstvb48" :hint #x907 - (0 "KEIRA" "ESO ES UN RESPIRADERO DE ECO AZUL.") - (120 "KEIRA" "AL ESTAR MÁS CONCENTRADO QUE EN LOS RACIMOS FLOTANTES,") - (253 "KEIRA" "ESTE RESPIRADERO OS PROPORCIONARÁ UNA CARGA COMPLETA DE ECO AZUL,") - (419 "KEIRA" "QUE PODRÉIS UTILIZAR DURANTE EL MÁXIMO DE TIEMPO.") - ) - -("sagevb21" :hint #x908 - (3 "SAMOS" "ESAS BOLITAS VERDES DE ENERGÍA DEL SUELO SON UNA CLASE DE ECO.") - (280 "SAMOS" "RECOGE 50 BOLITAS VERDES DE ECO O UNA GRANDE Y VERDE Y AUMENTARÁS TU NIVEL DE SALUD.") - ) - -("sagevb22" :hint #x909 - (0 "SAMOS" "ESO ES ECO AZUL, QUE CONTIENE LA ENERGÍA DEL MOVIMIENTO.") - (291 "SAMOS" "EL ECO AZUL TE PERMITIRÁ CORRER MÁS RÁPIDO, ROMPER CAJAS,") - (400 "SAMOS" "E INCLUSO ACTIVAR ALGUNOS ARTEFACTOS") - (640 "SAMOS" "PRECURSOR CUANDO TE ACERQUES.") - ) - -("sagevb23" :hint #x90a - (0 "SAMOS" "FÍJATE COMO CADA RACIMO DE ECO AZUL QUE RECOGES,") - (150 "SAMOS" "HACE QUE AUMENTE EL TIEMPO DURANTE EL QUE PUEDES UTILIZAR SU PODER.") - ) - -("sagevb24" :hint #x90b - (3 "SAMOS" "ESTA ES UNA PUERTA PRECURSOR. SOLO PODRÁS ABRIRLA SI TE APROXIMAS A ELLA") - (357 "SAMOS" "MIENTRAS EMITES CON TU CUERPO ECO AZUL.") - ) - -("sagevb25" :hint #x90c - (3 "SAMOS" "¡BUEN TRABAJO! EL ECO AZUL HA HECHO QUE LA PUERTA SE ABRA. CON EL ECO AZUL, PODRÁS INSUFLAR") - (365 "SAMOS" "ENERGÍA EN TODO TIPO DE ARTEFACTOS PRECURSOR,") - (450 "SAMOS" "QUE HAN ESTADO INACTIVOS DURANTE AÑOS.") - ) - -("sagevb26" :hint #x90d (0 "SAMOS" "UTILIZA LAS GAFAS PARA VER TUS AVANCES A LO LARGO DE LA AVENTURA.")) - -("sagevb27" :hint #x90e - (0 "SAMOS" "PUEDES SALTAR UNA VEZ, Y CUANDO ESTÉS EN EL AIRE, HACERLO DE NUEVO PARA LLEGAR") - (150 "SAMOS" "A LOS SALIENTES QUE ESTÉN MÁS ALTOS.") - ) - -("sagevb28" :hint #x90f (0 "SAMOS" "CUANDO ESTÉS RODEADO DE ENEMIGOS, USA LA PATADA GIRATORIA.")) -("sagevb29" :hint #x910 (0 "SAMOS" "¡ESO NO ES UNA PATADA GIRATORIA! ¡OTRA VEZ!")) -("sagevb30" :hint #x911 (0 "SAMOS" "¡VAMOS, JAK! ¡DA UNA PATADA GIRATORIA!")) -("sagevb31" :hint #x912 (0 "SAMOS" "¡BUEN TRABAJO! USA LA PATADA GIRATORIA CUANDO QUIERAS ATACAR A TODO LO QUE TE RODEA.")) - -("sagevb32" :hint #x913 - (0 "SAMOS" "PARA LLEVAR A CABO UN ATAQUE EN MOVIMIENTO EN LÍNEA RECTA,") - (150 "SAMOS" "USA EL PUÑO PARA DAR UN PUÑETAZO.") - ) - -("sagevb33" :hint #x914 (0 "SAMOS" "¡ESO NO ES UN PUÑETAZO! ¡DA AHORA UN PUÑETAZO DE VERDAD!")) -("sagevb34" :hint #x915 (0 "SAMOS" "¡JAK! ¡DA UN PUÑETAZO!")) - -("sagevb35" :hint #x916 - (0 "SAMOS" "¡BIEN HECHO! UTILIZA EL PUÑETAZO PARA REDUCIR RÁPIDAMENTE") - (150 "SAMOS" "LA DISTANCIA EN UNA SITUACIÓN DIFÍCIL.") - ) - -("sagevb36" :hint #x917 - (0 "SAMOS" "A VECES QUERRÁS GOLPEAR LAS COSAS CON MÁS FUERZA.") - (218 "SAMOS" "PARA ROMPER UNA DE ESAS CAJAS TENDRÁS QUE SALTAR EN EL AIRE") - (420 "SAMOS" "Y CAER EN PICADO SOBRE ELLA, ¡PERO CON LAS MANOS POR DELANTE!") - ) - -("sagevb37" :hint #x918 - (0 "SAMOS" "CUANDO COJAS MÁS CONFIANZA EN TÍ MISMO,") - (150 "SAMOS" "TRATA DE PONER EN PRÁCTICA ALGUNOS DE TUS MOVIMIENTOS COMBINADOS.") - ) - -("sagevb38" :hint #x919 - (0 "SAMOS" "NO PODRÉIS REGRESAR A TRAVÉS DE LA PUERTA TRANSPORTADORA,") - (212 "SAMOS" "HASTA QUE NO HAYÁIS ENCONTRADO LAS 4 BATERÍAS DE ESTA ISLA.") - ) - -("sagevb39" :hint #x91a - (0 "SAMOS" "¡ESTUPENDO! ¡HABÉIS ENCONTRADO TODAS LAS BATERÍAS DE LA ISLA!") - (269 "SAMOS" "REGRESAD POR LA PUERTA TRANSPORTADORA,") - (400 "SAMOS" "Y ASÍ PODRÉ LLEVAROS DE VUELTA AL LABORATORIO. ¡RÁPIDO!") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (23 "DAXTER" "¡EEH, NENA! ¿QUÉ TE PARECE SI TE DOY UNA VUELTA EN ESTE ZOOMER ANTIGRAVITATORIO?") - (175) - (193 "KEIRA" "REGLA NÚMERO UNO: NO SALGO CON ANIMALES.") - (308) - (312 "DAXTER" "VAAAYA, PUES NO SABES LO QUE TE PIERDES, JIJIJIJI.") - (430) - (505 "KEIRA" "ESCUCHAD, SI QUIERES ESTAR OCUPADO CON ALGO, MI PADRE SIEMPRE HABLABA") - (635 "KEIRA" "DE UNA ANTIGUA TUBERÍA DE PRECURSOR ESCONDIDA PROFUNDAMENTE BAJO TIERRA.") - (739) - (742 :offscreen "KEIRA" "ALGUNAS DE ESTAS TUBERÍAS ACABAN EN RESPIRADEROS POR LOS QUE SALE ECO,") - (842 :offscreen "KEIRA" "Y ALGUNAS HAN SIDO SELLADAS PARA QUE EL ECO QUEDE ENCERRADO.") - (945) - (954 "KEIRA" "DEBE DE HABER UNA MANERA DE ABRIR LOS RESPIRADEROS SELLADOS.") - (1052 :offscreen "KEIRA" "HE SEGUIDO EL RASTRO DE LA TUBERÍA HASTA EL TEMPLO PROHIBIDO.") - (1138 "KEIRA" "TAL VEZ DEBERÍAIS BUSCAR ALLÍ ALGÚN INTERRUPTOR.") - (1246) - ) - -("assistant-introduction-race-bike" - (9 "DAXTER" "¡EH, NENA!, ¿EN QUÉ TRABAJAS?") - (63 "KEIRA" "¡CUIDADO CON ESO! ESTOY INTENTANDO AVERIGUAR CÓMO TRANSPORTAR EL ZOOMER") - (200 "KEIRA" "CON LOS TRANS-PAD QUE LOS PRECURSORS HAN DEJADO POR TODO EL MUNDO.") - (308) - (312 :offscreen "KEIRA" "SI OS ENCONTRÁIS CON UNO DE ESOS TRANS-PAD, PODRÉ DEJAR LA UBICACIÓN") - (360 :offscreen "KEIRA" "DE VUESTRO COMUNICADOR") - (453 :offscreen "KEIRA" "Y ENVIAROS EL ZOOMER.") - (508 "KEIRA" "ESTAD ATENTOS POR SI ENCONTRÁIS UN TRANS-PAD AL EXPLORAR MISTY ISLAND") - (600 "KEIRA" "Y EN CUALQUIER OTRO SITIO.") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "ESTOY SEGURA DE QUE SI MIRÁIS DENTRO DEL TEMPLO PRECURSOR PROHIBIDO") - (143 "KEIRA" "ENCONTRARÉIS LA MANERA DE ACTIVAR EL RESPIRADERO DE ECO AZUL") - (220 "KEIRA" "DE LA PLAYA DEL CENTINELA.") - (295) - ) - -("assistant-reminder-1-generic" - (30 "KEIRA" "¡EH, CHICOS! SEGUID REUNIENDO BATERÍAS.") - (100 "KEIRA" "SON FUNDAMENTALES PARA SEGUIR NUESTRA TRAVESÍA HACIA EL NORTE.") - (192) - ) - -("assistant-reminder-1-race-bike" - (19 "KEIRA" "HE AVERIGUADO CÓMO USAR LOS TRANS-PAD.") - (106 "KEIRA" "AHORA ID A MISTY ISLAND Y ENVIARÉ ALLÍ EL ZOOMER.") - (229) - ) - -("explorer-introduction" - (23 "EXPLORADOR" "VAYA, ¡HOLA, CHAVAL! ME HAS PILLADO EN EL MOMENTO MÁS INOPORTUNO.") - (197 "EXPLORADOR" "IBA A MARCHARME DE VIAJE AYER,") - (288 "EXPLORADOR" "PERO ME HE QUEDADO ALGO ESCASO DE ESFERAS DE LOS PRECURSORES.") - (426) - (430 "EXPLORADOR" "JURARÍA QUE TENÍA 90 ESFERAS,") - (538 "EXPLORADOR" "PERO ME DA QUE TU AMIGUETE...YA SABES, LA SABANDIJA ESA...") - (716 "EXPLORADOR" "ME LAS DEBE DE HABER QUITADO SOLO PARA DIVERTIRSE.") - (829) - (865 "EXPLORADOR" "EN CUALQUIER CASO, ¿SERÍAS TAN AMABLE DE PRESTARLE") - (900 "EXPLORADOR" "A TU QUERIDO TÍO 90 ESFERAS DE LOS PRECURSORES") - (1043 "EXPLORADOR" "PARA QUE PUEDA PONERSE EN CAMINO? A CAMBIO, TE DARÍA UNA BATERÍA.") - ) - -("explorer-reminder-1" - (25 "EXPLORADOR" "¿QUÉ? ¿NO LAS TIENES TODAS?") - (148 "EXPLORADOR" "PUES CON MENOS DE 90 ESFERAS DE LOS PRECURSORES,") - (251 "EXPLORADOR" "NO PODRÉ IR A NINGÚN LADO, CHAVALÍN.") - (387) - ) - -("explorer-reminder-2" - (33 "EXPLORADOR" "¡BUENO, VEAMOS! EL TRATO SON 90 ESFERAS DE LOS PRECURSORES POR UNA BATERÍA.") - (187 "EXPLORADOR" "ME PARECE BASTANTE JUSTO.") - ) - -("explorer-resolution" - (28 "EXPLORADOR" "VEO QUE LOS DOS HABÉIS VUELTO PARA HACER NEGOCIOS. ¡MUY BIEN!, ¡MUY BIEN!") - (179 "EXPLORADOR" "EH...¿TENÉIS LA CANTIDAD DE ESFERAS DE LOS PRECURSORES ACORDADA?") - (310) - (324 "EXPLORADOR" "ME HA COSTADO MUCHO CONSEGUIR ESTA BATERÍA. ¡USADLA BIEN! ¡HASTA LUEGO, CHAO, BYE BYE!") - ) - -("farmer-introduction" - (1 "GRANJERO" "TENGO QUE ORDEÑAR A LAS YAKOUS, TENGO QUE ORDENAR A LAS YAKOUS...") - (113 "GRANJERO" "¡EH, ERES TÚ! AH...ESTABA DESCANSANDO UN POQUITO.") - (210 "GRANJERO" "LLEVO TODO EL DÍA INTENTANDO ENCERRAR A ESAS IRASCIBLES YAKOUS.") - (370 "GRANJERO" "UNAS EXTRAÑAS CRIATURAS INTENTARON ROBARLAS ANTES.") - (470 "GRANJERO" "¿CREÉIS QUE PODRÉIS AYUDAR A ESTE VIEJO A METERLAS EN EL CORRAL?") - ) - -("farmer-reminder-1" (0 "GRANJERO" "¡EH, EHH! ¡MIS YAKOUS ESTÁN TODAVÍA SUELTAS! ¿ME...LAS PODRÍAIS TRAER PRONTO?")) - -("farmer-reminder-2" - (0 "GRANJERO" "¡ESAS MALDITAS YAKOUS SIGUEN DEAMBULANDO LIBRES!") - (85 "GRANJERO" "¿VAIS A METERLAS EN EL CORRAL DE UNA VEZ?") - ) - -("farmer-resolution" - (0 "GRANJERO" "¡EH!, ¡BIEN HECHO, CHAVAL! HAS CONSEGUIDO METER A ESAS PESADAS EN EL CORRAL.") - (134 "GRANJERO" "¡YA PUEDO DORMIR TRANQUILO! TOMA ESTA BATERÍA POR MOLESTARTE.") - (340) - ) - -("sage-introduction-misty-cannon" - (24 "SAMOS" "OH, SON LOS CONQUISTADORES.") - (136 "SAMOS" "BIEN, QUERÍA HABLAR CON VOSOTROS DOS DE COSAS SERIAS.") - (258) - (261 :offscreen "SAMOS" "PARECE SER QUE HAY CIERTA ACTIVIDAD LURKER EN MISTY ISLAND.") - (387) - (393 :offscreen "SAMOS" "PUEDO VER CÓMO BOMBARDEAN EL SILO PRECURSOR DESDE MI OBSERVATORIO.") - (525) - (528 "SAMOS" "SI LOS LURKERS LO ABREN Y LIBERAN EL ECO OSCURO, PODRÍAMOS ACABAR TODOS") - (663 "SAMOS" "CON EL ASPECTO RIDÍCULO DE ESTE MOLESTO ESPÉCIMEN.") - (788) - (807 "SAMOS" "JAK, ES EL MOMENTO DE QUE DEMUESTRES LO QUE VALES.") - (906 "SAMOS" "CONSIGUE QUE EL PESCADOR TE DEJE SU BARCO PARA IR A MISTY ISLAND") - (1018 "SAMOS" "SUBE A LA CIMA DEL SILO DE PRECURSOR Y ACABA CON ESE CAÑÓN.") - (1171) - (1177 "DAXTER" "Y...¿QUÉ HAY DE MÍ?") - (1232) - (1235 "SAMOS" "¿TÚ? ¿POR QUÉ NO FRIEGAS EL SUELO? PARECE HABER PERDIDO BRILLO ÚLTIMAMENTE.") - ) - -("sage-reminder-1-ecorocks" - (28 "SAMOS" "MENUDOS \"AVENTUREROS VALIENTES\" QUE SOIS.") - (132 "SAMOS" "YA HABÉIS VUELTO Y NO HABÉIS DESBLOQUEADO MIS COSECHADORES DE ECO.") - (244) - (252 :offscreen "SAMOS" "ESTÁN EN EL EXTREMO DE LA PLAYA, CHICOS.") - (365) - (366 :offscreen "SAMOS" "AHORA...") - (412 :offscreen "SAMOS" "¡EN MARCHA!") - ) - -("sage-reminder-1-generic" - (54 "SAMOS" "¿QUÉ HACÉIS LOS DOS AQUÍ? ¡TENÉIS QUE IR A CONSEGUIR BATERÍAS!") - (178) - (181 "SAMOS" "HASTA QUE LAS CONSIGÁIS...¡DEJAZME EN PAZ!") - ) - -("sage-reminder-1-misty-cannon" - (28 "SAMOS" "MENUDOS \"AVENTUREROS VALIENTES\" QUE SOIS.") - (132 "SAMOS" "YA HABÉIS VUELTO Y NO HABÉIS DESBLOQUEADO MIS COSECHADORES DE ECO.") - (244) - (252 :offscreen "SAMOS" "ESTÁN EN EL EXTREMO DE LA PLAYA, CHICOS.") - (365) - (366 :offscreen "SAMOS" "AHORA...") - (412 :offscreen "SAMOS" "¡EN MARCHA!") - ) - -("sage-reminder-2-generic" - (27 "SAMOS" "NO ACABÁIS DE ENTENDER LA GRAVEDAD DE LA SITUACIÓN.") - (137 "SAMOS" "LA COSA NO SE QUEDA EN LA TRANSFORMACIÓN DE UN CHAVAL EN BICHO PELUDO.") - (200 "SAMOS" "ESTO CONCIERNE A LA VIDA TAL Y COMO LA CONOCEMOS.") - (320) - (323 "SAMOS" "AHORA MARCHÁOS Y COMPLETAD VUESTRA TAREA.") - (455) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "HMM...")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "TENGO QUE ARREGLAR ESTE ESCUDO TÉRMICO...")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "NECESITAMOS BATERÍAS PARA ALIMENTAR EL ESCUDO TÉRMICO...")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "¿DÓNDE ESTÁ MI LLAVE?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "EL DESFILADERO DEL FUEGO ESTÁ TAN CALIENTE...")) -("EXP-AM01" :hint #x0 (0 "EXPLORADOR" "TENGO QUE IRME DE VIAJE PRONTO. NECESITO ESFERAS DE LOS PRECURSORES.")) -("EXP-AM02" :hint #x0 (0 "EXPLORADOR" "VEAMOS...¿A DÓNDE VOY PRIMERO? MMM...")) -("EXP-AM03" :hint #x0 (0 "EXPLORADOR" "OH...¡CÓMO ECHO DE MENOS VIAJAR!")) -("EXP-AM04" :hint #x0 (0 "EXPLORADOR" "TANTOS LUGARES POR VER Y TAN POCO TIEMPO.")) -("EXP-AM05" :hint #x0 (0 "EXPLORADOR" "EN MIS TIEMPOS, UNO PODÍA RECORRER EL MUNDO SIN QUE LE ASALTASEN MONSTRUOS.")) -("EXP-LO02" :hint #x0 (0 "EXPLORADOR" "NECESITO MÁS ESFERAS DE LOS PRECURSORES.")) -("EXP-LO1A" :hint #x0 (0 "EXPLORADOR" "(MURMURA)")) -("FAR-AM01" :hint #x0 (0 "GRANJERO" "(RONQUIDOS)")) -("FAR-AM02" :hint #x0 (0 "GRANJERO" "(RONQUIDOS) (BALBUCEO)")) - -("FAR-AM2A" :hint #x0 - (0 "GRANJERO" "(BALBUCEO)...TENGO QUE RECOGER LA COSECHA") - (156) - (156 "GRANJERO" "ANTES DE QUE SE LA COMAN LOS BICHOS DE JUNE...(RONQUIDOS)") - ) - -("FAR-LO01" :hint #x0 (0 "GRANJERO" "(RONQUIDOS)")) -("FAR-LO1A" :hint #x0 (0 "GRANJERO" "(RONQUIDOS)")) -("SAGELP03" :hint #x0 (0 "SAMOS" "ESTOS DOS NO SON CAPACES NI DE DESBLOQUEARSE LA NARIZ...")) - -("SAGELP04" :hint #x0 - (0 "SAMOS" "NUNCA SERÁ COMO SU TÍO...") - (221 "SAMOS" "NO ME IMPORTA LO QUE DIGAN LOS DEMÁS.") - ) - -("SAGELP05" :hint #x0 (0 "SAMOS" "HOLA, ¿SABIO AZUL? ¡HOLA! ¿DÓNDE DIANTRE ESTARÁ...?")) -("SAGELP06" :hint #x0 (0 "SAMOS" "VAYA, VAYA, VAYA...")) -("SAGELP11" :hint #x0 (0 "SAMOS" "¿HAY ALGUIEN? ¡QUIEN SEA! ¡RESPONDED!")) -("sksp0010" :hint #x231 (0 "DAXTER" "¡EH! VAMOS A ECHAR UN VISTAZO A LA SUPER LANCHA DEL LOBO DE MAR EN EL PUERTO.")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "¿HAS VISTO EL PEDAZO DE BOCADO QUE LE PEGÓ UN TIBURÓN LURKER AL BARCO DEL PESCADOR?") - (315) - (337 "DAXTER" "¡MÁS NOS VALE ESTAR BIEN LEJITOS DE ELLOS!") - (500 "DAXTER" "NO CREO QUE NOS PODAMOS ENFRENTAR A ALGO TAN TREMENDO.") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "ESTO DEBE DE SER EL ORÁCULO DE PRECURSOR DEL QUE SIEMPRE HABLA EL SABIO.") - (228 "DAXTER" "¡ESPERABA QUE NO FUESE TAN FEO EN PERSONA!") - ) - -("sksp0017" :hint #x235 (0 "DAXTER" "¡GUAU! ¡ECHA UN VISTAZO A LA ESCULTURA TAN HORTERA QUE HAY EN AQUELLAS ROCAS!")) - -("sksp0043" :hint #x24e - (0 "DAXTER" "TAL VEZ DEBERÍAMOS IR A VER AL PESCADOR.") - (106 "DAXTER" "HE OÍDO QUE SUELE PESCAR EN EL RÍO DE LA SELVA.") - ) - -("asstvb09" :hint #x24f - (0 "KEIRA" "NO TENÉIS LAS 20 BATERÍAS NECESARIAS PARA ACTIVAR MI ESCUDO TÉRMICO.") - (216) - (234 "KEIRA" "NO PODÉIS CRUZAR EL DESFILADERO DEL FUEGO HASTA QUE NO TENGÁIS LAS QUE HACEN FALTA.") - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "¡EL GANDUL DEL GRANJERO NOS DEBE UNA BATERÍA!") - (156 "DAXTER" "¡HABLEMOS CON ÉL!") - ) - -("asstvb04" :hint #x2b1 - (0 "KEIRA" "BIEN, ¡HABÉIS REUNIDO LAS SUFICIENTES BATERÍAS PARA ACTIVAR MI ESCUDO TÉRMICO!") - (233 "KEIRA" "ESCALAD EL ACANTILADO TRAS LA CASA DEL GRANJERO PARA REUNIROS CONMIGO") - (350 "KEIRA" "EN LA ENTRADA DEL DESFILADERO DEL FUEGO.") - (559 "KEIRA" "TRAED LAS BATERÍAS, ¡Y DAOS PRISA! ¡MI PADRE DICE QUE HA VISTO A MÁS LURKERS RONDANDO!") - ) - -("asstvb08" :hint #x2b2 - (0 "KEIRA" "DAOS PRISA CON LAS BATERÍAS. OS ESPERO AL PRINCIPIO DEL DESFILADERO DEL FUEGO") - (260 "KEIRA" "SUBIENDO EL ACANTILADO QUE HAY TRAS LA CASA DEL GRANJERO.") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "MUJER PÁJARO" "¡OH, CIELOS! ESPERO QUE EL POBRECITO ESTÉ BIEN. TOMAD UNA BATERÍA POR VUESTRO VALOR.") - (243) - (306 "FLUT FLUT" "¡MAMA!") - (354) - (406 "FLUT FLUT" "¡MAMA!") - (430 "DAXTER" "¡OH, NO! ¡¡NO, NO, NO, NO, NOOO!!") - (533) - (535 "MUJER PÁJARO" "MIRAD, ¿A QUE ES MONO? CREO QUE PIENSA QUE ERES SU MAMÁ.") - (696) - (699 "DAXTER" "¿¿MAMÁ?? ¡NO SOY TU MADRE! ¿VES PLUMAS POR ALGÚN LADO? ¿MMM?") - (803) - (807 "MUJER PÁJARO" "OH, ¡AMOR A PRIMERA VISTA! BUENO...") - (936) - (939 "MUJER PÁJARO" "ESCUCHAD, CHICOS, ME LLEVARÉ AL PUEBLO AL POLLUELO") - (1054 "MUJER PÁJARO" "Y TRATARÉ DE QUE EL SABIO SE OCUPE DE ÉL.") - ) - -("bird-lady-introduction" - (125 "MUJER PÁJARO" "¡CIELO SANTO! ¡QUÉ PAJARITO MÁS ENFERMO!") - (245) - (251 "DAXTER" "USTED TAMPOCO TIENE MUY BUENA PINTA, SEÑORA.") - (326) - (331 "MUJER PÁJARO" "OH, LO SIENTO. PENSÉ QUE ERAS UN RAIN FRAY DE VIENTRE NARANJA.") - (454) - (457 "MUJER PÁJARO" "¿SABES? AYER VI COMO UNAS MALVADAS CRIATURAS") - (578 "MUJER PÁJARO" "CAPTURABAN A UNA MADRE FLUT FLUT CERCA DE LA PLAYA.") - (648) - (654 :offscreen "MUJER PÁJARO" "Y EN SU NIDO, EN LO ALTO DEL BARRANCO, SE HA QUEDADO UN POBRE HUEVO HUÉRFANO") - (796 :offscreen "MUJER PÁJARO" " AL QUE NO PUEDO LLEGAR. ¿PODRÍAIS SUBIR Y EMPUJARLO PARA QUE CAIGA") - (951 :offscreen "MUJER PÁJARO" "EN EL MONTÓN DE HENO QUE HE PUESTO DEBAJO?") - (1041) - (1044 "MUJER PÁJARO" "SI ME HACÉIS ESTE FAVOR, OS RECOMPENSARÉ CON UNA BATERÍA.") - (1198) - ) - -("bird-lady-reminder-1" - (56 "MUJER PÁJARO" "OH, ¡HOLA DE NUEVO!") - (120 "MUJER PÁJARO" "¿HABÉIS ENCONTRADO EL HUEVO AZUL QUE HAY EN EL BARRANCO?") - (208) - (211 "MUJER PÁJARO" "¡EMPUJADLO POR EL BORDE Y OS DARÉ UNA BATERÍA!") - (348) - ) - -("bird-lady-reminder-2" - (58 "MUJER PÁJARO" "¿TODAVÍA REVOLOTEANDO POR AQUÍ? JAJAJAJA") - (170) - (174 "MUJER PÁJARO" "¡SEGURO QUE ESE POBRE HUEVO DEL BARRANCO ESTÁ PASANDO UN FRÍO TERRIBLE!") - (313) - (316 "MUJER PÁJARO" "¡ID A SALVARLO! EMPUJÁNDOLO POR EL BORDE...Y OS DARÉ UNA BATERÍA.") - ) - -("mayor-introduction" - (31 "ALCALDE" "¡¡NO!! (MURMURA) ¡NO ME DIGAS QUE VOSOTROS DOS TAMBIÉN TENÉIS PROBLEMAS!") - (171) - (174 "ALCALDE" "PRIMERO LAS APARICIONES DE MONSTRUOS CERCA DE LA ALDEA, ¡Y AHORA ESTO!") - (313) - (320 "ALCALDE" "¿VEIS ESOS ENGRANAJES AHÍ ARRIBA, CHICOS? ¿LOS VEIS? ¿VEIS LO PARADOS QUE ESTÁN?") - (479 "ALCALDE" "¡ESO SIGNIFICA QUE NUESTRA ALDEA NO TIENE ELECTRICIDAD!") - (569) - (578 "ALCALDE" "¡EL RAYO ECO QUE PROVIENE DEL TEMPLO DE LA SELVA SE HA INTERRUMPIDO!") - (685) - (689 "ALCALDE" "Y LA VERDAD, A TODO EL MUNDO LE DA MIEDO. ID A VER QUÉ ES LO QUE HA PASADO.") - (850) - (864 "DAXTER" "¿HAS PAGADO LA FACTURA?") - (915) - (917 "ALCALDE" "¡AJÁ! JOOOJOOJAJAAAA, QUÉ GRACIOSO...") - (1071) - (1074 "ALCALDE" "MIRAD, SI ARREGLÁIS EL RAYO ECO, OS DARÉ...UNA BATERÍA.") - (1262 "ALCALDE" "¡AH, AHH, AHH, OTRA COSA!") - (1346 "ALCALDE" "SI POR CASUALIDAD OS INTERESA HACER UNA CONTRIBUCIÓN A MI CAMPAÑA DE REELECCIÓN,") - (1551 "ALCALDE" "TAL VEZ CONSIDERE EL DAROS OTRA BATERÍA.") - (1668) - (1671 "ALCALDE" "LA CONTRIBUCIÓN MÍNIMA ES DE UNAS...MODESTAS...") - (1797 "ALCALDE" "90 ESFERAS.") - ) - -("mayor-reminder-beams" - (25 "ALCALDE" "¿YA HABÉIS VUELTO? ¡¿Y SIN ARREGLAR EL RAYO ECO?!") - (157 "ALCALDE" "(LLANTO) ¡VUESTRA ALDEA OS NECESITA, CHICOS!") - ) - -("mayor-reminder-donation" - (26 "ALCALDE" "¿HABÉIS VENIDO A HACER UNA DONACIÓN A MI CAMPAÑA...?") - (159 "ALCALDE" "CON 90 ESFERAS DE LOS PRECURSORES OS LLEVÁIS UNA BATERÍA, CHICOS.") - ) - -("mayor-resolution-beams" - (28 "ALCALDE" "JAAAAJAJAJAJA,") - (100 "ALCALDE" "¡QUÉ VISTA TAN MARAVILLOSA! OS LO AGRADEZCO,") - (205 "ALCALDE" "Y TODA LA ALDEA ME LO AGRADECERÁ A MÍ.") - (269 "ALCALDE" "¡EH, CHICOS!") - (290 "ALCALDE" "¡HABÉIS DEVUELTO LA ELECTRICIDAD A LA ALDEA Y GARANTIZADO MI REELECCIÓN!") - (472) - (475 "ALCALDE" "Y POR ELLO, AMIGOS MÍOS, OS DOY...¡UNA BATERÍA!") - ) - -("mayor-resolution-donation" - (28 "MAYOR" "ASÍ QUE...QUERÉIS REALIZAR UNA CONTRIBUCIÓN, ¡BIEN! SERÁ DE BUEN TAMAÑO, ESPERO.") - (219) - (224 "MAYOR" "¡GUAAAAAAU, SIII...! AAMM...ES UNA CONTRIBUCIÓN HERMOSA.") - (365 "MAYOR" "BUENO, EMMM...ESPERO QUE ESTA BATERÍA SEA UNA BUENA MUESTRA DE MI GRATITUD.") - ) - -("sculptor-introduction" - (30 "ESCULTOR" "EH...¡PEQUEÑÍN PELUDO!") - (154) - (161 "ESCULTOR" "OHH...POR UN MOMENTO, PENSÉ QUE ERAS MI MUSA.") - (282) - (285 "DAXTER" "¿¿TU QUÉ??") - (334) - (343 "ESCULTOR" "¿NUNCA HABÍAIS VISTO A UNA MUSA?") - (430) - (434 "ESCULTOR" "ES UNA PEQUEÑA ARDILLA RESPLANDECIENTE DE TU TAMAÑO, LLENA DE VITALIDAD,") - (550 "ESCULTOR" "¡Y LOCA COMO UNA REGADERA!") - (622) - (632 "DAXTER" "AAAH, ¡LO PILLO! COMO UN...¡COMPAÑERO DE AVENTURAS!") - (757) - (763 "ESCULTOR" "EN REALIDAD...SIN MI MUSA...NO PUEDO ESCULPIR.") - (920) - (923 "ESCULTOR" "CON ELLA CERCA...VEO LA BELLEZA DE TODO, ¿SABÉIS?") - (1087) - (1091 "ESCULTOR" "AHORA MISMO NO PODRÍA HACER NI UN AGUJERO CON EL CINCEL...") - (1182) - (1191 :offscreen "ESCULTOR" "CREO QUE ELLA HA HUÍDO A ISLA DE MISTY.") - (1278) - (1281 "ESCULTOR" "OHH...ESPERO QUE ESTÉ BIEN.") - (1370) - (1376 "ESCULTOR" "¡OS DARÉ UNA BATERÍA SI ME LA TRAÉIS!") - (1441) - (1467 "DAXTER" "¡ESPERA UN SEGUNDO! NO...VAMOS A...¡¡VOLVER A LA ISLA DE NIEBLA!!") - (1646) - (1649 "DAXTER" "¿VERDAD...?") - ) - -("sculptor-reminder-1" - (27 "ESCULTOR" "OHH...¡EH, AMIGOS! ¿HABÉIS ENCONTRADO A MI MUSA?") - (169) - ) - -("sculptor-resolution" - (87 "ESCULTOR" "¡¡OH, MI MUSA!! ¡¡LA HABÉIS SALVADO!! ¡OH, SOIS LOS MEJORES!") - (230 "ESCULTOR" "BIEN, TOMAD ESTA BATERÍA. YA NO LA NECESITO, AHORA QUE ME HA VUELTO LA INSPIRACIÓN.") - ) - -("BIR-AM01" :hint #x0 (0 "MUJER PÁJARO" "¿ESTÁIS YA CERCA DEL HUEVO?")) -("BIR-AM02" :hint #x0 (0 "MUJER PÁJARO" "¡ESO ES, UN POCO MÁS!")) -("BIR-AM03" :hint #x0 (0 "MUJER PÁJARO" "ESTUPENDO. AHORA EMPUJADLO SUAVEMENTE")) -("BIR-AM04" :hint #x0 (0 "MUJER PÁJARO" "¡DIOS MÍO! ¡HE DICHO SUAVEMENTE!")) -("BIR-AM05" :hint #x0 (0 "MUJER PÁJARO" "¡VAMOS, EMPUJAD EL HUEVO POR EL BARRANCO!")) -("BIR-AM06" :hint #x0 (0 "MUJER PÁJARO" "OOOOHH!")) -("BIR-AM07" :hint #x0 (0 "MUJER PÁJARO" "¡AQUÍ, PAJARITO! ¡AQUÍ, PAJARITO! ¡PÍO, PÍO!")) -("BIR-AM08" :hint #x0 (0 "MUJER PÁJARO" "AQUÍ, PAJARITO.")) -("BIR-AM09" :hint #x0 (0 "MUJER PÁJARO" "¡CUIDADO! ¡AHÍ ARRIBA PARECE PELIGROSO!")) -("BIR-AM10" :hint #x0 (0 "MUJER PÁJARO" "¡CUIDADO! ¡POCO A POCO!")) -("BIR-AM11" :hint #x0 (0 "MUJER PÁJARO" "¡BUEN TRABAJO! AHORA VENID AQUÍ, AL LADO DEL HUEVO.")) -("BIR-AM12" :hint #x0 (0 "MUJER PÁJARO" "DEBES DE SER TODO UN AMANTE DE LOS ANIMALES.")) -("BIR-AM13" :hint #x0 (0 "MUJER PÁJARO" "¿HAY MÁS PÁJAROS POR AHÍ ARRIBA?")) -("BIR-LO01" :hint #x0 (0 "MUJER PÁJARO" "(SILBIDO)")) -("BIR-LO02" :hint #x0 (0 "MUJER PÁJARO" "¡OH, MIRA!, ESE ES PRECIOSO.")) -("BIR-LO03" :hint #x0 (0 "MUJER PÁJARO" "¡OH, MIRA! UN MUCKY-MUCK.")) -("BIR-am08" :hint #x0 (0 "MUJER PÁJARO" "AQUÍ, PAJARITO.")) -("CHI-AM01" :hint #x0 (0 "MAYOR" "OH...¡ESTO ES UNA CATÁSTROFE! ¡UN ABSOLUTO DESASTRE!")) - -("CHI-AM02" :hint #x0 - (0 "MAYOR" "QUIEREN QUE VAYA A LA SELVA...¡¡YO!!") - (214) - (219 "MAYOR" "¡ANTES DESPLUMARÍA A UN FLUT FLUT RABIOSO!") - ) - -("CHI-AM03" :hint #x0 - (0 "ALCALDE" "¡...PRIMERO UN MONSTRUO ATACA EL BARCO DEL PESCADOR!") - (352) - (395 "ALCALDE" "...Y...Y...Y...AHORA....¡AHORA ESTO! ¡¿QUÉ MÁS PUEDE IR MAL?!") - ) - -("CHI-AM04" :hint #x0 - (0 "ALCALDE" "OHHH...TAL VEZ...DEBA...EHHH...TAL VEZ DEBERÍA SUBIR LOS IMPUESTOS...") - (400) - (400 "ALCALDE" "PARA EHHH...¡COSTEAR ESTE DESASTRE!") - ) - -("CHI-AM05" :hint #x0 (0 "ALCALDE" "PROBLEMAS, ¡TODO SON...PROBLEMAS! ¡OOHHH...PROBLEMAS!")) -("CHI-AM06" :hint #x0 (0 "ALCALDE" "(LLANTO) ¡AHORA VA A SER IMPOSIBLE QUE ME REELIJAN!")) -("CHI-AM07" :hint #x0 (0 "ALCALDE" "(LLANTO) ¿QUÉ HA PASADO CON EL RAYO ENERGÉTICO DE LA ALDEA?")) -("CHI-AM08" :hint #x0 (0 "ALCALDE" "(LLANTO) OHH...¿¿POR QUÉ?? OOOAAHHH ¿¿¿POR QUÉ???(LLANTO)")) -("CHI-LO01" :hint #x0 (0 "ALCALDE" "(LLANTO)...MOLINO, MONSTRUOS, ELECTRICIDAD, REELECCIÓN...")) -("CHI-LO02" :hint #x0 (0 "ALCALDE" "(LLANTO)...CUESTAS, MONSTRUOS, REELECCIÓN...")) -("SCU-AM01" :hint #x0 (0 "ESCULTOR" "OH...YA NO ME SALE NADA.")) -("SCU-AM02" :hint #x0 (0 "ESCULTOR" "OH...OJALÁ ESTUVIESE INSPIRADO.")) -("SCU-AM03" :hint #x0 (0 "ESCULTOR" "ESTOY TAN INSPIRADO COMO...ESTA PIEDRA.")) -("SCU-AM04" :hint #x0 (0 "ESCULTOR" "OH...¿DÓNDE ESTARÁ MI MUSA?")) -("SCU-AM05" :hint #x0 (0 "ESCULTOR" "¡ASÍ NO PUEDO TRABAJAR!")) -("SCU-AM06" :hint #x0 (0 "ESCULTOR" "OH DIOS MÍO...¿CUÁNDO VOLVERÁ CONMIGO?")) -("SCU-LO01" :hint #x0 (0 "ESCULTOR" "OH...NO...")) -("sksp0028" :hint #x0 (0 "DAXTER" "¡DALE UNA PATADA! JIJIJIJIJI ¡¡DÁSELA!!")) -("sksp0019" :hint #x236 (0 "DAXTER" "¡EH, GAVIOTAS! VAMOS A ESPANTARLAS PARA DIVERTIRNOS.")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "¡EH, ESE PELÍCANO NOS HA BIRLADO UNA BATERÍA!") - (197) - (200 "DAXTER" "VAMOS A DARLE SU MERECIDO.") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "¡EH, PRUEBA A GOLPEAR LAS PIEDRAS PARA VER SI LAS QUITAS DE EN MEDIO!")) -("sksp0031" :hint #x23a (0 "DAXTER" "¡OOH, VAMOS A USAR EL CAÑÓN PARA VOLAR COSAS POR LOS AIRES!")) -("sksp0034" :hint #x23b (0 "DAXTER" "¡AUUUUUUU, AH AH AH AAAAAAAH! ¡BUCEA Y COGE LOS HUEVOS, JAK, BUCEA!")) -("sksp0020" :hint #x268 (0 "DAXTER" "¡YUUJUJUUUUY! ¡VENGA, OTRA VEZ!")) -("sksp0022" :hint #x26a (0 "DAXTER" "¡YUUUUUJUUUU JAJAJAJAAA YUUJUJUJUYY!")) -("sksp0023" :hint #x26b (0 "DAXTER" "¡WUUUUU!")) -("sksp0024" :hint #x26c (0 "DAXTER" "¡YAAAAHJAAAJAJAA, ¡¡SÍ!!")) -("sksp0025" :hint #x273 (0 "DAXTER" "¡GUAU! ¡HAN CAUSADO UNA AVALANCHA! ¡VAMOS A VERLA!")) -("sksp0027" :hint #x274 (0 "DAXTER" "¡DEPRISA! ¡TENEMOS QUE LLEGAR A LA BATERÍA ANTES DE QUE EL PELÍCANO SE LA LLEVE DE NUEVO!")) - -("sksp0029" :hint #x275 - (0 "DAXTER" "EMMM, DEBERÍAMOS HABLAR CON LA ORNITÓLOGA") - (125 "DAXTER" "Y VER SI EL HUEVO DE FLUT FLUT HA ACABADO REVUELTO.") - ) - -("sagevb01" :hint #x288 - (0 "SAMOS" "BIEN, VEO QUE OS HABÉIS DECIDIDO FINALMENTE A DEBLOQUEAR MIS COSECHADORES.") - (347) - (352 "SAMOS" "OS FELICITARÍA, PERO TENÉIS TANTO POR HACER, QUE NOS HARÉ PERDER EL TIEMPO.") - (705) - (712 "SAMOS" "POR CIERTO, SI LAS COSAS NO FUNCIONAN,") - (884 "SAMOS" "DAXTER SIEMPRE PODRÍA CONSEGUIR UN TRABAJO") - (950 "SAMOS" "CONTROLANDO LA POBLACIÓN DE RATAS DE LA ALDEA.") - (1190 "SAMOS" "JAJAJAJAJAJAJA.") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "¡GOLPEA ESAS PÉRTIGAS DESDE ABAJO!")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (0 :offscreen "PESCADOR" "QUE LOS BUENOS PECES SON DE DOS TIPOS: LOS DE 1 KILO Y LOS DE 5.") - (220 :offscreen "PESCADOR" "QUE SI DEJÁIS ESCAPAR 20 KILOS DE PESCADO, ¡OS QUITARÉ LA RED!") - (432) - (438 :offscreen "PESCADOR" "¡EN ESTE RÍO HAY ANGUILAS VENENOSAS!") - (542) - (545 :offscreen "PESCADOR" "SI COGÉIS UNA, LA MUY DESGRACIADA CONTAMINARÁ A TODA LA CAPTURA...JEJEJEJEJE...") - ) - -("fisher-introduction" - (0 "DAXTER" "¿QUÉ TIENES EN LA CESTA?") - (50 "PESCADOR" "PUES...NADA.") - (103) - (106 "PESCADOR" "¡ESOS MONSTRUOS QUE PATRULLAN EL OCÉANO ME HAN ROTO LAS REDES!") - (226) - (229 "PESCADOR" "¡¡Y SE ESTÁN COMIENDO MIS CAPTURAS!!") - (290) - (293 "PESCADOR" "INTENTE LO QUE INTENTE...NO HAY MANERA DE PESCAR UN SOLO PEZ EN ESTE RÍO.") - (419) - (425 "DAXTER" "¡UUUFFF! ¿NO SERÁ...TU ALIENTO?") - (515) - (521 "PESCADOR" "¿CREÉIS QUE PODÉIS HACERLO MEJOR? ¡PUES INTENTAD COGER PECES CON UNA REDECITA!") - (665) - (671 "PESCADOR" "OS DARÉ UNA BATERÍA SI CONSEGUÍS PESCAR 200 KILOS DE PESCADO.") - (808) - (814 "PESCADOR" "Y LUEGO OS DEJARÉ A TÍ Y AL BOQUERÓN ESTE, USAR MI LANCHA PARA LLEGAR A ISLA DE MISTY.") - (955) - (961 "PESCADOR" "¿ACEPTÁIS EL RETO?") - ) - -("fisher-reject" (2 "PESCADOR" "BIEN, SI ALGUNA VEZ QUERÉIS CONSEGUIR LA BATERÍA...YA SABÉIS DÓNDE ESTOY.")) -("fisher-reminder-1" (6 "PESCADOR" "QUERÉIS ENFRENTAROS AL RÍO, ¿VERDAD?")) - -("fisher-resolution" - (0 "PESCADOR" "¡LO CONSEGUISTEIS! ¡HABÉIS CONSEGUIDO 200 KILOS DE PESCADO!") - (115) - (120 "PESCADOR" "¡NO ESTÁ MAL PARA UN PAR DE HARAGANES!") - (185) - (199 "PESCADOR" "AQUÍ ESTÁ LA BATERÍA QUE OS PROMETÍ.") - (280 "PESCADOR" "ADEMÁS PODÉIS USAR LA LANCHA AMARRADA EN EL PUERTO DE LA ALDEA") - (351 "PESCADOR" "CUANDO QUERÁIS.") - ) - -("FIS-AM01" :hint #x0 (0 "PESCADOR" "GRRRRRR...MALDITOS PECES...¡NUNCA ATRAPARÉ A NINGUNO!")) -("FIS-AM02" :hint #x0 (0 "PESCADOR" "ESOS MONSTRUOS QUE ATACARON...¡ME VAN A ARRUINAR!")) - -("FIS-AM03" :hint #x0 - (0 "PESCADOR" "¡¡MALDITOS SINVERGÜENZAS!!") - (135 "PESCADOR" "VENGA, PECES DEL DEMONIO, A MI CESTA...") - (419) - (425 "PESCADOR" "JE JE JE JE JE...") - ) - -("FIS-AM04" :hint #x0 (0 "PESCADOR" "AAAH...ME ENCANTA EL OLOR DEL PESCADO POR LA MAÑANA.")) -("FIS-AM05" :hint #x0 (0 "PESCADOR" "MMMMM...ME APETECEN UNOS RICOS PESCADITOS FRITOS...")) -("FIS-AM06" :hint #x0 (0 "PESCADOR" "AAAAH...ME ACUERDO DEL GRANDOTE QUE SE ME ESCAPÓ...")) -("FIS-LO01" :hint #x0 (0 "PESCADOR" "¡GRRRRRR!")) -("FIS-LO03" :hint #x0 (0 "PESCADOR" "¡¡JAJAJAJAJAJAJAJAJAJAJA!!")) -("FIS-LO04" :hint #x0 (0 "PESCADOR" "MALDITOS PECES...¡NUNCA SE DEJAN ATRAPAR!")) -("FIS-LO05" :hint #x0 (0 "PESCADOR" "¡JAJAJAJAJAJAJAJAJA! ¡JAJAJAAAA!")) -("FIS-TA01" :hint #x0 (0 "PESCADOR" "¡A LA IZQUIERDA!")) -("FIS-TA02" :hint #x0 (0 "PESCADOR" "¡A LA DERECHA!")) -("FIS-TA03" :hint #x0 (0 "PESCADOR" "¡AQUÍ LLEGA UNO GRANDOTE!")) -("FIS-TA04" :hint #x0 (0 "PESCADOR" "¡SE OS HA ESCAPADO UNO ENORME!")) -("FIS-TA05" :hint #x0 (0 "PESCADOR" "¡QUE NO SE OS ESCAPE OTRO!")) -("FIS-TA06" :hint #x0 (0 "PESCADOR" "¡FIRME, CHAVAL!")) -("FIS-TA07" :hint #x0 (0 "PESCADOR" "¡TUS VELAS SE DOBLAN POR EL VIENTO, CHAVAL!")) -("FIS-TA08" :hint #x0 (0 "PESCADOR" "¡GRRRR...SE ESCAPÓ!")) -("FIS-TA09" :hint #x0 (0 "PESCADOR" "NO OS VENDRÍA MAL UNA RED MÁS GRANDE...")) -("FIS-TA10" :hint #x0 (0 "PESCADOR" "¡SE ESCAPÓ DE NUEVO!")) -("FIS-TA11" :hint #x0 (0 "PESCADOR" "¡MANTENTE AHÍ! CASI LO HAS CONSEGUIDO...")) -("FIS-TA1A" :hint #x0 (0 "PESCADOR" "¡IZQUIERDA!")) -("FIS-TA2A" :hint #x0 (0 "PESCADOR" "¡DERECHA!")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "MMMM, SI EL ECO AZUL PUEDE CONSTRUIR UN PUENTE, ¡SEGURO QUE TAMBIÉN ABRE PUERTAS!") - (275) - (281 "DAXTER" "¡VOLVAMOS PARA QUE PUEDAS REPOSTAR!") - ) - -("sksp0040" :hint #x23d (0 "DAXTER" "¡SUBÁMONOS A ESA MÁQUINA PARA ROMPER EL ESPEJO QUE DESVÍA EL RAYO DE PRECURSOR!")) -("sksp0041" :hint #x23e (0 "DAXTER" "¡TENEMOS QUE SUBIR A LA CIMA DE ESA TORRE!")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "DEBERÍAMOS PEDIRLE PRESTADA SU LANCHA AL PESCADOR DEL RÍO DE LA SELVA") - (136 "DAXTER" "PARA IR A TODA PRISA A LA ISLA DE MISTY!") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "¡EH!, HAY SEÑALES CON RELÁMPAGOS EN ESTOS POSTES.") - (202 "DAXTER" "Y DE ESE RESPIRADERO SALE UN RELAMPAGUEO.") - (391) - (400 "DAXTER" "¿PIENSAS LO MISMO QUE YO?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "VALE, TENEMOS UN LANZADOR DE PRECURSOR AQUÍ.") - (117 "DAXTER" "PERO COMO NO LE HAS APLICADO ENERGÍA AZUL, ¡NO NOS SERVIRÁ DE NADA!") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "¡DEBERÍAMOS DECIRLE AL CHARLATÁN DEL ALCALDE QUE NOS DEBE UNA") - (223 "DAXTER" "POR CONECTARLE EL RAYO ENERGÉTICO DE LA ALDEA!") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "ESA ESPECIE DE TORRES QUE HAY POR TODA LA SELVA DEBEN DE...REDIRIGIR EL RAYO ECO.") - (214) - (230 "DAXTER" "¡VAMOS A TRASTEAR CON ELLAS!") - ) - -("sksp0b42" :hint #x278 - (0 "DAXTER" "QUE NO SE TE ESCAPEN MÁS PECES AMARILLOS. ¡CADA UNO DE ELLOS PESA 5 KILOS!") - (110 "DAXTER" "Y ESO ES UN MONTÓN, JAK.") - ) - -("asstvb02" :hint #x289 - (0 "KEIRA" "¡GUAU!, ¿HABÉIS VISTO ESO? ¡LOS RESPIRADEROS DE ECO AZUL") - (150 "KEIRA" "DEBEN DE HABERSE ACTIVADO EN TODO EL MUNDO!") - (305) - (315 "KEIRA" "SABÍA QUE HABÍA ALGUNA MANERA DE HACERLO.") - (435) - (442 "KEIRA" "DEBE DE HABER OTROS SITIOS EN LOS QUE ACTIVAR LOS DEMÁS RESPIRADEROS DE ECO.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "¡ALINEA EL RAYO APUNTÁNDOLE A LA TORRE SIGUIENTE!")) -("sksp0050" :hint #x29d (0 "DAXTER" "¡ROMPE EL ESPEJO, JAK!")) -("sksp0051" :hint #x29e (0 "DAXTER" "¡ATRAPA A LOS BICHOS, JAK! ¡ATRÁPALOS!")) -("sksp0052" :hint #x29f (0 "DAXTER" "¡VAYAMOS A LA SIGUIENTE TORRE A RECONECTAR EL RAYO!")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "¡EH! PARA ENCONTRAR LA SIGUIENTE TORRE PODEMOS SEGUIR EL RAYO.")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "TENEMOS QUE RECARGARTE DE COSA AZUL PARA QUE PUEDAS ABRIR ESTO.")) - -;; ----------------- -;; misty -;; ----------------- - -("sksp0064" :hint #x245 (0 "DAXTER" "¡VIGILA TU ESPALDA! QUE NO SE NOS OLVIDE LO QUE PASÓ AQUÍ LA ÚLTIMA VEZ.")) -("sksp0067" :hint #x249 (0 "DAXTER" "¡NO TE CAIGAS EN LA NEBLINA QUE HAY DEBAJO! NO CREO QUE PODAMOS SALIR DE ELLA.")) -("sksp0059" :hint #x26e (0 "DAXTER" "¡ESTE SITIO ME DA ESCALOFRÍOS! ¡NO TE ACERQUES A ESO QUE REZUMA! ¿VALE?")) - -("sksp0060" :hint #x26f - (0 "DAXTER" "¡UUUUY! ¡ESTE SITIO ME DA ESCALOFRÍOS! Y CRÉEME, ES TODA UNA EXPERIENCIA") - (337 "DAXTER" "CUANDO ESTÁS RECUBIERTO DE PELO.") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "¡EEH, VEO A LA MUSA DEL ESCULTOR!")) -("sksp0062" :hint #x27e (0 "DAXTER" "¡VAMOS A ACABAR CON ESOS LURKERS GLOBO! ¡NO DEJEMOS NI UNO!")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "HE DICHO QUE ATAQUEMOS A LOS LURKERS, JAK. ¡NO LAS MINAS!") - (332) - (344 "DAXTER" "REGLA NÚMERO UNO: ¡EVITA SIEMPRE LAS MINAS!") - ) - -("sagevb02" :hint #x28a - (6 "SAMOS" "TENGO QUE ADMITIRLO, ¡ESTOY IMPRESIONADO! ¡NO LA HABÉIS PICIADO!") - (385) - (400 "SAMOS" "AHORA QUE LOS LURKERS NO PUEDEN ABRIR EL SILO,") - (550 "SAMOS" "TAMPOCO PUEDEN INUNDAR EL MUNDO DE ECO OSCURO") - (710 "SAMOS" "Y CAUSAR UN CAOS INCALCULABLE.") - (863) - (880 "SAMOS" "¡BORRA ESA RIDÍCULA SONRISA DE TU CARA, DAXTER! ¡LOS DOS TENÉIS MUCHO QUE HACER!") - (1191 "SAMOS" "¡MANOS A LA OBRA!") - ) - -("asstvb03" :hint #x28b - (0 "KEIRA" "¡BIEN! ¡HABÉIS DETENIDO A LOS LURKERS MINADORES!") - (190 "KEIRA" "DURANTE SEMANAS HAN SIDO UNA PESADILLA EN LAS AGUAS QUE RODEAN A NUESTRA ALDEA.") - (391 "KEIRA" "TRAED EL ZOOMER DE VUELTA AL TRANS-PAD Y OS TELETRANSPORTARÉ DE VUELTA.") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "ES UNA EMBOSCADA, JAK ¡ES UNA EMBOSCADA!")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "SALTA, Y LUEGO CAE EN PICADO SOBRE EL BALANCÍN.")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "¡CONSIGUE EL ECO ROJO!")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "EL ECO ROJO FORTALECE TUS ATAQUES.")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "NECESITAMOS ECO AZUL PARA RECARGAR ESTO.")) -("sksp0435" :hint #x2aa (0 "DAXTER" "DERRIBA ESOS HUESOS.")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (25 "KEIRA" "¡ESTUPENDO! ¡TENÉIS LAS 20 BATERÍAS NECESARIAS PARA ACTIVAR MI ESCUDO TÉRMICO!") - (140) - (143 "KEIRA" "AHORA, ¡CUIDADO!, EL ESCUDO SOLO PROTEGERA EL ZOOMER HASTA LOS 500 GRADOS,") - (295 "KEIRA" "ASÍ QUE MANTENEDLO FRESQUITO.") - (343) - (346 :offscreen "KEIRA" "SI VOLÁIS SOBRE LAVA, SEGURO QUE SE CALIENTA RÁPIDAMENTE.") - (458) - (462 "KEIRA" "SI LLEGÁIS A 500 GRADOS, SE ACABÓ.") - (546) - (552 "DAXTER" "¡¿SE ACABÓ?! ¡¿IGUAL QUE ACABA UN CHUBASCO?!") - (636) - (639 "KEIRA" "EL DESFILADERO DEL FUEGO SE CALIENTA MUCHO, ASÍ QUE BUSCAD LA MANERA DE SALTAR") - (767 "KEIRA" " PARA EVITAR EL SUELO.") - (792) - (795 :offscreen "KEIRA" "TAMBIÉN HE SOLTADO MUCHOS GLOBOS REFRIGERANTES PARA QUE PODÁIS BAJAR") - (895 :offscreen "KEIRA" "RÁPIDAMENTE LA TEMPERATURA DEL ESCUDO.") - (956) - (962 "KEIRA" "¡AAH! CUANDO LO ATRAVESÉIS, ¡NO OS OLVIDÉIS ACTIVAR") - (1063 "KEIRA" "LA PUERTA TELETRANSPORTADORA EN EL LABORATORIO DEL SABIO AZUL.") - (1140) - (1146 "KEIRA" "¡ASÍ PODREMOS TELETRANSPORTARNOS Y REUNIRNOS CON VOSOTROS.") - (1222) - (1228 "KEIRA" "¡BUENA SUERTE!") - ) - -("sksp0076" :hint #x501 (0 "DAXTER" "¡JAK, SALTA PARA MANTENERNOS LEJOS DE LA LAVA!")) -("sksp0077" :hint #x502 (0 "DAXTER" "LOS GLOBOS SON BUENOS, ¡LA LAVA ARDIENTE ES MALA!")) -("sksp0078" :hint #x503 (0 "DAXTER" "SÚBETE AL CHISME PRECURSOR PARA QUE SIGAMOS FRESQUITOS.")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "¡AAAAYYY, ME VOY A MORIIIIIR! ¡SOY UN BICHEJO FIAMBREE!") - (257) - (270 "DAXTER" "¡TIENES QUE LLEGAR AL OTRO LADO ANTES DE QUE ESTE CHISME SE CALIENTE DEMASIADO!") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "¡TIRA BRINCANDO, PARA DAR CURVAS MÁS CERRADAS!")) -("sksp0081" :hint #x506 (0 "DAXTER" "¡AAAAAAYY! ¡DEBERÍA CONDUCIR YO!")) -("sksp0082" :hint #x507 (0 "DAXTER" "¿TÁS INTENTANDO ESQUIVAR LAS CAJAS DE ECO OSCURO, VERDAD?")) -("sksp0083" :hint #x508 (0 "DAXTER" "¡OOH, A VER SI PODEMOS PONER DISTANCIA ENTRE ESOS LURKERS Y NOSOTROS!")) -("sksp0084" :hint #x509 (0 "DAXTER" "¡MUY CERCA! ¡MUUUUUUUY CERCA!")) -("sksp0085" :hint #x50a (0 "DAXTER" "¡GUAU! ¡ESTE CHISME SE ESTÁ CALENTANDO DEMASIADO!")) -("sksp0086" :hint #x50b (0 "DAXTER" "¡UNOS SEGUNDOS MÁS Y ESTAREMOS MÁS FRITOS QUE UN HUEVO DE FLUT FLUT!")) -("sksp0087" :hint #x50d (0 "DAXTER" "¡CHOCA CONTRA LOS GLOBOS, PARA REFRIGERARNOS!")) -("sksp0088" :hint #x50e (0 "DAXTER" "¡AHÍ VIENE OTRO GLOBO!")) -("sksp0089" :hint #x50f (0 "DAXTER" "¡OJALÁ NO HUBIESE SONADO EL DESPERTADOR ESTA MAÑANA!")) -("sksp0090" :hint #x510 (0 "DAXTER" "¡SE TE HA ESCAPADO UN GLOBO! ¡LOS NECESITAMOS PARA NO ACABAR ESTOFADOS!")) -("sksp0091" :hint #x511 (0 "DAXTER" "¡ESTE BÓLIDO SE ESTÁ CALENTANDO DEMASIADO!")) -("sksp0092" :hint #x512 (0 "DAXTER" "¿NO HUELES A QUEMADO?")) -("sksp0093" :hint #x513 (0 "DAXTER" "¡CREO QUE TENGO LA COLA ARDIENDOO!")) -("sksp0094" :hint #x514 (0 "DAXTER" "¡ESTO VA A ESTALLAR!")) -("sksp0095" :hint #x515 (0 "DAXTER" "¡YUUUJUUUUU! ¡LO CONSEGUIMOS!")) -("sksp0096" :hint #x516 (0 "DAXTER" "¡AQUÍ TAMBIÉN HAY MOSCAS EXPLORADORAS!")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (60 "SAMOS" "¡WOOOOOW!") - (120) - (165 "SAMOS" "CREO QUE NUNCA ME VOY A ACOSTUMBRAR A LA SENSACIÓN") - (210 "SAMOS" "DE HORMIGUEO QUE PRODUCEN ESTOS CHISMES.") - (280) - (300 "SAMOS" "¡EHH!") - (330 :offscreen "SAMOS" "PARECE QUE EL SABIO AZUL HA HECHO UNA FIESTA.") - (410 "KEIRA" "¡DIOS MÍO! ¡LA ALDEA DE PIEDRA ESTÁ QUE ARDE!") - (500 "SAMOS" "¡MEENUUDA FIESTA!") - (565 "KEIRA" "¡NO, NO! ¡ME REFIERO A QUE LA ALDEA ESTÁ SIENDO BOMBARDEADA CON PEÑASCOS LLAMEANTES!") - (720) - (810 "KEIRA" "¡OH! Y PARECE QUE EL SABIO AZUL TRABAJABA EN UNA MÁQUINA LEVITADORA PARA MOVERLOS.") - (960 :offscreen "KEIRA" "SUPONIENDO QUE FUNCIONE, NECESITAREMOS BATERÍAS PARA ACTIVARLA.") - (1070 "KEIRA" "CREO QUE VOSOTROS DOS VAIS A TENER QUE IR A BUSCAR MÁS.") - (1145 "SAMOS" "ECHAREMOS UN VISTAZO A SUS NOTAS.") - (1220 :offscreen "SAMOS" "JAK, VE A VER CÓMO ESTÁN LOS ALDEANOS Y VUELVE PARA INFORMARME.") - (1370 :offscreen "SAMOS" "¡Y LLÉVATE A LA RATA CONTIGO!") - ) - -("assistant-village2-introduction-flutflut" - (22 "KEIRA" "¿DE VUELTA YA, CHAVALES?") - (66) - (75 "DAXTER" "\"CHAAVAL\"?") - (100) - (110 "DAXTER" "¡EH, NENA, SOY UN EJEMPLAR ADULTO DE...!") - (166) - (188 "DAXTER" "EEMMM..") - (210) - (222 "DAXTER" "UN...SER PELUDO...") - (300 "KEIRA" "AH, ¿SABÉIS QUÉ? CON EL PERMISO DE NUESTRA ORNITÓLOGA,") - (414 "KEIRA" "HE PUESTO AL BEBÉ FLUT-FLUT UNA SILLA DE MONTAR.") - (508) - (528 "KEIRA" "PARECE SER QUE HAY UN TRANS-PAD PRECURSOR EN EL PANTANO CENAGOSO.") - (644) - (652 "KEIRA" "SI LO ENCONTRÁIS, OS ENVIARÉ EL FLUT-FLUT CON SU EQUIPO DE EQUITACIÓN.") - (778 "KEIRA" "SU SALTO LARGO OS VENDRÁ BIEN PARA CRUZAR LA BREA.") - (870) - ) - -("assistant-village2-introduction-robbers" - (30 "KEIRA" "¡EH, VOSOTROS DOS!") - (66 "KEIRA" "¡SÉ DÓNDE PODÉIS ENCONTRAR OTRA BATERÍA!") - (132) - (144 "KEIRA" "SEGÚN SUS NOTAS,") - (182 "KEIRA" "HACE UN PAR DE DÍAS, UNOS LURKERS VOLADORES LE ROBARON UNA AL SABIO AZUL,") - (292 "KEIRA" "LLEVÁNDOSELA A LA CUENCA DE PRECURSOR.") - (370 "KEIRA" "APUESTO A QUE PODÉIS ATRAPAR A ESOS LURKERS CON EL ZOOMER") - (440 "KEIRA" "HASTA DAR CON EL QUE TIENE LA BATERÍA.") - (504 "KEIRA" "ENCONTRARÉIS EL ZOOMER EN EL TRANS-PAD QUE HAY JUNTO A LA ENTRADA") - (550 "KEIRA" "DE LA CUENCA DE PRECURSOR.") - (608) - ) - -("assistant-village2-introduction-room" - (36 "KEIRA" "PARECE SER QUE LA ESTRUCTURA COSTERA DE PRECURSOR,") - (110 "KEIRA" "CONDUCE A UNA CIUDAD PERDIDA SUBMARINA.") - (191) - (210 "KEIRA" "EL SABIO AZUL ESTUVO INTENTANDO AVERIGUAR CÓMO SE PUEDE REFLOTAR UNA DE LAS CÁMARAS,") - (338 "KEIRA" "PERO...SIN ÉXITO.") - (395 "KEIRA" "¡DEBERÍAIS ECHAR UN VISTAZO!") - (424) - (436 "DAXTER" "MMMM...¿NO ESTÁN ESAS AGUAS") - (495 "DAXTER" "INFESTADAS DE TIBURONES LURKER?") - (555 "KEIRA" "¿POR QUÉ? ¿TIENES MIEDO?") - (635 "DAXTER" "¿YOOO? ¡DESDE LUEGO QUE NO!") - (702 "DAXTER" "¡SOLO ME PREOCUPABA POR JAK!") - (752 "DAXTER" "YA SABES...") - (782) - (800 "DAXTER" "LO GALLINA QUE PUEDE LLEGAR A SER...") - (845) - (870 "KEIRA" "BIEN, SI LLEGÁIS NADANDO HASTA EL ARRECIFE DE CORALES, DUDO QUE LOS TIBURONES OS MOLESTEN.") - (1000 "KEIRA" "ODIAN LAS AGUAS POCO PROFUNDAS.") - ) - -("assistant-village2-reminder-1-flutflut" - (34 "KEIRA" "ESTOY SEGURA DE QUE EL FLUT-FLUT OS VENDRÁ BIEN EN EL PANTANO.") - (118 "KEIRA" "BUSCAD EL TRANS-PAD Y OS LO TELETRANSPORTARÉ.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (26 "KEIRA" "OS TELETRANSPORTARÉ EL ZOOMER CERCA DE LA CUENCA DE PRECURSOR,") - (114 "KEIRA" "PARA QUE PODÁIS PERSEGUIR A LOS LURKERS VOLADORES DE LOS QUE HABLÁBAMOS.") - (230) - ) - -("assistant-village2-reminder-1-room" - (45 "KEIRA" "¿HABÉIS NADADO HASTA LA CIUDAD PERDIDA DE PRECURSOR?") - (122 "KEIRA" "DEBERÍAIS INTENTAR REFLOTAR LA SALA QUE BUSCABA EL SABIO AZUL.") - (230) - ) - -("assistant-village2-resolution" - (40 "KEIRA" "¡¡BIEN!!") - (60 "KEIRA" "¡YA TENÉIS LAS BATERÍAS DE LA MÁQUINA!") - (124 "KEIRA" "TIENE QUE HABER BASTANTE ENERGÍA COMO PARA LEVANTAR EL PEÑASCO.") - (200) - (288 "KEIRA" "¡ALLÁ VAMOS!") - (326) - (340 "KEIRA" "AHORA, TENED CUIDADO AL ENFRENTAROS A ESE MONSTRUO LURKER DE ARRIBA.") - (430) - (442 "DAXTER" "¡ESPERAD!") - (470 "DAXTER" "EEMMM...") - (500 "DAXTER" "¡ME QUEDARÉ AQUÍ PARA...PROTEGER A KEIRA!") - (563) - (574 "DAXTER" "JAK, CREO QUE ESTÁS LISTO PARA ENFRENTARTE A ESE MONSTRUO SIN MÍ.") - (662) - (672 "KEIRA" "OH...ES MUY VALIENTE POR TU PARTE...") - (728) - ) - -("gambler-introduction-1" - (30 "JUGADOR" "¡OH, NO! OTRO \"HÉROE\" NO.") - (100 "JUGADOR" "PERDÍ MIS PANTALONES APOSTANDO PORQUE EL SUPUESTO HÉROE VENCERÍA") - (190 "JUGADOR" "AL MONSTRUO DE AHÍ ARRIBA.") - (235) - (246 "JUGADOR" "CREEDME, HAY QUE APOSTAR POR EL MONSTRUO.") - (320) - (350 "JUGADOR" "ESTA APUESTA ME HA DEJADO HECHO POLVO.") - (420 "JUGADOR" "TE PROPONGO...UNA COSA.") - (476 "JUGADOR" "TRÁEME 90 ESFERAS DE LOS PRECURSORES PARA QUE PUEDA PONERME") - (510 "JUGADOR" "EN MARCHA Y SALIR DE ESTE BARRIL") - (570 "JUGADOR" "Y TE DARÉ UNA BATERÍA A CAMBIO.") - (654 "JUGADOR" "Y SI TE ATREVES, TENGO OTRA APUESTA LISTA.") - (740 :offscreen "JUGADOR" "¡MI GRAN RETORNO!") - (800 :offscreen "JUGADOR" "SUPERA EL RECORD DE LA CARRERA DEL DESFILADERO DEL MUERTO,") - (870 :offscreen "JUGADOR" "EN LA CUENCA DE PRECURSOR. Y CONSEGUIRÉ UNA BUENA CANTIDAD.") - (950 "JUGADOR" "A CAMBIO, TE DARÉ OTRA BATERÍA.") - ) - -("gambler-reminder-money" - (10 "JUGADOR" "¡EH, NO TE OLVIDES DE LAS ESFERAS!") - (81 "JUGADOR" "¡CON 90, TE DARÉ UNA! UNA BATERÍA, SE ENTIENDE.") - ) - -("gambler-reminder-race" - (0 "JUGADOR" "Y BIEN, ¿A QUÉ ESPERAS, EH?") - (80 "JUGADOR" "¡AQUÍ DENTRO EMPIEZA A PICARME TODO!") - (120 "JUGADOR" "SUPERA EL TIEMPO DEL DESFILADERO DEL MUERTO") - (188 "JUGADOR" "Y LOS DOS SALDREMOS GANANDO.") - ) - -("gambler-resolution-money" - (0 "JUGADOR" "JEJEJEJEEE, ¡SÍ, SEÑOOR!") - (50 "JUGADOR" "¡CON ESTAS ESFERAS PODRÉ SALIR DE ESTE MALDITO BARRIL!") - (174 "JUGADOR" "¡TOMA LA BATERÍA PROMETIDA!") - ) - -("gambler-resolution-race" - (0 "JUGADOR" "VAYA, ¡BIEN HECHO, CHICO! ¡SABÍA QUE ESE RECORD CAERÍA!") - (140 "JUGADOR" "TÚ Y YO LLEGAREMOS LEJOS. TEN LA BATERÍA, QUE YO IRÉ A RECOGER MI DINERO.") - ) - -("geologist-introduction" - (30 "GEÓLOGA" "VOSOTROS DOS PARECÉIS DOS TIPOS CAPACES.") - (98 "GEÓLOGA" "TENGO EN MARCHA UN PROYECTO DE INVESTIGACIÓN,") - (152 "GEÓLOGA" "Y A LO MEJOR ME PODÉIS AYUDAR.") - (198) - (208 "DAXTER" "EHH, QUE TENEMOS UNA MISIÓN QUE CUMPLIR.") - (276 "DAXTER" "SOMOS NOSOTROS QUIENES TE PEDIMOS AYUDA.") - (326 "GEÓLOGA" "PUES A LO MEJOR NOS PODEMOS AYUDAR.") - (386) - (402 "GEÓLOGA" "DURANTE AÑOS, HE ESTADO ESTUDIANDO LOS HÁBITOS DE EXCAVACIÓN") - (476 "GEÓLOGA" "DE LAS TOPO-ARDILLAS EN LA CUENCA DE PRECURSOR.") - (554) - (569 :offscreen "GEÓLOGA" "¡PERO AHORA ESOS MALDITOS LURKERS HAN HECHO") - (610 :offscreen "GEÓLOGA" "QUE ELLAS SALGAN ASUSTADAS A LA SUPERFICIE!") - (684 :offscreen "GEÓLOGA" "Y COMO SON CIEGAS, NO PUEDEN ENCONTRAR EL CAMINO DE VUELTA.") - (808) - (822 "GEÓLOGA" "SI LAS REUNÍS Y LAS GUIÁIS DE VUELTA A SUS TÚNELES,") - (890 "GEÓLOGA" "LES SALVARÍAIS LA VIDA.") - (942) - (958 "GEÓLOGA" "OS DOY UNA BATERÍA SI LO CONSEGUÍS.") - (1028) - (1040 "DAXTER" "SI...NOS IMPORTAN LAS TOPO-ARDILLAS...") - (1144) - (1164 "DAXTER" "¡...PERO A CAMBIO DE 2 BATERÍAS!") - (1232 "GEÓLOGA" "BUEN INTENTO. PERO OS DARÍA OTRA BATERÍA SI ME CONSEGUÍS") - (1348 "GEÓLOGA" "90 ESFERAS DE LOS PRECURSORES PARA COMPRAR EQUIPO DE INVESTIGACIÓN.") - (1460 "GEÓLOGA" "¿QUÉ OS PARECE?") - (1506) - ) - -("geologist-reminder-moles" - (29 "GEÓLOGA" "¿HABÉIS DEVUELTO A ESAS TOPO-ARDILLAS A SUS CUEVAS?") - (108) - (125 "GEÓLOGA" "¡DAROS PRISA! ¡LA LUZ DIRECTA DEL SOL NO ES BUENA PARA ELLAS!") - ) - -("geologist-reminder-money" (30 "GEÓLOGA" "¡NECESITO ESAS ESFERAS PARA CONTINUAR MI INVESTIGACIÓN!")) - -("geologist-resolution-moles" - (34 "GEÓLOGA" "¡GRACIAS POR SALVAR A LAS TOPO-ARDILLAS! ES UN DETALLE POR VUESTRA PARTE.") - (136) - (156 "GEÓLOGA" "AQUÍ TENÉIS UNA BATERÍA. ESPERO QUE OS SIRVA.") - (224) - (246 "GEÓLOGA" "AHORA, ¡VOLVERÉ A MI INVESTIGACIÓN!") - ) - -("geologist-resolution-money" - (30 "GEÓLOGA" "¡VAYA, TENÉIS LAS ESFERAS!") - (80) - (80 "GEÓLOGA" "AQUÍ ESTÁ LA BATERÍA QUE ACORDAMOS.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (0 "SAMOS" "BIEN, LA SITUACIÓN ESTÁ MÁS NEGRA QUE EL SOBACO DE UN GRILLO.") - (144) - (158 "SAMOS" "ANTES DE SU...DESAPARICIÓN, EL SABIO AZUL REGISTRÓ MUCHOS PROBLEMAS,") - (220 "SAMOS" "EN TODAS LAS ZONAS CIRCUNDANTES.") - (360 "SAMOS" "ME PARECE PARTICULARMENTE INTERESANTE LA INFECCIÓN CON ECO OSCURO") - (490 "SAMOS" "DE ALGUNAS PLANTAS INOCENTES DE LA CUENCA DE PRECURSOR.") - (600 :offscreen "SAMOS" "KEIRA TELETRANSPORTARÁ VUESTRO ZOOMER AL TRANS-PAD MÁS CERCANO.") - (720 "SAMOS" "USADLO PARA LLEGAR A UN RESPIRADERO DE ECO VERDE, Y LUEGO TRANSPORTAD EL ECO VERDE...") - (899 "SAMOS" "A LAS PLANTAS DAÑADAS.") - (954 "SAMOS" "¡CON ESO LAS CURARÉIS!") - (1020 "SAMOS" "SI OS DEJÁIS ALGUNA SIN CURAR, ESTA INFECTARÁ LENTAMENTE A LAS SANAS.") - (1171) - (1214 :offscreen "SAMOS" "Y, DAXTER...") - (1260 "SAMOS" "¡EMPIEZA A LIMPIAR ESTE SITIO!") - (1310 "SAMOS" "¡NO TE DEJES LAS ESQUINAS!") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAMOS" "ESPERO QUE OS HAYÁIS PREPARADO BOCADILLOS, PORQUE ESTO EMPIEZA AHORA.") - (130) - (142 "SAMOS" "DE ACUERDO CON LAS NOTAS DEL SABIO AZUL,") - (208 "SAMOS" "EL PANTANO AL OTRO LADO DE LA BAHÍA, ESTÁ INFESTADO DE LURKERS.") - (300) - (310 :offscreen "SAMOS" "PARECE SER QUE PLANEAN USAR UN DIRIGIBLE") - (420 :offscreen "SAMOS" "PARA SACAR UN ARTEFACTO PRECURSOR DEL CIENO.") - (530) - (552 :offscreen "SAMOS" "VAIS A TENER QUE IR ALLÍ A ROMPER LAS AMARRAS.") - (660) - (688 "SAMOS" "¿QUIÉN SABE LO QUE QUERRÁN HACER CON EL ARTEFACTO?") - (764 "SAMOS" "PERO AL IGUAL QUE EL ALIENTO DEL AMIGO NARANJA, ESTE NO PUEDE SER NADA BUENO.") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (32 "SAMOS" "¡MIS OJOS ME DEBEN DE ESTAR ENGAÑANDO!") - (86) - (100 "SAMOS" "PORQUE SÉ QUE VOSOTROS DOS ESTÁIS EN LA CUENCA DE PRECURSOR,") - (215 "SAMOS" "SALVANDO A LAS PLANTAS INFECTADAS CON ECO OSCURO.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (0 "SAMOS" "¡¿POR QUÉ HABÉIS VUELTO YA?!") - (70) - (88 "SAMOS" "DESDE EL BALCÓN PUEDO VER") - (132 :offscreen "SAMOS" "QUE EL ZEPELÍN LURKER SIGUE FLOTANDO SOBRE EL PANTANO.") - (260 "SAMOS" "ES OBVIO QUE NO HABÉIS CUMPLIDO LA MISIÓN.") - (340) - (364 "SAMOS" "¡EN MARCHA!") - (400) - ) - -("warrior-introduction" - (30 "GUERRERO" "OHH...¡CÓMO ME DUELE LA CABEZA!") - (128) - (140 "DAXTER" "DUDO QUE ESE SEA UN ÓRGANO VITAL EN TU CASO.") - (218 "DAXTER" "MENUDO TIPO DURO...") - (264 "GUERRERO" "PUES SÍ. EN SU DÍA YO ERA UN TIPO DURO.") - (343 "GUERRERO" "QUIZÁ EL MÁS DURO.") - (405 "GUERRERO" "DURANTE CASI UN AÑO DEFENDÍ SOLITO ESTA ALDEA DE AQUELLAS HORRIBLES CRIATURAS.") - (593 :offscreen "GUERRERO" "DESPUÉS LLEGÓ AQUEL MONSTRUO ESPANTOSO Y EMPEZÓ A TIRAR PEÑASCOS.") - (762 :offscreen "GUERRERO" "ASÍ QUE...LENO DE VALOR, Y ENFUNDADO EN MI BRILLANTE ARMADURA...") - (923 "GUERRERO" "¡SUBÍ LA COLINA PARA ENFRENTARME A ÉL!") - (1030) - (1050 "GUERRERO" "PERO ME MACHACÓ COMO QUIEN ABLANDA UN FILETE DE YAKOW.") - (1185 "DAXTER" "¿INTENTASTE ATACARLE CON TUS MELODRAMAS?") - (1260 "DAXTER" "¡PORQUE A MÍ ME ESTÁS MATANDO!") - (1310 :offscreen "GUERRERO" "TRAS DERROTARME DE AQUELLA MANERA,") - (1410 :offscreen "GUERRERO" "SELLÓ EL CORREDOR A SU GUARIDA CON UNA ROCA DE 30 TONELADAS,") - (1520 :offscreen "GUERRERO" "EVITANDO ASÍ QUE ALGUIEN LE DESAFIASE DE NUEVO.") - (1650) - (1674 "GUERRERO" "ASÍ QUE, NUESTRO SABIO, UN MAESTRO DEL ECO AZUL,") - (1800 "GUERRERO" "Y UN GENIO MECÁNICO, DISEÑARON UNA MÁQUINA") - (1900 "GUERRERO" "CAPAZ DE QUITAR LA ROCA DE EN MEDIO.") - (2000) - (2040 "GUERRERO" "PERO, ¡AY DE MÍ! DESAPARECIÓ ANTES DE QUE PUDIÉSEMOS ENCENDERLA.") - (2200) - (2230 "GUERRERO" "Y SE LLEVÓ TODAS SUS BATERÍAS CON ÉL.") - (2330) - (2366 "GUERRERO" "AL MENOS, HE PODIDO QUITAR LOS SUFICIENTES FLOTADORES A NUESTRO PUENTE") - (2471 "GUERRERO" "PARA EVITAR QUE EL MONSTRUO BAJE AQUÍ A HACERME DAÑO.") - (2590 "DAXTER" "SÍ...BUU BUU, BUEN TRABAJO, TIPO DURO, PERO...") - (2670 "DAXTER" "VAMOS A NECESITAR QUE...EJEM...LOS QUITES Y...TODO ESO.") - (2772 "GUERRERO" "¡SÍ, CLARO! ¡Y FIRMAR MI SENTENCIA DE MUERTE!") - (2880 "GUERRERO" "(SUSPIRA)") - (2960 "GUERRERO" "MUY BIEN...DE ACUERDO.") - (3045 "GUERRERO" "TRAEDME 90 ESFERAS DE LOS PRECURSORES Y SOLTARÉ LOS FLOTADORES.") - (3182) - (3205 "GUERRERO" "¡PERO NO ME ENFRENTARÉ A ESE MONSTRUO DE NUEVO!") - ) - -("warrior-reminder-1" - (36 "GUERRERO" "¡PODÉIS TARDAR TODO LO QUE QUERÁIS EN TRAERME LAS ESFERAS DE LOS PRECURSORES!") - (152 "GUERRERO" "NO ES QUE TENGA MUCHA PRISA POR ARREGLAR EL PUENTE.") - ) - -("warrior-resolution" - (76 "GUERRERO" "MARAVILLOSO...") - (108) - (120 "GUERRERO" "ME HABÉIS TRAIDO LAS ESFERAS DE LOS PRECURSORES...") - (228) - (246 "GUERRERO" "MUY BIEN.") - (266) - (288 "GUERRERO" "ARREGLARÉ EL PUENTE.") - (324) - (342 "GUERRERO" "¡PERO NO ME PIDÁIS QUE ME ENFRENTE A ESA CRIATURA OTRA VEZ!") - (470) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "¿CÓMO HABRÁ CONSEGUIDO QUE FUNCIONE EL LEVITADOR?")) -("ASSTLP24" :hint #x0 (0 "KEIRA" "¿TENDREMOS...ENERGÍA SUFICIENTE CON LAS BATERÍAS...?")) -("GAM-AM01" :hint #x0 (0 "JUGADOR" "¡EH, 20 CONTRA 1 NO ESTÁ TAN MAL!")) -("GAM-AM02" :hint #x0 (0 "JUGADOR" "¡SÍ, ERA UNA APUESTA SEGURA!")) -("GAM-AM03" :hint #x0 (0 "JUGADOR" "JEJEJEJE...¡LA PRÓXIMA VEZ ME VA A TOCAR EL GORDO!")) -("GAM-AM04" :hint #x0 (0 "JUGADOR" "¡BAH! SI ME DIESEN UNA ESFERA POR CADA OPORTUNIDAD PERDIDA...")) -("GAM-AM05" :hint #x0 (0 "JUGADOR" "¡EH, SE PODÍAN PONER DE MODA LOS BARRILES!")) -("GAM-AM06" :hint #x0 (0 "JUGADOR" "EN FIN...NECESITO ESTAR EN RACHA...")) -("GAM-AM07" :hint #x0 (0 "JUGADOR" "¡VAYA! ¿QUÉ PROBABILIDAD HAY DE QUE LAS RANAS CRÍEN PELO?")) -("GAM-AM08" :hint #x0 (0 "JUGADOR" "¡CREÍA QUE ME HABÍAN DADO UN BUEN SOPLO!")) -("GAM-AM09" :hint #x0 (0 "JUGADOR" "DÍA NUEVO, APUESTA NUEVA.")) -("GAM-AM10" :hint #x0 (0 "JUGADOR" "ME JUEGO LO QUE SEA A QUE NADIE PUEDE DERROTAR AL MONSTRUO.")) -("GAM-AM11" :hint #x0 (0 "JUGADOR" "¡UOH! ¡DEBERÍA HACER CAJA Y LARGARME!")) -("GAM-AM12" :hint #x0 (0 "JUGADOR" "UNAS VECES SE GANA, OTRAS SE PIERDE.")) -("GAM-AM13" :hint #x0 (0 "JUGADOR" "EH, ¿DE QUÉ TE RÍES? ¿TE HAGO GRACIA?")) -("GEO-AM01" :hint #x0 (0 "GEÓLOGA" "MMMM, ¡QUÉ ESTRATO MÁS INTERESANTE!")) -("GEO-AM02" :hint #x0 (0 "GEÓLOGA" "POBRES TOPO ARDILLITAS...")) -("GEO-AM03" :hint #x0 (0 "GEÓLOGA" "INTERESANTE...")) -("GEO-AM04" :hint #x0 (0 "GEÓLOGA" "¡BUENA SUERTE, CHICOS!")) -("GEO-AM05" :hint #x0 (0 "GEÓLOGA" "¡MALDITOS LURKERS...!")) -("GEO-AM06" :hint #x0 (0 "GEÓLOGA" "LAS ROCAS TAMBIÉN TIENEN SENTIMIENTOS.")) -("GEO-AM07" :hint #x0 (0 "GEÓLOGA" "¡AGUANTAD, PEQUEÑINAS!")) -("GEO-AM08" :hint #x0 (0 "GEÓLOGA" "AHORA PUEDO VOLVER A MI INVESTIGACIÓN.")) -("GEO-LO01" :hint #x0 (0 "GEÓLOGA" "TENGO QUE VOLVER A MI INVESTIGACIÓN.")) -("GEO-LO02" :hint #x0 (0 "GEÓLOGA" "MMMM, ESTA PIEDRA ES MUY ANTIGUA...")) -("SAGELP20" :hint #x0 (0 "SAMOS" "MMMMM...MMMMM...")) -("SAGELP21" :hint #x0 (0 "SAMOS" "HAY QUE DETENER A LOS LURKERS.")) -("SAGELP22" :hint #x0 (50 "SAMOS" "YA VEO...")) -("SAGELP23" :hint #x0 (50 "SAMOS" "¿NO...?")) -("SAGELP24" :hint #x0 (50 "SAMOS" "¿QUÉ LE PUEDE HABER PASADO?")) -("WAR-LO1A" :hint #x0 (0 "GUERRERO" "(LLANTOS)")) -("WAR-LO1B" :hint #x0 (0 "GUERRERO" "(LLANTOS)")) -("WAR-LO1C" :hint #x0 (0 "GUERRERO" "(LLANTOS)")) - -("asstvb22" :hint #x326 - (10 "KEIRA" "¡GUAAU! ¡HABÉIS SACADO A LA SUPERFICIE PARTE DE LAS RUINAS SUMERGIDAS!") - (320 "KEIRA" "PARECE QUE PODÉIS USAR EL ECO DE UNA MANERA NUNCA VISTA ANTES.") - (530 "KEIRA" "HAY UNA BATERÍA QUE HA SALIDO A FLOTE CON LA SALA. ¡SUBÍOS Y COGEDLA!") - ) - -("asstvb20" :hint #x327 - (10 "KEIRA" "¡ASÍ SE VUELA! ¡LOS LURKERS NO HAN PODIDO HACER NADA ANTE EL ZOOMER!") - (320 "KEIRA" "¡HEMOS CONSEGUIDO OTRA BATERÍA MÁS!") - ) - -("asstvb21" :hint #x328 - (0 "KEIRA" "¡BUEN TRABAJO! ¿NO OS ALEGRÁIS DE HABER SALVADO AL PEQUEÑO FLUT-FLUT?") - (314 "KEIRA" "A LO MEJOR OS RESULTA ÚTIL DE NUEVO.") - (450 "KEIRA" "AHORA VOLVED AL TRANS-PAD Y LO TRAERÉ A CASA.") - ) - -("sagevb04" :hint #x366 - (0 "SAMOS" "¡BUEN TRABAJO, JAK! TU TÍO ESTARÍA ORGULLOSO.") - (318 "SAMOS" "ESO ERA EL BRAZO GIGANTE DE UN ROBOT PRECURSOR.") - (400 "SAMOS" "¡NUNCA HABÍA VISTO UNO EN TAN BUEN ESTADO!") - (720 "SAMOS" "NI ME IMAGINO PARA QUÉ LO QUERRÍAN LOS LURKERS. LO ÚNICO SEGURO ES QUE PARA NADA BUENO.") - (1085 "SAMOS" "SI SIGUES HACIÉNDOLO ASÍ...NAAH, SIGUES SIENDO UN APRENDIZ DE \"HÉROE\".") - (1455 "SAMOS" "PERO SIGUE INTENTÁNDOLO. ES ENTERNECEDOR.") - ) - -("sagevb03" :hint #x36a - (0 "SAMOS" "EMPEZÁIS A IMPRESIONARME. PERO TAL VEZ SEA PORQUE ESPERABA POCO DE VOSOTROS.") - (420 "SAMOS" "VALE, VUESTRO MOMENTO DE GLORIA HA TERMINADO. ¡A SEGUIR TRABAJANDO!") - ) - -("asstvb71" :hint #x36c - (16 "KEIRA" "NO TENÉIS SUFICIENTES BATERÍAS COMO PARA HACER FUNCIONAR LA MÁQUINA DEL SABIO AZUL.") - (200 "KEIRA" "NO PODREMOS LEVANTAR ESA ROCA HASTA QUE NO RECOJÁIS 45 BATERÍAS.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "HASTA QUE DESCUBRAMOS POR QUÉ DESAPARECIÓ EL SABIO AZUL,") - (200 "KEIRA" "TENDRÉIS QUE RECOGER 45 BATERÍAS PARA ALIMENTAR SU MÁQUINA.") - (410 "KEIRA" "¡CONSEGUIDLAS!") - ) - -("asstvb28" :hint #x36f - (0 "KEIRA" "¡EH! ¡NO OS OLVIDÉIS DEL SABIO Y DE MÍ!") - (190 "KEIRA" "TENÉIS QUE ACTIVAR LA PUERTA TELETRANSPORTADORA PARA QUE PASEMOS.") - (380 "KEIRA" "ESTÁ EN EL LABORATORIO DEL SABIO AZUL, AL FINAL DEL DESFILADERO DEL FUEGO.") - (570 "KEIRA" "¡SI NO NOS DEJÁIS PASAR, NO PODREMOS AYUDAROS!") - ) - -("asstvb29" :hint #x370 - (0 "KEIRA" "¡EH! ¡SEGUIMOS ESPERANDO!") - (185 "KEIRA" "¡ACTIVAD LA PUERTA TELETRANSPORTADORA!") - ) - -("asstvb30" :hint #x371 - (1 "KEIRA" "¡EH! ¡NO PODREMOS IR HASTA ALLÍ HASTA QUE NO HAYÁIS ACTIVADO") - (100 "KEIRA" "LA PUERTA TELETRANSPORTADORA!") - ) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (5 "BILLY" "¡¡BIEEN!! ESAS RATAS VOLVERÁN EN CUALQUIER MOMENTO.") - (109 "BILLY" "DISPARAD A TODAS, QUE NO SE COMAN NI UN SOLO APERITIVO.") - ) - -("billy-introduction" - (6 "BILLY" "¡HOLA, AMIGOS! ¿DISFRUTANDO DE MI PRECIOSO PANTANO? SOY EL DUEÑO DE ESTAS TIERRAS.") - (150 "BILLY" "¡DE TODO LO QUE NO SE HUNDA EN EL BARRO, CLARO! JAAJIIJIJIJII") - (349) - (369 "DAXTER" "A JUZGAR POR EL OLOR, JURARÍA QUE TU BAÑERA ESTÁ HUNDIDA") - (420 "DAXTER" "EN EL BARRO DESDE HACE MUCHO.") - (497) - (519 "BILLY" "¿QUÉ ES UNA BAÑERA? DA IGUAL...TENGO PROBLEMAS MÁS SERIOS...") - (677) - (691 "BILLY" "PARECE QUE UNAS ALIMAÑAS LURKER ESTÁN MERODEANDO POR AHÍ,") - (810 "BILLY" "¡AGARRANDO LO QUE PUEDEN CON SUS MUGRIENTAS GARRAS!") - (910 "BILLY" "Y ASUSTANDO A MI HIPHOG, FARTHY.") - (1000 "BILLY" "LLEVA DESAPARECIDO NI SE SABE CUÁNTO.") - (1136 :offscreen "BILLY" "HE ESTADO PONIENDO FUERA SU APERITIVO FAVORITO,") - (1200 :offscreen "BILLY" "¡PERO ESAS RATAS DE PANTANO NO DEJAN DE ROBARLO!") - (1318 :offscreen "BILLY" "SI PUDIÉSEIS MANTENER LEJOS A ESAS MOLESTAS CRIATURAS LO SUFICIENTE,") - (1400 :offscreen "BILLY" "¡SÉ QUE FARTHY OLERÍA EL PAPEO Y VOLVERÍA!") - (1509) - (1527 "BILLY" "¿ME AYUDARÉIS?") - ) - -("billy-reject" (7 "BILLY" "BIEEN...SI CAMBIÁIS DE IDEA, ¡YA SABÉIS DONDE ENCONTRARME! (RISAS)")) -("billy-reminder-1" (36 "BILLY" "¡VAAAAYA! ¿HABÉIS VUELTO PARA ACABAR CON LAS RATAS?")) -("billy-resolution" (1 "BILLY" "¡NO ESTÁ NADA MAL! ¡TIENES BUENA PUNTERÍA! GRACIAS MIL POR LA AYUDA.")) -("BIL-AM01" :hint #x0 (0 "BILLY" "¡CÓMO ME GUSTA EL BARRO!")) -("BIL-AM02" :hint #x0 (0 "BILLY" "MALDITAS RATAS DE PANTANO...")) -("BIL-AM03" :hint #x0 (0 "BILLY" "NECESITO UN BUEN TRAGO DE LA MEDICINA DE MAMÁ.")) -("BIL-AM04" :hint #x0 (0 "BILLY" "VAYA, VAYA...")) -("BIL-AM05" :hint #x0 (0 "BILLY" "NECESITO UN BUEN TRAGO DE CAZALLA.")) -("BIL-AM06" :hint #x0 (0 "BILLY" "NECESITO UN BUEN REFRIGERIO.")) -("BIL-AM07" :hint #x0 (0 "BILLY" "¡'DITA SEA! ¡ESTE CALOR ME ESTÁ MATANDO!")) -("BIL-AM08" :hint #x0 (0 "BILLY" "¡'DITA SEA...ME ESTOY ASANDO COMO UN POLLO!")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "¡MMMMM, MMM! ¡CÓMO ME GUSTA EL BARRO!")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "¡MALDITAS RATAS DE PANTANO!")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "¡¡MALDITAS RATAS DE PANTANO!!")) -("BIL-LO01" :hint #x0 (0 "BILLY" "¡¡FAAAAAAAAAAAAAARTHYYYY!!")) -("BIL-LO02" :hint #x0 (0 "BILLY" "¡VEEN, BONITO, BONITO, BONITOOOO!")) -("BIL-LO03" :hint #x0 (0 "BILLY" "¡SUI, SUI, SOO-EE!")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "¡FAAARTHY!")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "¡VEEN, VEN, VEN, VEN, VEN, VEN, VEEN!")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "¡BONITOO! ¡VEEN!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "¡MATADLAS!")) -("BIL-TA02" :hint #x0 (0 "BILLY" "¡BUEN DISPARO!")) -("BIL-TA03" :hint #x0 (0 "BILLY" "¡POR AHÍ!")) -("BIL-TA04" :hint #x0 (0 "BILLY" "'DITA SEA...")) -("BIL-TA05" :hint #x0 (0 "BILLY" "¡TIENEN UN APERITIVO!")) -("BIL-TA06" :hint #x0 (0 "BILLY" "AND ANOTHER...")) -("BIL-TA07" :hint #x0 (0 "BILLY" "THERE'S ONLY ONE LEFT...")) -("BIL-TA08" :hint #x0 (0 "BILLY" "¡LO TIENEN!")) -("BIL-TA09" :hint #x0 (0 "BILLY" "¡¡YIIIII-HAAAAA!!")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "¡MATADLA!")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "¡BUEN DISPARO!")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "POR AHÍ.")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "¡'DITA SEA!")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "¡'DITA SEA!")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "¡TIENEN UN APERITIVO!")) -("SKSP009F" :hint #x0 (0 "DAXTER" "¡TOMA!, ¡TOMA! JAJAJAJA!")) -("sksp0143" :hint #x0 (0 "DAXTER" "¡UAGGHH! ¡HAZ ALGO CON LA LENGUA QUE ME AGARRA!")) -("sksp0151" :hint #x0 (0 "DAXTER" "¡CORRE, JAK!")) -("sksp0156" :hint #x0 (0 "DAXTER" "¡AGÁCHATE PARA ESQUIVAR A LOS MURCIÉLAGOS!")) -("sksp0157" :hint #x0 (0 "DAXTER" "¿HAS VISTO ESO? ¡SOLO QUEDAN 3 AMARRES MÁS!")) -("sksp0137" :hint #x351 (0 "DAXTER" "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO.")) -("sksp0138" :hint #x352 (0 "DAXTER" "DEBERÍAMOS DISPARAR A ESAS ROCAS ENORMES QUE RETIENEN EL AMARRE.")) -("sksp0139" :hint #x353 (0 "DAXTER" "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET.")) -("sksp0140" :hint #x354 (0 "DAXTER" "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!")) -("sksp0141" :hint #x355 (0 "DAXTER" "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!")) -("sksp0142" :hint #x356 (0 "DAXTER" "THE WATER'S SAFE TO WAIT IN.")) -("sksp0144" :hint #x358 (0 "DAXTER" "DISPARA A LOS NIDOS DE LAS RATAS PARA QUE NO SALGAN MÁS.")) -("sksp0145" :hint #x359 (0 "DAXTER" "¡GUAAU! ¡CUANDO TIENES ECO AMARILLO PUEDES DISPARAR BOLAS DE FUEGO!")) -("sksp0146" :hint #x35a (0 "DAXTER" "HEY! THAT'S YELLOW ECO!")) -("sksp0147" :hint #x35b (0 "DAXTER" "YOU CAN SWING ON THAT POLE OVER THERE!")) -("sksp0148" :hint #x35c (0 "DAXTER" "WATCH OUT, THAT BRAMBLE IS PRICKLY!")) -("sksp0149" :hint #x35d (0 "DAXTER" "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!")) -("sksp0150" :hint #x35e (0 "DAXTER" "WATCH OUT WHEN THAT FROG IS CHARGED UP!")) -("sksp0152" :hint #x360 (0 "DAXTER" "¡CUIDADO, JAK! ¡ES UNA EMBOSCADA!")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!") - (175 "DAXTER" "IT LOOKS LIKE A GIANT ROBOT ARM!") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "THAT BLACK TAR LOOKS HOT AND DANGEROUS!")) -("sksp0155" :hint #x363 (0 "DAXTER" "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!")) -("sksp0158" :hint #x366 (0 "DAXTER" "¡GUUAU! ¡SOLO 2 AMARRES MÁS!")) -("sksp0159" :hint #x367 (0 "DAXTER" "EL DIRIGIBLE ESTÁ A PUNTO DE SOLTARSE. ¡BUSQUEMOS EL ÚLTIMO!")) -("sksp0160" :hint #x368 (0 "DAXTER" "¡EH! ¡AHÍ ESTÁ EL FLUT-FLUT!")) -("sksp0161" :hint #x369 (0 "DAXTER" "I HATE RATS! AND I'M ALMOST ONE OF THEM.")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "¡GUAAU! ¡HEMOS SUPERADO EL RECORD!")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "LO DIJE ANTES Y LO VUELVO A REPETIR...") - (164 "DAXTER" "¡EVITA LAS CAJAS DE ECO OSCURO!") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "LET'S CHASE THOSE MOLES BACK UNDERGROUND.")) -("sksp0112" :hint #x338 (0 "DAXTER" "VAMOS A POR LA BATERÍA QUE NOS DEBE LA GEÓLOGA.")) -("sksp0113" :hint #x339 (0 "DAXTER" "ESAS DEBEN DE SER LAS PLANTAS INFECTADAS DE LAS QUE HABLABA EL ABUELETE.")) -("sksp0114" :hint #x33a (0 "DAXTER" "TENEMOS QUE USAR EL ECO VERDE PARA CURAR A LAS PLANTAS.")) -("sksp0115" :hint #x33b (0 "DAXTER" "JAK, DRIVE THROUGH THE GREEN ECO VENT.")) -("sksp0116" :hint #x33c (0 "DAXTER" "¡AHÍ ESTÁ UNO DE ESOS LURKERS VOLADORES! A LO MEJOR TIENE UNA BATERÍA...")) -("sksp0117" :hint #x33d (0 "DAXTER" "THERE'S THE MOLE HOLE!")) -("sksp0118" :hint #x33e (0 "DAXTER" "NOW, LET'S FLY OVER THE INFECTED PLANTS!")) -("sksp0119" :hint #x33f (0 "DAXTER" "UN ANILLO MENOS, ¡PERO QUEDAN UN MONTÓN!")) -("sksp0120" :hint #x340 (0 "DAXTER" "¡DEPRISA! ¡AHÍ ESTÁ EL ANILLO SIGUIENTE!")) -("sksp0121" :hint #x341 (0 "DAXTER" "¡RÁPIDO! ¡TIENES QUE ATRAVESAR LOS ANILLOS ANTES DE QUE SE VAYAN APAGANDO!")) -("sksp0122" :hint #x342 (0 "DAXTER" "HEY! THAT GRASS SLOWS US DOWN...")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "¡DEPRISA! ¡SIGUE ESE CONDUCTO!")) -("sksp0124" :hint #x344 (0 "DAXTER" "ESTO ME DA MALA ESPINA...")) -("sksp0125" :hint #x345 (0 "DAXTER" "PARECE QUE ESOS CHISMES NECESITAN UNA DOSIS DE ECO AZUL.")) -("sksp0126" :hint #x346 (0 "DAXTER" "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!")) -("sksp0127" :hint #x347 (0 "DAXTER" "¡DALE UNA PATADA AL TIPEJO DE ARRIBA!")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK...¡¡CORRE!! ¡¡EL ECO OSCURO ESTÁ SUBIENDO!!")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHH! THAT DARK ECO'S GETTING CLOSE")) -("sksp0130" :hint #x34a (0 "DAXTER" "UHH, CREO QUE TENEMOS QUE ACTIVAR TODAS ESAS PLATAFORMAS...")) -("sksp0131" :hint #x34b (0 "DAXTER" "¡EH! ¡SEGURO QUE PUEDES SALTAR EN PICADO SOBRE ESOS TIPEJOS!")) -("sksp0132" :hint #x34c (0 "DAXTER" "EE-EE! WHOA! WHO-AH! WHO-AHH!")) -("sksp0133" :hint #x34d (0 "DAXTER" "¡SEGURO QUE PODEMOS RECARGAR A LA VEZ TODOS ESOS CHISMES!")) -("sksp0134" :hint #x34e (0 "DAXTER" "¿QUÉ TAL SI TIENES CUIDADO CON LAS TUBERÍAS CALIENTES?")) -("sksp0135" :hint #x34f (0 "DAXTER" "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!")) -("sksp0136" :hint #x350 (0 "DAXTER" "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (10 "KEIRA" "¡BUEN TRABAJO! LAS GENTES DE LA ALDEA DE PIEDRA RESPIRAN ALIVIADAS.") - (400 "KEIRA" "¡PERO NO HAY TIEMPO PARA CELEBRACIONES!") - (600 "KEIRA" "RECORRED CON EL ZOOMER EL PASO ENTRE LAS MONTAÑAS.") - (800 "KEIRA" "¡CUIDADO, PARECE QUE LOS LURKERS HAN COLOCADO EXPLOSIVOS POR TODO EL PASO!") - (950 "KEIRA" "CUANDO LLEGUÉIS AL CRÁTER VOLCÁNICO, ACUDID AL LABORATORIO DEL SABIO ROJO,") - (1050 "KEIRA" "Y ACTIVAD LA PUERTA TELETRANSPORTADORA") - (1200 "KEIRA" "PARA QUE MI PADRE Y YO PODAMOS REUNIRNOS CON VOSOTROS.") - ) - -("asstvb24" :hint #x605 - (40 "KEIRA" "¡DIOS MÍO! LOS LURKERS PROBABLEMENTE SE DIRIGEN A UN DETONADOR") - (110 "KEIRA" "QUE HAY AL FINAL DEL DESFILADERO.") - (304 "KEIRA" "SI LLEGAN ANTES QUE VOSOTROS, ¡VOLARÁN TODO EL PASO!") - (525 "KEIRA" "TENÉIS QUE ADELANTAROS Y DESTRUIR EL DETONADOR, ¡O TODO SE HABRÁ ACABADO!") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!")) -("sksp0301" :hint #x608 (0 "DAXTER" "DON'T HIT THOSE EXPLOSIVES!")) -("sksp0302" :hint #x609 (0 "DAXTER" "STAY AHEAD OF THEM AND WE GOT IT MADE!")) -("sksp0303" :hint #x60a (0 "DAXTER" "HIT THE BLUE ECO TO GET SPEED BOOSTS!")) -("sksp0304" :hint #x60b (0 "DAXTER" "AVOID THE TREES, JAK! THEY SLOW US DOWN!")) -("sksp0305" :hint #x60c (0 "DAXTER" "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!")) -("sksp0306" :hint #x60d (0 "DAXTER" "WATCH OUT FOR THOSE EXPLOSIVES!")) -("sksp0307" :hint #x60e (0 "DAXTER" "STAY CLEAR OF THE PITS!")) -("sksp0308" :hint #x60f (0 "DAXTER" "MAYBE I SHOULD DRIVE!")) -("sksp0309" :hint #x610 (0 "DAXTER" "THERE'S ONE OF THE LURKERS!")) -("sksp0310" :hint #x611 (0 "DAXTER" "CATCH 'EM, JAK!")) -("sksp0311" :hint #x612 (0 "DAXTER" "WE PASSED ONE!")) -("sksp0312" :hint #x613 (0 "DAXTER" "WAH, ONE OF THE LURKERS PASSED US!")) -("sksp0313" :hint #x614 (0 "DAXTER" "THEY'RE WAY AHEAD!")) -("sksp0314" :hint #x615 (0 "DAXTER" "YEAH, WE'RE IN THE LEAD!")) -("sksp0315" :hint #x616 (0 "DAXTER" "FASTER, JAK, FASTER!")) -("sksp0316" :hint #x617 (0 "DAXTER" "BIG JUMP, BIG JUMP!")) -("sksp0317" :hint #x618 (0 "DAXTER" "HANG ON!")) -("sksp0318" :hint #x619 (0 "DAXTER" "YAAHH!")) -("sksp0319" :hint #x61a (0 "DAXTER" "IT'S GONNA BE CLOSE!")) -("sksp0320" :hint #x61b (0 "DAXTER" "THEY'RE GONNA BEAT US TO THE DETONATOR!")) -("sksp0321" :hint #x61c (0 "DAXTER" "¡LO CONSEGUIMOS! ¡HEMOS EVITADO QUE VUELEN EL PASO!")) - -("asstvb25" :hint #x61d - (0 "KEIRA" "¡BUEN TRABAJO! HABÉIS LLEGADO AL DETONADOR ANTES QUE ELLOS.") - (270 "KEIRA" "EL LABORATORIO DEL SABIO ROJO ESTÁ JUSTO DELANTE.") - (300 "KEIRA" "ACTIVAD LA PUERTA TELETRANSPORTADORA PARA QUE PODAMOS REUNIRNOS.") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (30 "KEIRA" "¡EH, CHICOS! SEGUID REUNIENDO BATERÍAS.") - (100 "KEIRA" "SON FUNDAMENTALES PARA SEGUIR NUESTRA TRAVESÍA HACIA EL NORTE.") - (192) - ) - -("minershort-introduction-gnawers" - (0 "GORDY" "¿POR QUÉ NO OS PONÉIS A HACER ALGO ÚTIL?") - (90 "GORDY" "LOS LURKERS HAN ESTADO EXCAVANDO EN LAS CUEVAS OSCURAS POR ALLÍ.") - (196 :offscreen "GORDY" "PARECE QUE BUSCAN ARTEFACTOS DE LOS PRECURSORES.") - (250) - (274 :offscreen "GORDY" "EN LO QUE A MÍ RESPECTA, SE PUEDEN QUEDAR CON LOS QUE QUIERAN.") - (360 :offscreen "WILLARD" "¡EN LO QUE A NOSOTROS RESPECTA!") - (450 "GORDY" "WILLARD, DALE DE COMER A TU PÁJARO.") - (472) - (496 "GORDY" "A MÍ SOLO ME PREOCUPAN LAS PIEDRAS PRECIOSAS.") - (540 "GORDY" "PERO NO VOY A PODER CONSEGUIRLAS DE LA CUEVA PORQUE CUANDO ACABEN,") - (660 "GORDY" "TODO SE VA A DERRUMBAR.") - (700) - (724 "GORDY" "SI ACABÁIS CON LOS LURKERS QUE ROEN LAS VIGAS DE SUJECIÓN,") - (830 "GORDY" "TAL VEZ SALVÉIS LA CUEVA.") - (870) - (890 "GORDY" "AHORA, ¡LARGÁOS!") - (920) - ) - -("minershort-introduction-orbs" - (18 "MINER" "¡EH, GORDY! MIRA, CREO QUE TENEMOS VISITA.") - (160 "GORDY" "¿TÚ CREES, WILLARD? ¡HOLA, FORASTEROS! ¿DE PASO?") - (300 "GORDY" "NOSOTROS TAMBIÉN. BUENO, TENEMOS QUE IRNOS. AQUÍ NO HAY NADA QUE VER.") - (410 "WILLARD" "EHH...CREÍ QUE HABÍAS DICHO QUE ESTO ERA UNA PIEDRA PRECIOSA DE VALOR INCAL-") - (550 :offscreen "GORDY" "¡¡WILLARD!!") - (600 "DAXTER" "LA VERDAD ES QUE...BUSCAMOS BATERÍAS.") - (694) - (698 "WILLARD" "TENEMOS 4. EHH...¿LAS QUERÉIS?") - (810) - (826 "GORDY" "LO QUE EL CEREBRO DE CHORLITO QUIERE DECIR ES QUE...") - (890 "GORDY" "TAL VEZ TENGAMOS UNAS CUANTAS BATERÍAS") - (990 "GORDY" "Y...QUE TAL QUERAMOS VENDER CADA UNA POR...") - (1100) - (1120 :offscreen "GORDY" "90 ESFERAS.") - (1160 "DAXTER" "ESA HISTORIA ME SUENA...") - (1222 "DAXTER" "EH, GENIOS. ¿CÓMO PENSÁIS SACAR ESA PIEDRA PRECIOSA TAN GOORDA DE AQUÍ?") - (1380) - (1400 "GORDY" "PUES BIEN, LISTILLO, NOS QUEDAN 12 AÑOS MÁS DE EXCAVACIÓN PARA AVERIGUARLO.") - (1542) - (1560 "WILLARD" "EHH...GORDY, ¿NO TARDARÍAMOS MENOS SI TÚ TAMBIÉN CAVASES?") - (1768) - ) - -("minershort-introduction-switch" - (38 :offscreen "WILLARD" "PSST, ¡CHICOOS! EHH...") - (123 "WILLARD" "BIRDIE Y YO ESTÁBAMOS EXPLORANDO UNA CUEVA QUE OS GUSTARÍA.") - (244) - (247 "WILLARD" "ESTABA LLENA DE UN BONITO METAL NARANJA,") - (337 "WILLARD" "Y MUY BIEN ESCONDIDA TRAS UNOS ÁRBOLES EN LAS MONTAÑAS NEVADAS.") - (512) - (518 "WILLARD" "¡SE LO DIJE A GORDY, PERO ÉL SE PUSO A CHILLARME POR NO CAVAR!") - (684 :offscreen "GORDY" "¡¿POR QUÉ NO ESTÁS CAVANDO?!") - (753 "WILLARD" "¡LO SIENTO!") - ) - -("minershort-reminder-1-gnawers" - (16 "GORDY" "¿PODRÍAIS OCUPAROS YA DE LOS LURKERS QUE ROEN LAS VIGAS DE SUJECIÓN DE LA CUEVA OSCURA?") - (204 "GORDY" "¡ESAS VIGAS NO VAN A DURAR MUCHO!") - ) - -("minershort-reminder-1-orbs" - (30 "GORDY" "NO OLVIDÉIS EL TRATO. TRAEDNOS 100 ESFERAS.") - (130 :offscreen "WILLARD" "¡DIJISTE 90!") - (200 "GORDY" "¡¡WILLARD!!") - (228) - (240 "GORDY" "VALE. 90 ESFERAS POR UNA BATERÍA.") - (344) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "¿HABÉIS ENCONTRADO LA CUEVA TRAS LOS ÁRBOLES DE LAS MONTAÑAS NEVADAS?") - (165) - (186 "WILLARD" "CREO QUE ME VOY A IR PARA ALLÁ EN SEGUIDA PARA ESCONDERME DE GORDY,") - (250 "WILLARD" "QUE NO PARA DE GRITARME.") - (408 :offscreen "GORDY" "¡¡WILLARD!!") - ) - -("minershort-reminder-2-orbs" - (30 "WILLARD" "EHH...¿GORDY?") - (84 "GORDY" "¡90 ESFERAS POR UNA BATERÍA, WILLARD!") - ) - -("minershort-resolution-1-orbs" - (28 "GORDY" "OH, AQUÍ TENÉIS UNA BATERÍA") - (80 "GORDY" "A CAMBIO DE LAS ESFERAS.") - (150) - ) - -("minershort-resolution-2-orbs" - (28 "WILLARD" "¡UH! ¡OOH! EHH...¡ESTA VEZ LO HE PILLADO!") - (150) - (168 "WILLARD" "¡AQUÍ TENÉIS UNA...!") - (190) - (208 "WILLARD" "EHH...¡UNA...!") - (260) - (270 :offscreen "GORDY" "¡UNA BATERÍA!") - (358 "WILLARD" "SÍ, SÍ...LO QUE HA DICHO ÉL.") - (458 "GORDY" "SE ACABÓ. NOS HABÉIS LIMPIADO.") - (540 "GORDY" "¡NO HAY MÁS BATERÍAS!") - (660) - ) - -("sage-village3-introduction" - (10 "SAMOS" "¡WAAOHH! ¡SIEMPRE ME PREGUNTO SI ME DEJARÉ ÓRGANOS VITALES EN ESAS COSAS!") - (130) - (180 "SAMOS" "¡SANTO CIELO!") - (210 "SAMOS" "¡EL LABORATORIO DEL SABIO ROJO TIENE MUCHA PEOR PINTA QUE EL DEL SABIO AZUL!") - (324 "KEIRA" "BUENO, SE DIRÍA QUE AQUÍ HA HABIDO UNA PELEA.") - (412) - (444 "ANCIANO" "JAJAJAJAJA") - (500) - (530 "ANCIANO" "YO NO LO LLEGARÍA A LLAMAR \"PELEA\". ¿VERDAD, HERMANITA?") - (680 "MUJER" "LA VERDAD ES QUE NO. EL SABIO ROJO SE RINDIÓ FÁCILMENTE.") - (802) - (810 "MUJER" "QUÉ POCA DIVERSIÓN.") - (860) - (890 "SAMOS" "¡GOL! ¿ERES TÚ?") - (962) - (972 "SAMOS" "HAS SALIDO POR FÍN DE LAS PROFUNDIDADES, ¿EH?") - (1060 "SAMOS" "¡Y, MAIA! ¡TE DIJE QUE EL ECO OSCURO OS AFECTARÍA A LOS DOS!") - (1186 "SAMOS" "NADIE HACE CASO DEL VIEJO SAMOS...") - (1262) - (1290 "SAMOS" "¿QUÉ HABÉIS HECHO CON LOS SABIOS ROJO Y AZUL?") - (1378 "GOL" "NO TE PREOCUPES POR TUS COLORIDOS AMIGOS, VEJETE") - (1525 "GOL" "ESTÁN DIVINAMENTE EN NUESTRA CIUDADELA. SON NUESTROS INVITADOS.") - (1680 "MAIA" "HAN ACCEDIDO AMABLEMENTE...A AYUDARNOS EN UN PEQUEÑO PROYECTO.") - (1810) - (1830 "GOL" "ESTABAS EQUIVOCADO, SAMOS. EL ECO OSCURO SE PUEDE CONTROLAR.") - (1988) - (1999 "GOL" "HEMOS APRENDIDO SUS SECRETOS, Y AHORA PODEMOS REHACER EL MUNDO A NUESTRO GUSTO.") - (2212) - (2226 "SAMOS" "¡NO PODÉIS DOMINAR EL ECO OSCURO! ¡NI SIQUERA LOS PRECURSORー") - (2360 "MAIA" "HASTA AHORA, NOS HEMOS ARREGLADO CON EL POCO ECO QUE HABÍA EN LA SUPERFICIE.") - (2508) - (2520 "MAIA" "PERO PRONTO PODREMOS ACCEDER A LAS ENORMES RESERVAS DE ECO OSCURO,") - (2650 "MAIA" "OCULTAS BAJO TIERRA.") - (2718 "SAMOS" "¿LOS SILOS...?") - (2758) - (2768 "GOL" "¡SÍ! ¡LOS SILOS!") - (2840 "GOL" "VAMOS A ABRIRLOS, ¡Y TODO EL ECO OSCURO SERÁ NUESTRO!") - (3028) - (3040 "SAMOS" "¡¡PERO ESO ES IMPOSIBLE!! SOLO UN BRAZO PRECURSORー") - (3128 "MAIA" "OH, NO TE PREOCUPES TANTO, SAMOS. TENEMOS GRANDES PLANES PARA TÍ.") - (3300 :offscreen "MAIA" "(DESVANECIENDOSE) ¡JAJAJAJAJAJAJAJAJAJA!") - (3460) - (3500 "DAXTER" "¡¡UN MOMENTO!!") - (3536) - (3544 "DAXTER" "¡¿ESE ERA GOL?!") - (3586) - (3594 "DAXTER" "¡¿EL GOL QUE SE SUPONE QUE TIENE QUE DEVOLVERME A MI FORMA ORIGINAL?!") - (3692 "DAXTER" "¡¿GOL ES EL TÍO QUE TRATA DE MATARNOS?!") - (3770) - (3790 "DAXTER" "¡ESTOY CONDENADO!") - (3820) - (3834 "SAMOS" "PUEDE QUE TODOS ESTEMOS CONDENADOS.") - (3872) - (3900 "SAMOS" "SI ABREN LOS SILOS, ¡EL ECO OSCURO DEFORMARÁ Y DESTRUIRÁ TODO LO QUE TOQUE!") - (4080 "SAMOS" "¡TENEMOS QUE LLEGAR HASTA SU CIUDADELA PARA DETERNERLOS!") - (4192 "KEIRA" "EL CAMINO MÁS RÁPIDO ES A TRAVÉS DEL CONDUCTO DE LAVA EN EL FONDO DE ESTE CRÁTER.") - (4316) - (4324 "KEIRA" "CON UNAS CUANTAS BATERÍAS MÁS Y EL ESCUDO TÉRMICO DEL ZOOMER, PODRÉIS ATRAVESAR LA LAVA.") - (4460) - (4464 "SAMOS" "MUY BIEN, CHAVAL. SABES LO QUE HAY QUE HACER.") - (4545 "SAMOS" "COGE EL SACO DE PULGAS Y CONSIGUE MÁS BATERÍAS.") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (10 "SAMOS" "¡POR TODO EL ECO DEL MUNDO!") - (60) - (72 "SAMOS" "¡PARECE QUE HAY GRAN CANTIDAD DE LURKERS EN LAS CUEVAS ARAÑA!") - (180) - (190 "DAXTER" "ESTUPENDO. SUENA COMO UN SITIO PARADISÍACO.") - (284) - (296 "DAXTER" "DEJA QUE ADIVINE. EN LAS CUEVAS ARAÑA...¡HAY ARAÑAS! ¡¿VERDAD?!") - (458 "SAMOS" "¡PUES CLARO QUE HAY ARAÑAS EN LAS CUEVAS ARAÑA!") - (560) - (574 "SAMOS" "¡PERO ESE ES EL MENOR DE VUESTROS PROBLEMAS!") - (640 "SAMOS" "LOS LURKERS ESTÁN BUSCANDO CRISTALES DE ECO OSCURO CONCENTRADO.") - (752) - (764 "SAMOS" "¡TENÉIS QUE DESTRUIR LOS CRISTALES ANTES DE QUE ESOS MONSTRUOS LES ECHEN LA ZARPA!") - (896) - (910 "SAMOS" "¡APRESURÁOS!") - (950) - ) - -("sage-village3-introduction-rams" - (8 "SAMOS" "ME ALEGRO DE QUE AMBOS ESTÉIS AQUÍ. HAY PRESENCIA LURKER EN LAS MONTAÑAS.") - (120) - (158 :offscreen "SAMOS" "PARECE QUE HAN DESCUBIERTO DEPÓSITOS DE ECO OSCURO,") - (272 :offscreen "SAMOS" "CONGELADO EN LOS GLACIARES, Y ESTÁN TRATANDO DE EXTRAERLOS.") - (380 "SAMOS" "MIENTRAS ESTÉIS ALLÍ ARRIBA BUSCANDO BATERÍAS, DETENED A ESOS LURKERS,") - (540 "SAMOS" "Y EVITAD QUE GOL CONSIGA MÁS ECO OSCURO.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (6 "SAMOS" "¡TENÉIS QUE DESTRUIR LOS CRISTALES DE ECO OSCURO EN LAS CUEVAS ARAÑA!") - (122) - ) - -("sage-village3-reminder-1-rams" - (0 "SAMOS" "NO PODEMOS DEJAR QUE LOS LURKERS SE HAGAN CON LOS BOTES DE ECO OSCURO.") - (130 "SAMOS" "¡SUBID A LOS PICOS NEVADOS Y DETENEDLOS!") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "HM, LET'S SEE...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "MM.")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "DIOS MÍO...")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "¡AH-JÁ!")) -("ASSTLP34" :hint #x0 (0 "KEIRA" "MMM...¿QUÉ SE PROPONEN GOL Y MAIA?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "MMM... TENEMOS QUE LLEGAR A LA CIUDAD DE PRECURSOR...")) -("ASSTLP36" :hint #x0 (0 "KEIRA" "MM. EL ESCUDO TÉRMICO VA A NECESITAR TODAVÍA MÁS ENERGÍA PARA RESISTIR LA LAVA.")) -("ASSTLP37" :hint #x0 (0 "KEIRA" "OHH...TENEMOS QUE SALVAR A LOS DEMÁS SABIOS...")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "UN DÍA DE ESTOS SERÉ RICO...") - (180 "WILLARD" "QUERRÁS DECIR...¡SEREMOS RICOS!") - (360 "GORDY" "SÍ, CLARO...") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "¡CAVA, WILLARD, CAVA!") - (130 "WILLARD" "SÍ, PERO...¡¿POR QUÉ NO CAVAS?!") - (320 "GORDY" "¡PORQUE YO SOY EL CEREBRO DEL GRUPO!") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "EMM, ¿GORDY? ¿PUEDO PARAR UN POCO?") - (220 "GORDY" "AYY...YO SÍ QUE TE VOY A PARAR DE UN GOLPE ¡¡CAVA!!") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "¡TENGO MUCHA HAMBRE, GORDY!") - (210 "GORDY" "¡CÓMETE A TU PAJARO!") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "EMM, GORDY, ¡NECESITO UN PICO MÁS AGUDO!") - (220 "GORDY" "¡LO QUE NECESITAS ES SER MÁS AGUDO!") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "(RÍE) ¡VOY A SER RICO!")) -("MSH-AM02" :hint #x0 (0 "GORDY" "¡¡CAVA, CAVA, CAVA!!")) -("MSH-AM03" :hint #x0 (0 "GORDY" "¡WILLARD! ¡TRABAJA MÁS, LISTILLO!")) -("MSH-AM04" :hint #x0 (0 "GORDY" "(RÍE) ¡SERÉ EL HOMBRE MÁS RICO DEL MUNDO! (RÍE)")) -("MSH-AM05" :hint #x0 (0 "GORDY" "¡OOHHH! ES LA PIEDRA MÁS GRANDE QUE JAMÁS SE HAYA VISTO! (RÍE)")) -("MSH-AM06" :hint #x0 (0 "GORDY" "VIDA OPULENTA, ¡ESPÉRAME!")) -("MSH-AM07" :hint #x0 (0 "GORDY" "¡MIS PIEDRAS! ¡TODAS MIS PIEDRAS!")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "(RÍE) ¡NO PUEDO ESPERAR A VENDER ESTA PRECIOSIDAD! (RÍE)")) -("MSH-AM10" :hint #x0 (0 "GORDY" "¡ESTO PARECE UNA RARA CRYSTY SELORCONIA! (RÍE)")) -("MSH-AM11" :hint #x0 (0 "GORDY" "¡ESPERA UN MINUTO! ¡SON TODAS MÍAS! ¡MÍAS, SÍ!")) -("MSH-AM12" :hint #x0 (0 "GORDY" "Y...WILLARD, ¿QUÉ VAS A HACER CON LA CUARTA PARTE QUE TE CORRESPONDE?")) -("MSH-AM1A" :hint #x0 (0 "GORDY" "¡VOY A SER RICO!")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "¡CAVA, CAVA, CAVA!")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "¡TRABAJA MÁS, LISTILLO!")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "EMM, ¿HEMOS TERMINADO YA?")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "EHH...VAYA...¿PODEMOS DESCANSAR UN POCO?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "OHH, ¡TENGO HAMBRE!")) -("MTA-AM04" :hint #x0 (0 "WILLARD" "EMM...CREO QUE HAY QUE LIMPIAR LA JAULA DE BIRDIE...")) -("MTA-AM05" :hint #x0 (0 "WILLARD" "¡QUÉ PIEDRA MÁS GRANDOOTAAA!")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "EMM...¡SIEMPRE QUISE SER...EHH...LEÑADOR!")) -("MTA-AM07" :hint #x0 (0 "WILLARD" "EH, ¡GORDY PROMETIÓ DARME LA MITAD DE LO QUE PUDIESE LLEVAR ENCIMA!")) -("MTA-AM08" :hint #x0 (0 "WILLARD" "EH...JEJEJE...¡BIRDIE ES MI MEJOR AMIGO!")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "¡ME ENCANTA MI PAJARITO!")) -("SAGELP31" :hint #x0 (0 "SAMOS" "ESTO NO ESTÁ BIEN.")) -("SAGELP32" :hint #x0 (0 "SAMOS" "¿CRISTALES DE ECO OSCURO?")) -("SAGELP33" :hint #x0 (0 "SAMOS" "¡MAIA Y GOL HAN PERDIDO LA CABEZA!")) -("SAGELP34" :hint #x0 (0 "SAMOS" "RNN, ¡LOS PODERES DEL ECO OSCURO NO SE PUEDEN CONTROLAR!")) -("SAGELP35" :hint #x0 (0 "SAMOS" "¿ECO OSCURO EN LOS GLACIARES?")) -("SAGELP36" :hint #x0 (0 "SAMOS" "¡AH! ¡HAY TROPAS LURKER EN LAS MONTAÑAS!")) -("SAGELP37" :hint #x0 (0 "SAMOS" "¿QUÉ PLANEA GOL...?")) -("SAGELP38" :hint #x0 (0 "SAMOS" "¿ES POSIBLE QUE HAYA...?")) - -("asstva73" :hint #x427 - (0 "KEIRA" "¡CHICOS! SEGÚN MIS CÁLCULOS, NOS HARÁN FALTA 72 BATERÍAS PARA QUE EL ESCUDO TÉRMICO") - (340 "KEIRA" "AGUANTE LA LAVA DE CAMINO A LA CIUDADELA DE GOL Y MAIA.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "NO TENÉIS SUFICIENTES BATERÍAS PARA ATRAVESAR LA LAVA.") - (182 "KEIRA" "NO PODRÉIS LLEGAR A LA CIUDADELA DE GOL Y MAIA,") - (220 "KEIRA" "HASTA QUE NO HAYÁIS CONSEGUIDO LAS 72 BATERÍAS.") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "PARECE QUE ESTA GÓNDOLA NO FUNCIONA BIEN.") - (100 "KEIRA" "TRATARÉ DE REPARARLA PARA QUE VUELVA A FUNCIONAR.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "HE REACTIVADO LA GÓNDOLA. OS LLEVARÉ A LA MONTAÑA NEVADA.") - (260 "KEIRA" "USADLA SIEMPRE QUE QUERÁIS.") - ) - -("asstv100" :hint #x44f - (0 "KEIRA" "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.") - (220 "KEIRA" "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.") - (420 "KEIRA" "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE, SO I CAN MODIFY THE ZOOMER. HURRY!") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.") - (260 "KEIRA" "MEET ME BACK IN THE VOLCANIC CRATER.") - (390 "KEIRA" "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.") - (610 "KEIRA" "BRING ME THE POWER CELLS!") - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "HURRY UP WITH THOSE POWER CELLS!") - (100 "KEIRA" "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "NO OLVIDÉIS ACTIVAR LA PUERTA TELETRANSPORTADORA PARA QUE PODAMOS PASAR.") - (210 "KEIRA" "PARA HACERLO, TENÉIS QUE ENTRAR EN EL LABORATORIO DEL SABIO ROJO") - (350 "KEIRA" "EN EL CENTRO DEL CRÁTER VOLCÁNICO.") - (500 "KEIRA" "NO PODREMOS PASAR HASTA QUE ESTÉ OTRA VEZ ACTIVADA.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "¡EH! ¡TODAVÍA ESTAMOS EN LA ALDEA DE PIEDRA!") - (120 "KEIRA" "¡ENCENDED LA PUERTA TELETRANSPORTADORA!") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "QUEREMOS REUNIRNOS CON VOSOTROS EN EL CRÁTER VOLCÁNICO.") - (128 "KEIRA" "ENTRAD EN EL LABORATORIO DEL SABIO ROJO Y ACTIVAD LA PUERTA.") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "¿CÓMO VAMOS A ENTRAR EN ESTE FUERTE?")) -("sksp0346" :hint #x444 (0 "DAXTER" "A LO MEJOR PUEDES VENCER A ESTE TIPO CON ECO ROJO.")) -("sksp0347" :hint #x445 (0 "DAXTER" "¡TENEMOS QUE SALTAR RODANDO!")) -("sksp0348" :hint #x446 (0 "DAXTER" "TENEMOS QUE ENCONTRAR LA MANERA DE ABRIR ESTE RESPIRADERO.")) -("sksp0349" :hint #x447 (0 "DAXTER" "¡AHÍ PARECE QUE HAY UN INTERRUPTOR DE ECO!")) -("sksp0350" :hint #x448 (0 "DAXTER" "¡ATÁCALO DONDE TIENE LAS PÚAS!")) -("sksp0351" :hint #x449 (0 "DAXTER" "¡PULSA EL BOTÓN!")) -("sksp0352" :hint #x44a (0 "DAXTER" "¡DEPRISA! ¡ANTES DE QUE VUELVAN A CAER!")) -("sksp0359" :hint #x44b (0 "DAXTER" "¡TIENES QUE USAR EL ECO ROJO!")) -("sksp0360" :hint #x44c (0 "DAXTER" "¡MUY BIEN! ¡HEMOS ACTIVADO LOS RESPIRADEROS DE ECO AMARILLO TAPONADOS!")) -("sksp0362" :hint #x44d (0 "DAXTER" "¡MIRA! ¡UNA BATERÍA HELADA!")) -("sksp0363" :hint #x44e (0 "DAXTER" "SOLO UN FLUT-FLUT PODRÍA SALTAR TAN LEJOS.")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "¡CREO QUE ESE ERA EL ÚLTIMO CRISTAL DE ECO OSCURO!")) -("sksp0328" :hint #x433 (0 "DAXTER" "TAL VEZ DISPARES MEJOR SI APUNTAS CON LAS ¡¡GAFAS!!")) -("sksp0329" :hint #x434 (0 "DAXTER" "¡OH, NO! ¡MÁS ECO OSCURO!")) -("sksp0330" :hint #x435 (0 "DAXTER" "CREO QUE NO HEMOS ACABADO CON TODOS LOS CRISTALES DE ECO OSCURO.")) -("sksp0331" :hint #x436 (0 "DAXTER" "¡DISPARA A LOS LURKERS! ¡QUE SE COMEN LAS PÉRTIGAS!")) -("sksp0332" :hint #x437 (0 "DAXTER" "¡NO DEJES QUE SE APAGUEN LAS LUCES!")) -("sksp0333" :hint #x438 (0 "DAXTER" "ALCANZA UN CRISTAL PARA QUE ESTO SE ILUMINE.")) -("sksp0334" :hint #x439 (0 "DAXTER" "¡CORRE! ¡¡ESE CRISTAL VA A EXPLOTAR!!")) -("sksp0335" :hint #x43a (0 "DAXTER" "EH, HAN ENCONTRADO UN ROBOT PRECURSOR.")) -("sksp0336" :hint #x43b (0 "DAXTER" "¡REVIENTA LOS HUEVOS ANTES DE QUE SE ABRAN!")) -("sksp0337" :hint #x43c (0 "DAXTER" "ESTO ME DA MIEDO...")) -("sksp0338" :hint #x43d (0 "DAXTER" "PARECE QUE LAS TELARAÑAS SE ROMPEN DESPUÉS DE DOS REBOTES.")) -("sksp0339" :hint #x43e (0 "DAXTER" "ODIO LAS ARAÑAS...")) -("sksp0340" :hint #x43f (0 "DAXTER" "¡VIENEN ARAÑAS RECIÉN NACIDAS!")) -("sksp0341" :hint #x440 (0 "DAXTER" "¡CREO QUE ESTAMOS EN UN NIDO DE ARAÑAS!")) -("sksp0342" :hint #x441 (0 "DAXTER" "¡CUIDADO! ¡MÁS ARAÑAS!")) -("sksp0343" :hint #x442 (0 "DAXTER" "¡¡¡VAMONOS DE AQUIIIIIIIII!!!")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (58 "DAXTER" "¡EH! ¿DÓNDE ESTÁ EL VIEJO, BAJITO, VERDE Y ARRUGADO?") - (140) - (150 "KEIRA" "¡ES ESPANTOSO! ¡MI PADRE HA DESAPARECIDO!") - (228 "KEIRA" "¡ES POSIBLE QUE GOL Y MAIA LO HAYAN RAPTADO A ÉL TAMBIÉN!") - (320 "DAXTER" "RELÁJATE, CIELO. TENGO TODO BAJO CONTROL.") - (450 "KEIRA" "¡¿BAJO CONTROL?! ¡LOS BATALLONES DE LURKERS SIGUEN MULTIPLICÁNDOSE!") - (594 "KEIRA" "¡HAN RAPTADO A LOS SABIOS!") - (640 "KEIRA" "¡GOL Y MAIA HAN JUNTADO SUFICIENTE ECO PARA LLEVAR A CABO SU ESPANTOSO PLAN!") - (760 "KEIRA" "Y PARA DETENERLOS, ¡TENDRÉIS QUE LUCHAR PARA ABRIROS PASO POR SU CIUDADELA!") - (870) - (888 "DAXTER" "AAMM...AM...SÍ...ESO...EJEM, LO...RESUME TODO.") - (1014 "KEIRA" "¡TENÉIS QUE RESCATAR A MI PADRE ANTES DE QUE SEA DEMASIADO TARDE!") - (1120 "KEIRA" "Y, ¡JAK!...TENED CUIDADO.") - (1186) - (1200 "DAXTER" "¡SÍ, SÍ! ¡LO...TENDREMOS!") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "¡JEJE! ¡MUY BIEN!") - (48 "KEIRA" "CON ESTAS BATERÍAS ADICIONALES, EL ESCUDO TÉRMICO DEBERÍA TENER ") - (160 "KEIRA" "LA SUFICIENTE ENERGÍA COMO PARA RESISTIR LA LAVA.") - (236 "KEIRA" "PERO EL ESCUDO TAMBIÉN TIENE SUS LÍMITES.") - (294 "KEIRA" "AHORA PUEDE RESISTIR HASTA 800 GRADOS DE TEMPERATURA, PERO NI UNO MÁS.") - (400 "KEIRA" "ASÍ QUE TENDRÉIS QUE VIGILAR EL INDICADOR.") - (470 "KEIRA" "NO QUIERO NI PENSAR QUÉ LE PASARÍA AL ZOOMER SI EL ESCUDO NO AGUANTA.") - (590) - (620 "DAXTER" "SÍ, EL CALOR...") - (660) - (672 "DAXTER" "¡¿QUÉ?! ¡¿EL ZOOMER?! ¡EHH! ¡¿Y NOSOTROS QUÉ?!") - (768) - (790 "DAXTER" "¿NO CREES QUE PODRÍAMOS ENCONTRAR UN CAMINO") - (820 "DAXTER" "¿MÁS SEGURO PARA LLEGAR A LA CIUDADELA DE GOL?") - (886) - (886) - (900 "KEIRA" "...ESCUCHAD. HE SOLTADO MÁS GLOBOS REFRIGERANTES EN EL CONDUCTO.") - (990 "KEIRA" "LOS PODÉIS USAR PARA MANTENER BAJA LA TEMPERATURA.") - (1090 "KEIRA" "Y NO OLVIDÉIS ACTIVAR LA PUERTA TELETRANSPORTADORA") - (1150 "KEIRA" "EN EL LABORATORIO DEL SABIO AMARILLO.") - (1190 "KEIRA" "¡CONTAMOS CON VOSOTROS!") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "O NOS DAMOS PRISA, O ESTAMOS PERDIDOS.")) -("sksp0365" :hint #x703 (0 "DAXTER" "ESCOGE UN CAMINO, ¡CUALQUIERA!")) -("sksp0366" :hint #x704 (0 "DAXTER" "¡DISPARA A LAS MINAS, O ESQUÍVALAS, JAK!")) -("sksp0367" :hint #x705 (0 "DAXTER" "ABRETE A PASO A TRAVÉS DE LOS BARRILES DE ECO OSCURO.")) -("sksp0368" :hint #x706 (0 "DAXTER" "NO DEJES DE CHOCAR CONTRA LOS GLOBOS REFRIGERANTES.")) -("sksp0369" :hint #x707 (0 "DAXTER" "¡NOS ESTAMOS SOBRECALENTANDO!")) -("sksp0370" :hint #x708 (0 "DAXTER" "¡ESTO VA A EXPLOTAR!")) -("sksp0371" :hint #x709 (0 "DAXTER" "¡DIRÍGETE AL ECO AZUL, JAK!")) -("sksp0372" :hint #x70a (0 "DAXTER" "DISPARA PARA ABRIRTE PASO.")) -("sksp0373" :hint #x70b (0 "DAXTER" "¡YUUUJUUU! ¡VAYA VIAJE!")) -("sksp0374" :hint #x70c (0 "DAXTER" "¡SÍ! ¡ASÍ SE GIRA, SÍ SEÑOR!")) -("sksp0375" :hint #x70d (0 "DAXTER" "DISPARA A LAS ESPERAS ENERGÉTICAS PARA ABRIR LA PUERTA.")) -("sksp0376" :hint #x70e (0 "DAXTER" "¡DISPARA A LAS ESFERAS ENERGÉTICAS ANTES DE QUE NOS QUEMEMOS!")) -("sksp0379" :hint #x711 (0 "DAXTER" "¡EEEEEEEN MARCHAAAA!")) -("sksp0380" :hint #x712 (0 "DAXTER" "¡LO HEMOS CONSEGUIDO!")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (63 "SABIO AZUL" "¡BUEN TRABAJO, CHICOS! ¡SAMOS TENÍA RAZÓN SOBRE VOSOTROS!") - (162) - (165 "SABIO AZUL" "¡POR TODOS LOS PRECURSOR!") - (253 "SABIO AZUL" "¡NO DEBEMOS PERMITIR QUE ESA ABERRACIÓN MECÁNICA DESATE EL CAOS!") - (420 "SABIO AZUL" "INTENTARÉ ACTIVAR EL ESCUDO CREANDO UN CONDUCTO ENERGÉTICO") - (563 "SABIO AZUL" "ENTRE MÍ...Y EL ENORME PORTAL QUE HAY ABAJO.") - (666 "DAXTER" "AAAMM...SÍ. HAZLO. NOSOTROS...EMMMM...IREMOS A BUSCAR MÁS AYUDA...") - (873) - (891 :offscreen "DAXTER" "¡¡TÍO RARO!!") - (980) - ) - -("green-sagecage-introduction" - (130 "SAMOS" "¡YA ERA HORA DE QUE DIÉRAIS SEÑALES DE VIDA!") - (207 "DAXTER" "TAMBIÉN ESTAMOS ENCANTADOS DE VERTE. ¿AHORA...TE DEDICAS A FREGAR SUELOS?") - (343 "SAMOS" "NO HAY TIEMPO PARA BROMITAS, DAXTER. GOL Y MAIA NOS RAPTARON.") - (477 "SAMOS" "PARA ARREBATARNOS NUESTRAS FUERZAS Y ALIMENTAR A SU TERRORÍFICA MÁQUINA.") - (574) - (577 :offscreen "SAMOS" "PARECE SER QUE HAN COMBINADO LOS RESTOS ÚTILES DE UN ROBOT PRECURSOR") - (710 :offscreen "SAMOS" "CON ARTEFACTOS RECOGIDOS POR AQUÍ Y ALLÁ.") - (800) - (803 :offscreen "SAMOS" "Y HAN AÑADIDO UNOS CUANTOS TOQUES DIABÓLICOS DE SU COSECHA,") - (921 :offscreen "SAMOS" "CREANDO LA ÚNICA COSA CAPAZ DE ABRIR LOS SILOS DE ECO OSCURO.") - (1060 "SAMOS" "SI LOGRÁIS LIBERARNOS A LOS CUATRO, USAREMOS NUESTROS PODERES COMBINADOS") - (1180 "SAMOS" "PARA ROMPER EL ESCUDO DE FUERZA QUE RODEA AL ROBOT,") - (1210 "SAMOS" "ANTES DE QUE LO USEN PARA DESTRUIR EL MUNDO.") - ) - -("green-sagecage-outro-preboss" - (56 "GOL" "HAS LLEGADO DEMASIADO TARDE, SAMOS.") - (125 "GOL" "CUANDO POSEA INFINITO ECO OSCURO, TENDRÉ LA LLAVE DE LA CREACIÓN.") - (335 "SAMOS" "¡¡ES UNA LOCURA!! ¡AL LIBERAR TODO ESE ECO OSCURO DESTRUIRÉIS ABSOLUTAMENTE TODO!") - (504 "SAMOS" "¡FIJAOS EN LO QUE OS HA HECHO A VOSOTROS!") - (578) - (581 "MAIA" "NOS HA DADO UNA BELLEZA QUE TU INTELECTO NO LLEGA A COMPRENDER.") - (693) - (696 "DAXTER" "¿BELLEZA...? ¿OS...HABÉIS MIRADO AL ESPEJO ÚLTIMAMENTE?") - (825) - (828 "MAIA" "ESPERA A QUE ABRAMOS LOS SILOS, CHIQUITÍN. AÑORARÁS EL ASPECTO QUE TIENES AHORA.") - (1030 "GOL" "Y PENSAR QUE HABÉIS LLEGADO HASTA AQUÍ BUSCANDO MI AYUDA...") - (1180 "GOL" "¡¡TONTOS!! ¡¡DISFRUTAD DE LA REMODELACIÓN DEL MUNDO EN PRIMERA FILA!!") - (1391) - (1605 "SAMOS" "¡JAK! ¡SUBE EN EL ASCENSOR Y DETÉN A ESE ROBOT!") - ) - -("green-sagecage-resolution" - (35 "SAMOS" "¡BUEN TRABAJO, MUCHACHOS! AHORA SÍ QUE SOIS UNOS HÉROES.") - (158 "SAMOS" "COMBINARÉ MI PODER DE ECO VERDE CON LOS DE LOS OTROS TRES SABIOS") - (280 "SAMOS" "Y JUNTOS ABRIREMOS EL ESCUDO QUE RODEA AL ROBOT PRECURSOR.") - (405 "DAXTER" "¡SÍ, SÍ! PARECE UN BUEN COMIENZO.") - (457 "DAXTER" "Y...¿QUÉ VAIS A HACER CON EL ROBOT, DESPUÉS DE HABER ABIERTO EL ESCUDO?") - (576 "SAMOS" "NADA, DAXTER. NOSOTROS TENEMOS QUE MANTENER EL ESCUDO ABIERTO.") - (705 "SAMOS" "TENDRÉIS QUE AVERIGUAR LA FORMA DE DESTRUIR AL ROBOT.") - (823 "DAXTER" "OHH...GENIAL...ME TOCA AYUDAR AL TIPO QUE ME CONVIRTIÓ EN UNA BOLA DE PELOS") - (983 "DAXTER" "¡A DESTRUIR A LA ÚNICA PERSONA QUE PUEDE DEVOLVERME MI FORMA!") - (1111) - (1161 "SAMOS" "¡PRIMERO, SALVAD EL MUNDO!") - (1250 "SAMOS" "LUEGO TRATAREMOS DE CONVENCER A GOL PARA QUE AYUDE A DAXTER.") - ) - -("redsage-resolution" - (58 "SABIO ROJO" "(RISAS) POR FIN VENÍS A RESCATARME.") - (190 "SABIO ROJO" "¿SABÉIS CUÁNTO TIEMPO LLEVO AQUÍ? ¿POR QUÉ HABÉIS TARDADO TANTO? (RISAS)") - (378 "SABIO ROJO" "¿CÓMO OS LLAMÁIS?") - (429) - (432 "DAXTER" "¡SOY DAXTER! ÉL ES JAK, VIENE CONMIGO.") - (540 :offscreen "SABIO ROJO" "BUEN TRABAJO, DAXTER. ERES TOOODO UN HÉROE.") - (677) - (703 "SABIO ROJO" "TENÉIS QUE EVITAR QUE GOL ACTIVE EL ROBOT.") - (837 "SABIO ROJO" "OS AYUDARÉ A ABRIR EL ESCUDO CON MI PODER DE ECO.") - ) - -("yellowsage-resolution" - (57 "SABIO AMARILLO" "¿QUIÉN HABRÍA DICHO QUE VIVIRÍA PARA VER") - (137 "SABIO AMARILLO" "CÓMO ME RESCATAN UN CHICO Y SU COMADREJA?") - (271 "SABIO AMARILLO" "MMMMM...VOY A DAR A GOL Y A MAIA SU MERECIDO POR PASAR ESTE BOCHORNO.") - (471) - (480 "SABIO AMARILLO" "Y DESPUÉS, VEREMOS SI...COCINAMOS UN ESTOFADO DE...COMADREJA.") - (610) - ) - -("BLU-AM01" :hint #x0 (0 "SABIO AZUL" "¡NO ME VENDRÍA MAL UN POCO DE AYUDA!")) -("BLU-AM02" :hint #x0 (0 "SABIO AZUL" "MENUDO DESASTRE TENEMOS AQUÍ.")) -("BLU-AM03" :hint #x0 (0 "SABIO AZUL" "VAYA, ESTO ES TODO UN ENIGMA.")) -("RED-AM01" :hint #x0 (0 "SABIO ROJO" "¿HAY ALGUIEN AHÍ?")) -("RED-AM02" :hint #x0 (0 "SABIO ROJO" "BIEN...")) -("RED-AM03" :hint #x0 (0 "SABIO ROJO" "¿POR QUÉ HABÉIS TARDADO?")) -("YEL-AM01" :hint #x0 (0 "SABIO AMARILLO" "¡EL TIEMPO SE AGOTA!")) -("YEL-AM02" :hint #x0 (0 "SABIO AMARILLO" "¡EEH! ¡¡SACADME DE AQUÍ!!")) -("YEL-AM03" :hint #x0 (0 "SABIO AMARILLO" "CUANDO SALGA DE AQUÍ ¡¡ALGUIEN SE VA A ENTERAR!!")) -("sksp0381" :hint #x806 (0 "DAXTER" "¡ROMPE EL GENERADOR PARA LIBERAR AL SABIO!")) -("sksp0382" :hint #x807 (0 "DAXTER" "¡AGUANTA EN EL BORDE!")) -("sksp0383" :hint #x808 (0 "DAXTER" "TENEMOS COMPAÑÍA, JAK. ¡MONTONES DE LURKERS!")) -("sksp0384" :hint #x809 (0 "DAXTER" "¡DESTRUYE LOS GENERADORES!")) -("sksp0385" :hint #x80a (0 "DAXTER" "¡PULSA EL BOTÓN!")) -("sksp0386" :hint #x80b (0 "DAXTER" "¡ESE ROBOT NO ME DA MIEDO!")) -("sksp0387" :hint #x80c (0 "DAXTER" "¡SUBAMOS A ESAS PLATAFORMAS!")) -("sksp0388" :hint #x80d (0 "DAXTER" "¡QUE NO SE TE ESCAPE EL PRÓXIMO LANZADOOOOOR!")) -("sksp0389" :hint #x80e (0 "DAXTER" "¡CUIDADO!")) -("sksp0390" :hint #x80f (0 "DAXTER" "TENEMOS QUE RESCATAR A TODOS LOS SABIOS.")) -("sksp0391" :hint #x810 (0 "DAXTER" "¿TÚ CREES QUE GOL ME DEVOLVERÁ MI ASPECTO?")) -("sksp0392" :hint #x811 (0 "DAXTER" "ASÍ QUE ESTA ES LA CIUDADELA DE GOL Y MAIA. ¡QUÉ MOOONA!")) -("sksp0393" :hint #x812 (0 "DAXTER" "¡ATERRIZA EN EL PRÓXIMO LANZADOR!")) -("sksp0378" :hint #x813 (0 "DAXTER" "LA PUERTA ESTÁ ABIERTA, ¡VÁMONOS!")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (163 :offscreen "GOL" "¡ECO LUMINOSO! ¡¡EXISTE!!") - (268 :offscreen "MAIA" "¡¡NO DEJÉIS QUE LO COJAN!!") - ) - -("green-sagecage-daxter-sacrifice" - (0 "DAXTER" "¡¡SANTO ECO!! ¡¡ESO ME PODRÍA DEVOLVER MI ASPECTO!!") - (114) - (123 "DAXTER" "MMMMM...Y TAMBIÉN...DETENER AL ROBOT.") - (235) - (274 "DAXTER" "MMMMM...VAYA...¿SEGUIR PELUDO...? ¡SALVAR EL MUNDO...!") - (404) - (437 "DAXTER" "VEAAAMOS, VAAALE ¡MUY BIEN! ¡SALVAREMOS EL MUNDO!") - (500 "DAXTER" "¡PERO RAPIDITO! ANTES DE QUE CAMBIE DE IDEA ¿EH? (RISAS)") - (634) - ) - -("green-sagecage-outro-beat-boss-a" - (165 :offscreen "MAIA" "¡¡HAZ ALGO!!") - (216) - (596 :offscreen "GOL" "¡¡NOOOOOOOO!!") - ) - -("green-sagecage-outro-beat-boss-b" - (522 "SAMOS" "BIEN, PARECE QUE HE SIDO DEMASIADO DURO CON VOSOTROS.") - (640 "SAMOS" "¡SÍ QUE TENÉIS MADERA DE HÉROES!") - (745) - (751 "KEIRA" "PERO DAXTER...¡AHORA NO PODEMOS CAMBIARTE!") - (845) - (847 "DAXTER" "NO TE PREOCUPES POR MÍ, NENA.") - (930 "DAXTER" "YA SABES QUE...LAS GRANDES ESENCIAS...VIENEN EN FRASCOS PEQUEÑOS.") - (1096) - (1100 "SABIO AZUL" "JAK, ¡TIENES UN DON INCREÍBLE PARA CANALIZAR EL ECO!") - (1219) - (1222 "SABIO AZUL" "SAMOS, ¡NO TE HABÍAS EQUIVOCADO SOBRE ÉL DESPUÉS DE TODO!") - (1321) - (1323 "SABIO ROJO" "Y KEIRA, SIN TU AYUDA E INGENIO, NADA DE ESTO HABRÍA SIDO POSIBLE.") - (1515 "SABIO ROJO" "(RISAS) TAL VEZ TENGAMOS ENTRE NOSOTROS A OTRO SABIO,") - (1600 "SABIO ROJO" "AHORA QUE GOL Y MAIA NO ESTÁN...") - (1728) - (1731 "SAMOS" "SÍ, GOL Y MAIA...ES PROBABLE QUE EL ECO OSCURO LOS HAYA DESTRUÍDO.") - (1916 :offscreen "SAMOS" "ES PROBABLE...") - (1999) - (2003 "DAXTER" "¡BAAH! ¿QUÉ MÁS DA? ¡QUE VENGAN Y LOS DERROTAREMOS DE NUEVO! ¿VERDAD, JAK?") - (2168) - (2172 "DAXTER" "EEMMMMM...¿JAK?") - (2256) - (2302 "DAXTER" "¡GUAAAU! ¡UN POCO DE HIELO PARA ESTE!") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (151 "SAMOS" "¡SANTO ECO! ¿QUÉ SERÁ ESO?") - (247 "KEIRA" "¡GUAAU! ¡ES UNA ANTIGUA PUERTA PRECURSOR!") - (342 :offscreen "KEIRA" "PARECE QUE SOLO SE ABRE LLENANDO LOS 100 AGUJEROS...DE BATERÍAS.") - (485 "DAXTER" "¡EJEEEM! SOMOS HÉROES, ¿RECUERDAS? ¡YA TENEMOS 100 BATERÍAS!") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (151 "SAMOS" "¡SANTO ECO! ¿QUÉ SERÁ ESO?") - (247 "KEIRA" "¡GUAAU! ¡ES UNA ANTIGUA PUERTA PRECURSOR!") - (342 :offscreen "KEIRA" "PARECE QUE SOLO SE ABRE LLENANDO LOS 100 AGUJEROS...DE BATERÍAS.") - (485 "DAXTER" "¡VAAAYA! ¡ALLÁ VAAMOS OTRA VEEEEZ!") - ) - -("green-sagecage-outro-big-finish" - (322 "DAXTER" "¡GUAAAU! ¿QUÉ ES?") - (425) - (428 "KEIRA" "ES...TAN BONITO...") - (516) - (519 "SAMOS" "¡POR TODOS LOS PRECURSOR!") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "NO PENSÁIS RENDIROS, ¿VERDAD?")) -("GOL-AM02" :hint #x0 (0 "GOL" "¡EL ECO OSCURO PRONTO SERÁ NUESTRO!")) -("GOL-AM03" :hint #x0 (0 "GOL" "¡ACABAD CON ELLOS!")) -("GOL-AM04" :hint #x0 (0 "GOL" "¡FUEEEGOO!")) -("GOL-AM05" :hint #x0 (0 "GOL" "¡PULVERIZADLOOS!")) -("GOL-AM06" :hint #x0 (0 "GOL" "¿QUÉ...? ¡¿OTRA VEZ ELLOS!?")) -("GOL-AM07" :hint #x0 (0 "GOL" "¡ES DEMASIADO TARDE!")) -("GOL-AM08" :hint #x0 (0 "GOL" "¡SOIS MÍOS!")) -("GOL-AM09" :hint #x0 (0 "GOL" "¡YA OS TENGO!")) -("GOL-AM10" :hint #x0 (0 "GOL" "(RISAS)")) -("GOL-AM11" :hint #x0 (0 "GOL" "¡SIN PIEDAD!")) -("GOL-AM12" :hint #x0 (0 "GOL" "¡TOMA YA!")) -("GOL-AM13" :hint #x0 (0 "GOL" "¡BUEN INTENTO!")) -("GOL-AM14" :hint #x0 (0 "GOL" "¡QUIETECIITOOS!")) -("GOL-AM15" :hint #x0 (0 "GOL" "¡QUÉ PATÉTICO!")) -("GOL-AM16" :hint #x0 (0 "GOL" "¡NOOOOOOO!")) -("GOL-AM17" :hint #x0 (0 "GOL" "¡AAAHHH!")) -("GOL-AM18" :hint #x0 (0 "GOL" "¡ABRIREMOS EL SILO DEL TODO Y OS DESTRUIREMOS A LOS DOS!")) -("GOL-AM19" :hint #x0 (0 "GOL" "¡ECO LUMINOSO! ¡¡EXISTE!!")) -("GOL-AM20" :hint #x0 (0 "GOL" "¡NO VAMOS A ACEPTARLO!")) -("MAI-AM01" :hint #x0 (0 "MAIA" "¡ACABAD CON ELLOS DE UNA VEZ!")) -("MAI-AM02" :hint #x0 (0 "MAIA" "¡LIQUIDADLOS!")) -("MAI-AM03" :hint #x0 (0 "MAIA" "(RISAS)")) -("MAI-AM04" :hint #x0 (0 "MAIA" "¡EL ECO YA NO OS PROTEGERÁ!")) -("MAI-AM05" :hint #x0 (0 "MAIA" "¡HACED ALGO!")) -("MAI-AM06" :hint #x0 (0 "MAIA" "¡AAAHHH!")) -("MAI-AM07" :hint #x0 (0 "MAIA" "¡NOOOOOOOOOOOOOO!")) -("MAI-AM08" :hint #x0 (0 "MAIA" "¡ABRIREMOS EL SILO DEL TODO Y OS DESTRUIREMOS A LOS DOS!")) -("MAI-AM09" :hint #x0 (0 "MAIA" "¡¡NO DEJÉIS QUE LO COJAN!!")) -("sksp0394" :hint #x0 (0 "DAXTER" "¡ATRAPA EL ECO AMARILLO!")) -("sksp0395" :hint #x0 (0 "DAXTER" "¡DISPARA AL ROBOT, JAK!")) -("sksp0396" :hint #x0 (0 "DAXTER" "¡DISPÁRALE AL BRAZO!")) -("sksp0397" :hint #x0 (0 "DAXTER" "¡DISPARA A SU ARMA!")) -("sksp0398" :hint #x0 (0 "DAXTER" "¡DISPÁRALE A LA CABEZA!")) -("sksp0399" :hint #x0 (0 "DAXTER" "¡CUIDADO CON LA EXPLOSIÓN!")) -("sksp0400" :hint #x0 (0 "DAXTER" "¡SE ESTÁ RECARGANDO!")) -("sksp0401" :hint #x0 (0 "DAXTER" "¡RECOGE ECO AZUL!")) -("sksp0402" :hint #x0 (0 "DAXTER" "¡RECOGE ECO ROJO!")) -("sksp0403" :hint #x0 (0 "DAXTER" "¡ESTO ME DA MUY MAAAALA ESPINA!")) -("sksp0404" :hint #x0 (0 "DAXTER" "USA EL LANZADOR, ¡DEPRISA!")) -("sksp0405" :hint #x0 (0 "DAXTER" "¡AHORA SÍ QUE HAS ENFADADO AL ANIMAL!")) -("sksp0406" :hint #x0 (0 "DAXTER" "¡NO PODEMOS TOCAR A ESTOS TIPOS!")) -("sksp0407" :hint #x0 (0 "DAXTER" "¡USA EL ECO AMARILLO!")) -("sksp0408" :hint #x0 (0 "DAXTER" "¡DISPARA A ESTOS TIPOS!")) -("sksp0409" :hint #x0 (0 "DAXTER" "¡RECOGE EL ECO CLARO, JAK!")) -("sksp0410" :hint #x0 (0 "DAXTER" "PARECE MUY ENFADADO.")) -("sksp0411" :hint #x0 (0 "DAXTER" "¡SALTA PARA EVITAR LAS EXPLOSIONES!")) -("sksp0412" :hint #x0 (0 "DAXTER" "¡AHORA MANDAMOS NOSOTROS!")) -("sksp0413" :hint #x0 (0 "DAXTER" "¡BUENA PUNTERÍA, SOCIO!")) -("sksp0414" :hint #x0 (0 "DAXTER" "¡ESO LES HA DOLIDO!")) -("sksp0415" :hint #x0 (0 "DAXTER" "¡AQUÍ VIENE!")) -("sksp0416" :hint #x0 (0 "DAXTER" "¡SII! ¡LO HAS CONSEGUIDO!")) -("sksp0417" :hint #x0 (0 "DAXTER" "GOL Y MAIA, ¡SE ACABÓ LO QUE ES BUENO!")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "ESTAMOS ESPERANDO. ¿HOLA...?")) -("sksp0449" :hint #x0 (0 "DAXTER" "PULSA EL BOTÓN \"START\" PARA JUGAR.")) -("sksp0450" :hint #x0 (0 "DAXTER" "¿QUIERES DEJAR DE JUGAR?")) -("sksp0451" :hint #x0 (0 "DAXTER" "YA DECÍA YO.")) -("sksp0452" :hint #x0 (0 "DAXTER" "MUY BIEN, HASTA LUEGO.")) -("sksp0455" :hint #x0 (0 "DAXTER" "TÍO, ¿QUIÉNES SON TODOS ESTOS?")) -("sksp0466" :hint #x0 (0 "DAXTER" "LO HE HECHO DE MIEDO ¿VERDAD, CHICAS?")) - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/game_subtitle_fr.gd b/game/assets/jak1/subtitle/game_subtitle_fr.gd deleted file mode 100644 index 4e0bc9c522..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_fr.gd +++ /dev/null @@ -1,2688 +0,0 @@ -(language-id 1) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (18 :offscreen "SAMOS" "J'AI PASSÉ MA VIE À CHERCHER LES RÉPONSES QUE MON PÈRE") - (164 :offscreen "SAMOS" "ET SES ANCÊTRES NE SONT PAS PARVENUS À TROUVER.") - (282) - (290 :offscreen "SAMOS" "QUI ÉTAIENT LES PRÉCURSORS ?") - (354 :offscreen "SAMOS" "POURQUOI ONT-ILS CRÉÉ CES IMMENSES MONOLITHES QUI JONCHENT NOTRE PLANÈTE ?") - (462) - (465 :offscreen "SAMOS" "COMMENT ONT-ILS MAITRISÉ L'ÉCO ? L'ÉNERGIE VITALE DU MONDE.") - (578) - (582 :offscreen "SAMOS" "QUEL ÉTAIT LEUR BUT ? ET POURQUOI ONT-ILS DISPARU ?") - (708) - (720 :offscreen "SAMOS" "J'AI DEMANDÉ AUX PLANTES, MAIS ELLES NE S'EN SOUVIENNENT PAS.") - (826 :offscreen "SAMOS" "LES PLANTES ONT DEMANDÉ AUX PIERRES MAIS LES PIERRES NE S'EN SOUVIENNENT PAS") - (962 :offscreen "SAMOS" "MÊME LES PIERRES NE S'EN SOUVIENNENT PAS...") - (1064) - (1087 :offscreen "SAMOS" "TOUT EN MOI ME DIT QUE LES RÉPONSES") - (1186 :offscreen "SAMOS" "REPOSENT SUR LES ÉPAULES D'UN JEUNE GARÇON") - (1270 :offscreen "SAMOS" "QUI SE DÉSINTÉRESSE DE SA DESTINÉE, DE LA RECHERCHE DE LA VÉRITÉ") - (1423 :offscreen "SAMOS" "ET QUI REJETTE MES CONSEILS !") - (1536) - (1542 :offscreen "SAMOS" "D'AILLEURS, POURQUOI VOUDRAIT-IL ÉCOUTER LE VIEUX SAMOS LE SAGE ?") - (1677) - (1683 :offscreen "SAMOS" "JE NE SUIS QUE LE MAÎTRE DE L'ÉCO VERTE") - (1752 :offscreen "SAMOS" "ET L'UN DES HOMMES LES PLUS SAGES DE LA PLANÈTE !") - (1872) - (1962 :offscreen "SAMOS" "IL SEMBLERAIT DONC QUE LA RÉPONSE NE SERA PAS") - (2074 :offscreen "SAMOS" "TROUVÉE À FORCE DE RECHERCHE OU DE RÉFLEXION.") - (2182) - (2188 :offscreen "SAMOS" "NON. AUSSI ÉTONNANT QUE CELA PARAISSE,") - (2292 :offscreen "SAMOS" "TOUT COMMENCE PAR UN ACTE DE DÉSOBÉISSANCE.") - (2440 "DAXTER" "HÉ ! EUH... JAK, LE P'TIT VIEUX TOUT VERT NOUS A DIT DE NE PAS VENIR ICI !") - ) - -("sage-intro-sequence-d1" - (137 "SAMOS" "SACREVERT ! QUE VOULEZ-VOUS TOUT LES DEUX ?") - (220 "DAXTER" "NOUS- ON A- IL Y AVAIT- AVAIT-") - (286 "SAMOS" "LAISSEZ-MOI DEVINER, PLUTÔT QUE DE SUIVRE MES CONSEILS") - (395 "SAMOS" "VOUS ÊTES ALLÉS PATAUGER AU SEUL ENDROIT OÙ JE VOUS AVAIS DIT DE NE PAS ALLER:") - (498 "SAMOS" "L'ÎLE DE LA BRUME !") - (550 "DAXTER" "C'EST ÇA ! ET PUIS APRÈS-") - (588 "SAMOS" "ET DAXTER, TU AS FINALEMENT PRIS LE BAIN QU'IL TE FALLAIT") - (700 "SAMOS" "MAIS DANS UNE BAIGNOIRE PLEINE D'ÉCO NOIRE.") - (795 "DAXTER" "ÉCOUTEZ MON VIEUX ! VOUS ALLEZ CONTINUER À RADOTER") - (860 "DAXTER" "OU EST-CE QUE VOUS ALLEZ ME SORTIR DE CE BAZAR ?!") - (920 "SAMOS" "JE VAIS CONTINUER À RADOTER ! PARCE QUE SELON MON POINT DE VUE PROFESSIONNEL") - (1018 "SAMOS" "TOUT CHANGEMENT EST UNE AMÉLIORATION !") - (1079 "SAMOS" "DE PLUS... MÊME SI JE LE VOULAIS, JE NE POURRAIS PAS T'AIDER.") - (1186 "DAXTER" "QUOI !?") - (1220 "SAMOS" "IL N'Y A QU'UNE SEULE PERSONNE QUI AIT ÉTUDIÉ L'ÉCO NOIRE ASSEZ LONGTEMPS") - (1334 "SAMOS" "POUR AVOIR UNE CHANCE DE TE RENDRE TA FORME ORIGINALE") - (1431 "SAMOS" "GOL ACHERON, LE SAGE.") - (1493) - (1493 :offscreen "SAMOS" "MAIS IL VIT DANS LE NORD. LOIN, LOIN TOUT AU NORD.") - (1620 :offscreen "SAMOS" "PERSONNE NE LUI A PARLÉ DEPUIS DES LUSTRES.") - (1707 "SAMOS" "JE TE TÉLÉPORTERAI BIEN LÀ-BAS MAIS JE NE PEUX PAS FAIRE ÇA NON PLUS.") - (1829 "SAMOS" "PUISQUE AUCUN DES 3 SAGES CHARGÉS DES PORTES DE TÉLÉPORTATION") - (1934 "SAMOS" "N'A JUGÉ BON DE LES ACTIVER DEPUIS LONGTEMPS.") - ) - -("sage-intro-sequence-d2" - (3 "SAMOS" "LE SEUL AUTRE CHEMIN VERS LE NORD PASSE PAR LE CANYON DE FEU MAIS") - (107 :offscreen "SAMOS" "SON SOL VOLCANIQUE BRÛLANT FERAIT FONDRE DU MÉTAL PRÉCURSOR.") - (218 "SAMOS" "IMPOSSIBLE DE LE TRAVERSER À PIED !") - (268 "KEIRA" "MAIS VOUS POURRIEZ LE SURVOLER SI VOUS AVIEZ UN ZOOMER AVEC UN BOUCLIER THERMIQUE !") - (390) - (392 "KEIRA" "JUSTEMENT, JE TRAVAILLE ACTUELLEMENT SUR UN TEL ÉQUIPEMENT !") - (478) - (480 "KEIRA" "IL ME FAUT JUSTE 20 PILES D'ÉNERGIE POUR L'ALIMENTER ET") - (578 "KEIRA" "POUR QU'IL RÉSISTE À LA CHALEUR DU CANYON. N'EST-CE PAS PAPA ?") - (696) - (699 "SAMOS" "OUI, KEIRA. CELA POURRAIT MARCHER.") - (828 "SAMOS" "MAIS OÙ UN GARÇON ET DEMI VA TROUVER 20 PILES D'ÉNERGIE ?") - (910 "KEIRA" "AUPRÈS DES VILLAGEOIS. LA PLUPART POSSÈDENT") - (991 "KEIRA" "UNE OU DEUX PILES D'ÉNERGIE CACHÉES QUELQUE PART.") - (1065 :offscreen "KEIRA" "ET MÊME S'ILS NE VEULENT PAS LES DONNER, IL SUFFIRA DE LEUR") - (1154 "KEIRA" "GRAISSER LA PATTE AVEC QUELQUES ORBES PRÉCURSORS POUR LES CONVAINCRE.") - (1253) - (1262 :offscreen "KEIRA" "ET JE SUIS SÛRE QU'IL Y EN A QUELQUES UNES DE PLUS DANS LA NATURE") - (1368 "KEIRA" "QUI N'ATTENDENT QUE DE BRAVES AVENTURIERS.") - (1435 "DAXTER" "EH BIEN ! ON A LE BRAVE AVENTURIER AU MOINS.") - (1529) - (1532 "SAMOS" "\"BRAVE AVENTURIER\" ?") - (1582 "SAMOS" "VOUS NE POURRIEZ MÊME PAS SORTIR DU VILLAGE SANS ENTRAINEMENT !") - (1685) - (1689 "SAMOS" "AVANT DE FAIRE QUOIQUE CE SOIT, ENTREZ DANS LE TÉLÉPORTEUR POUR ALLER") - (1810 "SAMOS" "VOUS ENTRAINER AU ROCHER DU GEYSER !") - (1872) - (1878 "DAXTER" "EUH... IL N'Y AURA PAS DE CETTE SALETÉ D'ÉCO NOIRE J'ESPÈRE.") - (1993 "DAXTER" "PARCE QUE JE N'AIMERAIS PAS Y RETOMBER ET FINIR COMME VOUS !") - (2069) - (2072 "SAMOS" "RENTREZ LÀ-DEDANS AVANT QUE JE NE VOUS CHANGE EN FOUGÈRE !") - (2189) - ) - -("sage-intro-sequence-e" - (200 "SAMOS" "BON ENTRAINEMENT MES GARÇONS !") - (257 "SAMOS" "MAIS CE N'EST RIEN COMPARÉ À CE QUI VOUS ATTEND.") - (359 "DAXTER" "AH, C'ÉTAIT TROP FACILE ! ON MAÎTRISE HEIN, JAK ?") - (496 "DAXTER" "ON AIMERAIT BIEN RESTER PAPOTER GRAND VERT") - (584 "DAXTER" "MAIS ÇA NOUS DÉMANGE DE PARTIR À L'AVENTURE.") - (660 "SAMOS" "BIEN, BIEN ! PARTEZ À \"L'AVENTURE\" ALORS !") - (787 "SAMOS" "ET AU COURS DE VOTRE AVENTURE, POURQUOI NE VOUS RENDRIEZ-VOUS PAS UTILE ?") - (940) - (952 :offscreen "SAMOS" "MES FICHUS COLLECTEURS D'ÉCO VERTE SONT ENCORE BOUCHÉS.") - (1043) - (1046 :offscreen "SAMOS" "ALLEZ TOUT AU BOUT DE LA PLAGE ET ESSAYEZ DE LES DÉBLOQUER !") - (1160) - (1169 :offscreen "SAMOS" "SUIVEZ BIEN LES LAMPES POUR VOUS Y RENDRE.") - (1310) - (1313 :offscreen "SAMOS" "ET MAINTENANT, VOUS TOUS...") - (1415) - (1439 :offscreen "SAMOS" "DÉBARRASSEZ-MOI LE PLANCHER !") - ) - -("sidekick-human-intro-sequence-b" - (546 "VIEIL HOMME" "CONTINUE DE CHERCHER LES OBJETS ET L'ÉCO,") - (660) - (662 "VIEIL HOMME" "SI LES GENS DU COIN POSSÈDENT DES OBJETS PRÉCURSORS, TU SAIS QUOI FAIRE !") - (819) - (839 "FEMME" "OCCUPE-TOI SÉRIEUSEMENT DE QUICONQUE S'ÉLOIGNERAIT DU VILLAGE !") - (946 "FEMME" "NOUS L'ATTAQUERONS EN TEMPS UTILE !") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (12 "DAXTER" "QU'EST-CE QU'ON FICHE ICI, JAK ? CET ENDROIT ME FAIT FLIPPER !") - (151) - (366 "DAXTER" "HEIN ?") - (402 "DAXTER" "SALETÉ DE TRUC PRÉCURSOR...") - (496) - (576 "DAXTER" "QU'EST-CE QUE C'EST QUE CETTE VASE NOIRE ? ÇA NE M'A PAS L'AIR TRÈS SYMPATHIQUE.") - (721) - (774 "DAXTER" "LE SAGE RADOTE TOUJOURS À PROPOS DES PRÉCURSORS QUI ONT CONSTRUIT CET ENDROIT") - (906 "DAXTER" "\"OÙ SONT-ILS ? POURQUOI ONT-ILS CONSTRUIT CETTE SALETÉ ?\"") - (1011 "DAXTER" "JE N'AI RIEN CONTRE LES ORBES PRÉCURSORS ET LES PILES D'ÉNERGIE") - (1115 "DAXTER" "MAIS À MON HUMBLE AVIS, C'ÉTAIT VRAIMENT DES GROS NULS.") - (1212 "DAXTER" "OUAH ! COMMENT T'AS FAIT ÇA ?") - (1271) - (1331 "DAXTER" "JAK ! JE CROIS QU'ON VA AVOIR DES ENNUIS !") - (1386) - (1857 "DAXTER" "BAH, ÇA PIQUE !") - (1913) - (1941 "DAXTER" "JE T'AVAIS DIT QU'ON AURAIT PAS DU VENIR, SI TU M'AVAIS ÉCOUTÉ-") - (2037) - (2055 "DAXTER" "QUOI ?") - (2104) - (2189 "DAXTER" "AHHHHHHHHH !") - (2307 "DAXTER" "C'EST BON, C'EST BON. ÇA VA, ÇA VA...") - (2431) - (2481 "DAXTER" "AHHHHHHHHHHHHHHHHHHHHH !") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" (0 "DAXTER" "NE VA PAS VERS LA LUMIÈRE, JAK ! NE VA PAS VERS LA LUMIÈRE !")) - -("death-0182" - (0 "DAXTER" "HÉ, JAK ! EST-CE QUE JE P-") - (55) - (68 "DAXTER" "PEUX AVOIR TA COLLECTION D'INSECTES ?") - ) - -("death-0184" - (0 "DAXTER" "TANT QUE TU ES PAR TERRE.") - (60) - (70 "DAXTER" "TU POURRAIS ME MASSER LES PIEDS ?") - ) - -("death-0186" - (0 "DAXTER" "NE T'INQUIETE PAS ! JE TE VENGERAI !") - (50) - (69 "DAXTER" "... DANS TES RÊVES.") - ) - -("death-0187" - (0 "DAXTER" "EH BIEN !") - (46) - (56 "DAXTER" "JE PRÉFÈRE QUE CE SOIT TOI, QUE MOI.") - ) - -("death-0191" - (0 "DAXTER" "ÇA A DÛ FAIRE MAL ÇA.") - (46 "DAXTER" "IL FAUT QUE J'APPELLE DU RENFORT ?") - ) - -("death-0193" - (0 "DAXTER" "PRIMO: RESTER EN VIE !") - (65 "DAXTER" "SECONDO:") - (97) - (107 "DAXTER" "ESSAYER DE NE PLUS JAMAIS REFAIRE UN TRUC COMME ÇA !") - ) - -("death-0195" - (0 "DAXTER" "J'ÉTAIS JUSTE DERRIÈRE TOI, JAK !") - (69 "DAXTER" "AH SI ! SI, J'Y ÉTAIS.") - ) - -("death-0197" - (0 "DAXTER" "PANSEMENTS ! EUH... BRANCARD !") - (62) - (72 "DAXTER" "POUAH... CHEWING-GUM ?") - ) - -("death-0199" - (0 "DAXTER" "JE DIRAI UN TRUC DÉCHIRANT À L'ENTERREMENT, DU GENRE:") - (105 "DAXTER" "\"MAIS COMMENT EST-CE QUE JE VAIS REDEVENIR NORMAL MAINTENANT ?!\"") - ) - -("death-0202" (0 "DAXTER" "DIS \"BONNE NUIT\" JAK !")) -("sksp009a" :hint #x0 (0 "DAXTER" "HA HA ! ON LUI A MONTRÉ DE QUOI ON EST FAIT.")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "ON A RÉCUPÉRÉ ASSEZ D'ORBES POUR LES ÉCHANGER CONTRE UNE PILE D'ÉNERGIE.") - (215 "DAXTER" "REVENONS FAIRE LE TROC !") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "ÇA C'EST BIZARRE !") - (105 "DAXTER" "JE SUIS SÛR QUE ÇA PEUT S'OUVRIR AVEC TON SUPER-BIDULE D'ÉCO BLEUE.") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "LA MIGNONNE PETITE KEIRA AVAIT RAISON, IL Y A DES TRANS-PADS ICI !")) -("sksp0002" :hint #x281 (0 "DAXTER" "CROIS-MOI, CES BOÎTES D'ÉCO NOIRE NE PRÉSAGENT RIEN DE BON !")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "SI ON TROUVE CES FICHUS MÉCAMOUCHES À CHAQUE NIVEAUX") - (142 "DAXTER" "IL Y EN AURA BIEN UNE QUI AURA UNE PILE D'ÉNERGIE !") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "SUPER ! UN TRÉSOR !")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "CES BOÎTES DE BOIS ET DE MÉTAL NE SONT PAS SI SOLIDES.") - (163) - (178 "DAXTER" "ELLES SE BRISERONT SI TU SAUTES EN PIQUÉ DESSUS !") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "CES BOÎTES DE MÉTAL SONT PLUS DURE QU'UN CRÂNE DE YAKOW !") - (170 "DAXTER" "MAIS ON DOIT POUVOIR LES OUVRIR AVEC QUELQUE CHOSE.") - ) - -("sksp0007" :hint #x286 - (2 "DAXTER" "2 MOTS: PILES D'ÉNERGIE") - (141 "DAXTER" "IL FAUT EN TROUVER ET ON N'EST PAS TRÈS BIEN PARTI !") - ) - -("sksp0008" :hint #x287 (0 "DAXTER" "IL NOUS FAUT DES ORBES POUR ACHETER DES PILES D'ÉNERGIE.")) -("sksp009b" :hint #x28e (0 "DAXTER" "SUPER ! ENCORE DES ORBES !")) -("sksp009c" :hint #x28f (0 "DAXTER" "FAIT MOI PLAISIR, ÉVITE CES BOÎTES D'ÉCO NOIRE !")) -("sksp009d" :hint #x290 (0 "DAXTER" "YEAH-HA-HA-HA !")) -("sksp009e" :hint #x291 (0 "DAXTER" "WA-OUH !")) -("sksp009f" :hint #x292 (0 "DAXTER" "PRENDS ÇA, PRENDS ÇA ! HA HA HA !")) -("sksp009g" :hint #x293 (0 "DAXTER" "JUSTE DERRIÈRE TOI, JAK !")) -("sksp009i" :hint #x294 (0 "DAXTER" "EST-CE QU'ON A TROUVÉ TOUTES LES MÉCAMOUCHES DANS CETTE ZONE ?")) -("sksp009j" :hint #x295 (0 "DAXTER" "HÉ, ON DIRAIT QUE LES MÉCAMOUCHES SONT TOUJOURS DANS DES BOÎTES ROUGES !")) -("sksp009k" :hint #x296 (0 "DAXTER" "BIEN JOUÉ, TU AS TROUVÉ TOUTES LES MÉCAMOUCHES DE CETTE ZONE !")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORACLE" "QUI RÉVEILLE L'ORACLE ?") - (75) - (81 "ORACLE" "ATTENDEZ ! L'UN D'ENTRE VOUS DÉTIENT LA LUMIÈRE.") - (198) - (202 "ORACLE" "DEPUIS L'ÉTERNITÉ J'ATTENDS LE RETOUR DU VÉRITABLE HÉROS.") - (388) - (390 "ORACLE" "PRÉSENTEZ-MOI 120 ORBES PRÉCURSORS") - (494 "ORACLE" "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS.") - ) - -("oracle-intro-2" - (0 "ORACLE" "ATTENTION À LA LUMIÈRE NOIRE !") - (86 "ORACLE" "ELLE A AFFECTÉ LE DESTIN DE L'UN DE VOUS DEUX.") - (171) - (184 "ORACLE" "APPORTEZ-MOI 120 ORBES PRÉCURSORS") - (286 "ORACLE" "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS.") - ) - -("oracle-intro-3" - (0 "ORACLE" "CHERCHEZ LA LUMIÈRE PURE, CAR EN SA FLAMME RÉSIDE LA RÉPONSE !") - (172) - (184 "ORACLE" "VOUS POURREZ OBTENIR MES PILES D'ÉNERGIE") - (266 "ORACLE" "EN M'APPORTANT 120 ORBES PRÉCURSORS POUR CHACUNE.") - ) - -("oracle-left-eye-1" (0 "ORACLE" "VOUS AVEZ FAIT VOS PREUVES. VOICI UNE PILE D'ÉNERGIE.")) -("oracle-left-eye-2" (0 "ORACLE" "POUR VOTRE SACRIFICE, JE VOUS OFFRE UNE PILE D'ÉNERGIE.")) -("oracle-left-eye-3" (0 "ORACLE" "POUR VOS EFFORTS, UNE PILE D'ÉNERGIE SERA VOTRE RÉCOMPENSE.")) - -("oracle-reminder-1" - (0 "ORACLE" "APPORTEZ-MOI 120 ORBES PRÉCURSORS") - (112 "ORACLE" "ET JE VOUS ACCORDERAI UNE PILE D'ÉNERGIE.") - ) - -("oracle-reminder-2" - (0 "ORACLE" "PRÉSENTEZ-MOI 120 ORBES PRÉCURSORS") - (94 "ORACLE" "ET VOUS RECEVREZ UNE PILE D'ÉNERGIE EN RÉCOMPENSE.") - ) - -("oracle-reminder-3" - (0 "ORACLE" "VOUS DEVREZ M'APPORTER 120 ORBES PRÉCURSORS") - (106 "ORACLE" "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS.") - ) - -("oracle-right-eye-1" (0 "ORACLE" "EN RÉCOMPENSE, VOICI UNE PILE D'ÉNERGIE.")) -("oracle-right-eye-2" (0 "ORACLE" "VOICI UNE AUTRE PILE D'ÉNERGIE POUR VOTRE QUÊTE.")) -("oracle-right-eye-3" (0 "ORACLE" "VOUS AVEZ OBTENU UNE AUTRE PILE D'ÉNERGIE.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "CET APPAREIL EST UN COMMUNICATEUR. AVEC LUI MON PÈRE ET MOI") - (180 "KEIRA" "POUVONS VOUS DONNER DES CONSEILS À TOUT MOMENT PENDANT VOTRE QUÊTE.") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "CES SORTES D'OEUFS FLOTTANTS SONT DES ORBES PRÉCURSORS.") - (174) - (178 "KEIRA" "RAMASSEZ-EN ASSEZ ET CERTAINS VILLAGEOIS VOUS DONNERONS") - (337 "KEIRA" "UNE PILE D'ÉNERGIE EN ÉCHANGE !") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "CECI EST UNE PILE D'ÉNERGIE !") - (100 "KEIRA" "L'OBJET PRÉCURSOR LE PLUS IMPORTANT QUE VOUS PUISSIEZ TROUVER.") - (321) - (324 "KEIRA" "IL VOUS EN FAUT 20 POUR QUE J'ACTIVE") - (432 "KEIRA" "LE BOUCLIER THERMIQUE DE VOTRE ZOOMER ANTI-GRAV.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "HÉ, VOUS AVEZ TROUVÉ UNE DE MES MÉCAMOUCHES !") - (160 "KEIRA" "J'EN AI ENVOYÉ 7 DANS CHAQUE ZONES POUR TROUVER DES PILES D'ÉNERGIE") - (362 "KEIRA" "MAIS LES LURKERS ONT DÛ LES CAPTURER.") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "OUAH, CETTE DERNIÈRE MÉCAMOUCHE AVAIT UNE PILE D'ÉNERGIE !") - (219 "KEIRA" "SI VOUS LES RAMASSEZ TOUTES LES 7 JE SUIS SÛRE") - (385 "KEIRA" "QUE VOUS TROUVEREZ ENCORE PLUS DE PILES D'ÉNERGIE !") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "FAITES ATTENTION SUR L'OCÉAN, LES EAUX REGORGENT") - (188 "KEIRA" "DE REQUINS LURKERS ET JE N'AI JAMAIS VU PERSONNE EN BATTRE UN.") - (412) - (415 "KEIRA" "NE LES APPROCHEZ PAS SI VOUS TENEZ À LA VIE !") - ) - -("asstvb47" :hint #x906 - (0 "KEIRA" "SOUVENEZ-VOUS, CECI EST UNE PILE D'ÉNERGIE.") - (140 "KEIRA" "IL FAUT QUE VOUS EN RAMASSIEZ AUTANT QUE POSSIBLE.") - ) - -("asstvb48" :hint #x907 - (0 "KEIRA" "C'EST UN ORIFICE D'ÉCO BLEUE, PLUS CONCENTRÉ QUE LES GROUPES FLOTTANTS.") - (270 "KEIRA" "CET ENDROIT VOUS DONNERA UNE PLEINE CHARGE D'ÉCO BLEUE POUR UNE DURÉE MAXIMALE !") - (570) - ) - -("sagevb21" :hint #x908 - (3 "SAMOS" "CES PETITES BOULES VERTES D'ÉNERGIE SUR LE SOL SONT UNE SORTE D'ÉCO.") - (280 "SAMOS" "RAMASSE 50 PETITES ÉCOS VERTES OU 1 GRANDE POUR AUGMENTER TA SANTÉ.") - ) - -("sagevb22" :hint #x909 - (0 "SAMOS" "CECI EST L'ÉCO BLEUE, ELLE CONTIENT L'ÉNERGIE DE MOUVEMENT.") - (268 "SAMOS" "L'ÉCO BLEUE TE PERMET DE COURIR VITE, DE CASSER LES BOÎTES ET MÊME") - (514 "SAMOS" "D'ACTIVER CERTAINS OBJETS PRÉCURSORS QUAND TU T'EN APPROCHES.") - ) - -("sagevb23" :hint #x90a - (0 "SAMOS" "REMARQUE QUE CHAQUE GROUPE D'ÉCO BLEUE QUE TU RAMASSES") - (181 "SAMOS" "AUGMENTE LA DURÉE DE SES POUVOIRS.") - ) - -("sagevb24" :hint #x90b - (3 "SAMOS" "C'EST UNE PORTE PRÉCURSOR.") - (160 "SAMOS" "ELLE PEUT SEULEMENT ÊTRE OUVERTE EN L'APPROCHANT") - (308 "SAMOS" "TOUT EN CANALISANT DE L'ÉCO BLEUE DANS TON CORPS.") - ) - -("sagevb25" :hint #x90c - (3 "SAMOS" "BIEN JOUÉ ! L'ÉCO BLEUE A PERMIS À LA PORTE DE S'OUVRIR.") - (242 "SAMOS" "AVEC L'ÉCO BLEUE, TU PEUX INSUFFLER DE L'ÉNERGIE À TOUTE SORTE") - (472 "SAMOS" "D'OBJETS PRÉCURSORS QUI DORMENT DEPUIS DES ANNÉES.") - ) - -("sagevb26" :hint #x90d (0 "SAMOS" "UTILISE TES LUNETTES POUR VOIR TA PROGRESSION PENDANT L'AVENTURE.")) - -("sagevb27" :hint #x90e - (1 "SAMOS" "TU PEUX SAUTER UNE FOIS,") - (94 "SAMOS" "PUIS SAUTER ENCORE UNE FOIS EN L'AIR POUR ALLER PLUS HAUT !") - ) - -("sagevb28" :hint #x90f (0 "SAMOS" "QUAND TU ES ENTOURÉ D'ENNEMIS, UTILISE TON COUP DE PIED EN ROTATION.")) -("sagevb29" :hint #x910 (0 "SAMOS" "CE N'EST PAS UN COUP DE PIED EN ROTATION ÇA. ESSAYE ENCORE !")) -("sagevb30" :hint #x911 (0 "SAMOS" "ALLEZ JAK, DONNE UN COUP DE PIED EN ROTATION !")) -("sagevb31" :hint #x912 (0 "SAMOS" "BIEN JOUÉ ! UTILISE LE COUP DE PIED POUR EFFECTUER UNE ATTAQUE TOUT AUTOUR DE TOI")) -("sagevb32" :hint #x913 (0 "SAMOS" "POUR UNE ATTAQUE EN MOUVEMENT ET EN LIGNE DROITE UTILISE TON COUP DE POING.")) -("sagevb33" :hint #x914 (0 "SAMOS" "CE N'EST PAS UN COUP DE POING. ALLEZ, DONNE UN COUP DE POING !")) -("sagevb34" :hint #x915 (0 "SAMOS" "JAK, DONNE UN COUP DE POING !")) -("sagevb35" :hint #x916 (0 "SAMOS" "BIEN JOUÉ ! UTILISE LE COUP DE POING POUR FONCER ET ATTAQUER RAPIDEMENT.")) - -("sagevb36" :hint #x917 - (0 "SAMOS" "PARFOIS, TU VOUDRAS FRAPPER AVEC PLUS DE FORCE") - (210) - (214 "SAMOS" "POUR BRISER L'UNE DE CES BOÎTES") - (304 "SAMOS" "TU DOIS SAUTER EN L'AIR PUIS PLONGER DESSUS, LES MAINS EN AVANT.") - ) - -("sagevb37" :hint #x918 (0 "SAMOS" "QUAND TU AURAS PRIS CONFIANCE, TENTE DE COMBINER TES ATTAQUES.")) - -("sagevb38" :hint #x919 - (0 "SAMOS" "TU NE PEUX PAS REVENIR PAR LE TÉLÉPORTEUR") - (124 "SAMOS" "TANT QUE TU N'AS PAS TROUVÉ LES 4 PILES D'ÉNERGIE DE CETTE ÎLE.") - ) - -("sagevb39" :hint #x91a - (0 "SAMOS" "EXCELLENT, TU AS TROUVÉ TOUTES LES PILES D'ÉNERGIE DE L'ÎLE !") - (227 "SAMOS" "REVIENS AU TÉLÉPORTEUR, POUR QUE JE PUISSE TE RAMENER AU LABO. DÉPÊCHE-TOI !") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (23 "DAXTER" "HÉ POUPÉE ! ET SI ON ALLAIT FAIRE UN TOUR DE ZOOMER ANTI-GRAV ?") - (175) - (193 "KEIRA" "RÈGLE NUMERO 1: JE NE SORS PAS AVEC LES ANIMAUX.") - (308) - (312 "DAXTER" "AH... TU NE SAIS PAS CE QUE TU MANQUES.") - (430) - (505 "KEIRA" "ÉCOUTEZ, SI VOUS CHERCHEZ QUELQUE CHOSE À FAIRE, MON PÈRE M'A TOUJOURS PARLÉ") - (643 "KEIRA" "D'UN ANCIEN OLÉODUC PRÉCURSOR ENFOUI SOUS TERRE.") - (739) - (742 :offscreen "KEIRA" "CERTAINS DE CES TUYAUX SE TERMINENT EN ORIFICE, D'OÙ L'ÉCO S'ÉCOULE.") - (864 :offscreen "KEIRA" "QUELQUES UNS ONT ÉTÉ BOUCHÉS ET DEPUIS L'ÉCO EST BLOQUÉE.") - (952) - (980 "KEIRA" "IL DOIT Y AVOIR UN MOYEN DE LES OUVRIR.") - (1053 :offscreen "KEIRA" "J'AI DÉCOUVERT UNE PARTIE DE L'OLÉODUC AU TEMPLE INTERDIT.") - (1150 "KEIRA" "ESSAYEZ D'Y TROUVER UNE SORTE D'INTERRUPTEUR.") - (1261) - ) - -("assistant-introduction-race-bike" - (9 "DAXTER" "SALUT POUPÉE ! QU'EST-CE QUE TU FAIS ?") - (88 "KEIRA" "FAIS ATTENTION À ÇA !") - (134 "KEIRA" "J'ESSAYE DE TROUVER UN MOYEN POUR TRANSPORTER LE ZOOMER GRACE") - (235 "KEIRA" "AUX TRANS-PADS QUE LES PRÉCURSORS ONT LAISSÉ PARTOUT DANS LE MONDE.") - (322) - (334 :offscreen "KEIRA" "SI JAMAIS VOUS EN TROUVEZ UN, JE PEUX LOCALISER LE COMMUNICATEUR") - (445 :offscreen "KEIRA" "ET VOUS ENVOYER LE ZOOMER.") - (508 "KEIRA" "ESSAYEZ DE TROUVER UN TRANS-PAD SUR L'ÎLE DE LA BRUME.") - (590 "KEIRA" "ET AILLEURS AUSSI !") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "JE SUIS SÛRE QUE SI VOUS REGARDEZ DANS LE TEMPLE PRÉCURSOR INTERDIT") - (143 "KEIRA" "VOUS TROUVEREZ UN MOYEN D'ACTIVER") - (190 "KEIRA" "L'ÉCO BLEUE BLOQUÉE SUR LA PLAGE DE LA SENTINELLE.") - (295) - ) - -("assistant-reminder-1-generic" - (25 "KEIRA" "HÉ, LES GARS ! CONTINUEZ À RÉCUPÉRER DES PILES D'ÉNERGIE !") - (110 "KEIRA" "GRÂCE À ELLES, VOUS IREZ DANS LE NORD !") - ) - -("assistant-reminder-1-race-bike" - (19 "KEIRA" "J'AI FINALEMENT RÉUSSI À UTILISER LES TRANS-PADS !") - (116 "KEIRA" "MAINTENANT, ALLEZ SUR L'ÎLE DE LA BRUME ET JE VOUS ENVERRAIS LE ZOOMER !") - (229) - ) - -("explorer-introduction" - (23 "ONCLE DE JAK" "AH, BIEN LE BONJOUR MON GARÇON !") - (112 "ONCLE DE JAK" "TA VISITE NE TOMBE PAS VRAIMENT AU BON MOMENT.") - (197 "ONCLE DE JAK" "J'ALLAIS PARTIR POUR L'UNE DE MES EXPLORATIONS HIER,") - (288 "ONCLE DE JAK" "QUAND J'AI RÉALISÉ QUE J'ÉTAIS À COURT D'ORBES PRÉCURSORS.") - (426) - (430 "ONCLE DE JAK" "J'AURAIS POURTANT JURÉ QUE J'EN AVAIS 90.") - (538 "ONCLE DE JAK" "MAIS JE CROIS QUE TON JEUNE AMI") - (607 "ONCLE DE JAK" "TU SAIS, L'ESPÈCE DE SALE PETITE VERMINE TEIGNEUSE") - (715 "ONCLE DE JAK" "LES A PROBABLEMENT CHAPARDÉES POUR S'AMUSER.") - (829) - (865 "ONCLE DE JAK" "BREF, PASSONS. PRÊTERAIS-TU 90 ORBES PRÉCURSORS") - (985 "ONCLE DE JAK" "À TON CHER ONCLE ? POUR QU'IL PUISSE SE REMETTRE EN ROUTE.") - (1098 "ONCLE DE JAK" "JE T'OFFRIRAIS UNE PILE D'ÉNERGIE EN ÉCHANGE.") - ) - -("explorer-reminder-1" - (25 "ONCLE DE JAK" "QUOI ? TU N'AS PAS TOUT LÀ ?") - (129 "ONCLE DE JAK" "OH... AVEC MOINS DE 90 ORBES PRÉCURSORS") - (251 "ONCLE DE JAK" "JE N'AI AUCUNE CHANCE DE PARTIR MON GARÇON.") - (387) - ) - -("explorer-reminder-2" - (33 "ONCLE DE JAK" "VOYONS VOIR. C'EST 90 ORBES PRÉCURSORS POUR UNE PILE D'ÉNERGIE !") - (187 "ONCLE DE JAK" "C'EST UN MARCHÉ HONNÊTE, NON ?") - ) - -("explorer-resolution" - (28 "ONCLE DE JAK" "JE VOIS QUE VOUS REVENEZ POUR L'ÉCHANGE.") - (108 "ONCLE DE JAK" "BIEN, BIEN, TRÈS TRÈS BIEN !") - (179 "ONCLE DE JAK" "VOUS AVEZ LE NOMBRE D'ORBES PRÉCURSORS PRÉVUES ?") - (310) - (324 "ONCLE DE JAK" "FAITES BON USAGE DE CETTE PILE D'ÉNERGIE BIEN MÉRITÉE !") - (453 "ONCLE DE JAK" "TCHAO ! SALUT ! BYE-BYE !") - ) - -("farmer-introduction" - (1 "FERMIER" "IL FAUT TRAIRE CES YAKOWS ! IL FAUT TRAIRE CES YAKOWS !") - (113 "FERMIER" "OH, C'EST TOI ! JE REPOSAIS JUSTE MES VIEUX OS.") - (257 "FERMIER" "J'AI ESSAYÉ DE FAIRE RENTRER CES VACHES") - (317 "FERMIER" "TOUTE LA JOURNÉE DANS LEUR ENCLOS.") - (372 "FERMIER" "DE DRÔLES DE CRÉATURES ONT TENTÉES DE ME LES VOLER.") - (454) - (456 "FERMIER" "TU POURRAIS AIDER UN VIEIL HOMME EN LES RAMENANT DANS LEUR ENCLOS ?") - ) - -("farmer-reminder-1" - (0 "FERMIER" "HÉ ! MES YAKOWS SONT TOUJOURS EN LIBERTÉ !") - (96 "FERMIER" "TU NE PEUX PAS ESSAYER DE ME LES RAMENER ?") - ) - -("farmer-reminder-2" - (0 "FERMIER" "CES FICHUS YAKOWS SE BALADENT ENCORE !") - (85 "FERMIER" "TU ME LES RAMÈNES DANS L'ENCLOS OU QUOI ?") - ) - -("farmer-resolution" - (0 "FERMIER" "AH ! BIEN JOUÉ P'TIT GARS !") - (70 "FERMIER" "TU AS RÉUSSI À RAMENER CES SACS À PUCES.") - (134 "FERMIER" "JE VAIS DORMIR TRANQUILLE.") - (177 "FERMIER" "PRENDS CETTE PILE D'ÉNERGIE POUR TES EFFORTS.") - (340) - ) - -("sage-introduction-misty-cannon" - (24 "SAMOS" "TIENS, VOILA LES DEUX AVENTURIERS !") - (136 "SAMOS" "BIEN, JE VOULAIS VOUS PARLER DE QUELQUE CHOSE DE SÉRIEUX.") - (258) - (261 :offscreen "SAMOS" "IL SEMBLERAIT QUE LES LURKERS SOIT TRÈS ACTIFS SUR L'ÎLE DE LA BRUME.") - (387) - (393 :offscreen "SAMOS" "JE PEUX LES VOIR BOMBARDER LE SILO PRÉCURSOR DEPUIS MA TOUR DE GUET.") - (525) - (528 "SAMOS" "SI LES LURKERS L'OUVRE ET LIBÈRE L'ÉCO NOIRE NOUS RISQUONS DE TOUS FINIR") - (663 "SAMOS" "AVEC LE MÊME AIR RIDICULE QUE CET HORRIPILANT PETIT SPÉCIMEN.") - (788) - (807 "SAMOS" "JAK, IL EST TEMPS DE PROUVER TA VALEUR !") - (906 "SAMOS" "OBTIENT DU PÊCHEUR QU'IL TE PRÊTE SON BATEAU JUSQU'À L'ÎLE DE LA BRUME,") - (1018 "SAMOS" "MONTE SUR LE SILO PRÉCURSOR ET ÉLIMINE CE CANON.") - (1171) - (1177 "DAXTER" "ET MOI JE FAIS QUOI ALORS ?") - (1232) - (1235 "SAMOS" "TOI ? TU DEVRAIS PASSER LA SERPILLÈRE TIENS ! LE SOL MANQUE UN PEU D'ÉCLAT JE TROUVE.") - ) - -("sage-reminder-1-ecorocks" - (28 "SAMOS" "QUELS \"BRAVES AVENTURIERS\" VOUS FAITES...") - (132 "SAMOS" "DÉJÀ DE RETOUR ? ET SANS AVOIR DÉGAGÉ MES MOISSONNEUSES ÉCO BLOQUÉES") - (244) - (270 :offscreen "SAMOS" "ILS SONT AU BOUT DE LA PLAGE, MES GARÇONS.") - (365) - (366 :offscreen "SAMOS" "MAINTENANT...") - (412 :offscreen "SAMOS" "BOUGEZ-VOUS !") - ) - -("sage-reminder-1-generic" - (54 "SAMOS" "QU'EST-CE QUE VOUS FAITES LÀ ?") - (120 "SAMOS" "VOUS DEVEZ RÉCUPÉRER DES PILES D'ÉNERGIE !") - (178) - (181 "SAMOS" "LAISSEZ-MOI TRANQUILLE") - (250 "SAMOS" "TANT QUE VOUS NE LES AVEZ PAS !") - ) - -("sage-reminder-1-misty-cannon" - (24 "SAMOS" "LE BOMBARDEMENT EMPIRE !") - (90 :offscreen "SAMOS" "TROUVE LE PÊCHEUR DANS LA JUNGLE, OBTIENT LA PERMISSION D'UTILISER SON BATEAU") - (215 :offscreen "SAMOS" "ET REND TOI À L'ÎLE DE LA BRUME POUR ARRÊTER LE CANON.") - (317) - (320 "SAMOS" "ET TOI DAXTER, PASSE LA SERPILLÈRE ! TU NE VOIS PAS CE BAZAR ICI ?!") - ) - -("sage-reminder-2-generic" - (27 "SAMOS" "VOUS NE COMPRENEZ PAS LA GRAVITÉ DE LA SITUATION...") - (121 "SAMOS" "ÇA NE SE LIMITE PAS À L'HISTOIRE D'UN GARÇON QUI A PERDU LA BOULE.") - (225 "SAMOS" "IL S'AGIT DE LA VIE ELLE MÊME !") - (320) - (323 "SAMOS" "MAINTENANT, FILEZ ET ACCOMPLISSEZ VOTRE DESTIN !") - (455) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "HMM...")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "JE DOIS FAIRE MARCHER CE BOUCLIER THERMIQUE !")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "IL NOUS FAUT DES PILES D'ÉNERGIE POUR ALIMENTER LE BOUCLIER THERMIQUE !")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "OÙ EST MA CLÉ ?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "LE CANYON DE FEU EST BIEN TROP CHAUD.")) - -("EXP-AM01" :hint #x0 - (0 "ONCLE DE JAK" "JE DOIS BIENTÔT PARTIR EN EXCURSION") - (140 "ONCLE DE JAK" "J'AI BESOIN D'ORBES PRÉCURSORS !") - ) - -("EXP-AM02" :hint #x0 (0 "ONCLE DE JAK" "VOYONS, PAR OÙ VAIS-JE COMMENCER ?")) -("EXP-AM03" :hint #x0 (0 "ONCLE DE JAK" "OH ! J'AI ENVIE DE VOIR DU PAYS !")) -("EXP-AM04" :hint #x0 (0 "ONCLE DE JAK" "IL Y A TANT DE CHOSES À VOIR ET SI PEU DE TEMPS.")) - -("EXP-AM05" :hint #x0 - (0 "ONCLE DE JAK" "DE MON TEMPS ON POUVAIT VOYAGER") - (185 "ONCLE DE JAK" "SANS SE FAIRE ATTAQUER PAR DES MONSTRES.") - ) - -("EXP-LO02" :hint #x0 (0 "ONCLE DE JAK" "IL ME FAUT PLUS D'ORBES PRÉCURSORS.")) -("EXP-LO1A" :hint #x0 (0 "ONCLE DE JAK" "(MARMONNE)")) - -("FAR-AM01" :hint #x0 - (0 "FERMIER" "(RONFLEMENTS) VIENS LÀ, BESSIE. VIENS LÀ MA BESSIE.") - (380 "FERMIER" "C'EST UNE BONNE FILLE ÇA.") - (500) - ) - -("FAR-AM02" :hint #x0 (0 "FERMIER" "(MURMURES)")) -("FAR-AM2A" :hint #x0 (0 "FERMIER" "(MURMURES)")) -("FAR-LO01" :hint #x0 (0 "FERMIER" "(RONFLEMENTS)")) -("FAR-LO1A" :hint #x0 (0 "FERMIER" "(RONFLEMENTS)")) -("SAGELP03" :hint #x0 (0 "SAMOS" "CE SONT CES DEUX LA QUI DÉBLOQUENT !")) - -("SAGELP04" :hint #x0 - (0 "SAMOS" "IL NE SERA JAMAIS COMME SON ONCLE.") - (221 "SAMOS" "PEU IMPORTE CE QUE DISENT LES GENS !") - ) - -("SAGELP05" :hint #x0 - (0 "SAMOS" "ALLÔ ? SAGE BLEU ? ALLÔ ?") - (210) - (240 "SAMOS" "OÙ EST-IL PASSÉ, SACREBLEU ?") - ) - -("SAGELP06" :hint #x0 (0 "SAMOS" "EH BIEN, EH BIEN !")) -("SAGELP11" :hint #x0 (0 "SAMOS" "ALLÔ ? IL Y A QUELQU'UN ? RÉPONDEZ !")) -("sksp0010" :hint #x231 (6 "DAXTER" "HÉ ! ALLONS AU PORT VOIR LE BATEAU DE MÉROU QUI FOUETTE !")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "TU AS VU LA TAILLE DE LA MÂCHOIRE DU REQUIN LURKER SUR LE BATEAU DU PÊCHEUR ?") - (300) - (325 "DAXTER" "ON FERAIT MIEUX DE NE PAS S'EN APPROCHER") - (447 "DAXTER" "JE NE CROIS PAS QUE NOUS SOYONS DE TAILLE À NOUS Y FROTTER !") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "ÇA DOIT ÊTRE UN ORACLE PRÉCURSOR DONT LE SAGE PARLE TOUJOURS.") - (248 "DAXTER" "J'ESPÈRE POUR EUX QU'ILS N'ÉTAIENT PAS AUSSI LAIDS !") - ) - -("sksp0017" :hint #x235 - (0 "DAXTER" "OUAH !") - (66 "DAXTER" "REGARDE UN PEU CETTE SCULPTURE SUR LES ROCHERS LÀ-BAS !") - ) - -("sksp0043" :hint #x24e - (0 "DAXTER" "IL FAUDRAIT PEUT-ÊTRE DÉNICHER LE PÊCHEUR.") - (98) - (106 "DAXTER" "J'AI ENTENDU DIRE QU'IL PÈCHE DANS LA JUNGLE, VERS LE BAS DE LA RIVIÈRE !") - ) - -("asstvb09" :hint #x24f - (32 "KEIRA" "VOUS N'AVEZ PAS 20 PILES D'ÉNERGIE POUR ALIMENTER MON BOUCLIER THERMIQUE") - (246) - (254 "KEIRA" "VOUS NE POUVEZ PAS TRAVERSER LE CANYON DE FEU S'IL VOUS EN MANQUE !") - (500) - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "CE FAINÉANT DE FERMIER NOUS DOIT UNE PILE D'ÉNERGIE") - (160 "DAXTER" "ALLONS LUI PARLER !") - ) - -("asstvb04" :hint #x2b1 - (50 "KEIRA" "VOUS AVEZ ASSEZ DE PILES D'ÉNERGIE POUR ALIMENTER MON BOUCLIER THERMIQUE.") - (263 "KEIRA" "RETROUVEZ-MOI AU CANYON DE FEU") - (382 "KEIRA" "SUR LA FALAISE DERRIÈRE LA MAISON DU FERMIER.") - (540 "KEIRA" "AMENEZ LES PILES D'ÉNERGIE ET DÉPÊCHEZ-VOUS !") - (686 "KEIRA" "MON PÈRE A VU DE NOUVEAUX LURKERS !") - ) - -("asstvb08" :hint #x2b2 - (20 "KEIRA" "APPORTEZ VITE LES PILES D'ÉNERGIE !") - (142 "KEIRA" "J'ATTENDRAIS À L'ENTRÉE DU CANYON DE FEU") - (260 "KEIRA" "AU SOMMET DE LA FALAISE, DERRIÈRE LA MAISON DU FERMIER.") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "ORNITHOLOGUE" "MON DIEU, J'ESPÈRE QUE LE PETIT VA BIEN.") - (148) - (157 "ORNITHOLOGUE" "VOUS MÉRITEZ CETTE PILE D'ÉNERGIE.") - (237) - (306 "FLUT-FLUT" "MAMAN ?") - (351) - (406 "FLUT-FLUT" "MAMAN !") - (430 "DAXTER" "OH NON ! NON, NON, NON, NON !") - (533) - (535 "ORNITHOLOGUE" "OH. COMME C'EST MIGNON. IL CROIT VOIR SA MAMAN.") - (696) - (699 "DAXTER" "SA MAMAN ? JE NE SUIS PAS TA MÈRE !") - (764 "DAXTER" "TU VOIS DES PLUMES LÀ ?") - (803) - (807 "ORNITHOLOGUE" "C'EST LE COUP DE FOUDRE.") - (926) - (929 "ORNITHOLOGUE" "ÉCOUTEZ MES GARÇONS, JE VAIS EMMENER CE PETIT POUSSIN AU VILLAGE") - (1022 "ORNITHOLOGUE" "ET M'ARRANGER AVEC LE SAGE POUR EN PRENDRE SOIN.") - ) - -("bird-lady-introduction" - (125 "ORNITHOLOGUE" "CE PETIT OISEAU A L'AIR BIEN MALADE !") - (245) - (251 "DAXTER" "HUH ! VOUS N'AVEZ PAS L'AIR TRÈS EN FORME NON PLUS !") - (328) - (331 "ORNITHOLOGUE" "OH, DÉSOLÉE !") - (371 "ORNITHOLOGUE" "JE VOUS AI PRIS POUR UN RING-FRING ORANGE TACHETÉ.") - (454) - (457 "ORNITHOLOGUE" "VOUS SAVEZ, HIER J'AI VU") - (516 "ORNITHOLOGUE" "D'HORRIBLES CRÉATURES CAPTURER UNE MÈRE FLUT-FLUT VERS LA PLAGE") - (648) - (654 :offscreen "ORNITHOLOGUE" "MAINTENANT IL Y A CE PAUVRE PETIT OEUF ORPHELIN") - (739 :offscreen "ORNITHOLOGUE" "EN HAUT DE LA FALAISE !") - (786 :offscreen "ORNITHOLOGUE" "ET JE NE PEUX PAS L'ATTEINDRE !") - (854 :offscreen "ORNITHOLOGUE" "SI VOUS POUVIEZ GRIMPER LÀ-HAUT POUR LE POUSSER.") - (932 :offscreen "ORNITHOLOGUE" "J'AI MIS UN TAS DE PAILLE EN BAS POUR LE RATTRAPER.") - (1041) - (1044 "ORNITHOLOGUE" "RENDEZ SERVICE À UNE VIEILLE DAME, VOUS AUREZ UNE PILE D'ÉNERGIE.") - (1198) - ) - -("bird-lady-reminder-1" - (56 "ORNITHOLOGUE" "OH, VOUS REVOILÀ !") - (112 "ORNITHOLOGUE" "AVEZ-VOUS TROUVÉ L'OEUF BLEU SUR LA FALAISE ?") - (208) - (211 "ORNITHOLOGUE" "FAITES LE TOMBER ET JE VOUS DONNERAI UNE PILE D'ÉNERGIE.") - (348) - ) - -("bird-lady-reminder-2" - (58 "ORNITHOLOGUE" "ALORS LES GARÇONS, VOUS ÊTES ENCORE LÀ ?") - (170) - (174 "ORNITHOLOGUE" "JE SUIS SÛRE QUE CE PAUVRE PETIT OEUF BLEU") - (246 "ORNITHOLOGUE" "A BIEN FROID SUR LA FALAISE.") - (313) - (316 "ORNITHOLOGUE" "POUSSEZ LE DANS LE VIDE POUR LE SAUVER") - (389 "ORNITHOLOGUE" "ET JE VOUS DONNERAI UNE PILE D'ÉNERGIE.") - ) - -("mayor-introduction" - (31 "MAIRE" "OH, NON. JE NE VEUX PLUS ENTENDRE PARLER DE PROBLÈMES...") - (171) - (174 "MAIRE" "DÉJÀ QU'IL PARAIT QU'IL Y A DES MONSTRES PRÈS DU VILLAGE ET PUIS") - (313) - (320 "MAIRE" "VOUS VOYEZ CES ENGRENAGES LÀ-HAUT ? ILS NE BOUGENT PAS, N'EST-CE PAS ?") - (479 "MAIRE" "PARCE QUE NOTRE VILLAGE N'A PAS D'ÉNERGIE !") - (569) - (576 "MAIRE" "LE FAISCEAU ÉCO DU TEMPLE DE LA JUNGLE NE FONCTIONNE PLUS !") - (685) - (689 "MAIRE" "TOUT LE MONDE A BIEN TROP PEUR POUR ALLER VOIR CE QU'IL S'EST PASSÉ.") - (850) - (864 "DAXTER" "LA FACTURE A ÉTÉ PAYÉE ?") - (911) - (915 "MAIRE" "COMMENT ? HO-HO-HO- QUEL COMIQUE !") - (1068) - (1074 "MAIRE" "MAIS BON, SI VOUS RÉPAREZ LE FAISCEAU JE VOUS DONNE, UNE PILE D'ÉNERGIE !") - (1262 "MAIRE" "OH ET AUTRE CHOSE,") - (1346 "MAIRE" "SI JAMAIS VOUS AVIEZ L'INTENTION DE") - (1438 "MAIRE" "CONTRIBUER AU FINANCEMENT DE MA NOUVELLE CAMPAGNE.") - (1557 "MAIRE" "JE POURRAIS BIEN ME SÉPARER D'UNE AUTRE PILE D'ÉNERGIE.") - (1668) - (1671 "MAIRE" "LA CONTRIBUTION MINIMUM EST DE SEULEMENT") - (1797 "MAIRE" "90 ORBES PRÉCURSORS.") - ) - -("mayor-reminder-beams" - (26 "MAIRE" "DÉJÀ DE RETOUR ? SANS AVOIR RÉPARÉ LES FAISCEAUX ÉCO ?") - (157 "MAIRE" "MAIS ENFIN ! VOTRE VILLAGE COMPTE SUR VOUS !") - ) - -("mayor-reminder-donation" - (26 "MAIRE" "VOUS ÊTES VENUS POUR FINANCER MA CAMPAGNE ?") - (157) - (160 "MAIRE" "90 ORBES PRÉCURSORS, ÇA FAIT UNE PILE D'ÉNERGIE !") - ) - -("mayor-resolution-beams" - (28 "MAIRE" "QUELLE VISION MERVEILLEUSE ! OH- GRAND MERCI !") - (205 "MAIRE" "ET TOUT LE VILLAGE VA ME REMERCIER !") - (277 "MAIRE" "VOUS AVEZ RAMENÉ L'ÉNERGIE AU VILLAGE ET ASSURÉ MA RÉÉLECTION.") - (472) - (475 "MAIRE" "ET POUR ÇA MON GARÇON, VOICI UNE PILE D'ÉNERGIE.") - ) - -("mayor-resolution-donation" - (28 "MAIRE" "VOUS AVEZ L'INTENTION DE FAIRE UN DON ?") - (120 "MAIRE" "IL EST CONSÉQUENT J'ESPÈRE !") - (219) - (224 "MAIRE" "OH ! C'EST UN DON CONSÉQUENT EN EFFET !") - (352 "MAIRE" "EH BIEN ! J'ESPÈRE QUE CETTE") - (429 "MAIRE" "PILE D'ÉNERGIE VOUS DÉDOMMAGERA ÉQUITABLEMENT.") - ) - -("sculptor-introduction" - (30 "SCULPTEUR" "HÉ ! PETITE BOULE DE POILS ?!") - (154) - (161 "SCULPTEUR" "OH, J'AI CRU UN INSTANT QUE C'ÉTAIT MA MUSE...") - (282) - (285 "DAXTER" "VOTRE QUOI ?") - (334) - (343 "SCULPTEUR" "VOUS N'AVEZ JAMAIS VU UNE MUSE DE PRÈS ?") - (424) - (428 "SCULPTEUR" "C'EST UN PETIT ÉCUREUIL DE VOTRE TAILLE") - (524 "SCULPTEUR" "TOUT BRILLANT, PLEIN DE FOLIE !") - (622) - (631 "DAXTER" "OH, JE VOIS ! COMME UN ACOLYTE.") - (751) - (757 "SCULPTEUR" "TOUJOURS EST-IL QUE, SANS MA MUSE JE NE PEUX PAS SCULPTER.") - (915) - (918 "SCULPTEUR" "MAIS QUAND ELLE EST LÀ, JE VOIS LA BEAUTÉ PARTOUT !") - (1085) - (1089 "SCULPTEUR" "MAIS LÀ, JE NE POURRAIS MÊME PAS TAILLER UN CUBE...") - (1182) - (1191 :offscreen "SCULPTEUR" "JE CROIS QU'ELLE EST PARTIE SUR L'ÎLE DE LA BRUME.") - (1278) - (1281 "SCULPTEUR" "J'ESPÈRE QU'ELLE VA BIEN.") - (1370) - (1376 "SCULPTEUR" "SI VOUS ME LA RAMENEZ JE VOUS OFFRE UNE PILE D'ÉNERGIE !") - (1436) - (1464 "DAXTER" "ATTENDEZ ! NOUS NE RETOURNONS PAS SUR L'ÎLE DE LA BRUME !") - (1634) - (1643 "DAXTER" "PAS VRAI ?") - ) - -("sculptor-reminder-1" - (27 "SCULPTEUR" "AH, MES AMIS ! VOUS N'AVEZ PAS TROUVÉ MA MUSE ?") - (169) - ) - -("sculptor-resolution" - (87 "SCULPTEUR" "MA MUSE ! SAINE ET SAUVE !") - (186 "SCULPTEUR" "VOUS ÊTES VRAIMENT TRÈS FORTS !") - (228 "SCULPTEUR" "TENEZ C'EST UNE PILE D'ÉNERGIE.") - (300 "SCULPTEUR" "ELLE NE ME SERT PLUS CAR J'AI RETROUVÉ MON INSPIRATION.") - ) - -("BIR-AM01" :hint #x0 (0 "ORNITHOLOGUE" "VOUS APPROCHEZ DE L'OEUF ?")) -("BIR-AM02" :hint #x0 (0 "ORNITHOLOGUE" "C'EST ÇA, JUSTE UN PEU PLUS LOIN !")) -("BIR-AM03" :hint #x0 (0 "ORNITHOLOGUE" "BIEN ! POUSSEZ MAINTENANT, DOUCEMENT !")) -("BIR-AM04" :hint #x0 (0 "ORNITHOLOGUE" "OULA- CE N'ÉTAIS PAS TRÈS DOUX.")) -("BIR-AM05" :hint #x0 (0 "ORNITHOLOGUE" "ALLEZ, POUSSEZ L'OEUF DANS LE VIDE.")) -("BIR-AM06" :hint #x0 (0 "ORNITHOLOGUE" "OH !")) -("BIR-AM07" :hint #x0 (0 "ORNITHOLOGUE" "ICI, PETIT, PETIT, ICI PETIT, PETIT.")) -("BIR-AM08" :hint #x0 (0 "ORNITHOLOGUE" "ICI, PETIT, PETIT.")) -("BIR-AM09" :hint #x0 (0 "ORNITHOLOGUE" "SOYEZ PRUDENTS, ÇA M'A L'AIR DANGEREUX !")) -("BIR-AM10" :hint #x0 (0 "ORNITHOLOGUE" "TOUT DOUX. TOUT DOUCEMENT !")) -("BIR-AM11" :hint #x0 (0 "ORNITHOLOGUE" "TRÈS BIEN, ON SE RETROUVE PRÈS DE L'OEUF !")) -("BIR-AM12" :hint #x0 (0 "ORNITHOLOGUE" "OH, VOUS ÊTES VRAIMENT L'AMI DES BÊTES !")) -("BIR-AM13" :hint #x0 (0 "ORNITHOLOGUE" "EST-CE QUE VOUS VOYEZ D'AUTRES OISEAUX LÀ-HAUT ?")) -("BIR-LO01" :hint #x0 (0 "ORNITHOLOGUE" "(SIFFLE)")) -("BIR-LO02" :hint #x0 (0 "ORNITHOLOGUE" "OH, QU'EST-CE QU'IL EST MIGNON.")) -("BIR-LO03" :hint #x0 (0 "ORNITHOLOGUE" "OH, REGARDEZ UN MUCKY-MUCK !")) -("BIR-am08" :hint #x0 (0 "ORNITHOLOGUE" "ICI. PETIT, PETIT !")) -("CHI-AM01" :hint #x0 (0 "MAIRE" "C'EST UNE VRAIE CATASTROPHE, UNE VRAIE CATASTROPHE VOUS DIS-JE !")) - -("CHI-AM02" :hint #x0 - (0 "MAIRE" "ILS VEULENT QUE JE ME RENDE DANS LA JUNGLE...") - (178) - (181 "MAIRE" "PLUTÔT COMBATTRE UN FLUT-FLUT ENRAGÉ !") - ) - -("CHI-AM03" :hint #x0 - (38 "MAIRE" "UN MONSTRE A ATTAQUÉ LE BATEAU DU PÊCHEUR.") - (230 "MAIRE" "ET MAINTENANT ÇA...") - (350) - (376 "MAIRE" "QUE PEUT-IL-") - (540) - (590 "MAIRE" "QUE PEUT-IL ENCORE ARRIVER ?") - ) - -("CHI-AM04" :hint #x0 - (255 "MAIRE" "POURQUOI NE PAS AUGMENTER LES IMPÔTS ?") - (415 "MAIRE" "POUR- POUR- POUR- PAYER TOUT ÇA.") - ) - -("CHI-AM05" :hint #x0 (0 "MAIRE" "DES PROBLÈMES... TOUJOURS DES PROBLÈMES ET ENCORE DES PROBLÈMES...")) -("CHI-AM06" :hint #x0 (0 "MAIRE" "(PLEURS) JE NE SERAIS- JE NE SERAIS PLUS JAMAIS RÉÉLU...")) -("CHI-AM07" :hint #x0 (0 "MAIRE" "OH... MAIS QU'EST-IL ARRIVÉ AU FAISCEAU D'ÉNERGIE DU VILLAGE ?")) -("CHI-AM08" :hint #x0 (0 "MAIRE" "POURQUOI- ? QUI SUIS-JE- ? OÙ VAIS-JE ET QUAND SUIS-JE ? (PLEURS)")) -("CHI-LO01" :hint #x0 (0 "MAIRE" "MOULIN, MONSTRES, ÉNERGIE, RÉÉLECTION...")) -("CHI-LO02" :hint #x0 (0 "MAIRE" "SCRUTIN, MONSTRES, HM-, RÉÉLECTION.")) -("SCU-AM01" :hint #x0 (0 "SCULPTEUR" "AH... JE N'Y ARRIVE PLUS DU TOUT.")) -("SCU-AM02" :hint #x0 (0 "SCULPTEUR" "AH... SI SEULEMENT J'ÉTAIS INSPIRÉ.")) -("SCU-AM03" :hint #x0 (0 "SCULPTEUR" "JE SUIS AUSSI INSPIRÉ QUE CETTE PIERRE.")) -("SCU-AM04" :hint #x0 (0 "SCULPTEUR" "AH... OÙ EST MA MUSE ?")) -("SCU-AM05" :hint #x0 (0 "SCULPTEUR" "AH-LA-LA... JE N'Y ARRIVE PAS.")) -("SCU-AM06" :hint #x0 (0 "SCULPTEUR" "OH NON... EST-CE QU'ELLE REVIENDRA UN JOUR ?")) -("SCU-LO01" :hint #x0 (0 "SCULPTEUR" "(SOUPIR)")) -("sksp0028" :hint #x0 (0 "DAXTER" "DONNE UN COUP DE PIED DANS L'OEUF. TAPE LE, TAPE LE !")) -("sksp0019" :hint #x236 (0 "DAXTER" "HÉ, DES MOUETTES ! ALLONS LES CHASSER POUR VOIR !")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "HÉ, CE PÉLICAN VIENT DE PIQUER UNE PILE D'ÉNERGIE !") - (197) - (202 "DAXTER" "ALLONS LUI BOTTER LES FESSES !") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "HÉ, ESSAYE DE DONNER UN COUP DE POING POUR DÉGAGER LES ROCHERS !")) -("sksp0031" :hint #x23a (0 "DAXTER" "OH ! UTILISONS LE CANON POUR FAIRE EXPLOSER DES TRUCS !")) -("sksp0034" :hint #x23b (167 "DAXTER" "PLONGE VERS CES OEUFS, PLONGE !")) -("sksp0020" :hint #x268 (0 "DAXTER" "HA HA HA ! ALLEZ, ON RECOMMENCE !")) -("sksp0021" :hint #x269 (0 "DAXTER" "VOILÀ ENCORE LES MOUETTES ! À L'ATTAQUE !")) -("sksp0022" :hint #x26a (0 "DAXTER" "HA HA HA HA HA ! WOO HO HO !")) -("sksp0023" :hint #x26b (0 "DAXTER" "WOOHOO !")) -("sksp0024" :hint #x26c (0 "DAXTER" "YEAH HA HA ! OUAIS !")) -("sksp0025" :hint #x273 (0 "DAXTER" "OUAH ! ÇA A PROVOQUÉ UNE AVALANCHE, ALLONS VOIR ÇA !")) - -("sksp0027" :hint #x274 - (0 "DAXTER" "VITE ! IL FAUT QUE NOUS ATTEIGNONS LA PILE D'ÉNERGIE") - (123 "DAXTER" "AVANT QUE LE PÉLICAN NE L'AVALE À NOUVEAU !") - ) - -("sksp0029" :hint #x275 - (0 "DAXTER" "ON DEVRAIT PEUT-ÊTRE PARLER À LA DAME AUX OISEAUX") - (128 "DAXTER" "POUR VOIR SI ON A ÉCRABOUILLÉ L'OEUF DE FLUT-FLUT.") - ) - -("sagevb01" :hint #x288 - (0 "SAMOS" "EH BIEN ! JE VOIS QUE VOUS AVEZ FINALEMENT DÉCIDÉ DE DÉBLOQUER MES COLLECTEURS.") - (349) - (352 "SAMOS" "JE VOUS FÉLICITERAIS BIEN") - (483 "SAMOS" "MAIS JE NE PEUX PAS VOUS FAIRE PERDRE DE TEMPS.") - (698) - (701 "SAMOS" "AU FAIT, SI ÇA NE MARCHE PAS") - (860 "SAMOS" "DAXTER POURRA TOUJOURS TRAVAILLER COMME DÉRATISEUR AU VILLAGE.") - (1096 "SAMOS" "HA HA HA HA HA.") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "TAPE CES PERCHES PAR-DESSOUS !")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (0 :offscreen "PÊCHEUR" "IL Y A DEUX TYPES DE POISSONS À PRENDRE:") - (83 :offscreen "PÊCHEUR" "CEUX D'1KG ET CEUX DE 5KG.") - (220 :offscreen "PÊCHEUR" "SI TU LAISSES PASSER 20KG DE BONS POISSONS,") - (322 :offscreen "PÊCHEUR" "JE TE REPRENDS MON FILET !") - (424) - (428 :offscreen "PÊCHEUR" "IL Y A DES ANGUILLES TOXIQUES DANS CES EAUX.") - (537) - (539 :offscreen "PÊCHEUR" "SI TU ATTRAPES UNE DE CES SALES BESTIOLES,") - (636 :offscreen "PÊCHEUR" "ELLE EMPOISONNERA TOUTES TES PRISES !") - ) - -("fisher-introduction" - (0 "DAXTER" "IL Y A QUOI DANS VOTRE PANIER ?") - (47 "PÊCHEUR" "RIEN D'INTÉRESSANT.") - (100) - (108) - (108 "PÊCHEUR" "CES MONSTRES DE L'OCÉAN ONT DÉVORÉ MON MATÉRIEL DE PÊCHE !") - (226) - (228 "PÊCHEUR" "ET DEPUIS ILS AVALENT MES PRISES !") - (290) - (293 "PÊCHEUR" "J'AI TOUT ESSAYÉ MAIS-") - (345 "PÊCHEUR" "MAIS JE N'ATTRAPE PLUS RIEN DANS CETTE FICHUE RIVIÈRE...") - (419) - (422 "DAXTER" "OUH... VOTRE HALEINE SÛREMENT !") - (515) - (520 "PÊCHEUR" "TU CROIS QUE TU PEUX FAIRE MIEUX ?") - (569) - (570 :offscreen "PÊCHEUR" "ESSAYE DE PÊCHER AVEC CE P'TIT FILET !") - (665) - (668 "PÊCHEUR" "JE TE DONNE UNE PILE D'ÉNERGIE") - (715 "PÊCHEUR" "SI TU RAMASSES 200KG DE BESTIOLES !") - (804) - (807 "PÊCHEUR" "ET VOUS LAISSE À TOI ET TA CREVETTE,") - (862 :offscreen "PÊCHEUR" "MON BATEAU POUR ALLER À L'ÎLE DE LA BRUME.") - (955) - (961 "PÊCHEUR" "ALORS, TU VEUX TENTER TA CHANCE ?") - ) - -("fisher-reject" - (2 "PÊCHEUR" "EH BIEN ! SI TU VEUX UNE PILE D'ÉNERGIE UN DE CES QUATRE,") - (102 "PÊCHEUR" "TU SAIS OÙ ME TROUVER.") - ) - -("fisher-reminder-1" (0 "PÊCHEUR" "ALORS, ON VA AFFRONTER LA RIVIÈRE ?")) - -("fisher-resolution" - (0 "PÊCHEUR" "TU L'AS FAIT ! TU AS PRIS 200KG DE POISSON !") - (115) - (120 "PÊCHEUR" "PAS TROP MAL, POUR DES MARINS D'EAU DOUCE.") - (185) - (199 "PÊCHEUR" "VOILÀ LA PILE D'ÉNERGIE PROMISE") - (277 "PÊCHEUR" "ET TU PEUX PRENDRE MON BATEAU AU BORD DU VILLAGE") - (351 "PÊCHEUR" "QUAND TU VOUDRAS.") - ) - -("FIS-AM01" :hint #x0 - (0 "PÊCHEUR" "GRR, FICHUS POISSONS...") - (180 "PÊCHEUR" "J'EN ATTRAPE JAMAIS UN SEUL !") - ) - -("FIS-AM02" :hint #x0 - (0 "PÊCHEUR" "CES MONSTRES MANGEURS DE BATEAUX VONT ME RUINER...") - (137) - ) - -("FIS-AM03" :hint #x0 - (0 "PÊCHEUR" "ALLEZ POISCAILLE !") - (135 "PÊCHEUR" "DANS MES FILETS LES PETITS, ALLEZ.") - (419) - (425 "PÊCHEUR" "HÉ HÉ HÉ HÉ HÉ !") - ) - -("FIS-AM04" :hint #x0 (0 "PÊCHEUR" "OH ! J'ADORE L'ODEUR DU POISSON LE MATIN.")) -("FIS-AM05" :hint #x0 (0 "PÊCHEUR" "HMMM- JE ME FERAIS BIEN QUELQUES ANCHOIS PANÉES.")) -("FIS-AM06" :hint #x0 (0 "PÊCHEUR" "J'EN AVAIS ATTRAPÉ UN GROS COMME ÇA.")) -("FIS-LO01" :hint #x0 (0 "PÊCHEUR" "GRR !")) -("FIS-LO03" :hint #x0 (0 "PÊCHEUR" "HA HA HA HA HA HA !")) -("FIS-LO04" :hint #x0 (0 "PÊCHEUR" "FICHUS POISSONS ! JAMAIS RIEN DANS MON FILET.")) -("FIS-LO05" :hint #x0 (0 "PÊCHEUR" "HA HA HA AH HA HA HA HA !")) -("FIS-TA01" :hint #x0 (0 "PÊCHEUR" "À GAUCHE !")) -("FIS-TA02" :hint #x0 (0 "PÊCHEUR" "À TA DROITE !")) -("FIS-TA03" :hint #x0 (0 "PÊCHEUR" "EN VOILÀ UN GROS !")) -("FIS-TA04" :hint #x0 (0 "PÊCHEUR" "T'AS MANQUÉ UNE BELLE PRISE LÀ !")) -("FIS-TA05" :hint #x0 (0 "PÊCHEUR" "FAUT PAS MANQUER CELUI-LÀ !")) -("FIS-TA06" :hint #x0 (0 "PÊCHEUR" "BIEN PETIT.")) -("FIS-TA07" :hint #x0 (0 "PÊCHEUR" "IL FAUT SOUQUER FERME, MON GARÇON.")) -("FIS-TA08" :hint #x0 (0 "PÊCHEUR" "GRR, MANQUÉ...")) -("FIS-TA09" :hint #x0 (0 "PÊCHEUR" "IL TE FAUDRAIT UN PLUS GRAND FILET.")) -("FIS-TA10" :hint #x0 (0 "PÊCHEUR" "ENCORE MANQUÉ !")) -("FIS-TA11" :hint #x0 (0 "PÊCHEUR" "C'EST BON ! TU Y ES PRESQUE.")) -("FIS-TA1A" :hint #x0 (0 "PÊCHEUR" "GAUCHE !")) -("FIS-TA2A" :hint #x0 (0 "PÊCHEUR" "DROITE !")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "HMM, SI L'ÉCO BLEUE PEUT CONSTRUIRE UN PONT") - (169) - (171 "DAXTER" "ALORS JE SUIS SÛR QUE ÇA PEUT OUVRIR UNE PORTE ET TE REQUINQUER !") - ) - -("sksp0040" :hint #x23d (0 "DAXTER" "MONTONS SUR CETTE MACHINE ET BRISONS LE MIROIR QUI DÉVIE LE FAISCEAU PRÉCURSOR !")) -("sksp0041" :hint #x23e (0 "DAXTER" "IL FAUT QU'ON MONTE SUR CETTE TOUR !")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "ON DEVRAIT DEMANDER AU PÊCHEUR DE LA RIVIÈRE DE LA JUNGLE") - (120 "DAXTER" "SI ON PEUT PRENDRE SON BATEAU POUR FOOOOONCER À L'ÎLE DE LA BRUME !") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "HÉ, IL Y A DES PETITES TRACES D'ÉCLAIR SUR CES POTEAUX") - (177 "DAXTER" "ET IL Y A DES ÉCLAIRS QUI SORTENT DE CET ORIFICE LÀ-BAS.") - (338) - (340 "DAXTER" "EST-CE QUE TU PENSES CE QUE JE PENSE ?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "OUAIS, ON A UN PROPULSEUR PRÉCURSOR PAR-ICI MAIS TU N'AS PAS LE TRUC BLEU !") - (270 "DAXTER" "ALORS ÇA NE VA PAS NOUS AIDER !") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "ON DEVRAIT ALLER DIRE À CE MOULIN À PAROLE DE MAIRE QU'ON LUI A") - (170 "DAXTER" "RENDU SERVICE EN CONNECTANT LES FAISCEAUX D'ÉNERGIE DU VILLAGE !") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "CES ESPÈCES DE TOURS DANS LA JUNGLE DOIVENT REDIRIGER LE FAISCEAU ÉCO") - (200) - (202 "DAXTER" "ALLONS LES TRAFICOTER !") - ) - -("sksp0b42" :hint #x278 - (0 "DAXTER" "MAIS ATTRAPE LES POISSONS JAUNES !") - (135 "DAXTER" "ILS PÈSENT 5KG CHACUN. ÇA FAIT UN SACRÉ POIDS JAK !") - ) - -("asstvb02" :hint #x289 - (0 "KEIRA" "OUAH ! VOUS AVEZ VU ÇA ?") - (121 "KEIRA" "LES ORIFICES D'ÉCO BLEUE ONT ÉTÉ ACTIVÉS DANS LE MONDE ENTIER !") - (303) - (305 "KEIRA" "JE SAVAIS QU'IL EXISTAIT UN MOYEN.") - (420) - (422 "KEIRA" "IL DOIT AUSSI IL Y AVOIR DES ENDROITS POUR ACTIVER LES AUTRES ORIFICES D'ÉCO.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "ALIGNE LE FAISCEAU EN LE POINTANT VERS LA TOUR SUIVANTE !")) -("sksp0050" :hint #x29d (0 "DAXTER" "BRISE LE MIROIR, JAK !")) -("sksp0051" :hint #x29e (0 "DAXTER" "OCCUPE-TOI DES BESTIOLES JAK ! DES BESTIOLES !")) -("sksp0052" :hint #x29f (0 "DAXTER" "ALLONS À LA TOUR SUIVANTE POUR RECONNECTER LE FAISCEAU LÀ-BAS !")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "HÉ, ON PEUT SUIVRE LE FAISCEAU POUR TROUVER LA TOUR SUIVANTE !")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "IL FAUT QUE TU TE RECHARGES AVEC CE TRUC BLEU POUR OUVRIR ÇA !")) - -;; ----------------- -;; misty -;; ----------------- - -("fishermans-boat-ride-to-village1-alt" - (167 :offscreen "VIEIL HOMME" "CES DEUX-LÀ POURRAIENT NOUS CAUSER DES PROBLÈMES.") - (261) - (264 :offscreen "FEMME" "NE T'INQUIÈTE PAS. JE VAIS ENVOYER MON ARMÉE DE LURKERS POUR LES AFFRONTER.") - (408) - (411 "VIEIL HOMME" "ASSURE-TOI QU'ILS NE S'APPROCHENT DE NOS OPÉRATIONS DANS LE NORD.") - (556) - (562 "FEMME" "JE DOUTE QU'ILS ARRIVENT AUSSI LOIN.") - (623 "FEMME" "AUQUEL CAS, UNE SURPRISE LES ATTEND AU VILLAGE DES PIERRES.") - (785) - (790 "VIEIL HOMME" "ALORS... TU VAS LAISSER KLAWW SORTIR DE SA CAGE ?") - (957) - (966 "FEMME" "JE PENSE QUE ÇA VAUT LE COUP D'ESSAYER.") - (1053) - (1078 "VIEIL HOMME" "EN EFFET.") - (1148) - ) - -("sksp0064" :hint #x245 - (0 "DAXTER" "FAIS ATTENTION !") - (60 "DAXTER" "TU TE SOUVIENS DE CE QU'IL S'EST PASSÉ ICI LA DERNIÈRE FOIS !") - ) - -("sksp0067" :hint #x249 - (0 "DAXTER" "NE TOMBE PAS DANS LA BRUME EN-DESSOUS !") - (122 "DAXTER" "ON NE S'EN SORTIRAIT JAMAIS !") - ) - -("sksp0059" :hint #x26e - (0 "DAXTER" "CET ENDROIT ME FICHE LA TROUILLE !") - (105) - (108 "DAXTER" "ESSAYE DE NE PAS TOMBER LÀ-DEDANS, D'ACCORD ?") - ) - -("sksp0060" :hint #x26f - (30 "DAXTER" "CET ENDROIT ME DONNE LA CHAIR DE POULE !") - (170 "DAXTER" "ET CROIS-MOI, C'EST UNE SACRÉE EXPÉRIENCE") - (335 "DAXTER" "QUAND TU ES RECOUVERT DE POILS !") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "HÉ, JE VOIS LA MUSE DU SCULPTEUR !")) -("sksp0062" :hint #x27e (0 "DAXTER" "FONÇONS SUR CES BALLONS LURKERS POUR LES ÉCLATER !")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "J'AI DIT: \"ÉCLATER LES LURKERS\", JAK. PAS LES MINES !") - (400) - (404 "DAXTER" "RÈGLE NUMÉRO 1: ÉVITER LES MINES !") - ) - -("sagevb02" :hint #x28a - (6 "SAMOS" "JE DOIS L'ADMETTRE, JE SUIS IMPRESSIONNÉ.") - (260 "SAMOS" "VOUS VOUS EN ÊTES TRÈS BIEN TIRÉS !") - (390) - (418 "SAMOS" "DÉSORMAIS, LES LURKERS NE PEUVENT PLUS OUVRIR CE SILO") - (636 "SAMOS" "POUR ENVAHIR LE MONDE D'ÉCO NOIRE ET CAUSER SA DESTRUCTION.") - (863) - (888 "SAMOS" "CE N'EST PAS LA PEINE DE SOURIRE BÊTEMENT DAXTER !") - (1061 "SAMOS" "VOUS AVEZ ENCORE BEAUCOUP À FAIRE !") - (1162 "SAMOS" "ALLEZ, ACTION !") - ) - -("asstvb03" :hint #x28b - (0 "KEIRA" "BIEN, VOUS AVEZ ARRÊTÉ TOUT LES LURKERS POSEURS DE MINES !") - (190 "KEIRA" "ILS MENAÇAIENT LES EAUX PROCHES NOTRE VILLAGE DEPUIS DES SEMAINES.") - (377 "KEIRA" "RAMENEZ LE ZOOMER AU TRANS-PAD ET JE LE TÉLÉPORTERAI !") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "C'EST UNE EMBUSCADE, JAK ! C'EST UNE EMBUSCADE !")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "SAUTE ET PLONGE SUR LA BALANÇOIRE")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "PRENDS L'ÉCO ROUGE !")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "L'ÉCO ROUGE REND TES ATTAQUES PLUS PUISSANTES !")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "ON A BESOIN D'ÉCO POUR CHARGER ÇA !")) -("sksp0435" :hint #x2aa (0 "DAXTER" "RENVERSE CES OS !")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (25 "KEIRA" "SUPER, VOUS AVEZ LES 20 PILES NÉCESSAIRES À MON BOUCLIER THERMIQUE !") - (140) - (150 "KEIRA" "ATTENTION, LE BOUCLIER NE PROTÈGE LE ZOOMER QUE") - (235 "KEIRA" "JUSQU'À 500 DEGRÉS. ALORS VEILLEZ À NE PAS LES ATTEINDRE !") - (343) - (346 :offscreen "KEIRA" "IL SE RÉCHAUFFERA TRÈS VITE SI VOUS SURVOLEZ LA LAVE.") - (428) - (436 "KEIRA" "ET SI VOUS ATTEIGNEZ 500 DEGRÉS, CE SERA FINI !") - (546) - (552 "DAXTER" "FINI ?! COMME DU MÉTAL TOUT FONDU ET BRÛLANT ?!") - (636) - (639 "KEIRA" "LE CANYON DE FEU EST TRÈS CHAUD, ALORS ESSAYEZ") - (725 :offscreen "KEIRA" "DE FAIRE DES SAUTS POUR ÉVITER LE SOL BRÛLANT.") - (792) - (795 :offscreen "KEIRA" "J'AI AUSSI RELÂCHÉ DES BALLONS BLEUS DE REFROIDISSEMENT") - (877 :offscreen "KEIRA" "QUE VOUS POUVEZ UTILISER POUR RAFRAÎCHIR LE BOUCLIER.") - (956) - (974 "KEIRA" "ET QUAND VOUS AUREZ TRAVERSÉ, N'OUBLIEZ PAS D'ACTIVER") - (1062 "KEIRA" "LA PORTE DE TÉLÉPORTATION DANS LE LABO DU SAGE BLEU.") - (1140) - (1146 "KEIRA" "AINSI NOUS POURRONS NOUS TÉLÉPORTER JUSQU'À VOUS.") - (1217) - (1221 "KEIRA" "BONNE CHANCE !") - ) - -("sksp0077" :hint #x502 (0 "DAXTER" "LES BALLONS C'EST BON ! LE MAGMA C'EST PAS BON !")) -("sksp0078" :hint #x503 (0 "DAXTER" "PASSE SUR LES TRUCS PRÉCURSORS POUR NOUS RAFRAÎCHIR.")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "AHHH JE VAIS MOURIR ! J'ALLAIS ÊTRE GRAND-PÈRE...") - (257) - (270 "DAXTER" "IL FAUT QUE TU AMÈNES CE MACHIN DE L'AUTRE CÔTÉ AVANT LA SURCHAUFFE !") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "UTILISE LE VIRAGE-SAUTÉ POUR MIEUX TOURNER !")) -("sksp0081" :hint #x506 (0 "DAXTER" "AHH ! JE DEVRAIS PEUT-ÊTRE CONDUIRE !")) -("sksp0082" :hint #x507 (0 "DAXTER" "TU ESSAYES VRAIMENT D'ÉVITER CES BOÎTES D'ÉCO NOIRE, PAS VRAI ?")) -("sksp0083" :hint #x508 (14 "DAXTER" "ESSAYONS DE PRENDRE DE L'ALTITUDE AVEC CES LURKERS.")) -("sksp0084" :hint #x509 (0 "DAXTER" "TROP PRÈS ! TROP PRÈS !")) -("sksp0085" :hint #x50a (41 "DAXTER" "CET ENGIN DEVIENT TROP CHAUD !")) -("sksp0086" :hint #x50b (0 "DAXTER" "ENCORE QUELQUES SECONDES ET ON VA FINIR EN FLUT-FLUT GRILLÉ !")) -("sksp0087" :hint #x50d (0 "DAXTER" "TOUCHE CES BALLONS POUR REFROIDIR !")) -("sksp0088" :hint #x50e (0 "DAXTER" "VOILÀ UN AUTRE BALLON !")) -("sksp0089" :hint #x50f (0 "DAXTER" "J'AURAIS DÛ FAIRE LA GRASSE MATINÉE...")) -("sksp0090" :hint #x510 (0 "DAXTER" "TU AS MANQUÉ UN BALLON ! IL NOUS FAUT CEUX-LÀ OU ON EST CUIT !")) -("sksp0091" :hint #x511 (0 "DAXTER" "CETTE BÉCANE COMMENCE À CHAUFFER !")) -("sksp0092" :hint #x512 (0 "DAXTER" "IL N'Y A PAS COMME UNE ODEUR DE BRULÉ ?")) -("sksp0093" :hint #x513 (0 "DAXTER" "JE CROIS QUE MA QUEUE EST EN FEU !")) -("sksp0094" :hint #x514 (0 "DAXTER" "ÇA VA EXPLOSER !")) -("sksp0095" :hint #x515 (0 "DAXTER" "WAOUH ! ON A RÉUSSI !")) -("sksp0096" :hint #x516 (0 "DAXTER" "IL Y A DES MÉCAMOUCHES ICI AUSSI !")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (57 "SAMOS" "OUAH !") - (117) - (157 "SAMOS" "JE CROIS QUE JE NE M'HABITUERAI JAMAIS À") - (217 "SAMOS" "CETTE ESPÈCE DE CHATOUILLEMENT DU TÉLÉPORTEUR.") - (280) - (298 "SAMOS" "HÉ !") - (316) - (320 :offscreen "SAMOS" "ON DIRAIT QUE LE SAGE À FAIT UNE FÊTE !") - (414 "KEIRA" "OH ! LÀ-BAS ! LE VILLAGE DES PIERRES EST EN FLAMMES !") - (497) - (500 "SAMOS" "OH, ÇA C'EST UNE SACRÉE FÊTE !") - (562) - (565 "SAMOS" "NON, NON !") - (602 "KEIRA" "LE VILLAGE DES PIERRES SE FAIT BOMBARDER DE ROCHERS ENFLAMMÉS ! ") - (726) - (807 "KEIRA" "ET ON DIRAIT QUE LE SAGE BLEU TRAVAILLAIT SUR") - (890 "SAMOS" "UNE MACHINE À LÉVITATION POUR LES DÉPLACER.") - (957 :offscreen "KEIRA" "EN SUPPOSANT QUE CELA FONCTIONNE IL VA NOUS") - (1016 :offscreen "SAMOS" "FALLOIR DES PILES D'ÉNERGIE POUR L'ALIMENTER.") - (1080 "KEIRA" "JE PENSE QU'IL VA FALLOIR QUE VOUS EN TROUVIEZ PLUS.") - (1148 "SAMOS" "NOUS FERIONS BIEN DE REGARDER SES NOTES.") - (1222 :offscreen "SAMOS" "JAK, VA VOIR LES VILLAGEOIS ET REVIENS NOUS DIRE CE QU'IL SE PASSE.") - (1348 :offscreen "SAMOS" "ET EMMÈNE LA BOULE DE POILS !") - ) - -("assistant-village2-introduction-flutflut" - (42 "KEIRA" "DE RETOUR, LES GARÇONS ?") - (80) - (82 "DAXTER" "\"GARÇONS\" ?") - (110) - (114 "DAXTER" "HÉ POUPÉE, JE SUIS UN GRAND-") - (190) - (200 "DAXTER" "EUH...") - (224) - (234 "DAXTER" "UN GRAND... TRUC POILU.") - (314) - (316 "KEIRA" "OH ! DEVINEZ QUOI. AVEC LA PERMISSION DE LA DAME AUX OISEAUX") - (416 "KEIRA" "J'AI ÉQUIPÉ LE BÉBÉ FLUT-FLUT D'UNE SELLE !") - (512) - (519 "KEIRA" "IL SEMBLE QU'IL Y AIT UN TRANS-PAD PRÉCURSOR DANS LE MARÉCAGE.") - (644) - (645 "KEIRA" "SI VOUS LE TROUVEZ, JE VOUS ENVERRAI LE FLUT-FLUT AVEC TOUT SON ÉQUIPEMENT.") - (772) - (772 "KEIRA" "IL FAIT DE GRANDS BONDS. CELA POURRAIT VOUS ÊTRE UTILE POUR TRAVERSER LE GOUDRON.") - (870) - ) - -("assistant-village2-introduction-robbers" - (30 "KEIRA" "HÉ, VOUS DEUX !") - (67 "KEIRA" "JE SAIS OÙ VOUS POUVEZ TROUVER UNE AUTRE PILE D'ÉNERGIE !") - (132) - (140 "KEIRA" "SELON CES NOTES,") - (170 "KEIRA" "DES LURKERS VOLANTS SONT VENUS IL Y A QUELQUES JOURS POUR EN VOLER") - (246 "KEIRA" "UNE AU SAGE BLEU ET SE SONT ENVOLÉS DANS LE BASSIN PRÉCURSOR.") - (362 "KEIRA" "VOUS POURRIEZ TRAQUER CES LURKERS AVEC VOTRE ZOOMER") - (426 "KEIRA" "JUSQU'À TROUVER CELUI QUI A LA PILE D'ÉNERGIE !") - (496 "KEIRA" "VOUS TROUVEREZ LE ZOOMER SUR LE TRANS-PAD À L'ENTRÉE DU BASSIN PRÉCURSOR.") - (614) - ) - -("assistant-village2-introduction-room" - (30 "KEIRA" "APPAREMMENT, LA STRUCTURE PRÉCURSOR CÔTIÈRE MÈNE À UNE CITÉ PERDUE SOUS-MARINE.") - (186) - (189 "KEIRA" "LE SAGE BLEU A ESSAYÉ DE TROUVER UN MOYEN POUR") - (252 "KEIRA" "FAIRE REMONTER UNE DES SALLES À LA SURFACE.") - (326 "KEIRA" "MAIS IL N'Y EST JAMAIS PARVENU.") - (383 "KEIRA" "VOUS DEVRIEZ ALLER VOIR ÇA !") - (427) - (434 "DAXTER" "EUH... ÇA NE GROUILLERAIT PAS") - (491 "DAXTER" "DE REQUINS LURKERS DANS CES EAUX ?") - (553 "KEIRA" "POURQUOI ? TU AS PEUR ?") - (634 "DAXTER" "MOI ?! BIEN SÛR QUE NON !") - (701 "DAXTER" "C'ÉTAIT JUSTE POUR JAK") - (750 "DAXTER" "V-VOUS EUH...") - (782) - (798 "DAXTER" "VOUS SAVEZ COMME IL PEUT ÊTRE CHOCHOTTE.") - (845) - (870 "KEIRA" "BIEN, SI VOUS NAGEZ AU-DESSUS DU RÉCIF DE CORAIL") - (937 "KEIRA" "LES REQUINS LURKERS NE VOUS EMBÊTERONT PAS.") - (998 "KEIRA" "ILS N'AIMENT PAS LES BAS-FONDS.") - ) - -("assistant-village2-reminder-1-flutflut" - (24 "KEIRA" "JE SUIS SÛRE QUE LE FLUT-FLUT VOUS SERA UTILE DANS LE MARÉCAGE.") - (125 "KEIRA" "TROUVEZ LE TRANS-PAD ET JE VOUS L'ENVERRAI.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (23 "KEIRA" "JE VAIS TÉLÉPORTER VOTRE ZOOMER AU BASSIN PRÉCURSOR") - (109 "KEIRA" "POUR QUE VOUS PUISSIEZ CHASSER CES LURKERS VOLANTS DONT NOUS AVONS PARLÉ.") - (230) - ) - -("assistant-village2-reminder-1-room" - (35 "KEIRA" "VOUS AVEZ NAGÉ JUSQU'À LA CITÉ PRÉCURSOR PERDUE ?") - (124) - (127 "KEIRA" "VOUS DEVEZ ESSAYER DE FAIRE REMONTER LA SALLE QUE LE SAGE BLEU CHERCHE.") - (230) - ) - -("assistant-village2-resolution" - (42 "KEIRA" "SUPER, VOUS AVEZ LES PILES POUR LA MACHINE !") - (112 "KEIRA" "ELLE DEVRAIT FOURNIR ASSEZ DE PUISSANCE POUR SOULEVER CE ROCHER.") - (220) - (309 :offscreen "KEIRA" "NOUS Y VOILÀ !") - (336) - (346 :offscreen "KEIRA" "ATTENTION EN COMBATTANT CE MONSTRE LURKER AU SOMMET !") - (433) - (441 "DAXTER" "ATTENDS ! EUH...") - (490 "DAXTER" "JE VAIS RESTER ICI ET PROTÉGER KEIRA.") - (562) - (573 "DAXTER" "JAK, JE CROIS QUE TU PEUX T'OCCUPER DE CE MONSTRE SANS MOI.") - (663) - (672 "KEIRA" "OH ! C'EST TELLEMENT HÉROÏQUE DE TA PART.") - (754) - ) - -("gambler-introduction-1" - (24 "PARIEUR" "OH, NON ! PAS UN AUTRE \"HÉROS\"...") - (105 "PARIEUR" "J'AI PERDU MA CULOTTE LORS D'UN COMBAT") - (167 "PARIEUR" "D'UN PSEUDO HÉROS CONTRE LE MONSTRE.") - (237) - (239 "PARIEUR" "CROYEZ-MOI, IL FAUT MISER SUR LE MONSTRE.") - (328) - (340 "PARIEUR" "CE PARI M'A COMPLÈTEMENT RUINÉ !") - (414 "PARIEUR" "MAIS J'AI UNE PROPOSITION:") - (473 "PARIEUR" "APPORTEZ-MOI 90 ORBES POUR QUE JE PUISSE ME REFAIRE ET SORTIR DE CE TONNEAU") - (601 "PARIEUR" "EN ÉCHANGE D'UNE PILE D'ÉNERGIE.") - (650 "PARIEUR" "ET SI ÇA VOUS TENTE, JE VOUS PROPOSE UN AUTRE PARI.") - (734) - (736 :offscreen "PARIEUR" "SI VOUS BATTEZ LE RECORD DE LA COURSE DU DÉFILÉ DU DÉFUNT DANS LE BASSIN PRÉCURSOR,") - (851 :offscreen "PARIEUR" "À MOI LE GROS LOT !") - (952 "PARIEUR" "CE QUI VOUS VAUDRA UNE NOUVELLE PILE D'ÉNERGIE !") - ) - -("gambler-reminder-money" - (2 "PARIEUR" "HÉ, N'OUBLIEZ PAS LES ORBES QU'IL ME FAUT !") - (77 "PARIEUR" "90 CONTRE UNE. UNE PILE D'ÉNERGIE, J'ENTENDS !") - ) - -("gambler-reminder-race" - (1 "PARIEUR" "BON, QU'EST-CE QUE VOUS ATTENDEZ LÀ ?") - (62 "PARIEUR" "ÇA COMMENCE À GRATTER !") - (110) - (117 "PARIEUR" "BATTEZ LE RECORD DU DÉFILÉ DU DÉFUNT") - (189 "PARIEUR" "ET À NOUS LA VICTOIRE !") - ) - -("gambler-resolution-money" - (0 "PARIEUR" "HÉ HÉ HÉ ! OH, OUI !") - (70) - (76 "PARIEUR" "CES ORBES VONT ENFIN M'AIDER À SORTIR DE CE TONNEAU.") - (171 "PARIEUR" "VOILÀ LA PILE D'ÉNERGIE PROMISE !") - ) - -("gambler-resolution-race" - (0 "PARIEUR" "OH, BIEN JOUÉ PETIT ! JE SAVAIS QU'ON POUVAIT GAGNER.") - (129 "PARIEUR" "NOUS IRONS LOIN TOUS LES DEUX !") - (179 "PARIEUR" "VOILÀ TA PILE D'ÉNERGIE ET MOI JE VAIS ENCAISSER.") - ) - -("geologist-introduction" - (27 "GÉOLOGUE" "VOUS M'AVEZ L'AIR VRAIMENT TRÈS DOUÉS TOUS LES DEUX !") - (100 "GÉOLOGUE" "JE FAIS UNE ÉTUDE SCIENTIFIQUE ET VOUS POURRIEZ PEUT-ÊTRE M'AIDER.") - (198) - (203 "DAXTER" "HÉ, C'EST NOTRE AVENTURE !") - (276 "DAXTER" "C'EST NOUS QUI AVONS BESOIN DE VOTRE AIDE !") - (323) - (329 "GÉOLOGUE" "ALORS NOUS POUVONS NOUS ENTRAIDER !") - (392) - (396 "GÉOLOGUE" "J'ÉTUDIE LE COMPORTEMENT DES TAUPES ÉCLAIRS") - (459 "GÉOLOGUE" "DANS LE BASSIN PRÉCURSOR PRÈS DE NOTRE VILLAGE.") - (557) - (566 :offscreen "GÉOLOGUE" "MAIS CES HORRIBLES LURKERS ONT EFFRAYÉ LES TAUPES QUI SONT REMONTÉES.") - (682) - (685 :offscreen "GÉOLOGUE" "ET COMME ELLES SONT AVEUGLES, ELLES N'ARRIVENT PAS À RETOURNER SOUS TERRE.") - (808) - (822 "GÉOLOGUE" "SI VOUS PARVENEZ À LES RAMENER VERS LEURS GALERIES,") - (893 "GÉOLOGUE" "VOUS LEUR SAUVEREZ SÛREMENT LA VIE.") - (945) - (955 "GÉOLOGUE" "UNE PILE D'ÉNERGIE VOUS CONVAINCRA SANS DOUTE.") - (1028) - (1035 "DAXTER" "OUAIS, LES TAUPES ÉCLAIRS... ON S'EN OCCUPE") - (1150) - (1163 "DAXTER" "MAIS CONTRE DEUX PILES D'ÉNERGIE !") - (1232 "GÉOLOGUE" "BIEN TENTÉ, MAIS VOUS AUREZ DROIT À UNE AUTRE PILE D'ÉNERGIE") - (1342 "GÉOLOGUE" "SI VOUS ME TROUVEZ 90 ORBES PRÉCURSORS POUR MON ÉQUIPEMENT DE RECHERCHE.") - (1465 "GÉOLOGUE" "C'EST D'ACCORD ?") - (1506) - ) - -("geologist-reminder-moles" - (24 "GÉOLOGUE" "AVEZ-VOUS RAMENÉ LES TAUPES ÉCLAIRS SOUS TERRE ?") - (109) - (118 "GÉOLOGUE" "DÉPÊCHEZ-VOUS, LA LUMIÈRE DU SOLEIL LEUR FAIT DU MAL !") - ) - -("geologist-reminder-money" (26 "GÉOLOGUE" "J'AI BESOIN DE CES ORBES POUR POUVOIR POURSUIVRE MES RECHERCHES.")) - -("geologist-resolution-moles" - (30 "GÉOLOGUE" "MERCI D'AVOIR SAUVÉ CES TAUPES, C'EST TRÈS GENTIL DE VOTRE PART !") - (140) - (150 "GÉOLOGUE" "VOILÀ UNE PILE D'ÉNERGIE POUR VOUS.") - (227) - (237 "GÉOLOGUE" "JE VAIS POUVOIR POURSUIVRE MES RECHERCHES.") - ) - -("geologist-resolution-money" - (27 "GÉOLOGUE" "OH, VOUS AVEZ LES ORBES !") - (77) - (80 "GÉOLOGUE" "VOILÀ LA PILE D'ÉNERGIE COMME PROMIS.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (45 "SAMOS" "LA SITUATION EMPESTE PLUS QUE L'HALEINE D'UN LURKER !") - (144) - (152 "SAMOS" "AVANT SA DISPARITION, LE SAGE BLEU A SIGNALÉ") - (259 "SAMOS" "DES TROUBLES IMPORTANTS DANS TOUS LES ENVIRONS.") - (360) - (365 "SAMOS" "JE M'INTÉRESSE EN PARTICULIER AUX PAUVRES PLANTES") - (449 "SAMOS" "DU BASSIN PRÉCURSOR QUI ONT ÉTÉ INFECTÉES PAR L'ÉCO NOIRE.") - (591) - (597 :offscreen "SAMOS" "KEIRA VA DÉPLACER TON ZOOMER ANTI-GRAV JUSQU'AU TÉLÉPORTEUR LE PLUS PROCHE.") - (720 "SAMOS" "UTILISE LE ZOOMER POUR ATTEINDRE UN ORIFICE D'ÉCO VERTE") - (811 "SAMOS" "ET RAMÈNES-EN JUSQU'AUX PLANTES.") - (896 "SAMOS" "CELA DEVRAIT LES GUÉRIR !") - (948) - (951 "SAMOS" "NE MANQUE PAS UNE SEULE PLANTE, OU CELLES") - (1032 "SAMOS" "QUI SONT INFECTÉES CONTAMINERONT LES AUTRES.") - (1168) - (1195 :offscreen "SAMOS" "ET DAXTER...") - (1254 "SAMOS" "ATTAQUE LE MÉNAGE !") - (1310 "SAMOS" "ET N'OUBLIE PAS LES COINS !") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAMOS" "J'ESPÈRE QUE VOUS ÊTES BIEN ÉQUIPÉS") - (67 "SAMOS" "PARCE QUE ÇA NE FAIT QUE COMMENCER !") - (130) - (140 "SAMOS" "D'APRÈS LES NOTES DU SAGE BLEU") - (197 "SAMOS" "LES LURKERS ONT ENVAHIS LE MARÉCAGE DE L'AUTRE CÔTÉ DE LA BAIE.") - (300) - (311 :offscreen "SAMOS" "APPAREMMENT, ILS VEULENT UTILISER UN DIRIGEABLE") - (418 :offscreen "SAMOS" "POUR EXTRAIRE UN IMPORTANT OBJET PRÉCURSOR DE LA BOUE.") - (531) - (550 :offscreen "SAMOS" "VOUS DEVEZ Y ALLER POUR DÉTACHER LEURS CORDES.") - (675) - (685 "SAMOS" "QUI SAIT CE QU'ILS VEULENT FAIRE DE CET OBJET...") - (778 "SAMOS" "MAIS C'EST COMME L'HALEINE DE CE TRUC ORANGE LÀ !") - (854 "SAMOS" "ÇA NE SENT PAS BON DU TOUT !") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (26 "SAMOS" "JE DOIS AVOIR LA BERLUE !") - (93) - (99 "SAMOS" "PUISQUE JE SAIS QUE VOUS ÊTES TOUS LES DEUX DANS LE BASSIN PRÉCURSOR") - (210 "SAMOS" "EN TRAIN DE SAUVER LES PLANTES INFECTÉES PAR L'ÉCO NOIRE.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (0 "SAMOS" "COMMENT SE FAIT-IL QUE VOUS SOYEZ DÉJÀ RENTRÉS ?") - (70) - (82 "SAMOS" "JE VOIS DU BALCON QUE LE DIRIGEABLE") - (148 :offscreen "SAMOS" "LURKER FLOTTE TOUJOURS AU-DESSUS DU MARÉCAGE !") - (250) - (255 "SAMOS" "VOUS N'AVEZ APPAREMMENT PAS TERMINÉ VOTRE MISSION.") - (340) - (364 "SAMOS" "ALLEZ ACTION !") - (400) - ) - -("warrior-introduction" - (24 "GUERRIER" "OH, MA PAUVRE TÊTE...") - (128) - (135 "DAXTER" "CE N'EST PAS L'UN DE VOS ORGANES VITAUX !") - (201 "DAXTER" "ALLONS, DU NERF SOLDAT !") - (264 "GUERRIER" "POUR SÛR, J'ÉTAIS FORT DANS LE TEMPS") - (333 "GUERRIER" "SÛREMENT LE PLUS FORT DE TOUS MÊME !") - (407 "GUERRIER" "TOUT SEUL J'AI DÉFENDU CE VILLAGE CONTRE") - (474 "GUERRIER" "CES AFFREUSES CRÉATURES PENDANT PRESQUE UNE ANNÉE !") - (599 :offscreen "GUERRIER" "ET PUIS CE MONSTRE HORRIBLE EST ARRIVÉ ET IL NOUS A BOMBARDÉ !") - (760 :offscreen "GUERRIER" "ALORS, PLEIN D'ARDEUR ET DE COURAGE,") - (904 "GUERRIER" "JE SUIS MONTÉ SUR LA COLLINE POUR L'AFFRONTER !") - (1033) - (1052 "GUERRIER" "MAIS IL M'A APLATI COMME VULGAIRE STEAK DE YAKOW...") - (1172) - (1175 "DAXTER" "VOUS AVEZ DÉJÀ ESSAYÉ DE L'ATTAQUER AVEC VOS TIRADES ?") - (1254 "DAXTER" "PARCE QUE MOI ÇA ME TUE !") - (1303) - (1308 :offscreen "GUERRIER" "APRÈS MA DERNIÈRE DÉFAITE,") - (1370 :offscreen "GUERRIER" "IL A BLOQUÉ LA VOIE MENANT À SON REPÈRE AVEC UN BLOC DE 30 TONNES.") - (1515 :offscreen "GUERRIER" "DEPUIS, PLUS PERSONNE NE PEUT ALLER LE DÉFIER.") - (1640) - (1669 "GUERRIER" "ALORS NOTRE SAGE MAÎTRE EN ÉCO BLEUE ET MÉCANICIEN DE GÉNIE") - (1860 "GUERRIER" "A CONÇU UNE MACHINE CAPABLE DE DÉGAGER CE BLOC DU PASSAGE !") - (2030) - (2040 "GUERRIER" "MAIS HÉLAS, IL A DISPARU AVANT QUE NOUS AYONS PU L'ESSAYER.") - (2200) - (2222 "GUERRIER" "EN EMMENANT TOUTES SES PILES D'ÉNERGIE AVEC LUI.") - (2330) - (2360 :offscreen "GUERRIER" "J'AI QUAND MÊME RÉUSSI À RETIRER ASSEZ DE PASSERELLES DE NOTRE PONT POUR EMPÊCHER") - (2493 :offscreen "GUERRIER" "LE MONSTRE DE VENIR ICI ME FAIRE DU MAL.") - (2563) - (2566 "DAXTER" "OUAIS, BIEN JOUÉ SOLDAT ! MAIS, EUH...") - (2680 "DAXTER" "IL VA FALLOIR QUE VOUS REMETTIEZ EN PLACE TOUT ÇA !") - (2766) - (2770 "GUERRIER" "BIEN SÛR... ET CAUSER MA PERTE ?") - (2880 "GUERRIER" "(SOUPIR)") - (2943) - (2949 "GUERRIER" "BON, D'ACCORD...") - (3036 "GUERRIER" "AMENEZ-MOI 90 ORBES ET JE REMETTRAI LES PASSERELLES...") - (3173) - (3197 "GUERRIER" "MAIS JE REFUSE DE ME BATTRE CONTRE CE MONSTRE À NOUVEAU !") - ) - -("warrior-reminder-1" - (27 "GUERRIER" "PRENEZ TOUT VOTRE TEMPS POUR ME RAMENER LES ORBES PRÉCURSORS.") - (156 "GUERRIER" "JE NE SUIS PAS DU TOUT PRESSÉ DE RÉPARER LE PONT.") - ) - -("warrior-resolution" - (30 "GUERRIER" "OH !") - (67) - (73 "GUERRIER" "FANTASTIQUE...") - (120) - (126 "GUERRIER" "VOUS M'AMENEZ LES ORBES PRÉCURSORS.") - (234) - (240 "GUERRIER" "D'ACCORD.") - (279) - (285 "GUERRIER" "JE VAIS RÉPARER LE PONT.") - (334) - (340 "GUERRIER" "MAIS JE NE VEUX PLUS JAMAIS AVOIR AFFAIRE À CETTE CRÉATURE !") - (476) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "ALORS COMMENT FAISAIT-IL MARCHER CE LÉVITATEUR ?")) - -("ASSTLP24" :hint #x0 - (24 "KEIRA" "MÊME AVEC DES PILES D'ÉNERGIE,") - (123 "KEIRA" "AURONS-NOUS ASSEZ DE PUISSANCE ?") - ) - -("GAM-AM01" :hint #x0 (0 "PARIEUR" "VINGT CONTRE UN C'EST PAS SI MAL !")) -("GAM-AM02" :hint #x0 (0 "PARIEUR" "OH, C'ÉTAIT POURTANT SI SÛR !")) -("GAM-AM03" :hint #x0 (0 "PARIEUR" "HÉ HÉ HÉ ! JE VAIS BIENTÔT TOUCHER LE GROS LOT !")) -("GAM-AM04" :hint #x0 (0 "PARIEUR" "HÉ, LES TONNEAUX REVIENNENT À LA MODE !")) -("GAM-AM05" :hint #x0 (0 "PARIEUR" "J'AI BESOIN D'UN COUP DE CHANCE !")) -("GAM-AM06" :hint #x0 (0 "PARIEUR" "OH... J'AI BESOIN D'UN COUP DE CHANCE.")) -("GAM-AM07" :hint #x0 (0 "PARIEUR" "QUELLES SONT LES PROBABILITÉS D'ATTERRIR DANS UNE VILLE ATTAQUÉE ?")) -("GAM-AM08" :hint #x0 (0 "PARIEUR" "JE CROYAIS AVOIR UN BON TUYAU.")) -("GAM-AM09" :hint #x0 (0 "PARIEUR" "HÉ OUI ! À CHAQUE JOUR SON PARI !")) -("GAM-AM10" :hint #x0 (0 "PARIEUR" "JE PARIE QUE PERSONNE NE PEUT BATTRE CE MONSTRE !")) -("GAM-AM11" :hint #x0 (0 "PARIEUR" "JE DEVRAIS ENCAISSER ET FILER.")) -("GAM-AM12" :hint #x0 (0 "PARIEUR" "ON NE PEUT PAS TOUJOURS GAGNER.")) -("GAM-AM13" :hint #x0 (0 "PARIEUR" "HÉ ! POURQUOI TU RIGOLES ? JE TE FAIS RIRE ?")) -("GEO-AM01" :hint #x0 (0 "GÉOLOGUE" "HMM, QUELLE STRATE INTÉRESSANTE.")) -("GEO-AM02" :hint #x0 (0 "GÉOLOGUE" "PAUVRES PETITES TAUPES...")) -("GEO-AM03" :hint #x0 (0 "GÉOLOGUE" "INTÉRESSANT.")) -("GEO-AM04" :hint #x0 (0 "GÉOLOGUE" "BONNE CHANCE LES GARS !")) -("GEO-AM05" :hint #x0 (0 "GÉOLOGUE" "FICHUS LURKERS...")) -("GEO-AM06" :hint #x0 (0 "GÉOLOGUE" "LES PIERRES SONT SENSIBLES.")) -("GEO-AM07" :hint #x0 (0 "GÉOLOGUE" "ACCROCHEZ-VOUS MES PETITES.")) -("GEO-AM08" :hint #x0 (0 "GÉOLOGUE" "JE VAIS POUVOIR CONTINUER MES RECHERCHES.")) -("GEO-LO01" :hint #x0 (0 "GÉOLOGUE" "IL FAUT QUE JE CONTINUE MES RECHERCHES.")) -("GEO-LO02" :hint #x0 (0 "GÉOLOGUE" "HMM, CETTE PIERRE EST TRÈS VIEILLE.")) -("SAGELP20" :hint #x0 (0 "SAMOS" "HMM...")) -("SAGELP21" :hint #x0 (0 "SAMOS" "LES LURKERS DOIVENT ÊTRE ARRÊTÉS !")) -("SAGELP22" :hint #x0 (0 "SAMOS" "JE VOIS...")) -("SAGELP23" :hint #x0 (0 "SAMOS" "NON...")) -("SAGELP24" :hint #x0 (0 "SAMOS" "QU'A-T-IL BIEN PU LUI ARRIVER ?")) -("WAR-LO1A" :hint #x0 (0 "GUERRIER" "(PLEURS)")) -("WAR-LO1B" :hint #x0 (0 "GUERRIER" "(PLEURS)")) - -("WAR-LO1C" :hint #x0 - (0 "GUERRIER" "(PLEURS)") - (200 "GUERRIER" "(PLEURS)") - ) - -("asstvb22" :hint #x326 - (93 "KEIRA" "VOUS AVEZ FAIT REMONTER UNE PARTIE DES RUINES SUBMERGÉES !") - (275 "KEIRA" "IL SEMBLERAIT QUE L'ON PUISSE UTILISER L'ÉCO DE FAÇON ENCORE INCONNUE.") - (480 "KEIRA" "UNE PILE D'ÉNERGIE EST REMONTÉE AVEC LA SALLE.") - (601 "KEIRA" "MONTEZ DESSUS POUR LA RÉCUPÉRER !") - (775) - ) - -("asstvb20" :hint #x327 - (38 "KEIRA" "BIEN JOUÉ, CES LURKERS NE FONT PAS LE POIDS FACE À VOTRE ZOOMER !") - (282 "KEIRA" "C'EST UNE PILE D'ÉNERGIE DE PLUS.") - ) - -("asstvb21" :hint #x328 - (50 "KEIRA" "BIEN JOUÉ ! VOUS N'ÊTES PAS CONTENTS D'AVOIR SAUVÉ NOTRE PETIT AMI FLUT-FLUT ?") - (290 "KEIRA" "IL POURRAIT ENCORE S'AVÉRER UTILE.") - (400 "KEIRA" "MAINTENANT, RETOURNEZ AU TRANS-PAD ET JE LE RAMÈNERAI À LA MAISON.") - ) - -("sagevb03" :hint #x36a - (0 "SAMOS" "C'EST QUE VOUS M'IMPRESSIONNEZ !") - (136 "SAMOS" "MAIS C'EST SÛREMENT PARCE QUE JE NE M'ATTENDAIS PAS À ÇA DE VOUS.") - (420 "SAMOS" "BON, VOTRE HEURE DE GLOIRE EST PASSÉE.") - (580) - (588 "SAMOS" "PASSONS À AUTRE CHOSE.") - ) - -("sagevb04" :hint #x36b - (0 "SAMOS" "BIEN JOUÉ, JAK ! TON ONCLE SERAIT FIER DE TOI !") - (240 "SAMOS" "C'ÉTAIT LE BRAS GÉANT D'UN ROBOT PRÉCURSOR.") - (475 "SAMOS" "JE N'EN AI JAMAIS VU EN AUSSI BON ÉTAT.") - (685 "SAMOS" "JE NE SAIS PAS CE QUE LES LURKERS AVAIENT L'INTENTION D'EN FAIRE,") - (912 "SAMOS" "MAIS SÛREMENT PAS QUELQUE CHOSE DE BON.") - (1060) - (1065 "SAMOS" "SI TU CONTINUES COMME ÇA-") - (1205 "SAMOS" "NON... TU N'ES PAS ENCORE UN HÉROS !") - (1380) - (1401 "SAMOS" "MAIS, PERSISTE. ÇA VIENT !") - ) - -("asstvb71" :hint #x36c - (5 "KEIRA" "VOUS N'AVEZ PAS ASSEZ DE PILES D'ÉNERGIE POUR ALIMENTER LA MACHINE DU SAGE BLEU.") - (210 "KEIRA" "ON NE POURRA PAS SOULEVER CE ROCHER TANT QUE VOUS N'AUREZ PAS 45 PILES D'ÉNERGIE.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "EN ATTENDANT DE SAVOIR POURQUOI LE SAGE BLEU A DISPARU") - (159 "KEIRA" "IL FAUT QUE VOUS RAMASSIEZ 45 PILES D'ÉNERGIE") - (291 "KEIRA" "POUR ALIMENTER CETTE MACHINE. NE TRAINEZ PAS !") - ) - -("asstvb28" :hint #x36f - (26 "KEIRA" "HÉ, NE NOUS OUBLIEZ PAS !") - (151) - (158 "KEIRA" "IL FAUT QUE VOUS ACTIVIEZ LA PORTE DE TÉLÉPORTATION POUR NOUS LAISSER PASSER") - (374) - (380 "KEIRA" "C'EST DANS LE LABO DU SAGE BLEU, AU BOUT DU CANYON DE FEU.") - (564) - (570 "KEIRA" "SI NOUS NE PASSONS PAS, NOUS NE POURRONS PAS VOUS AIDER.") - ) - -("asstvb29" :hint #x370 - (0 "KEIRA" "HÉ, NOUS ATTENDONS TOUJOURS !") - (155 "KEIRA" "ACTIVEZ LA PORTE DE TÉLÉPORTATION !") - ) - -("asstvb30" :hint #x371 - (1 "KEIRA" "HÉ ! ON NE PEUT PAS PASSER TANT QUE") - (125 "KEIRA" "LA PORTE DE TÉLÉPORTATION N'EST PAS ACTIVÉE !") - ) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (5 "BILLY" "BIEN ! LES RATS VONT BIENTÔT REVENIR.") - (109 "BILLY" "DESCENDEZ-LES TOUS ET EMPÊCHEZ-LES DE MANGER AU MOINS UN DES PLATS.") - ) - -("billy-introduction" - (6 "BILLY" "SALUT VOUS ! IL VOUS PLAIT MON MARÉCAGE ?") - (133 "BILLY" "C'EST À MOI TOUT ÇA !") - (189 "BILLY" "TOUT CE QUI NE S'ENFONCE PAS DANS LA VASE !") - (340) - (370 "DAXTER" "À L'ODEUR, VOTRE BAIGNOIRE A DÛ S'ENFONCER DANS LA VASE DEPUIS DES LUSTRES !") - (520) - (525 "BILLY" "C'EST QUOI UNE BAIGNOIRE ?") - (592) - (612 "BILLY" "EN TOUT CAS J'AI D'AUTRES PROBLÈMES POUR L'INSTANT.") - (680) - (691 "BILLY" "ON DIRAIT QUE DES VERMINES DE LURKERS SONT DANS LE COIN") - (810 "BILLY" "ET POSENT LEURS SALES PETITES PATTES SUR TOUT CE QUI BOUGE !") - (910 "BILLY" "ÇA EFFRAYE MON HIP-HOG, FARTHY.") - (1017) - (1021 "BILLY" "ÇA FAIT DES LUSTRES QU'IL N'EST PAS REVENU.") - (1136) - (1146 :offscreen "BILLY" "JE LUI AI PRÉPARÉ SON PLAT PRÉFÉRÉ") - (1219 :offscreen "BILLY" "MAIS CES SALES RATS N'ARRÊTENT PAS DE TOUT VOLER !") - (1329 :offscreen "BILLY" "SI VOUS POUVEZ ÉLOIGNER CES SALES PETITES BÊTES ASSEZ LONGTEMPS") - (1418 :offscreen "BILLY" "JE SAIS QUE FARTHY SENTIRA SA BOUFFE ET REVIENDRA !") - (1532) - (1545 "BILLY" "VOUS ALLEZ M'AIDER, HEIN ?") - ) - -("billy-reject" - (7 "BILLY" "BON, SI VOUS CHANGEZ D'AVIS") - (89 "BILLY" "VOUS SAVEZ OÙ ME TROUVER, HEIN ?") - (153 "BILLY" "HA HA HA HA HA.") - (240) - ) - -("billy-reminder-1" (37 "BILLY" "AH ! VOUS ÊTES REVENUS POUR LES RATS ?")) - -("billy-resolution" - (0 "BILLY" "CES SALES RATS... ILS SONT VRAIMENT RAPIDES") - (116 "BILLY" "PAS VRAI ? ON REMET ÇA ?") - ) - -("BIL-AM01" :hint #x0 (0 "BILLY" "MOI J'ADORE LA VASE !")) -("BIL-AM02" :hint #x0 (0 "BILLY" "SALETÉ DE RATS !")) -("BIL-AM03" :hint #x0 (0 "BILLY" "J'AI BESOIN D'UN BON COUP DE FORTIFIANT !")) -("BIL-AM04" :hint #x0 (0 "BILLY" "GLADIOLA !")) -("BIL-AM05" :hint #x0 (0 "BILLY" "J'AI BIEN BESOIN D'UN REMONTANT !")) -("BIL-AM06" :hint #x0 (0 "BILLY" "HÉ, IL FAUT BIEN REFROIDIR LA MACHINE !")) -("BIL-AM07" :hint #x0 (0 "BILLY" "CETTE CHALEUR ME TAPE SUR LE SYSTÈME...")) -("BIL-AM08" :hint #x0 (0 "BILLY" "GRR... CETTE CHALEUR ME DONNE DES BOUTONS.")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "MM-MM ! J'ADORE LA VASE.")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "SALETÉ DE RATS !")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "SALETÉ DE RATS !")) -("BIL-LO01" :hint #x0 (0 "BILLY" "FARTHY !")) -("BIL-LO02" :hint #x0 (0 "BILLY" "PETIT, PETIT, PETIT. PETIT !")) -("BIL-LO03" :hint #x0 (0 "BILLY" "FARTHY !")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "FARTHY !")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "PE-PE-PETIT !")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "PETIT ? PETIT ?!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "CHOPE-LES !")) -("BIL-TA02" :hint #x0 (0 "BILLY" "BIEN VU !")) -("BIL-TA03" :hint #x0 (0 "BILLY" "PAR LÀ-BAS !")) -("BIL-TA04" :hint #x0 (0 "BILLY" "HÉ, NON.")) -("BIL-TA05" :hint #x0 (0 "BILLY" "LE RAT L'A PRIS.")) -("BIL-TA06" :hint #x0 (0 "BILLY" "ET UN AUTRE !")) -("BIL-TA07" :hint #x0 (0 "BILLY" "IL N'Y EN A PLUS QU'UN.")) -("BIL-TA08" :hint #x0 (0 "BILLY" "ON L'A EU !")) -("BIL-TA09" :hint #x0 (0 "BILLY" "YAAHOOO !")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "CHOPE-LES !")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "BIEN VU !")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "PAR LÀ-BAS !")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "HÉ, NON.")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "HÉ, NON !")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "LE RAT L'A PRIS !")) -("SKSP009F" :hint #x0 (0 "DAXTER" "PRENDS ÇA ! PRENDS ÇA ! HA HA HA !")) -("sksp0137" :hint #x351 (0 "DAXTER" "JE SUIS SÛR QU'ON PEUT TIRER SUR CES ROCHERS, SI ON EST CHARGÉ EN ÉCO JAUNE.")) -("sksp0138" :hint #x352 (0 "DAXTER" "ON DEVRAIT TIRER SUR CES GROS ROCHERS QUI MAINTIENNENT LES CORDES !")) -("sksp0139" :hint #x353 (0 "DAXTER" "ON DEVRAIT PEUT-ÊTRE AIDER CE FÊLÉ À TROUVER SON ANIMAL.")) -("sksp0140" :hint #x354 (0 "DAXTER" "LE FLUT-FLUT PEUT PLANER PLUS LOIN S'IL SAUTE ENCORE EN L'AIR !")) -("sksp0141" :hint #x355 (0 "DAXTER" "NE TOUCHE PAS CE GOUDRON NOIR, OU TU LE REGRETTERAS !")) -("sksp0142" :hint #x356 (0 "DAXTER" "ON PEUT S'AVENTURER DANS L'EAU.")) -("sksp0143" :hint #x357 (0 "DAXTER" "AAH ! DÉBARRASSE-TOI DE SA LANGUE !")) -("sksp0144" :hint #x358 (0 "DAXTER" "TIRE SUR CES NIDS DE RATS POUR LES EMPÊCHER DE SORTIR !")) - -("sksp0145" :hint #x359 - (0 "DAXTER" "OUAH ! TU PEUX TIRER DES BOULES DE FEU") - (123 "DAXTER" "QUAND TU ES CHARGÉ EN ÉCO JAUNE !") - ) - -("sksp0146" :hint #x35a (0 "DAXTER" "HÉ, C'EST DE L'ÉCO JAUNE !")) -("sksp0147" :hint #x35b (0 "DAXTER" "TU PEUX SAUTER SUR CETTE PERCHE LÀ-BAS !")) -("sksp0148" :hint #x35c (0 "DAXTER" "ATTENTION ! CES RONCES SONT PIQUANTES.")) -("sksp0149" :hint #x35d (0 "DAXTER" "HÉ, ON DIRAIT UNE CORDE QUI MAINTIENT LE DIRIGEABLE EN PLACE !")) -("sksp0150" :hint #x35e (0 "DAXTER" "FAIS ATTENTION QUAND CETTE GRENOUILLE EST CHARGÉE !")) -("sksp0151" :hint #x35f (0 "DAXTER" "ENFUIS-TOI JAK !")) -("sksp0152" :hint #x360 (0 "DAXTER" "ATTENTION JAK ! C'EST UNE EMBUSCADE !")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "HÉ, ÇA DOIT ÊTRE L'OBJET PRÉCURSOR QUE LES LURKERS RECHERCHENT") - (175 "DAXTER" "ON DIRAIT UN BRAS DE ROBOT GÉANT !") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "CE GOUDRON NOIR A L'AIR BRÛLANT ET DANGEREUX !")) -("sksp0155" :hint #x363 (0 "DAXTER" "TIRE SUR LES CHAUVES-SOURIS AVEC CE TRUC D'ÉCO JAUNE !")) -("sksp0156" :hint #x364 (0 "DAXTER" "ON PEUT PEUT-ÊTRE ÉVITER LES CHAUVES-SOURIS !")) -("sksp0157" :hint #x365 (0 "DAXTER" "TU AS VU ÇA ? PLUS QUE TROIS CORDES !")) -("sksp0158" :hint #x366 (0 "DAXTER" "OUAH ! PLUS QUE DEUX CORDES.")) -("sksp0159" :hint #x367 (0 "DAXTER" "CE DIRIGEABLE TIENT À PEINE. TROUVONS LA DERNIÈRE CORDE !")) -("sksp0160" :hint #x368 (0 "DAXTER" "HÉ, VOILÀ LE FLUT-FLUT !")) -("sksp0161" :hint #x369 (0 "DAXTER" "JE DÉTESTE LES RATS ! ET JE LEUR RESSEMBLE...")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "WOO ! ON A BATTU LE TEMPS RECORD !")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "JE L'AI DÉJÀ DIT ET JE VAIS ME RÉPÉTER,") - (158 "DAXTER" "ÉVITE LES BOÎTES D'ÉCO NOIRE !") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "CHASSONS CES TAUPES DANS LEUR TROU !")) -("sksp0112" :hint #x338 (0 "DAXTER" "ALLONS CHERCHER NOTRE PILE D'ÉNERGIE CHEZ LA GÉOLOGUE.")) -("sksp0113" :hint #x339 (0 "DAXTER" "ÇA DOIT ÊTRE LES PLANTES INFECTÉES DONT LE PETIT VIEUX PARLAIT.")) -("sksp0114" :hint #x33a (0 "DAXTER" "NOUS DEVONS UTILISER L'ÉCO VERTE POUR GUÉRIR LES PLANTES.")) -("sksp0115" :hint #x33b (0 "DAXTER" "JAK, PASSE DANS L'ORIFICE D'ÉCO VERTE !")) - -("sksp0116" :hint #x33c - (0 "DAXTER" "C'EST UN DE CES LURKERS VOLANT !") - (107 "DAXTER" "IL A PEUT-ÊTRE UNE PILE D'ÉNERGIE !") - ) - -("sksp0117" :hint #x33d (0 "DAXTER" "VOILÀ LE TROU DES TAUPES !")) -("sksp0118" :hint #x33e (0 "DAXTER" "PASSONS AU-DESSUS DES PLANTES INFECTÉES MAINTENANT !")) -("sksp0119" :hint #x33f (0 "DAXTER" "UN DE MOINS, MAIS IL EN RESTE ENCORE PAS MAL.")) -("sksp0120" :hint #x340 (0 "DAXTER" "DÉPÊCHE-TOI ! VOILÀ LE SUIVANT !")) -("sksp0121" :hint #x341 (0 "DAXTER" "VITE ! TU DOIS PASSER DANS CHAQUE ANNEAUX AVANT QU'ILS NE S'ÉTEIGNENT.")) -("sksp0122" :hint #x342 (0 "DAXTER" "HÉ ! CETTE HERBE NOUS RALENTIT...")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "VITE ! SUIS CE TUBE !")) -("sksp0124" :hint #x344 (0 "DAXTER" "ÇA NE M'INSPIRE PAS CONFIANCE.")) -("sksp0125" :hint #x345 (0 "DAXTER" "ON DIRAIT QUE CES TRUCS ONT BESOIN D'UNE CHARGE D'ÉCO BLEUE !")) -("sksp0126" :hint #x346 (0 "DAXTER" "PRENONS LA PILE D'ÉNERGIE SUR LE TOIT DE CE MACHIN !")) -("sksp0127" :hint #x347 (0 "DAXTER" "FRAPPE DU PIED LE TYPE EN HAUT !")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK ! COURS ! L'ÉCO NOIRE EST EN TRAIN DE MONTER !")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHHH ! L'ÉCO NOIRE SE RAPPROCHE !")) -("sksp0130" :hint #x34a (0 "DAXTER" "EUH... JE CROIS QU'IL FAUT ACTIVER TOUTES LES PLATEFORMES.")) -("sksp0131" :hint #x34b (0 "DAXTER" "HÉ, ON DIRAIT QUE TU PEUX SAUTER ET PLONGER SUR CES SALETÉS !")) -("sksp0132" :hint #x34c (84 "DAXTER" "OUAH ! OHH-AH ! OHH-AHH !")) -("sksp0133" :hint #x34d (0 "DAXTER" "JE SUIS SÛR QU'ON PEUT TOUT CHARGER EN MÊME TEMPS !")) -("sksp0134" :hint #x34e (0 "DAXTER" "ET SI ON FAISAIT ATTENTION À CES TUBES BRÛLANTS ?!")) -("sksp0135" :hint #x34f (0 "DAXTER" "L'EAU À L'AIR DANGEREUSE QUAND ELLE CHANGE DE COULEUR")) -("sksp0136" :hint #x350 (0 "DAXTER" "TU DOIS SORTIR DE L'EAU AVANT QU'ELLE NE CHANGE DE COULEUR !")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (42 "KEIRA" "BIEN JOUÉ ! LES GENS DU VILLAGE DES PIERRES SONT SOULAGÉS.") - (246 "KEIRA" "MAIS NOUS N'AVONS PAS LE TEMPS DE FÊTER ÇA.") - (378 "KEIRA" "UTILISEZ LE ZOOMER POUR TRAVERSER LE COL DE LA MONTAGNE.") - (559 "KEIRA" "ATTENTION, ON DIRAIT QUE LES LURKERS ONT PIÉGÉ LE COL AVEC DES EXPLOSIFS !") - (840 "KEIRA" "QUAND VOUS ATTEINDREZ LE CRATÈRE VOLCANIQUE,") - (963 "KEIRA" "ARRÊTEZ-VOUS AU LABO DU SAGE ROUGE ET ACTIVEZ LA PORTE ") - (1142 "KEIRA" "DE TÉLÉPORTATION POUR QUE PÈRE ET MOI PUISSIONS VOUS REJOINDRE.") - (1410) - ) - -("asstvb24" :hint #x605 - (30 "KEIRA" "OH LA LA ! CES LURKERS DOIVENT ÊTRE EN ROUTE VERS LE DÉTONATEUR AU BOUT DU CANYON !") - (300) - (310 "KEIRA" "S'ILS L'ATTEIGNENT AVANT VOUS, ILS DÉTRUIRONT TOUT LE COL !") - (516 "KEIRA" "DOUBLEZ LES ET DÉTRUISEZ LE DÉTONATEUR") - (668 "KEIRA" "OU TOUT SERA FINI !") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "IL FAUT QU'ON ARRIVE AU BOUT DU COL AVANT CES LURKERS !")) -("sksp0301" :hint #x608 (0 "DAXTER" "NE TOUCHE PAS CES EXPLOSIFS !")) -("sksp0302" :hint #x609 (0 "DAXTER" "RESTE DEVANT EUX ET CE SERA TOUT BON !")) -("sksp0303" :hint #x60a (0 "DAXTER" "TOUCHE L'ÉCO BLEUE POUR FAIRE DES POINTES DE VITESSE !")) -("sksp0304" :hint #x60b (0 "DAXTER" "ÉVITE LES ARBRES, JAK ! ILS NOUS RALENTISSENT !")) -("sksp0305" :hint #x60c (0 "DAXTER" "PLUS TU TOUCHES D'ÉCO BLEUE, PLUS ON VA VITE !")) -("sksp0306" :hint #x60d (0 "DAXTER" "ATTENTION À CES EXPLOSIFS !")) -("sksp0307" :hint #x60e (0 "DAXTER" "NE TOMBE PAS DANS LES TROUS !")) -("sksp0308" :hint #x60f (0 "DAXTER" "JE DEVRAIS PEUT-ÊTRE CONDUIRE.")) -("sksp0309" :hint #x610 (0 "DAXTER" "VOILÀ UN DES LURKERS !")) -("sksp0310" :hint #x611 (0 "DAXTER" "ATTRAPE-LES, JAK !")) -("sksp0311" :hint #x612 (0 "DAXTER" "ON EN A PASSÉ UN !")) -("sksp0312" :hint #x613 (0 "DAXTER" "AHHH ! UN DES LURKERS NOUS DÉPASSÉ !")) -("sksp0313" :hint #x614 (0 "DAXTER" "ILS SONT LOIN DEVANT !")) -("sksp0314" :hint #x615 (0 "DAXTER" "ON EST DEVANT !")) -("sksp0315" :hint #x616 (0 "DAXTER" "PLUS VITE, JAK ! PLUS VITE !")) -("sksp0316" :hint #x617 (0 "DAXTER" "UN GRAND SAUT ! UN GRAND SAUT !")) -("sksp0317" :hint #x618 (0 "DAXTER" "ACCROCHE-TOI !")) -("sksp0318" :hint #x619 (0 "DAXTER" "YAAHH !")) -("sksp0319" :hint #x61a (0 "DAXTER" "ÇA VA ÊTRE CHAUD !")) -("sksp0320" :hint #x61b (0 "DAXTER" "ILS VONT ARRIVER AVANT NOUS AU DÉTONATEUR !")) -("sksp0321" :hint #x61c (0 "DAXTER" "ON A RÉUSSI ! ON LES A EMPÊCHÉS DE FAIRE EXPLOSER LE COL !")) - -("asstvb25" :hint #x61d - (10 "KEIRA" "BIEN JOUÉ, VOUS AVEZ ATTEINT LE DÉTONATEUR AVANT EUX !") - (191 "KEIRA" "LE LABO DU SAGE ROUGE EST JUSTE DEVANT.") - (314 "KEIRA" "ALLEZ ACTIVER LA PORTE DE TÉLÉPORTATION POUR QUE NOUS VOUS REJOIGNIONS.") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (25 "KEIRA" "HÉ, LES GARS ! CONTINUEZ À RÉCUPÉRER DES PILES D'ÉNERGIE.") - (107 "KEIRA" "GRÂCE À ELLES, VOUS IREZ DANS LE NORD.") - (196) - ) - -("minershort-introduction-gnawers" - (5 "GORDY" "POURQUOI VOUS NE VOUS RENDEZ PAS UTILE ?") - (89 "GORDY" "DES LURKERS SONT EN TRAIN DE CREUSER LES GROTTES NOIRES LÀ-BAS.") - (188 :offscreen "GORDY" "ON DIRAIT QU'ILS CHERCHENT DES OBJETS PRÉCURSORS.") - (265) - (268 :offscreen "GORDY" "EN TOUT CAS EN CE QUI ME CONCERNE, ILS PEUVENT TOUT PRENDRE.") - (357) - (359 :offscreen "WILLARD" "EN CE QUI NOUS CONCERNE !") - (427) - (429 "GORDY" "WILLARD, OUBLIE-MOI...") - (490) - (493 "GORDY" "TOUT CE QUE JE VEUX, CE SONT LES GEMMES !") - (564 "GORDY" "MAIS JE DOUTE POUVOIR RÉCUPÉRER CELLE DE LA GROTTE") - (645 "GORDY" "PARCE QUE LORSQU'ILS AURONT FINI, TOUT VA S'EFFONDRER !") - (715) - (721 "GORDY" "SI TU ÉLIMINES LES LURKERS QUI RONGENT LES POUTRES,") - (810 "GORDY" "TU POURRAS SAUVER LA GROTTE POUR MOI.") - (875) - (884 "GORDY" "ALLEZ FILE !") - ) - -("minershort-introduction-orbs" - (15 "WILLARD" "HÉ GORDY, JE CROIS QU'ON A DE LA VISITE !") - (151) - (154 "GORDY" "TU CROIS WILLARD ?") - (207 "GORDY" "BIEN LE BONJOUR ! EN BALADE ? BAH, NOUS AUSSI !") - (316 "GORDY" "BON, ON NE VA PAS TRAINER, HEIN ! IL N'Y A RIEN À VOIR ICI !") - (411 :offscreen "WILLARD" "EUH... TU AS DIT QUE C'ÉTAIT UNE GEMME TRÈS PRÉCIEUSE ET QUI-") - (536 :offscreen "GORDY" "WILLARD !") - (588 "DAXTER" "EN FAIT, NOUS VOULONS DES PILES D'ÉNERGIE, PAS DES GEMMES.") - (688) - (690 "WILLARD" "ON EN A QUATRE ICI, EUH... VOUS LES VOULEZ ?") - (786) - (805 "GORDY" "CE QUE CETTE TÊTE D'OISEAU VEUT DIRE,") - (877 "GORDY" "C'EST QU'IL SE POURRAIT QU'ON AIT QUELQUES PILES D'ÉNERGIE ET QUE") - (991 "GORDY" "NOUS POURRIONS LES ÉCHANGER CONTRE...") - (1102 "GORDY" "90 ORBES PIÈCE.") - (1154 "DAXTER" "J'AI DÉJÀ ENTENDU ÇA QUELQUE PART.") - (1220 "DAXTER" "COMMENT DEUX GÉNIES COMME VOUS VONT-ILS SORTIR CETTE GROSSE GEMME DE LÀ ?") - (1380) - (1382 "GORDY" "ET BIEN PETIT FUTÉ, IL NOUS RESTE DOUZE ANS À PIOCHER AVANT DE LE SAVOIR.") - (1545) - (1550 "WILLARD" "OH... GORDY, ÇA N'IRAIT PAS PLUS VITE SI TU PIOCHAIS AUSSI ?") - (1774) - ) - -("minershort-introduction-switch" - (38 :offscreen "WILLARD" "PSSST... LES GARS ! EUH...") - (119 "WILLARD" "BIRDIE ET MOI ON A EXPLORÉ UNE GROTTE QUI VOUS PLAIRAIT !") - (244) - (245 "WILLARD" "ELLE EST REMPLIE D'UN JOLI MÉTAL ORANGE ET BIEN CACHÉE") - (370 "WILLARD" "DERRIÈRE DES ARBRES DANS LES MONTAGNES ENNEIGÉES !") - (512) - (515 "WILLARD" "JE L'AI DIT À GORDY, MAIS IL M'A JUSTE DISPUTÉ POUR QUE JE PIOCHE...") - (684 :offscreen "GORDY" "POURQUOI TU NE PIOCHES PAS ?!") - (750 "WILLARD" "EUH... J'Y VAIS !") - ) - -("minershort-reminder-1-gnawers" - (15 "GORDY" "DÉPÊCHE-TOI UN PEU DE NOUS DÉBARRASSER DE CES LURKERS") - (93 "GORDY" "QUI RONGENT LES POUTRES DE LA GROTTE !") - (198 "GORDY" "ELLES NE VONT PAS TENIR LONGTEMPS SINON !") - ) - -("minershort-reminder-1-orbs" - (25 "GORDY" "ET N'OUBLIEZ PAS, RAMENEZ-NOUS 100 ORBES.") - (128 :offscreen "WILLARD" "TU AS DIT 90 !") - (197 "GORDY" "WILLARD !") - (230) - (236 "GORDY" "D'ACCORD. 90 ORBES POUR UNE PILE D'ÉNERGIE.") - (346) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "VOUS AVEZ TROUVÉ LA GROTTE DERRIÈRE LES ARBRES,") - (94 "WILLARD" "DANS LES MONTAGNES ENNEIGÉES ?") - (151) - (172 "WILLARD" "JE CROIS QUE JE VAIS ALLER ME CACHER LÀ-BAS.") - (260 "WILLARD" "PARCE QUE GORDY EST ENCORE EN TRAIN DE ME DISPUTER.") - (408 :offscreen "GORDY" "WILLARD !") - ) - -("minershort-reminder-2-orbs" - (27 "WILLARD" "EUH... MAIS GORDY.") - (78 "GORDY" "90 ORBES POUR UNE PILE D'ÉNERGIE, WILLARD !") - ) - -("minershort-resolution-1-orbs" - (25 "GORDY" "AH, NOUS Y VOILÀ !") - (77 "GORDY" "VOICI UNE PILE D'ÉNERGIE POUR VOS ORBES.") - (150) - ) - -("minershort-resolution-2-orbs" - (28 "WILLARD" "OH- OH- ÇA Y EST, JE L'AI. EUH...") - (150) - (154 "WILLARD" "VOILÀ UNE...") - (196) - (201 "WILLARD" "EUH... VOILÀ UNE-") - (285) - (290 :offscreen "GORDY" "PILE D'ÉNERGIE !") - (353 "WILLARD" "OUAIS, OUAIS... COMME IL A DIT QUOI.") - (456 "GORDY" "ÇA Y EST, VOUS NOUS AVEZ DÉPOUILLÉ !") - (536 "GORDY" "PLUS ! DE ! PILES D'ÉNERGIE !") - (666) - ) - -("sage-village3-introduction" - (5 "SAMOS" "OUAH !") - (38 "SAMOS" "EH BIEN, J'AI TOUJOURS L'IMPRESSION DE LAISSER UN MORCEAU DANS CES TRUCS-LÀ !") - (153) - (183 "SAMOS" "PAR LES YAKOWS !") - (222 "SAMOS" "LE LABO DU SAGE ROUGE A L'AIR EN PIRE ÉTAT QUE CELUI DU SAGE BLEU !") - (321) - (340 "KEIRA" "EH BIEN ! ON DIRAIT QU'IL Y A EU DE LA BAGARRE ICI !") - (418) - (434 "VIEIL HOMME" "HA HA HA HA HA !") - (500) - (511 "VIEIL HOMME" "JE N'APPELLERAI PAS ÇA UNE \"BAGARRE\"") - (608 "VIEIL HOMME" "N'EST-CE PAS ? MA CHÈRE SOEUR ?") - (677 "FEMME" "CERTAINEMENT PAS ! LE SAGE ROUGE NE S'EST PAS BEAUCOUP DÉBATTU.") - (791) - (793 "FEMME" "CE N'ÉTAIT MÊME PAS DRÔLE...") - (860) - (887 "SAMOS" "GOL ? C'EST TOI ?!") - (965) - (969 "SAMOS" "TU AS FINI PAR PERDRE LA BOULE, HEIN ?") - (1060 "SAMOS" "ET MAIA, JE T'AVAIS DIT QUE L'ÉCO NOIRE FINIRAIT PAR VOUS ATTEINDRE !") - (1200 "SAMOS" "PERSONNE N'ÉCOUTE JAMAIS LE VIEUX SAMOS...") - (1280) - (1283 "SAMOS" "QU'EST-CE QUE VOUS AVEZ FAIT DES SAGES BLEU ET ROUGE ?") - (1371 "GOL" "NE T'INQUIÈTE PAS DU SORT DE TES AMIS COLORÉS, VIEUX FOU.") - (1495 "GOL" "ILS SONT EN SÉCURITÉ DANS NOTRE CITADELLE, CE SONT NOS INVITÉS SPÉCIAUX.") - (1682 "MAIA" "ILS ONT GENTIMENT ACCEPTÉ DE NOUS AIDER DANS NOTRE MODESTE ENTREPRISE.") - (1813) - (1828 "GOL" "TU AVAIS TORT SAMOS ! L'ÉCO NOIRE PEUT ÊTRE CONTRÔLÉE.") - (1972) - (1977 "GOL" "NOUS AVONS APPRIS SES SECRETS ET MAINTENANT") - (2100 "GOL" "NOUS POUVONS FAÇONNER LE MONDE À NOTRE GRÉ.") - (2212) - (2223 "SAMOS" "VOUS NE POUVEZ PAS CONTRÔLER L'ÉCO NOIRE ! MÊME LES PRÉCURSORS-") - (2360 "MAIA" "JUSQU'À PRÉSENT, NOUS NOUS SOMMES DÉBROUILLÉS") - (2421 "MAIA" "AVEC LE PEU D'ÉCO DISPONIBLE EN SURFACE.") - (2508) - (2520 "MAIA" "MAIS BIENTÔT, NOUS POURRONS ACCÉDER") - (2588 "MAIA" "À DES STOCKS D'ÉCO NOIRE ENFOUIS SOUS TERRE.") - (2715 "SAMOS" "PAS LES SILOS !") - (2758) - (2768 "GOL" "SI ! LES SILOS !") - (2841 "GOL" "ILS SERONT OUVERTS ET TOUTE L'ÉCO NOIRE DU MONDE NOUS APPARTIENDRA !") - (3028) - (3034 "SAMOS" "MAIS C'EST IMPOSSIBLE ! SEUL UN ROBOT PRÉCURSOR-") - (3130 "MAIA" "OH, N'AI PAS L'AIR SI EMBÊTÉ, SAMOS.") - (3214 "MAIA" "NOUS AVONS DE GRANDS PROJETS POUR TOI.") - (3300) - (3305 :offscreen "MAIA" "AH HA HA HA HA HA HA !") - (3460) - (3495 "DAXTER" "ATTENDS UNE MINUTE !") - (3538) - (3541 "DAXTER" "C'ÉTAIT GOL ?") - (3586) - (3595 "DAXTER" "LE MÊME \"GOL\" QUI DOIT ME RÉTABLIR ?") - (3690 "DAXTER" "GOL EST LE TYPE QUI ESSAIE DE NOUS TUER ?!") - (3772) - (3792 "DAXTER" "JE SUIS MAUDIT...") - (3840) - (3842 "SAMOS" "NOUS SOMMES SANS DOUTE TOUS MAUDITS !") - (3903) - (3906 "SAMOS" "S'ILS OUVRENT LES SILOS, L'ÉCO NOIRE SE") - (3989 "SAMOS" "LIBÉRERA ET DÉTRUIRA TOUT CE QU'ELLE TOUCHE !") - (4080 "SAMOS" "NOUS DEVONS NOUS RENDRE À LA CITADELLE POUR LES ARRÊTER !") - (4189) - (4204 "KEIRA" "LE MEILLEUR MOYEN EST DE PASSER PAR LE CANAL LAVIQUE AU FOND DE CE CRATÈRE.") - (4321) - (4324 "KEIRA" "ENCORE QUELQUES PILES D'ÉNERGIE ET LE BOUCLIER THERMIQUE DU ZOOMER") - (4410 "KEIRA" "POURRA TE PERMETTRE DE TRAVERSER LA LAVE !") - (4474) - (4477 "SAMOS" "TRÈS BIEN MON GARÇON, TU SAIS QUOI FAIRE !") - (4545 "SAMOS" "EMBARQUE LE SAC À PUCES ET RASSEMBLEZ PLUS DE PILES D'ÉNERGIE !") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (7 "SAMOS" "TONNERRE D'ÉCO !") - (60) - (65 "SAMOS" "IL SEMBLE QU'IL Y AIT UNE FORTE PRÉSENCE LURKER DANS LES GROTTES AUX ARAIGNÉES.") - (179) - (183 "DAXTER" "GÉNIAL... ÇA DOIT ÊTRE UN ENDROIT TRÈS SYMPA ÇA !") - (295) - (308 "DAXTER" "LAISSEZ-MOI DEVINER, IL Y A DES ARAIGNÉES DANS VOTRE GROTTE AUX ARAIGNÉES ? NON ?") - (458 "SAMOS" "BIEN SÛR QU'IL Y A DES ARAIGNÉES DANS LES GROTTES AUX ARAIGNÉES !") - (562) - (567 "SAMOS" "MAIS C'EST LE MOINDRE DE VOS SOUCIS !") - (634) - (637 "SAMOS" "LES LURKERS CHERCHENT DES CRISTAUX D'ÉCO NOIRE CONCENTRÉS.") - (746) - (748 "SAMOS" "ET IL FAUT ABSOLUMENT LES DÉTRUIRE AVANT") - (819 "SAMOS" "QUE CES MONSTRES NE METTENT LA MAIN DESSUS !") - (896) - (901 "SAMOS" "MAINTENANT, FONCEZ !") - (954) - ) - -("sage-village3-introduction-rams" - (8 "SAMOS" "JE SUIS CONTENT QUE VOUS SOYEZ LÀ !") - (83 "SAMOS" "IL Y A DES MOUVEMENTS LURKERS DANS LES MONTAGNES.") - (152) - (157 :offscreen "SAMOS" "APPAREMMENT, ILS ESSAIENT D'EXTRAIRE DES STOCKS D'ÉCO NOIRE CONGELÉS DES GLACIERS.") - (376) - (379 "SAMOS" "PENDANT QUE VOUS SEREZ LÀ-HAUT EN TRAIN DE CHERCHER DES PILES D'ÉNERGIE,") - (488 "SAMOS" "STOPPEZ CES LURKERS ET EMPÊCHEZ CETTE ÉCO NOIRE DE TOMBER AUX MAINS DE GOL.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (0 "SAMOS" "DÉTRUISEZ LES CRISTAUX D'ÉCO NOIRE DANS LES GROTTES AUX ARAIGNÉES !") - (126) - ) - -("sage-village3-reminder-1-rams" - (0 "SAMOS" "ON NE PEUT PAS LAISSER LES LURKERS METTRE LA MAIN SUR LES BOÎTES D'ÉCO NOIRE !") - (122 "SAMOS" "MONTEZ SUR CES PICS ENNEIGÉS ET STOPPEZ-LES !") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "HM, VOYONS VOIR...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "HM.")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "OH, NON...")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "AH-HA !")) -("ASSTLP34" :hint #x0 (31 "KEIRA" "QU'EST-CE QUE GOL ET MAIA PRÉPARENT ?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "HM... IL FAUT QUE NOUS ALLIONS À LA CITÉ PRÉCURSOR !")) - -("ASSTLP36" :hint #x0 - (0 "KEIRA" "HM... LE BOUCLIER THERMIQUE A BESOIN") - (128 "KEIRA" "D'ÊTRE PLUS PUISSANT POUR RÉSISTER À LA LAVE !") - ) - -("ASSTLP37" :hint #x0 (0 "KEIRA" "HM... IL FAUT QUE NOUS SAUVIONS LES AUTRES SAGES !")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "UN DE CES JOURS, JE SERAIS RICHE !") - (180 "WILLARD" "TU VEUX DIRE \"NOUS SERONS RICHES\" ?") - (356 "GORDY" "OUAIS. COMME TU DIS !") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "PIOCHE ! WILLARD ! PIOCHE !") - (130 "WILLARD" "OUI... ET TOI TU NE PIOCHES PAS ?!") - (320 "GORDY" "JE NE PEUX PAS, JE RÉFLÉCHIS MOI !") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "EUH, GORDY... JE PEUX FAIRE UNE PAUSE ?") - (220 "GORDY" "OH, SI TU FAIS UNE PAUSE JE N'AIDE PAS. ALLEZ PIOCHE !") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "JE MEURS DE FAIM, GORDY !") - (200 "GORDY" "MANGE TON OISEAU !") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "EUH, GORDY. MA PIOCHE N'EST PAS ASSEZ POINTUE.") - (220 "GORDY" "C'EST TOI QUI N'ES PAS ASSEZ POINTU !") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "HA HA HA ! JE VAIS ÊTRE RICHE.")) -("MSH-AM02" :hint #x0 (0 "GORDY" "PIOCHE ! PIOCHE ! PIOCHE !")) -("MSH-AM03" :hint #x0 (0 "GORDY" "WILLARD ! LE TRAVAIL C'EST LA SANTÉ !")) -("MSH-AM04" :hint #x0 (0 "GORDY" "AH-HAH, JE VAIS ÊTRE L'HOMME LE PLUS RICHE DU MONDE !")) -("MSH-AM05" :hint #x0 (0 "GORDY" "OH ! PERSONNE N'A JAMAIS VU UNE GEMME DE CETTE TAILLE !")) -("MSH-AM06" :hint #x0 (0 "GORDY" "AHHH ! À MOI LA BELLE VIE !")) -("MSH-AM07" :hint #x0 (0 "GORDY" "MES GEMMES ! TOUTES MES GEMMES !")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "VIVEMENT QUE JE FASSE RENTRER DES GROS SOUS !")) -("MSH-AM10" :hint #x0 (0 "GORDY" "ON DIRAIT UNE CRITISE LORCONIA PRÉCIEUSE !")) -("MSH-AM11" :hint #x0 (0 "GORDY" "ATTEND UNE MINUTE ! ELLES SONT À MOI ! TOUTES À MOI !")) - -("MSH-AM12" :hint #x0 - (0 "GORDY" "ALORS, WILLARD. QU'EST-CE QUE TU VAS FAIRE AVEC") - (165 "GORDY" "TON QUART, DE MOITIÉ ?") - ) - -("MSH-AM1A" :hint #x0 (0 "GORDY" "JE VAIS ÊTRE RICHE !")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "PIOCHE, PIOCHE, PIOCHE !")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "LE TRAVAIL, C'EST LA SANTÉ !")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "EUH... ON A BIENTÔT FINI ?")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "EUH... MINCE. ON PEUT FAIRE UNE PAUSE ?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "TIENS, J'AI FAIM.")) -("MTA-AM04" :hint #x0 (0 "WILLARD" "OH... JE DOIS NETTOYER LA CAGE DE BIRDIE.")) -("MTA-AM05" :hint #x0 (0 "WILLARD" "CETTE GEMME EST HORRIBLEMENT GROSSE !")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "EUH... J'AI TOUJOURS VOULU... ÊTRE BÛCHERON.")) -("MTA-AM07" :hint #x0 (0 "WILLARD" "GORDY M'A PROMIS LA MOITIÉ DE TOUT CE QUE JE POURRAIS PORTER.")) -("MTA-AM08" :hint #x0 (0 "WILLARD" "HÉ HÉ ! BIRDIE EST MON MEILLEUR AMI.")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "J'ADORE MON PETIT BIRDIE.")) -("SAGELP31" :hint #x0 (0 "SAMOS" "C'EST PAS BON ÇA...")) -("SAGELP32" :hint #x0 (0 "SAMOS" "DES CRISTAUX D'ÉCO NOIRE ?")) -("SAGELP33" :hint #x0 (0 "SAMOS" "MAIA ET GOL ONT VRAIMENT PERDU LA TÊTE !")) -("SAGELP34" :hint #x0 (0 "SAMOS" "HM. LA PUISSANCE DE L'ÉCO NOIRE NE PEUT PAS ÊTRE CONTRÔLÉE !")) -("SAGELP35" :hint #x0 (0 "SAMOS" "DE L'ÉCO NOIRE DANS LES GLACIERS ?!")) -("SAGELP36" :hint #x0 (0 "SAMOS" "AH ! IL Y A DES TROUPES LURKERS DANS LES MONTAGNES !")) -("SAGELP37" :hint #x0 (0 "SAMOS" "QU'EST-CE QUE GOL PRÉPARE ?")) -("SAGELP38" :hint #x0 (0 "SAMOS" "AURAIT-IL VRAIMENT...")) - -("asstva73" :hint #x427 - (0 "KEIRA" "HÉ, LES GARS ! D'APRÈS MES CALCULS, IL VA FALLOIR") - (126 "KEIRA" "72 PILES D'ÉNERGIE POUR QUE LE BOUCLIER THERMIQUE") - (285 "KEIRA" "RÉSISTE À LA LAVE SITUÉE VERS LA CITADELLE DE GOL ET MAIA.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "VOUS N'AVEZ PAS ASSEZ DE PILES D'ÉNERGIE POUR TRAVERSER CETTE LAVE !") - (175 "KEIRA" "VOUS NE POURREZ PAS VOUS RENDRE À LA CITADELLE DE GOL ET MAIA ") - (313 "KEIRA" "TANT QUE VOUS N'AUREZ PAS 72 PILES D'ÉNERGIE !") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "CE TÉLÉPHÉRIQUE N'A PAS L'AIR DE FONCTIONNER") - (143 "KEIRA" "JE VAIS LE BRICOLER POUR LE REMETTRE EN MARCHE.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "J'AI RÉACTIVÉ LE TÉLÉPHÉRIQUE ! IL POURRA VOUS EMMENER À LA MONTAGNE ENNEIGÉE.") - (250 "KEIRA" "UTILISEZ LE QUAND VOUS VOULEZ !") - ) - -("asstv100" :hint #x44f - (35 "KEIRA" "VOUS AVEZ ASSEZ DE PILES POUR AUGMENTER LA PUISSANCE DU BOUCLIER THERMIQUE.") - (218 "KEIRA" "UTILISEZ LE WAGONNET POUR DESCENDRE LE PUITS SITUÉ PRÈS DU GEYSER DE LAVE.") - (420 "KEIRA" "JE VOUS RETROUVERAI À L'ENTRÉE DU CANAL LAVIQUE") - (564 "KEIRA" "POUR MODIFIER LE ZOOMER, FAITES VITE !") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HA HA ! BON, VOUS AVEZ ASSEZ DE PILES POUR AUGMENTER") - (167 "KEIRA" "LA PUISSANCE DU BOUCLIER THERMIQUE.") - (267 "KEIRA" "RETROUVEZ-MOI DANS LE CRATÈRE VOLCANIQUE.") - (390 "KEIRA" "JE SERAI À CÔTÉ DU CANAL LAVIQUE AU FOND DU PUITS, PRÈS DU GEYSER DE LAVE.") - (610 "KEIRA" "AMENEZ-MOI LES PILES D'ÉNERGIE !") - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "DÉPÊCHEZ-VOUS AVEC CES PILES D'ÉNERGIE !") - (108 "KEIRA" "J'ATTENDRAI À CÔTÉ DU WAGONNET, DANS LE PUITS SITUÉ PRÈS DU GEYSER DE LAVE.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "N'OUBLIEZ PAS D'ACTIVER LA PORTE DE TÉLÉPORTATION POUR NOUS LAISSER PASSER.") - (200 "KEIRA" "IL FAUT QUE VOUS ALLIEZ AU LABO DU SAGE ROUGE AU CENTRE DU CRATÈRE POUR L'ALLUMER.") - (444 "KEIRA" "NOUS NE POUVONS PAS PASSER TANT QU'ELLE N'EST PAS ACTIVÉE.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "HÉ, NOUS SOMMES TOUJOURS AU VILLAGE DES PIERRES !") - (119 "KEIRA" "ACTIVEZ LA PORTE DE TÉLÉPORTATION !") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "NOUS VOULONS VOUS REJOINDRE AU CRATÈRE VOLCANIQUE") - (134 "KEIRA" "ALLEZ AU LABO DU SAGE ROUGE ET ACTIVEZ LA PORTE !") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "COMMENT RENTRER DANS CE FORT ?")) -("sksp0346" :hint #x444 (0 "DAXTER" "PEUT-ÊTRE QUE L'ÉCO ROUGE PEUT LE BATTRE !")) -("sksp0347" :hint #x445 (0 "DAXTER" "IL FAUT FAIRE UN SAUT PÉRILLEUX !")) -("sksp0348" :hint #x446 (0 "DAXTER" "IL FAUT TROUVER UN MOYEN D'OUVRIR CET ORIFICE.")) -("sksp0349" :hint #x447 (0 "DAXTER" "ON DIRAIT QU'IL Y A UN INTERRUPTEUR D'ÉCO EN BAS !")) -("sksp0350" :hint #x448 (0 "DAXTER" "ATTAQUE-LE DÈS QUE LES PIQUES SONT RENTRÉES !")) -("sksp0351" :hint #x449 (0 "DAXTER" "APPUIE SUR LE BOUTON !")) -("sksp0352" :hint #x44a (0 "DAXTER" "VITE ! AVANT QUE ÇA NE RETOMBE !")) -("sksp0359" :hint #x44b (0 "DAXTER" "IL FAUT QUE TU UTILISES DE L'ÉCO ROUGE !")) -("sksp0360" :hint #x44c (0 "DAXTER" "BIEN JOUÉ ! ON A ALLUMÉ TOUS LES ORIFICES D'ÉCO JAUNE BOUCHÉS.")) -("sksp0362" :hint #x44d (0 "DAXTER" "REGARDE, UNE PILE D'ÉNERGIE CONGELÉE !")) -("sksp0363" :hint #x44e (0 "DAXTER" "SEUL UN FLUT-FLUT PEUT SAUTER AUSSI LOIN !")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "JE CROIS QUE C'ÉTAIT LE DERNIER CRISTAL D'ÉCO NOIRE !")) -("sksp0328" :hint #x433 (0 "DAXTER" "TU TIRERAIS SÛREMENT MIEUX SI TU VISAIS AVEC TES LUNETTES !")) -("sksp0329" :hint #x434 (0 "DAXTER" "OH, NON ! ENCORE DE L'ÉCO NOIRE !")) -("sksp0330" :hint #x435 (0 "DAXTER" "JE NE CROIS PAS QU'ON AI EU TOUS CES CRISTAUX D'ÉCO NOIRE.")) -("sksp0331" :hint #x436 (0 "DAXTER" "TIRE SUR LES LURKERS QUI RONGENT LES POTEAUX !")) -("sksp0332" :hint #x437 (0 "DAXTER" "NE LAISSE PAS LES LUMIÈRES S'ÉTEINDRE !")) -("sksp0333" :hint #x438 (0 "DAXTER" "TAPE UN CRISTAL POUR AVOIR DE LA LUMIÈRE !")) -("sksp0334" :hint #x439 (0 "DAXTER" "COURS, CE CRISTAL VA EXPLOSER !")) -("sksp0335" :hint #x43a (0 "DAXTER" "ILS ONT TROUVÉ UN ROBOT PRÉCURSOR !")) -("sksp0336" :hint #x43b (0 "DAXTER" "ÉCLATE LES OEUFS, AVANT QU'ILS N'ÉCLOSENT !")) -("sksp0337" :hint #x43c (0 "DAXTER" "C'EST SINISTRE ICI...")) -("sksp0338" :hint #x43d (0 "DAXTER" "ON DIRAIT QUE LES TOILES D'ARAIGNÉES SE CASSENT APRÈS DEUX REBONDS.")) -("sksp0339" :hint #x43e (0 "DAXTER" "JE DÉTESTE LES ARAIGNÉES...")) -("sksp0340" :hint #x43f (0 "DAXTER" "DES BÉBÉS ARAIGNÉES ARRIVENT !")) -("sksp0341" :hint #x440 (0 "DAXTER" "JE CROIS QU'ON EST DANS UN NID D'ARAIGNÉES !")) -("sksp0342" :hint #x441 (0 "DAXTER" "ATTENTION, ENCORE DES ARAIGNÉES !")) -("sksp0343" :hint #x442 (0 "DAXTER" "FILONS D'ICI !")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (51 "DAXTER" "HÉ ! MAIS OÙ IL EST PASSÉ LE PETIT VIEUX TOUT VERT ?") - (143) - (147 "KEIRA" "C'EST TERRIBLE, PÈRE A DISPARU !") - (228 "KEIRA" "JE CROIS BIEN QUE GOL ET MAIA L'ONT KIDNAPPÉ LUI AUSSI.") - (318 "DAXTER" "DU CALME MA BELLE, JE CONTRÔLE LA SITUATION.") - (447) - (450 "KEIRA" "TU CONTRÔLES ?!") - (503 "KEIRA" "LES ARMÉES LURKERS CONTINUENT DE SE DÉPLOYER,") - (591 "KEIRA" "LES SAGES ONT ÉTÉ KIDNAPPÉS,") - (650 "KEIRA" "GOL ET MAIA ONT RASSEMBLÉ ASSEZ D'ÉCO POUR METTRE LEUR TERRIBLE PLAN À EXÉCUTION") - (782 "KEIRA" "ET POUR LES ARRÊTER, IL VA FALLOIR QUE VOUS PARVENIEZ À LEUR CITADELLE !") - (876) - (888 "DAXTER" "OUAIS... C'EST- C'EST À PEU PRÈS ÇA.") - (1011) - (1020 "KEIRA" "IL FAUT QUE VOUS SAUVIEZ MON PÈRE AVANT QU'IL NE SOIT TROP TARD !") - (1112 "KEIRA" "ET JAK,") - (1158 "KEIRA" "SOIS PRUDENT.") - (1191) - (1200 "DAXTER" "OUAIS, \"NOUS\" LE SERONS !") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "AH AH ! TRÈS BIEN !") - (48 "KEIRA" "AVEC CES PILES D'ÉNERGIE SUPPLÉMENTAIRES") - (112 "KEIRA" "JE PEUX ALIMENTER LE BOUCLIER THERMIQUE POUR QU'IL RÉSISTE À TOUTE CETTE LAVE !") - (227) - (244 "KEIRA" "MAIS LE BOUCLIER À SES LIMITES.") - (292) - (302 "KEIRA" "IL RÉSISTERA À DES TEMPÉRATURES PROCHES DE 800 DEGRÉS, MAIS PAS PLUS !") - (410 "KEIRA" "ALORS SURVEILLE LA JAUGE !") - (457) - (464 "KEIRA" "JE N'OSE PAS IMAGINER CE QUE CAUSERAIT DE TELLES TEMPÉRATURES À TON ZOOMER") - (575 "KEIRA" "SI TU N'AVAIS PLUS DE BOUCLIER !") - (610) - (618 "DAXTER" "OUAIS, C'EST CHAUD LÀ...") - (663) - (672 "DAXTER" "QUOI ?! LE ZOOMER ? ET NOUS ALORS ?!") - (784) - (787 "DAXTER" "IL N'Y AURAIT PAS UN AUTRE CHEMIN POUR ALLER À LA CITADELLE DE GOL ?") - (885) - (895 "KEIRA" "ÉCOUTEZ, J'AI LÂCHÉ D'AUTRES BALLONS DE REFROIDISSEMENT DANS LE CANAL.") - (1010 "KEIRA" "POUR QUE VOUS FASSIEZ BAISSER LA TEMPÉRATURE.") - (1075 "KEIRA" "N'OUBLIEZ PAS D'ACTIVER LA PORTE DE TÉLÉPORTATION DANS LE LABO DU SAGE JAUNE.") - (1192) - (1195 "KEIRA" "NOUS COMPTONS SUR VOUS !") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "IL FAUT QU'ON SE DÉPÊCHE OU ON EST CUIT !")) -("sksp0365" :hint #x703 (0 "DAXTER" "CHOISI UN CHEMIN ! N'IMPORTE LEQUEL !")) -("sksp0366" :hint #x704 (0 "DAXTER" "TIRE SUR LES MINES OU ÉVITE-LES, JAK !")) -("sksp0367" :hint #x705 (0 "DAXTER" "TROUVE UN PASSAGE À TRAVERS CES TONNEAUX D'ÉCO NOIRE !")) -("sksp0368" :hint #x706 (0 "DAXTER" "CONTINUE À TOUCHER CES BALLONS DE REFROIDISSEMENT !")) -("sksp0369" :hint #x707 (0 "DAXTER" "ON COMMENCE À CHAUFFER !")) -("sksp0370" :hint #x708 (0 "DAXTER" "ÇA VA EXPLOSER !")) -("sksp0371" :hint #x709 (0 "DAXTER" "VA CHERCHER L'ÉCO BLEUE, JAK !")) -("sksp0372" :hint #x70a (0 "DAXTER" "TIRE DESSUS POUR PASSER !")) -("sksp0373" :hint #x70b (0 "DAXTER" "WAOUH ! QUELLE BALADE !")) -("sksp0374" :hint #x70c (0 "DAXTER" "OUAIS ! À FOND LA CAISSE !")) -("sksp0375" :hint #x70d (0 "DAXTER" "TIRE SUR LES SPHÈRES D'ÉNERGIE POUR OUVRIR LA PORTE !")) -("sksp0376" :hint #x70e (0 "DAXTER" "TIRE SUR LES SPHÈRES D'ÉNERGIE AVANT QU'ON NE BRÛLE !")) -("sksp0379" :hint #x711 (0 "DAXTER" "À FOND !")) -("sksp0380" :hint #x712 (0 "DAXTER" "ON EST PASSÉS !")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (68 "SAGE BLEU" "BIEN JOUÉ LES AMIS !") - (114 "SAGE BLEU" "LE VIEUX SAMOS VOUS AVAIT BIEN JUGÉ !") - (183) - (200 "SAGE BLEU" "DES GRANDS TAS DE MÉTAL PRÉCURSOR !") - (257 "SAGE BLEU" "ON NE PEUT PAS LAISSER CETTE INSIDIEUSE CRÉATION MÉCANIQUE TOUT RAVAGER !") - (400) - (403 "SAGE BLEU" "JE VAIS TENTER DE FAIRE RÉAGIR LE CHAMP DU BOUCLIER") - (495 :offscreen "SAGE BLEU" "EN PROVOQUANT UN FLUX ÉNERGÉTIQUE") - (563 :offscreen "SAGE BLEU" "ENTRE LE GRAND PORTAIL ET MOI-MÊME !") - (666) - (672 "DAXTER" "EUH... OUAIS. ON FAIT COMME ÇA. EUH... PENDANT CE TEMPS-LÀ, ON VA CHERCHER DE L'AIDE.") - (879) - (890 :offscreen "DAXTER" "COMPLÈTEMENT FÊLÉ CE TYPE !") - (980) - ) - -("green-sagecage-introduction" - (129 "SAMOS" "VOUS VOUS ÊTES ENFIN DÉCIDÉ À VENIR !") - (211 "DAXTER" "C'EST UN VRAI PLAISIR !") - (271) - (277 "DAXTER" "ALORS C'EST VOUS QUI PASSEZ LA SERPILLIÈRE MAINTENANT ?") - (347 "SAMOS" "PAS LE TEMPS DE PLAISANTER DAXTER ! GOL ET MAIA NOUS ONT KIDNAPPÉS") - (490 "SAMOS" "POUR ATTÉNUER NOTRE ÉNERGIE ET ALIMENTER LEUR ABOMINABLE MACHINE !") - (586) - (597 :offscreen "SAMOS" "ILS ONT COMBINÉ LES RESTES FONCTIONNELS D'UN ROBOT PRÉCURSOR") - (711 :offscreen "SAMOS" "AVEC DES OBJETS RÉCUPÉRÉS DANS TOUT LE PAYS.") - (799) - (803 :offscreen "SAMOS" "PUIS ILS ONT AJOUTÉ QUELQUES DIABLERIES DE LEUR CRU POUR CRÉER") - (904 :offscreen "SAMOS" "LA SEULE CHOSE CAPABLE D'OUVRIR LES SILOS D'ÉCO NOIRE.") - (1060 "SAMOS" "SI VOUS NOUS LIBÉREZ TOUS LES QUATRE, NOUS ASSOCIERONS NOS POUVOIRS") - (1180 "SAMOS" "POUR DÉTRUIRE LE CHAMP DE FORCE DU ROBOT") - (1248 "SAMOS" "AVANT QU'ILS NE S'EN SERVENT POUR DÉTRUIRE LE MONDE.") - ) - -("green-sagecage-outro-preboss" - (62 "GOL" "TU ARRIVES TROP TARD, SAMOS.") - (123 "GOL" "UNE FOIS QUE JE POSSÉDERAI DE L'ÉCO NOIRE EN ABONDANCE,") - (217 "GOL" "JE DÉTIENDRAI LA CLÉ MÊME DE LA CRÉATION !") - (332 "SAMOS" "C'EST DE LA FOLIE !") - (390 "SAMOS" "SI TU RELÂCHES AUTANT D'ÉCO NOIRE, TU DÉTRUIRAS TOUT !") - (503) - (506 "SAMOS" "IL N'Y A QU'À VOIR CE QU'ELLE T'A FAIT !") - (578) - (584 "MAIA" "ELLE NOUS A DONNÉ UNE BEAUTÉ QUI DÉPASSE TA COMPRÉHENSION !") - (693) - (700 "DAXTER" "\"BEAUTÉ\" ? VOUS VOUS ÊTES REGARDÉS DANS UN MIROIR RÉCEMMENT ?") - (825) - (834 "MAIA" "ATTENDS QUE NOUS AYONS OUVERT LES SILOS, MON PETIT.") - (944 "MAIA" "TU CROIS VRAIMENT QU'ÊTRE PETIT ET POILU EST GRAVE ?") - (1028) - (1036 "GOL" "QUAND JE PENSE QUE VOUS AVEZ FAIT TOUT CE TRAJET POUR MON AIDE.") - (1180 "GOL" "IMBÉCILES !") - (1226 "GOL" "PROFITEZ DE VOS PLACES PRIVILÉGIÉES POUR ASSISTER À LA RECRÉATION DU MONDE !") - (1391) - (1605 "SAMOS" "JAK ! PRENDS L'ASCENSEUR ET ARRÊTE CE ROBOT !") - ) - -("green-sagecage-resolution" - (35 "SAMOS" "BIEN JOUÉ MES GARÇONS !") - (104 "SAMOS" "VOUS ÊTES DE VRAIS HÉROS DÉSORMAIS !") - (160 "SAMOS" "JE VAIS ASSOCIER MON POUVOIR D'ÉCO VERTE AVEC CELUI DES 3 AUTRES SAGES") - (282 "SAMOS" "ET ENSEMBLE NOUS OUVRIRONS LE BOUCLIER QUI ENTOURE LE ROBOT PRÉCURSOR.") - (402) - (405 "DAXTER" "OUAIS, ÇA ME SEMBLE UN BON DÉBUT") - (468 "DAXTER" "ET UNE FOIS LE BOUCLIER OUVERT, QU'EST-CE QUE VOUS ALLEZ FAIRE DU ROBOT ?") - (576 "SAMOS" "MAIS, RIEN DAXTER ! NOUS DEVRONS GARDER LE BOUCLIER OUVERT") - (700) - (704 "SAMOS" "ET CE SERA À VOUS DE VOUS DÉBROUILLER POUR DÉTRUIRE LE ROBOT !") - (820 "DAXTER" "OH, GÉNIAL... JE VAIS POUVOIR AIDER LE TYPE QUI M'A CHANGÉ") - (958 "DAXTER" "EN BOULE DE POILS ET DÉTRUIRE LA SEULE PERSONNE QUI PUISSE M'AIDER !") - (1108) - (1176 "SAMOS" "SAUVE D'ABORD LE MONDE !") - (1228 "SAMOS" "PUIS ON ESSAIERA DE CONVAINCRE GOL D'AIDER DAXTER.") - ) - -("redsage-resolution" - (99 "SAGE ROUGE" "VOUS VENEZ ENFIN À MON SECOURS !") - (196 "SAGE ROUGE" "VOUS SAVEZ DEPUIS COMBIEN DE TEMPS JE SUIS LÀ-DEDANS ?") - (280 "SAGE ROUGE" "QU'EST-CE QUI VOUS A PRIS SI LONGTEMPS ?") - (382 "SAGE ROUGE" "COMMENT VOUS APPELEZ-VOUS ?") - (428) - (434 "DAXTER" "JE SUIS DAXTER ! ET LUI C'EST JAK, IL M'ACCOMPAGNE.") - (542 :offscreen "SAGE ROUGE" "BIEN JOUÉ DAXTER, TU ES UN VRAI HÉROS !") - (678) - (704 "SAGE ROUGE" "IL FAUT QUE VOUS EMPÊCHIEZ GOL DE LANCER LE ROBOT.") - (840 "SAGE ROUGE" "JE VAIS UTILISER MON POUVOIR POUR OUVRIR LE CHAMP DU BOUCLIER.") - ) - -("yellowsage-resolution" - (66 "SAGE JAUNE" "JE N'AURAIS JAMAIS CRU VIVRE ASSEZ LONGTEMPS") - (142 "SAGE JAUNE" "POUR ÊTRE SAUVÉ PAR UN GAMIN FLANQUÉ D'UN RAGONDIN !") - (262) - (304 "SAGE JAUNE" "JE VAIS FAIRE PAYER CET AFFRONT À GOL ET MAIA TRÈS CHER.") - (425 "SAGE JAUNE" "ÇA C'EST SÛR !") - (475) - (485 "SAGE JAUNE" "ET PUIS APRÈS ON S'ESSAIERA À LA SOUPE DE RAGONDIN.") - (601) - ) - -("BLU-AM01" :hint #x0 (0 "SAGE BLEU" "J'AIMERAIS BIEN UN PEU D'AIDE !")) -("BLU-AM02" :hint #x0 (0 "SAGE BLEU" "OH, MAIS QUELLE HISTOIRE...")) -("BLU-AM03" :hint #x0 (0 "SAGE BLEU" "OH, C'EST UN VÉRITABLE MYSTÈRE !")) -("RED-AM01" :hint #x0 (0 "SAGE ROUGE" "IL Y A QUELQU'UN ?")) -("RED-AM02" :hint #x0 (0 "SAGE ROUGE" "ET BIEN...")) -("RED-AM03" :hint #x0 (0 "SAGE ROUGE" "QU'EST-CE QUE VOUS FAISIEZ ?")) -("YEL-AM01" :hint #x0 (0 "SAGE JAUNE" "LE TEMPS PRESSE !")) -("YEL-AM02" :hint #x0 (0 "SAGE JAUNE" "HÉ, SORTEZ-MOI DE LÀ !")) -("YEL-AM03" :hint #x0 (0 "SAGE JAUNE" "QUAND JE VAIS SORTIR D'ICI ÇA VA FAIRE MAL !")) -("sksp0381" :hint #x806 (0 "DAXTER" "DÉTRUIT LE GÉNÉRATEUR POUR LIBÉRER LE SAGE !")) -("sksp0382" :hint #x807 (0 "DAXTER" "ACCROCHE-TOI AU REBORD !")) -("sksp0383" :hint #x808 (0 "DAXTER" "ON A DE LA COMPAGNIE JAK ! BEAUCOUP DE LURKERS !")) -("sksp0384" :hint #x809 (0 "DAXTER" "DÉTRUIT CES GÉNÉRATEURS !")) -("sksp0385" :hint #x80a (0 "DAXTER" "APPUIE SUR CE BOUTON !")) -("sksp0386" :hint #x80b (0 "DAXTER" "CE ROBOT NE ME FAIT PAS PEUR.")) -("sksp0387" :hint #x80c (0 "DAXTER" "MONTONS SUR CES PLATEFORMES !")) -("sksp0388" :hint #x80d (0 "DAXTER" "NE MANQUE PAS LE PROCHAIN PROPULSEUR !")) -("sksp0389" :hint #x80e (0 "DAXTER" "ATTENTION !")) -("sksp0390" :hint #x80f (0 "DAXTER" "IL FAUT QU'ON SAUVE TOUS LES SAGES !")) -("sksp0391" :hint #x810 (0 "DAXTER" "TU CROIS QUE GOL VA ME RETRANSFORMER ?")) -("sksp0392" :hint #x811 (0 "DAXTER" "C'EST DONC ÇA LA CITADELLE DE GOL ET MAIA ? C'EST MIGNON !")) -("sksp0393" :hint #x812 (0 "DAXTER" "ATTERRI SUR LE PROCHAIN PROPULSEUR !")) -("sksp0378" :hint #x813 (0 "DAXTER" "LA PORTE EST OUVERTE. ALLONS-Y !")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (163 :offscreen "GOL" "DE L'ÉCO DE LUMIÈRE ! ÇA EXISTE !") - (274 :offscreen "MAIA" "IL NE FAUT PAS QU'ILS S'EN EMPARENT !") - ) - -("green-sagecage-daxter-sacrifice" - (4 "DAXTER" "L'ÉCO DE LUMIÈRE, ÇA POURRAIT ME RETRANSFORMER !") - (114) - (132 "DAXTER" "OU BIEN, ÇA POURRAIT ARRÊTER CE ROBOT.") - (235) - (274 "DAXTER" "RESTER POILU, SAUVER LE MONDE. QUEL DILEMME.") - (404) - (434 "DAXTER" "BON D'ACCORD, ON SAUVE LE MONDE.") - (532 "DAXTER" "MAIS VITE ALORS ! AVANT QUE JE CHANGE D'AVIS.") - (634) - ) - -("green-sagecage-outro-beat-boss-a" - (165 :offscreen "MAIA" "FAIS QUELQUE CHOSE !") - (216) - (596 :offscreen "GOL" "NOOOOOOOON !") - ) - -("green-sagecage-outro-beat-boss-b" - (522 "SAMOS" "EH BIEN ! ON DIRAIT QUE J'AI ÉTÉ UN PEU DUR AVEC VOUS.") - (670 "SAMOS" "VOUS ÊTES DE LA CRÈME DE HÉROS !") - (745) - (752 "KEIRA" "MAIS DAXTER, ON NE VA PLUS POUVOIR TE TRANSFORMER !") - (845) - (847 "DAXTER" "NE T'INQUIÈTE PAS CHÉRIE.") - (914 "DAXTER" "TU SAIS CE QU'ON DIT:") - (976 "DAXTER" "\"CE N'EST PAS LA TAILLE QUI COMPTE\". N'EST-CE PAS ?") - (1096) - (1104 "SAGE BLEU" "JAK, TU POSSÈDES UN TALENT INCROYABLE POUR CANALISER L'ÉCO !") - (1219) - (1225 "SAGE BLEU" "SAMOS, IL SEMBLERAIT QUE C'EST TOI QUI AVAIS RAISON APRÈS TOUT !") - (1318) - (1328 "SAGE ROUGE" "ET KEIRA, JE DOIS DIRE QUE SANS TON AIDE ET TON INGÉNIOSITÉ,") - (1447 "SAGE ROUGE" "RIEN DE TOUT CELA N'AURAIT ÉTÉ POSSIBLE.") - (1555 "SAGE ROUGE" "PEUT-ÊTRE AVONS-NOUS TROUVÉ UN AUTRE SAGE") - (1636 "SAGE ROUGE" "MAINTENANT QUE GOL ET MAIA SONT PERDUS.") - (1728) - (1731 "SAMOS" "OUI, GOL ET MAIA... L'ÉCO NOIRE LES A PROBABLEMENT DÉTRUITS.") - (1916) - (1922 :offscreen "SAMOS" "PROBABLEMENT...") - (1999) - (2003 "DAXTER" "QUELLE IMPORTANCE ? RAMENEZ-LES, ON LEUR FERA LEUR AFFAIRE ! PAS VRAI JAK ?") - (2168) - (2172 "DAXTER" "J'AI DIT, PAS VRAI JAK ?") - (2256) - (2302 "DAXTER" "CALME TES ARDEURS, MON POTE !") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (151 "SAMOS" "PAR LES YAKOWS ! QU'EST-CE QUE ÇA PEUT BIEN ÊTRE ?") - (247 "KEIRA" "OUAH ! C'EST UNE ANCIENNE PORTE PRÉCURSOR !") - (342 :offscreen "KEIRA" "ON DIRAIT QU'ELLE NE S'OUVRIRA QUE") - (392 "KEIRA" "LORSQUE LES 100 TROUS SERONT REMPLIS DE PILES D'ÉNERGIE.") - (485 "DAXTER" "ON EST DES HÉROS N'OUBLIE PAS ! NOUS AVONS 100 PILES D'ÉNERGIE !") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (151 "SAMOS" "PAR LES YAKOWS ! QU'EST-CE QUE ÇA PEUT BIEN ÊTRE ?") - (247 "KEIRA" "OUAH ! C'EST UNE ANCIENNE PORTE PRÉCURSOR !") - (342 :offscreen "KEIRA" "ON DIRAIT QU'ELLE NE S'OUVRIRA QUE") - (392 :offscreen "KEIRA" "LORSQUE LES 100 TROUS SERONT REMPLIS DE PILES D'ÉNERGIE.") - (490 "DAXTER" "OH NON ! C'EST REPARTI...") - ) - -("green-sagecage-outro-big-finish" - (322 "DAXTER" "OUAH ! QU'EST-CE QUE C'EST ?") - (425) - (428 "KEIRA" "C'EST MAGNIFIQUE !") - (516) - (519 "SAMOS" "PAR LES PRÉCURSORS...") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "VOUS N'ABANDONNEZ JAMAIS, OU QUOI ?!")) -("GOL-AM02" :hint #x0 (0 "GOL" "BIENTÔT L'ÉCO NOIRE NOUS APPARTIENDRA !")) -("GOL-AM03" :hint #x0 (0 "GOL" "ACHÈVE-LES !")) -("GOL-AM04" :hint #x0 (0 "GOL" "FEU !")) -("GOL-AM05" :hint #x0 (0 "GOL" "EXPLOSE-LES !")) -("GOL-AM06" :hint #x0 (0 "GOL" "QUOI ?! ENCORE EUX !")) -("GOL-AM07" :hint #x0 (0 "GOL" "C'EST TROP TARD !")) -("GOL-AM08" :hint #x0 (0 "GOL" "VOUS ÊTES À MOI !")) -("GOL-AM09" :hint #x0 (0 "GOL" "JE VOUS TIENS MAINTENANT !")) -("GOL-AM10" :hint #x0 (0 "GOL" "HA HA HA HA HA !")) -("GOL-AM11" :hint #x0 (0 "GOL" "PAS DE PITIÉ !")) -("GOL-AM12" :hint #x0 (0 "GOL" "PRENEZ ÇA !")) -("GOL-AM13" :hint #x0 (0 "GOL" "BIEN ESSAYÉ !")) -("GOL-AM14" :hint #x0 (0 "GOL" "NE BOUGEZ PLUS !")) -("GOL-AM15" :hint #x0 (0 "GOL" "LAMENTABLE...")) -("GOL-AM16" :hint #x0 (0 "GOL" "NOOON !")) -("GOL-AM17" :hint #x0 (0 "GOL" "AHHH !")) -("GOL-AM18" :hint #x0 (0 "GOL" "NOUS ALLONS OUVRIR LE SILO ET VOUS RÉDUIRE EN MIETTES !")) -("GOL-AM19" :hint #x0 (0 "GOL" "DE L'ÉCO DE LUMIÈRE ! ÇA EXISTE !")) -("GOL-AM20" :hint #x0 (0 "GOL" "NOUS N'ALLONS PAS NOUS LAISSER FAIRE !")) -("MAI-AM01" :hint #x0 (0 "MAIA" "ÉLIMINE-LES UNE BONNE FOIS POUR TOUTES !")) -("MAI-AM02" :hint #x0 (0 "MAIA" "DÉBARRASSE-TOI D'EUX !")) -("MAI-AM03" :hint #x0 (0 "MAIA" "HA HA HA !")) -("MAI-AM04" :hint #x0 (0 "MAIA" "L'ÉCO NE VOUS PROTÉGERA PLUS !")) -("MAI-AM05" :hint #x0 (0 "MAIA" "FAIS QUELQUE CHOSE !")) -("MAI-AM06" :hint #x0 (0 "MAIA" "AHHH !")) -("MAI-AM07" :hint #x0 (0 "MAIA" "NOOOOON !")) -("MAI-AM08" :hint #x0 (0 "MAIA" "NOUS ALLONS OUVRIR LE SILO ET VOUS RÉDUIRE EN MIETTES !")) -("MAI-AM09" :hint #x0 (0 "MAIA" "IL NE FAUT PAS QU'ILS S'EN EMPARENT !")) -("sksp0394" :hint #x0 (0 "DAXTER" "ATTRAPE L'ÉCO JAUNE !")) -("sksp0395" :hint #x0 (0 "DAXTER" "TIRE SUR LE ROBOT, JAK !")) -("sksp0396" :hint #x0 (0 "DAXTER" "TIRE SUR SON BRAS !")) -("sksp0397" :hint #x0 (0 "DAXTER" "TIRE SUR SON ARME !")) -("sksp0398" :hint #x0 (0 "DAXTER" "TIRE SUR SA TÊTE !")) -("sksp0399" :hint #x0 (0 "DAXTER" "ATTENTION À L'EXPLOSION !")) -("sksp0400" :hint #x0 (0 "DAXTER" "IL SE RECHARGE !")) -("sksp0401" :hint #x0 (0 "DAXTER" "PRENDS L'ÉCO BLEUE !")) -("sksp0402" :hint #x0 (0 "DAXTER" "PRENDS L'ÉCO ROUGE !")) -("sksp0403" :hint #x0 (0 "DAXTER" "J'AI COMME UN MAUVAIS PRESSENTIMENT...")) -("sksp0404" :hint #x0 (0 "DAXTER" "UTILISE LE PROPULSEUR, VITE !")) -("sksp0405" :hint #x0 (0 "DAXTER" "MAINTENANT LA BÊTE EST DÉCHAÎNÉE !")) -("sksp0406" :hint #x0 (0 "DAXTER" "TU NE PEUX PAS LES TOUCHER !")) -("sksp0407" :hint #x0 (0 "DAXTER" "UTILISE L'ÉCO JAUNE !")) -("sksp0408" :hint #x0 (0 "DAXTER" "TIRE SUR EUX !")) -("sksp0409" :hint #x0 (0 "DAXTER" "PRENDS L'ÉCO DE LUMIÈRE, JAK !")) -("sksp0410" :hint #x0 (0 "DAXTER" "IL N'A PAS L'AIR CONTENT !")) -("sksp0411" :hint #x0 (0 "DAXTER" "SAUTE POUR ÉVITER LES EXPLOSIONS !")) -("sksp0412" :hint #x0 (0 "DAXTER" "MAINTENANT ON PEUT S'EN OCCUPER !")) -("sksp0413" :hint #x0 (0 "DAXTER" "JOLIE GÂCHETTE, PARTENAIRE !")) -("sksp0414" :hint #x0 (0 "DAXTER" "ÇA FAIT MAL, HEIN ?")) -("sksp0415" :hint #x0 (0 "DAXTER" "LE VOILÀ !")) -("sksp0416" :hint #x0 (0 "DAXTER" "WAOUH ! TU AS RÉUSSI !")) -("sksp0417" :hint #x0 (0 "DAXTER" "DITES \"BONNE NUIT\", GOL ET MAIA !")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "J'ATTENDS... ALLÔ ?")) -("sksp0449" :hint #x0 (0 "DAXTER" "APPUIE SUR LA TOUCHE START POUR JOUER.")) -("sksp0450" :hint #x0 (0 "DAXTER" "TU VEUX ARRÊTER DE JOUER ?")) -("sksp0451" :hint #x0 (0 "DAXTER" "C'EST BIEN CE QU'IL ME SEMBLAIT.")) -("sksp0452" :hint #x0 (0 "DAXTER" "D'ACCORD, À PLUS TARD.")) -("sksp0455" :hint #x0 (0 "DAXTER" "MAIS... QUI SONT TOUS CES GENS ?")) -("sksp0466" :hint #x0 (0 "DAXTER" "J'AI ÉTÉ BON. PAS VRAI LES FILLES ?")) - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/game_subtitle_it.gd b/game/assets/jak1/subtitle/game_subtitle_it.gd deleted file mode 100644 index db23c22a4b..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_it.gd +++ /dev/null @@ -1,2605 +0,0 @@ -(language-id 4) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (40 :offscreen "???" "HO PASSATO LA VITA CERCANDO DI DARE RISPOSTE ALLE DOMANDE CHE MIO PADRE,") - (170 :offscreen "???" "E IL PADRE DI MIO PADRE, SI ERANO POSTI INUTILMENTE:") - (265) - (282 :offscreen "???" "CHI ERANO I PRECURSOR?") - (344 :offscreen "???" "PERCHÉ HANNO CREATO I GRANDI MONOLITI CHE VEDIAMO SU TUTTO IL PIANETA?") - (451) - (467 :offscreen "???" "COME RIUSCIVANO A CONTROLLARE L'ECO, L'ENERGIA VITALE DEL MONDO?") - (578) - (594 :offscreen "???" "QUAL ERA IL LORO OBIETTIVO, E PERCHÉ SONO SCOMPARSI?") - (708) - (734 :offscreen "???" "HO CHIESTO ALLE PIANTE, MA NON RICORDAVANO.") - (830 :offscreen "???" "LE PIANTE HANNO CHIESTO ALLE ROCCE, MA NEANCHE LE ROCCE RAMMENTAVANO,") - (965 :offscreen "???" "NEANCHE LE ROCCE RIUSCIVANO A RICORDARE...") - (1064) - (1102 :offscreen "???" "OGNI GOCCIA DEL MIO SANGUE MI DICE CHE TUTTE LE RISPOSTE GIACCIONO") - (1238 :offscreen "???" "SULLE SPALLE DI UN GIOVANE, IGNARO DEL SUO DESTINO, A CUI NON INTERESSA LA RICERCA DELLA VERITÀ,") - (1452 :offscreen "???" "E CHE RIFIUTA IL MIO CONSIGLIO!") - (1536) - (1552 :offscreen "???" "E D'ALTRA PARTE, PERCHÉ DOVREBBE DARE ASCOLTO AL VECCHIO SAMOS?") - (1680) - (1697 :offscreen "SAMOS" "IO SONO SOLO IL MAESTRO DELL'ECO VERDE,") - (1775 :offscreen "SAMOS" "UNO DEGLI UOMINI PIÙ SAGGI DEL PIANETA...") - (1893) - (1966 :offscreen "SAMOS" "PURTROPPO, SEMBRA CHE LE RISPOSTE NON NASCANO MAI DA ATTENTE RICERCHE O DA PROFONDI RAGIONAMENTI.") - (2141) - (2157 :offscreen "SAMOS" "NO.") - (2187) - (2206 :offscreen "SAMOS" "PROPRIO COME MOLTI DEI MISTERI DEL FATO,") - (2284 :offscreen "SAMOS" "NASCONO SEMPLICEMENTE DA UN PICCOLO ATTO... DI DISOBBEDIENZA.") - (2443 "DAXTER" "EHI, ASCOLTA JAK, IL VECCHIO VERDE CI AVEVA DETTO DI NON VENIRE QUI!") - ) - -("sage-intro-sequence-d1" - (144 "SAMOS" "ADESSO SI PUÒ SAPERE COSA VOLETE DA ME VOI DUE?") - (220 "DAXTER" "ECCO, NOI- ERAVAMO- CIOÈ- IO- IO ERO-") - (292 "SAMOS" "NO! NON DIRMELO. INVECE DI DARMI RETTA, VOI DUE") - (389 "SAMOS" "SIETE ANDATI A COMBINARE GUAI NELL'UNICO POSTO CHE VI AVEVO DETTO DI EVITARE ASSOLUTAMENTE:") - (529 "SAMOS" "L'ISOLA DELLA NEBBIA!") - (561 "DAXTER" "SÌ, ESATTO, E POI-") - (590 "SAMOS" "E POI, DAXTER, TI SEI FATTO FINALMENTE UN BEL BAGNO.") - (700 "SAMOS" "MA IN UNA POZZA DI ECO OSCURO, DOVE TI SEI RIDOTTO COSÌ!") - (804 "DAXTER" "BENE, ORA VUOI CONTINUARE A CIARLARE O VUOI AIUTARMI A RISOLVERE QUESTO CASINO?!") - (925 "SAMOS" "PENSO CHE CONTINUERÒ A CIARLARE PERCHÉ, A MIO PARERE, LA TRASFORMAZIONE È UN NOTEVOLE MIGLIORAMENTO.") - (1093 "SAMOS" "E D'ALTRA PARTE...") - (1131) - (1138 "SAMOS" "NON POTREI AIUTARTI NEANCHE SE VOLESSI.") - (1200 "DAXTER" "COSA?!") - (1230 "SAMOS" "C'È SOLTANTO UNA PERSONA CHE HA STUDIATO L'ECO OSCURO") - (1310 "SAMOS" "ABBASTANZA A LUNGO DA POTERTI FAR TORNARE ALLA TUA FORMA ORIGINARIA:") - (1437 "SAMOS" "GOL ACHERON, IL SAGGIO.") - (1493) - (1508 :offscreen "SAMOS" "MA GOL VIVE NEL LONTANO NORD... NEL LONTANISSIMO NORD.") - (1636 :offscreen "SAMOS" "NESSUNO GLI PARLA ORMAI DA ANNI.") - (1711) - (1727 "SAMOS" "TI TELETRASPORTEREI LÌ, MA PURTROPPO NON POSSO FARLO,") - (1831 "SAMOS" "VISTO CHE DEI TRE SAGGI CHE CUSTODISCONO I TELETRASPORTI") - (1933 "SAMOS" "ORMAI NON SI HANNO NOTIZIE DA TEMPO IMMEMORABILE.") - ) - -("sage-intro-sequence-d2" - (10 "SAMOS" "L'UNICA ALTRA VIA È A NORD E PASSA ATTRAVERSO IL CANYON DI FUOCO.") - (117 :offscreen "SAMOS" "MA È UN TERRENO VULCANICO E POTREBBE FONDERE ANCHE IL METALLO PRECURSOR,") - (223 "SAMOS" "NON PUOI ATTRAVERSARLO A PIEDI.") - (270 "???" "MA POTRESTI TENTARE DI SORVOLARLO, SE AVESSI UNO ZOOMER CON UNO SCUDO CONTRO IL CALORE!") - (405) - (411 "???" "PER PURO CASO IO STAREI LAVORANDO SU UN GINGILLO DEL GENERE IN QUESTI GIORNI.") - (512) - (523 "???" "MI SERVIREBBERO SOLO 20 BATTERIE PER AVERE ABBASTANZA ENERGIA") - (612 "???" "DA RESISTERE AL CALORE DEL CANYON! VERO PAPÀ?") - (696) - (707 "SAMOS" "CERTO KEIRA, POTREBBE FUNZIONARE...") - (786 "SAMOS" "MA, QUESTO GIOVANE RAGAZZO,") - (838 :offscreen "SAMOS" "E LA CREATURA!") - (875 "SAMOS" "DOVE TROVERANNO 20 BATTERIE?") - (923 "KEIRA" "LÀ, AL VILLAGGIO!") - (961 :offscreen "KEIRA" "MOLTI LAGGIÙ HANNO UNA O DUE BATTERIE NASCOSTE DA QUALCHE PARTE.") - (1059 :offscreen "KEIRA" "ANCHE SE LORO NON SARANNO DELL'IDEA DI SCAMBIARLE,") - (1129 "KEIRA" "METTETE NELLE LORO MANI QUALCHE GLOBO PRECURSOR E RIUSCIRETE A RAGGIRARLI!") - (1243) - (1257 :offscreen "KEIRA" "E SCOMMETTO CHE CE NE SONO MOLTE DI PIÙ ABBANDONATE NEL DESERTO IN ATTESA CHE QUALCHE") - (1366 "KEIRA" "PRODE AVVENTURIERO VADA A RECUPERARLE!") - (1447 "DAXTER" "BEH, ECCO FINALMENTE IL CORAGGIOSO AVVENTURIERO!") - (1529) - (1538 "SAMOS" "\"CORAGGIOSO AVVENTURIERO\"?") - (1589 "SAMOS" "VOI DUE NON RIUSCIRESTE A USCIRE DAL VILLAGGIO, SENZA ALLENAMENTO!") - (1685) - (1695 "SAMOS" "PRIMA DI FARE QUALUNQUE ALTRA COSA,") - (1757 "SAMOS" "FARESTE MEGLIO AD ANDARE AL TELETRASPORTO PER ALLENARVI SULLA ROCCIA DEL GEYSER!") - (1872) - (1882 "DAXTER" "EHM, NON È CHE TROVEREMO ANCORA DELL'ALTRA BRUTTA ROBACCIA OSCURA, VERO?") - (1996 "DAXTER" "NON VORREI CADERCI DENTRO DI NUOVO E DIVENTARE COME TE!") - (2069) - (2072 "SAMOS" "ENTRATE SUBITO LÌ, PRIMA CHE VI TRASFORMI ENTRAMBI IN FELCI!") - (2189) - ) - -("sage-intro-sequence-e" - (205 "SAMOS" "OTTIMO ALLENAMENTO! MA QUESTO NON È NULLA IN CONFRONTO ALLE SFIDE CHE ANCORA VI ATTENDONO!") - (361 "DAXTER" "NAH, NON C'È NESSUUUUN PROBLEMA!") - (438 "DAXTER" "DOBBIAMO DARCI UNA MOSSA, VERO JAK?") - (496 "DAXTER" "CI PIACEREBBE RESTARE A PARLARE CON L'OMINO VERDE, MA ORA") - (589 "DAXTER" "DOBBIAMO RIPRENDERE LE NOSTRE FATICHE!") - (660 "SAMOS" "BENE, BENE. ALLORA PARTITE PER \"L'AVVENTURA\"...") - (787 "SAMOS" "E MENTRE VIAGGIATE, IN CERCA D' \"AVVENTURA\", CERCATE ALMENO DI RENDERVI UTILI!") - (940) - (957 :offscreen "SAMOS" "QUEI RACCOGLITORI DI ECO VERDE SI SONO INTASATI DI NUOVO.") - (1043) - (1058 :offscreen "SAMOS" "ANDATE ALL'ESTREMITÀ PIÙ LONTANA DELLA SPIAGGIA E DATEGLI UNA PULITA.") - (1160) - (1178 :offscreen "SAMOS" "SEGUITE LE LAMPADE: VI CONDURRANNO FIN LAGGIÙ.") - (1310) - (1329 :offscreen "SAMOS" "E ORA, TUTTI QUANTI...") - (1415) - (1439 :offscreen "SAMOS" "FUORI DI QUIIIII!") - ) - -("sidekick-human-intro-sequence-b" - (316 "JAK" "SHHH!") - (349) - (556 "VOCE MASCHILE" "DEVE CONTINUARE LA TUA RICERCA DI ARTEFATTI E ECO.") - (659 "VOCE MASCHILE" "GAAAH!") - (680 "VOCE MASCHILE" "SE GLI INDIGENI HANNO DEGLI OGGETTI PRECURSOR...") - (760 "VOCE MASCHILE" "EH - SAI BENE CHE COSA FARE!") - (819) - (844 "VOCE FEMMINILE" "REGOLARE I CONTI CON CHIUNQUE OSI ALLONTANARSI DAL VILLAGGIO.") - (946 "VOCE FEMMINILE" "PER IL RESTO LO ATTACCHEREMO A TEMPO DEBITO!") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (21 "DAXTER" "INSOMMA, CHE STIAMO FACENDO QUI, JAK?") - (91 "DAXTER" "QUESTO POSTO MI FA VENIRE I BRIVIDI...") - (151) - (218 "DAXTER" "ACK!") - (243) - (273 "JAK" "EHEHE...") - (300) - (373 "DAXTER" "UH?") - (417 "DAXTER" "AHH, STUPIDA SPAZZATURA DEI PRECURSOR!") - (496) - (579 "DAXTER" "EHI, CHE COS'È QUELLA ROBACCIA SCURA?") - (654 "DAXTER" "NON PROMETTE NIENTE DI BUONO...") - (721) - (776 "DAXTER" "IL SAGGIO HA FARNETICATO QUALCOSA SUI PRECURSOR CHE AVEVANO COSTRUITO QUESTO LUOGO.") - (909 "DAXTER" "\"DOVE SARANNO ANDAAAATI? PERCHÉ LO AVRANNO COSTRUIIIITO?\"") - (1013 "DAXTER" "ORA, SE DEVO DIRE LA VERITÀ, I GLOBI PRECURSOR E LE BATTERIE MI PIACCIONO,") - (1125 "DAXTER" "MA SECONDO ME I PRECURSOR ERANO SOLO DEI PERDENTI.") - (1216 "DAXTER" "SI È ACCESA! COME DIAVOLO HAI FATTO?") - (1271) - (1339 "DAXTER" "OH JAK, CREDO CHE SIAMO NEI GUAI!") - (1386) - (1580 "JAK" "AARGH!") - (1605) - (1615 :offscreen "DAXTER" "UH-AH, AAAIUUTOOOOOO!!") - (1722) - (1804 "DAXTER" "OUCH! ARGH!") - (1845) - (1865 "DAXTER" "RAGAZZI SE BRUCIA!") - (1913) - (1941 "DAXTER" "TE L'AVEVO DETTO CHE NON DOVEVAMO VENIRE QUI, PERCIÒ...") - (2028) - (2040 "DAXTER" "... MH?") - (2065 "DAXTER" "CHE C'È?!") - (2101) - (2189 "DAXTER" "AAAAAAAAAAAAAAAAAH!!") - (2315 "DAXTER" "OKAY... OOKAAY, VA TUTTO BENE... STO BENE!") - (2431) - (2483 "DAXTER" "AAAAAAAAAAAAAAAAAAAAAAH!!") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" - (0 "DAXTER" "NON ANDARE VERSO LA LUCE, JAK...!") - (53 "DAXTER" "NON ANDARE VERSO LA LUUCE!!") - ) - -("death-0182" - (0 "DAXTER" "EHI JAK! CHE NE DICI, POSSO TENERMI...") - (56) - (73 "DAXTER" "LA TUA COLLEZIONE DI INSETTI?") - ) - -("death-0184" - (0 "DAXTER" "SENTI, MENTRE SEI LAGGIÙ, POTRESTI...") - (64) - (71 "DAXTER" "LUSTRARMI LE SCARPE?") - ) - -("death-0186" - (0 "DAXTER" "NON PREOCCUPARTI, TI VENDICHERÒ IO!") - (57) - (63 "DAXTER" "... FORSE.") - ) - -("death-0187" - (0 "DAXTER" "ECCOOO...") - (46) - (54 "DAXTER" "MEGLIO A TE, CHE A ME.") - ) - -("death-0191" - (0 "DAXTER" "SEMBRA FACCIA MALE!") - (39 "DAXTER" "DEVO CHIAMARE I RINFORZI?") - ) - -("death-0193" - (0 "DAXTER" "PRIMA REGOLA: SALVATI LA PELLE.") - (66 "DAXTER" "SECONDA REGOLA...") - (103) - (106 "DAXTER" "PENSACI BENE PRIMA DI FARE UNA COSA SIMILE!!") - ) - -("death-0195" - (0 "DAXTER" "IO ERO PROPRIO DIETRO DI TE, JAK!") - (66 "DAXTER" "... È VERO, SUL SERIO!") - ) - -("death-0197" - (0 "DAXTER" "BISTURI! TAMPONE!") - (62) - (69 "DAXTER" "... DOTTORE? L'ABBIAMO PERSO.") - ) - -("death-0199" - (0 "DAXTER" "DIRÒ QUALCOSA DI VERAMENTE TRISTE AL TUO FUNERALE, TIPO...") - (102 "DAXTER" "...\"E ORA COME FACCIO A TORNARE NORMALE?!\"") - ) - -("death-0202" (0 "DAXTER" "DÌ BUONANOTTE, JAK!")) -("sksp009a" :hint #x0 (0 "DAXTER" "HA HA! GLIELE ABBIAMO FATTE VEDERE.")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "ABBIAMO RACCOLTO ABBASTANZA GLOBI PER SCAMBIARLI CON UNA BATTERIA.") - (215) - (230 "DAXTER" "TORNIAMO INDIETRO E CONCLUDIAMO L'AFFARE.") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "CHE OGGETTO PARTICOLARE! SCOMMETTO CHE POTREMMO APRIRLO") - (210 "DAXTER" "UTILIZZANDO QUELLO STRANO ECO BLU.") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "EHI! MA QUELLA BAMBOLINA DI KEIRA AVEVA RAGIONE! QUI FUORI CI SONO DEI TRANS-PAD!")) -("sksp0002" :hint #x281 (0 "DAXTER" "CREDIMI, QUELLE SCATOLE CON L'ECO OSCURO SONO MOOOOLTO PERICOLOSE!")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "SCOMMETTO CHE FRA TUTTE LE MOSCHE SCOUT PRESENTI IN OGNI LIVELLO") - (184 "DAXTER" "CE NE SARÀ ALMENO UNA CON UNA BATTERIA.") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "SÌÌÌ, UN TESORO!")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "QUELLE SCATOLE DI LEGNO E DI METALLO NON SEMBRANO COSÌ RESISTENTI.") - (168) - (180 "DAXTER" "SCOMMETTO CHE SI ROMPONO SE TI TUFFI IN SALTO SU DI LORO.") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "QUELLE SCATOLE DI METALLO SONO PIÙ SPESSE DEL CRANIO DI UNA YAKOW") - (188 "DAXTER" "MA CI DEVE ESSERE UN MODO PER APRIRLE.") - ) - -("sksp0007" :hint #x286 (0 "DAXTER" "UNA SOLA PAROLA: BATTERIE. DOBBIAMO TROVARLE MA NON STIAMO CERCANDO CON LA DOVUTA CURA!")) -("sksp0008" :hint #x287 (0 "DAXTER" "ABBIAMO BISOGNO DEI GLOBI. GLOOOBI JAK! COME POTREMO COMPRARE LE BATTERIE SE NON RACCOGLIAMO I GLOOOBI?!")) -("sksp009b" :hint #x28e (0 "DAXTER" "BEENE, ALTRI GLOBI!")) -("sksp009c" :hint #x28f (0 "DAXTER" "FAMMI UN FAVORE: STAI ALLA LARGA DALL'ECO OSCURO!")) -("sksp009d" :hint #x290 (0 "DAXTER" "YEAH-HA-HA-HA!")) -("sksp009e" :hint #x291 (0 "DAXTER" "WAA-HOOO!")) -("sksp009f" :hint #x292 (0 "DAXTER" "PRENDILO, PRENDILO! HA HA HA!")) -("sksp009g" :hint #x293 (0 "DAXTER" "PROPRIO DIETRO DI TE, JAK!")) -("sksp009i" :hint #x294 (0 "DAXTER" "ABBIAMO TROVATO TUTTE LE MOSCHE SCOUT DI QUESTA ZONA?")) -("sksp009j" :hint #x295 (0 "DAXTER" "EHI! SEMBRA CHE LE MOSCHE SCOUT SI TROVINO SEMPRE NELLE SCATOLE ROSSE.")) -("sksp009k" :hint #x296 (0 "DAXTER" "BENE! ABBIAMO TROVATO TUTTE LE MOSCHE SCOUT DI QUESTA ZONA.")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORACOLO" "CHI HA SVEGLIATO L'ORACOLO?") - (75) - (89 "ORACOLO" "ASPETTATE, UNO DI VOI HA IN SÉ LA LUCE.") - (198) - (211 "ORACOLO" "DA PRIMA DEI TEMPI, HO CERCATO E ATTESO IL RITORNO DEL VERO EROE.") - (390) - (403 "ORACOLO" "PORTAMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO.") - ) - -("oracle-intro-2" - (0 "ORACOLO" "FATE ATTENZIONE ALLA LUCE OSCURA, PERCHÉ ESSA HA INTACCATO IL FATO DI UNO DI VOI DUE.") - (185) - (190 "ORACOLO" "PORTATEMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO.") - (450) - ) - -("oracle-intro-3" - (0 "ORACOLO" "CERCATE LA LUCE PURA, PERCHÉ ALL'INTERNO DELLA SUA FIAMMA SI TROVANO LE RISPOSTE.") - (172) - (194 "ORACOLO" "POTETE OTTENERE LE MIE BATTERIE") - (254 "ORACOLO" "PORTANDOMI 120 GLOBI PRECURSOR PER OGNUNA DI ESSE.") - ) - -("oracle-left-eye-1" (0 "ORACOLO" "TI SEI DIMOSTRATO ANCORA UNA VOLTA MERITEVOLE. ECCOTI UNA BATTERIA.")) -("oracle-left-eye-2" (0 "ORACOLO" "PER I TUOI SACRIFICI, TI OFFRO UNA BATTERIA.")) -("oracle-left-eye-3" (0 "ORACOLO" "PER I TUOI SFORZI, SEI RICOMPENSATO CON UNA BATTERIA.")) -("oracle-reminder-1" (0 "ORACOLO" "PORTAMI 120 GLOBI PRECURSOR E TI DARÒ IN CAMBIO UNA BATTERIA.")) -("oracle-reminder-2" (0 "ORACOLO" "PRESENTA 120 GLOBI PRECURSOR E SARAI RICOMPENSATO CON UNA BATTERIA.")) -("oracle-reminder-3" (0 "ORACOLO" "DEVI PORTARMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO.")) -("oracle-right-eye-1" (0 "ORACOLO" "PER I VOSTRI DONI, VI MERITATE UN'ALTRA BATTERIA.")) -("oracle-right-eye-2" (0 "ORACOLO" "ECCO UN'ALTRA BATTERIA PER LA TUA MISSIONE.")) -("oracle-right-eye-3" (0 "ORACOLO" "HAI OTTENUTO UN'ALTRA BATTERIA.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "QUESTO APPARECCHIO È UN COMUNICATORE. CON QUESTO, MIO PADRE E IO") - (159 "KEIRA" "POTREMO CONTATTARVI IN QUALSIASI MOMENTO DURANTE L'AVVENTURA!") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "QUELLE COSE FLUTTUANTI A FORMA DI UOVO SONO I GLOBI PRECURSOR.") - (176) - (192 "KEIRA" "RACCOGLIETENE ABBASTANZA E GLI ABITANTI DEL VILLAGGIO") - (318 "KEIRA" "LI SCAMBIERANNO CON UNA BATTERIA!") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "ECCO UNA BATTERIA, IL MANUFATTO PRECURSOR PIÙ IMPORTANTE CHE SI POSSA TROVARE!") - (245) - (258 "KEIRA" "DOVETE RACCOGLIERE 20 BATTERIE SE VOLETE ENERGIA SUFFICIENTE AD ATTIVARE LO SCUDO DI CALORE") - (498 "KEIRA" "DEL VOSTRO ZOOMER ANTI-GRAVITÀ.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "EHI! AVETE TROVATO UNA DELLE MIE MOSCHE SCOUT!") - (182 "KEIRA" "NE HO MANDATE SETTE IN OGNI AREA ALLA RICERCA DI BATTERIE,") - (364 "KEIRA" "MA I LURKER DEVONO AVERLE CATTURATE TUTTE...") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "WOW! L'ULTIMA MOSCA SCOUT HA TROVATO UNA BATTERIA!") - (209 "KEIRA" "SCOMMETTO CHE SE TROVATE TUTTE LE SETTE MOSCHE SCOUT,") - (357 "KEIRA" "RIUSCIRETE A RACIMOLARE ANCHE ALTRE BATTERIE!") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "FATE ATTENZIONE NELL'OCEANO,") - (106 "KEIRA" "QUELLE ACQUE SONO PIENE DI SQUALI LURKER") - (219 "KEIRA" "E NON HO MAI VISTO NESSUNO FARNE FUORI UNO.") - (360) - (378 "KEIRA" "STATE LONTANI DA LORO SE VOLETE SALVARE LA PELLE.") - ) - -("asstvb47" :hint #x906 (0 "KEIRA" "RICORDATE, QUELLA È UNA BATTERIA. DOVETE RACCOGLIERNE IL PIÙ POSSIBILE.")) - -("asstvb48" :hint #x907 - (0 "KEIRA" "QUELLA È UNA FONTE DELL'ECO BLU! LÌ L'ECO È PIÙ CONCENTRATA CHE ALTROVE,") - (247 "KEIRA" "E VI PERMETTE DI OTTENERE UNA CARICA COMPLETA,") - (382 "KEIRA" "E SFRUTTARE IL POTERE DELL'ECO PER IL MASSIMO DEL TEMPO!") - ) - -("sagevb21" :hint #x908 - (25 "SAMOS" "QUELLE PICCOLE SFERE VERDI SUL TERRENO SONO UNA VARIETÀ DI ECO.") - (271) - (322 "SAMOS" "RACCOGLINE 50 PICCOLE, OPPURE UNA GRANDE PER INCREMENTARE LA TUA ENERGIA.") - ) - -("sagevb22" :hint #x909 - (7 "SAMOS" "QUESTO È ECO BLU E CONTIENE L'ENERGIA DEL MOVIMENTO.") - (243) - (297 "SAMOS" "L'ECO BLU TI PERMETTE DI CORRERE PIÙ VELOCEMENTE, DI INFRANGERE CASSE E DI ATTIVARE ALCUNI") - (614 "SAMOS" "MANUFATTI PRECURSOR, AVVICINANDOTI A ESSI.") - ) - -("sagevb23" :hint #x90a (7 "SAMOS" "OGNI ECO BLU CHE RACCOGLI INCREMENTA IL TEMPO IN CUI PUOI SFRUTTARNE I POTERI.")) - -("sagevb24" :hint #x90b - (29 "SAMOS" "QUESTA È UNA PORTA PRECURSOR.") - (191 "SAMOS" "PUÒ ESSERE APERTA SOLO AVVICINANDOTI AD ESSA") - (369 "SAMOS" "MENTRE NEL TUO CORPO SCORRE L'ECO BLU.") - ) - -("sagevb25" :hint #x90c - (3 "SAMOS" "OTTIMO LAVORO. L'ECO BLU TI HA PERMESSO DI APRIRE LA PORTA.") - (261 "SAMOS" "GRAZIE ALL'ECO BLU POTRAI CONVOGLIARE ENERGIE IN TUTTI I MANUFATTI PRECURSOR") - (576 "SAMOS" "CHE FINORA ERANO RIMASTI INATTIVI PER ANNI.") - ) - -("sagevb26" :hint #x90d (0 "SAMOS" "USA I VISORI PER VISUALIZZARE I TUOI PROGRESSI DURANTE L'AVVENTURA.")) - -("sagevb27" :hint #x90e - (1 "SAMOS" "PUOI SALTARE UNA VOLTA, QUINDI SPICCARE UN ALTRO SALTO MENTRE SEI IN VOLO") - (218 "SAMOS" "PER RAGGIUNGERE PIATTAFORME MOLTO ALTE.") - ) - -("sagevb28" :hint #x90f (0 "SAMOS" "QUANDO SEI CIRCONDATO DAI NEMICI, USA IL TUO CALCIO ROTANTE.")) -("sagevb29" :hint #x910 (19 "SAMOS" "QUESTO NON È UN CALCIO ROTANTE, PROVA DI NUOVO.")) -("sagevb30" :hint #x911 (0 "SAMOS" "ANDIAMO JAK, ESEGUI UN CALCIO ROTANTE!")) - -("sagevb31" :hint #x912 - (3 "SAMOS" "BEL LAVORO!") - (72 "SAMOS" "USA IL CALCIO ROTANTE QUANDO HAI BISOGNO DI UN ATTACCO AD AMPIO RAGGIO.") - ) - -("sagevb32" :hint #x913 (16 "SAMOS" "PER UN ATTACCO IN LINEA RETTA, SFERRA UN PUGNO!")) -("sagevb33" :hint #x914 (0 "SAMOS" "QUELLO NON È UN PUGNO! UN BEL PUGNO, ANDIAMO!")) -("sagevb34" :hint #x915 (0 "SAMOS" "JAK! SFERRA UN PUGNO!")) - -("sagevb35" :hint #x916 - (0 "SAMOS" "OTTIMO LAVORO!") - (78 "SAMOS" "USA IL PUGNO PER ATTACCARE GLI AVVERSARI A CORTA DISTANZA!") - ) - -("sagevb36" :hint #x917 - (15 "SAMOS" "ALCUNE VOLTE POTRESTI VOLER COLPIRE CON MAGGIOR FORZA.") - (210) - (240 "SAMOS" "PER SPACCARE UNA DI QUESTE CASSE DEVI SALTARE IN ARIA,") - (421 "SAMOS" "QUINDI TUFFARTI SU DI ESSA CON LE MANI IN AVANTI.") - ) - -("sagevb37" :hint #x918 (2 "SAMOS" "QUANDO SARAI ABBASTANZA ABILE, PROVA AD USARE I TUOI ATTACCHI IN COMBINAZIONE.")) - -("sagevb38" :hint #x919 - (0 "SAMOS" "NON PUOI TORNARE INDIETRO ATTRAVERSO IL TELETRASPORTO") - (157 "SAMOS" "FINCHÉ NON AVRAI TROVATO LE QUATTRO BATTERIE SU QUEST'ISOLA.") - ) - -("sagevb39" :hint #x91a - (21 "SAMOS" "OTTIMO! HAI TROVATO TUTTE LE BATTERIE SPARSE SULL'ISOLA!") - (224 "SAMOS" "TORNA AL TELETRASPORTO COSÌ CHE POSSA RIPORTARTI AL LABORATORIO.") - (444 "SAMOS" "SBRIGATI!") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (28 "DAXTER" "EHI DOLCEZZA, CHE NE DIRESTI DI FARE UN GIRO SU QUESTO ZOOMER ANTI-GRAVITÀ, EH?") - (175) - (195 "KEIRA" "REGOLA NUMERO UNO: MAI. USCIRE. CON ANIMALI.") - (308) - (312 "DAXTER" "AAAH, PEGGIO PER TE, NON SAI COSA TI PERDI, HEHEHE-") - (442 "DAXTER" "AH! EHI!") - (490) - (511 "KEIRA" "ASCOLTA, SE TI SERVE QUALCOSA PER OCCUPARE IL TEMPO, MIO PADRE MI HA PARLATO") - (627 "KEIRA" "PIÙ VOLTE DI UN ANTICHISSIMO CONDOTTO REALIZZATO DAI PRECURSOR, NASCOSTO NEL SOTTOSUOLO.") - (750) - (768 :offscreen "KEIRA" "LE TUBATURE SFOCIANO NEI CAMINI DI VENTILAZIONE.") - (842 :offscreen "KEIRA" "DA ALCUNI DI ESSI, L'ECO FUORIESCE LIBERAMENTE, ALTRI SONO STATI BLOCCATI.") - (951) - (963 "KEIRA" "DEVE PUR ESSERCI UN MODO PER RIAPRIRE QUEI CAMINI!") - (1052 :offscreen "KEIRA" "IO HO INDIVIDUATO UNA PARTE DEL CONDOTTO AL TEMPIO PROIBITO.") - (1145 "KEIRA" "MAGARI POTRESTI CERCARE LAGGIÙ QUALCHE INTERRUTTORE.") - (1246) - ) - -("assistant-introduction-race-bike" - (19 "DAXTER" "EHI BELLEZZA, A COSA STAI LAVORANDO?") - (65 "KEIRA" "NO! FA' ATTENZIONE! GAH! STO CERCANDO DI CAPIRE COME TRASPORTARE LO ZOOMER") - (210 "KEIRA" "UTILIZZANDO I TRANS-PAD CHE I PRECURSOR HANNO LASCIATO IN TUTTO IL MONDO.") - (308) - (315 :offscreen "KEIRA" "SE TROVI UNO DI QUESTI APPARECCHI, INFORMAMI. ") - (384 :offscreen "KEIRA" "IO POSSO CALCOLARNE LA POSIZIONE COL TUO COMUNICATORE E SPEDIRTI LO ZOOMER.") - (512 "KEIRA" "CERCA I TRANS-PAD MENTRE ESPLORI L'ISOLA DELLA NEBBIA, O QUALSIASI ALTRO LUOGO!") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "SONO SICURA CHE SE OSSERVI IL TEMPIO PROIBITO DEI PRECURSOR") - (131 "KEIRA" "TROVERAI UN MODO PER APRIRE I CAMINI DI VENTILAZIONE DELL'ECO BLU NELLA SPIAGGIA DELLE SENTINELLE!") - (295) - ) - -("assistant-reminder-1-generic" - (20 "KEIRA" "RAGAZZI, CONTINUATE A RACCOGLIERE LE BATTERIE.") - (88 "KEIRA" "È IL SOLO MODO PER POTER PROSEGUIRE IL VIAGGIO VERSO NORD.") - ) - -("assistant-reminder-1-race-bike" - (28 "KEIRA" "HO FINALMENTE CAPITO COME USARE I TRANS-PAD!") - (115 "KEIRA" "ADESSO DIRIGETEVI ALL'ISOLA DELLA NEBBIA. VI SPEDIRÒ LO ZOOMER!") - (229) - ) - -("explorer-introduction" - (34 "ZIO" "ECCO, ALOHA CARO IL MIO RAGAZZO. MI COGLI IN UN MOMENTO VERAMENTE INOPPORTUNO.") - (201 "ZIO" "SAI, IERI STAVO FINALMENTE PER METTERMI IN VIAGGIO") - (292 "ZIO" "MA MI SONO RESO CONTO DI ESSERE A CORTO DI VECCHI GLOBI DEI PRECURSOR.") - (426) - (437 "ZIO" "PER MILLE BALENE, IO AVREI GIURATO DI AVERNE 90!") - (545 "ZIO" "CREDO CHE QUEL TUO GIOVANE AMICO, SÌ QUEL... QUEL TIPO IRRITANTE, BRUTTO E MISERABILE") - (723 "ZIO" "ME LI ABBIA APPENA RUBATI, SOLO PER DIVERTIRSI UN PO'!") - (829) - (867 "ZIO" "COMUNQUE, POTRESTI ESSERE COSÌ GENTILE DA PRESTARE AL TUO VECCHIO ZIO 90 GLOBI DEI PRECURSOR") - (1048 "ZIO" "IN MODO CHE POSSA METTERSI IN VIAGGIO? IN CAMBIO TI OFFRIREI UNA BELLA BATTERIA.") - ) - -("explorer-reminder-1" - (29 "ZIO" "COME?! NON LI HAI TUTTI QUANTI HAI DETTO?!") - (121 "ZIO" "ACCIDENTI, EBBENE ALLORA... CON MENO DI 90 GLOBI DEI PRECURSOR") - (258 "ZIO" "NON POSSO ASSOLUTAMENTE METTERMI IN VIAGGIO, MIO CARO NIPOTE.") - (387) - ) - -("explorer-reminder-2" - (31 "ZIO" "CI HO PENSATO SU. FACCIAMO UN PATTO: 90 GLOBI DEI PRECURSOR PER UNA BATTERIA.") - (191 "ZIO" "MI SEMBRA UNO SCAMBIO MOLTO EQUO.") - ) - -("explorer-resolution" - (31 "ZIO" "VEDO CHE SIETE TORNATI PER CONCLUDERE L'AFFARE. BENE, BENE, MOLTO BENE!") - (180 "ZIO" "EHI, MA LI AVETE I GLOBI DEI PRECURSOR SU CUI CI SIAMO ACCORDATI?") - (310) - (332 "ZIO" "SPERO CHE USERETE IN MODO INTELLIGENTE QUESTA BATTERIA, VE LA SIETE GUADAGNATA.") - (458 "ZIO" "CIAO, CIAO, AU REVOIR, BYE BYE!") - ) - -("farmer-introduction" - (0 "CONTADINO" "MHMH, LE MIE YAKOW MUNGERÒ, LE MIE YAKOW MUNGERÒ...") - (118 "CONTADINO" "HUFF! SEI TU! AAH, STAVO RIPOSANDO LE MIE STANCHE OSSA.") - (254 "CONTADINO" "È TUTTO IL GIORNO CHE CERCO DI FAR TORNARE NEL RECINTO QUELLE BESTIACCE!") - (381 "CONTADINO" "DEGLI STRANI ESSERI HANNO TENTATO DI RUBARLE.") - (454) - (466 "CONTADINO" "PENSI CHE POTRESTI AIUTARE UN POVERO VECCHIO A RIPORTARLE NEL RECINTO?") - ) - -("farmer-reminder-1" - (8 "CONTADINO" "EHI! LE MIE YAKOW SONO TUTTE FUORI DAL RECINTO!") - (108 "CONTADINO" "NON SEI ANCORA RIUSCITO A RIPORTARLE DENTRO?") - ) - -("farmer-reminder-2" - (0 "CONTADINO" "QUELLE DANNATE SE NE VANNO ANCORA A ZONZO!!") - (85 "CONTADINO" "TI DECIDI A FARLE RIENTRARE NEL RECINTO?!") - ) - -("farmer-resolution" - (10 "CONTADINO" "OOH, BEN FATTO RAGAZZO, SEI RIUSCITO A FAR RIENTRARE QUEI SACCHI DI PULCI!") - (140 "CONTADINO" "ORA POSSO DORMIRE IN PACE. COME RINGRAZIAMENTO, PRENDI QUESTA BATTERIA.") - (340) - ) - -("sage-introduction-misty-cannon" - (25 "SAMOS" "OH, ECCO I NOSTRI EROICI CONQUISTATORI...") - (139 "SAMOS" "BENE! VOLEVO APPUNTO PARLARVI DI UNA FACCENDA PIUTTOSTO SERIA.") - (258) - (261 :offscreen "SAMOS" "SEMBRA CI SIANO PARECCHI LURKER IN FERMENTO SULL'ISOLA DELLA NEBBIA.") - (359) - (367 :offscreen "SAMOS" "DALLA MIA TORRE DI OSSERVAZIONE POSSO VEDERLI, STANNO BORBANDANDO IL SILOS DEL PRECURSOR.") - (525) - (528 "SAMOS" "SE I LURKER DOVESSERO RIUSCIRE AD APRIRLO LIBERANDO L'ECO OSCURO") - (630 "SAMOS" "SAREMMO COSTRETTI A FUGGIRE A GAMBE LEVATE, RICOPRENDOCI DI RIDICOLO, NON SO SE MI SPIEGO.") - (788) - (817 "SAMOS" "JAK, È IL MOMENTO DI DIMOSTRARE IL TUO CORAGGIO.") - (913 "SAMOS" "RECATI DAL PESCATORE E FATTI RIPORTARE IN BARCA ALL'ISOLA DELLA NEBBIA.") - (1018 "SAMOS" "RAGGIUNGI LA CIMA DEL SILOS DEL PRECURSOR E TOGLI DI MEZZO QUEL CANNONE, CHIARO?!") - (1171) - (1184 "DAXTER" "E IO CHE DEVO FARE?") - (1232) - (1237 "SAMOS" "TU? MMH, PERCHÉ NON PULISCI I PAVIMENTI? HANNO PERSO UN PO' DELLA LORO LUCENTEZZA ULTIMAMENTE.") - ) - -("sage-reminder-1-ecorocks" - (28 "SAMOS" "OH, DEVO RICONOSCERE CHE AVETE PROPRIO UN BEL CORAGGIO!") - (132 "SAMOS" "DI NUOVO QUI E SENZA ESSERE RIUSCITI A SBLOCCARE I MIEI ECO-RACCOGLITORI!?") - (244) - (263 :offscreen "SAMOS" "EBBENE, SI TROVANO DALL'ALTRA PARTE DELLA SPIAGGIA, RAGAZZI.") - (365) - (372 :offscreen "SAMOS" "E ADESSO...") - (412 :offscreen "SAMOS" "DATEVI UNA MOSSA!") - ) - -("sage-reminder-1-generic" - (20 "SAMOS" "MMH...") - (48) - (58 "SAMOS" "E VOI DUE CHE CI FATE QUI, EH? DOVETE PENSARE A RACCOGLIERE LE BATTERIE!") - (178) - (195 "SAMOS" "NON OSATE PIÙ DISTURBARMI FINCHÉ NON LE AVRETE TROVATE, CAPITO?!") - ) - -("sage-reminder-1-misty-cannon" - (27 "SAMOS" "IL BOMBARDAMENTO SI STA INTENSIFICANDO!") - (101 :offscreen "SAMOS" "TROVA IL PESCATORE NELLA GIUNGLA, OTTIENI IL PERMESSO DI USARE LA SUA BARCA") - (224 :offscreen "SAMOS" "E RAGGIUNGI L'ISOLA DELLA NEBBIA PER FERMARE IL CANNONE.") - (317) - (320 "SAMOS" "E TU DAXTER, MMH, DAI UNA BELLA RIPULITA. QUESTO POSTO SEMBRA UN PORCILE!") - ) - -("sage-reminder-2-generic" - (27 "SAMOS" "FORSE NON RIUSCITE A CAPIRE LA GRAVITÀ DELLA SITUAZIONE.") - (123 "SAMOS" "NON È UNA SEMPLICE GUERRA CONTRO DEI MOSTRICIATTOLI PELOSI.") - (229 "SAMOS" "DALL'ESITO DELLA MISSIONE DIPENDE IL NOSTRO FUTURO!") - (313) - (320 "SAMOS" "PERCIÒ, ADESSO USCITE DA QUI E FATE QUELLO CHE DOVETE FARE!") - (427) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "MMH!")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "BISOGNA FAR FUNZIONARE QUESTO SCUDO TERMICO...")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "CI SERVONO DELLE BATTERIE PER ALIMENTARLO...")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "DOV'È LA MIA CHIAVE?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "IL CANYON DI FUOCO È COSÌ CALDO...")) - -("EXP-AM01" :hint #x0 - (0 "ZIO" "DEVO METTERMI IN VIAGGIO AL PIÙ PRESTO.") - (148 "ZIO" "HO BISOGNO DEI GLOBI DEI PRECURSOR!") - ) - -("EXP-AM02" :hint #x0 (0 "ZIO" "VEDIAMO... DOVE POSSO ANDARE PRIMA?")) -("EXP-AM03" :hint #x0 (0 "ZIO" "OH, COME MI MANCA VIAGGIARE...")) -("EXP-AM04" :hint #x0 (0 "ZIO" "COSÌ TANTI POSTI DA VEDERE, E COSÌ POCO TEMPO.")) - -("EXP-AM05" :hint #x0 - (0 "ZIO" "AI MIEI TEMPI, SI POTEVA VIAGGIARE") - (203 "ZIO" "SENZA ESSERE AGGREDITI... DAI MOSTRI!") - ) - -("EXP-LO02" :hint #x0 (0 "ZIO" "MI SERVONO ALTRI GLOBI DEI PRECURSOR.")) -("EXP-LO1A" :hint #x0 (0 "ZIO" "AH-AAAH!")) - -("FAR-AM01" :hint #x0 - (0 "CONTADINO" "RONF... QUIII, BESSIE... QUIII, BESSIE-BESSIE...") - (314 "CONTADINO" "SU DA BRAVA...") - ) - -("FAR-AM02" :hint #x0 (0 "CONTADINO" "RONF- DEVO PORTARE DENTRO IL RACCOLTO PRIMA CHE GLI INSETTI ME LO ROVININO...")) -("FAR-AM2A" :hint #x0 (0 "CONTADINO" "DEVO PORTARE DENTRO IL RACCOLTO PRIMA CHE GLI INSETTI ME LO ROVININO...")) -("FAR-LO01" :hint #x0 (0 "CONTADINO" "RONF...")) -("FAR-LO1A" :hint #x0 (0 "CONTADINO" "RONF...")) -("SAGELP03" :hint #x0 (0 "SAMOS" "QUESTI DUE NON RIUSCIREBBERO NEMMENO A STAPPARSI LE ORECCHIE...")) - -("SAGELP04" :hint #x0 - (0 "SAMOS" "NON SARÀ MAI COME SUO ZIO... MH, BAH-AH.") - (221 "SAMOS" "NON MI IMPORTA COSA DICONO GLI ALTRI.") - ) - -("SAGELP05" :hint #x0 - (15 "SAMOS" "SALVE, SAGGIO BLU? SALVE?") - (210) - (264 "SAMOS" "IN QUALE FIAMMA BLU POTRÀ MAI ESSERE...") - (420) - ) - -("SAGELP06" :hint #x0 (0 "SAMOS" "ODDIO, ODDIO, ODDIO...")) -("SAGELP11" :hint #x0 (0 "SAMOS" "EHI? C'È NESSUNO? ENTRIAMO...")) -("sksp0010" :hint #x231 (0 "DAXTER" "EHI! ANDIAMO GIÙ AL PORTO, ALLA NAVE DEL VECCHIO PESCATORE!")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "HAI VISTO LE DIMENSIONI DEL MORSO DI QUELLO SQUALO LURKER? HA PORTATO VIA TUTTO UN PEZZO DELLO SCAFO!") - (310) - (310 "DAXTER" "FAREMMO MEGLIO A STARNE ALLA LARGA. NON PENSO CHE POTREMMO AFFRONTARE UNA CREATURA DEL GENERE...") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "QUESTO DEVE ESSERE UNO DEGLI ORACOLI PRECURSOR DI CUI PARLANO SEMPRE I SAGGI.") - (219 "DAXTER" "SPERO SOLO CHE NON FOSSERO VERAMENTE COSÌ BRUTTI!") - ) - -("sksp0017" :hint #x235 (0 "DAXTER" "WOW! GUARDA QUELLA STRANA SCULTURA ADAGIATA SOPRA LE ROCCE!")) - -("sksp0043" :hint #x24e - (0 "DAXTER" "DOVREMMO CERCARE IL PESCATORE. PARE CHE SI TROVI") - (119 "DAXTER" "NELLA GIUNGLA, NELLA PARTE MERIDIONALE DEL FIUME!") - (516) - ) - -("asstvb09" :hint #x24f - (42 "KEIRA" "NON AVETE ABBASTANZA BATTERIE PER ALIMENTARE IL MIO SCUDO TERMICO!") - (216) - (234 "KEIRA" "NON POTETE ATTRAVERSARE IL CANYON DEL FUOCO FINCHÉ NON TROVATE 20 BATTERIE.") - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "QUEL CONTADINO SFATICATO CI DEVE UNA BATTERIA!") - (156 "DAXTER" "ANDIAMO A PARLARGLI!") - ) - -("asstvb04" :hint #x2b1 - (21 "KEIRA" "BENE! AVETE RACCOLTO BATTERIE SUFFICIENTI PER ALIMENTARE IL MIO SCUDO TERMICO!") - (261 "KEIRA" "INCONTRIAMOCI ALL'ENTRATA DEL CANYON DEL FUOCO, SALENDO LA RUPE DIETRO LA CASA DELL'AGRICOLTORE.") - (548 "KEIRA" "PORTATE LE BATTERIE, E SBRIGATEVI. MIO PADRE DICE DI AVER VISTO ALTRI LURKER NEI DINTORNI!") - ) - -("asstvb08" :hint #x2b2 - (40 "KEIRA" "SBRIGATEVI CON QUELLE BATTERIE!") - (151 "KEIRA" "STO ASPETTANDO AL CANYON DEL FUOCO, IN CIMA ALLA RUPE") - (291 "KEIRA" "DIETRO LA CASA DELL'AGRICOLTORE!") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (29 "ORNITOLOGA" "SANTO CIELO, SPERIAMO CHE IL CARO OVETTO STIA BENE. ECCOVI UNA BATTERIA PER RICOMPENSARVI.") - (243) - (306 "FLUT FLUT" "MAMA!") - (354) - (409 "FLUT FLUT" "MAMA!") - (431 "DAXTER" "OH NO! NO, NO, NO, NO!") - (533) - (541 "ORNITOLOGA" "GUARDA... NON LO TROVI DELIZIOSO? CREDE CHE TU SIA LA SUA VERA MAMMA.") - (696) - (701 "DAXTER" "EHI UN MOMENTO, NON SONO TUA MADRE! VEDI FORSE QUALCHE PIUMA QUI?!") - (801) - (801 "ORNITOLOGA" "OH, MA È AMORE A PRIMA VISTA! AWW...") - (936) - (940 "ORNITOLOGA" "ORA ASCOLTATE RAGAZZI, RIPORTERÒ AL VILLAGGIO QUESTO PICCOLINO") - (1042 "ORNITOLOGA" "E ME NE PRENDERÒ CURA CON L'AIUTO DEL SAGGIO.") - ) - -("bird-lady-introduction" - (129 "ORNITOLOGA" "OH CIELO, MA QUESTO UCCELLINO È VERAMENTE MOLTO MALATO!") - (245) - (251 "DAXTER" "TSK! NON MI PARE TU SIA MOLTO MEGLIO, PICCOLA!") - (315) - (315 "ORNITOLOGA" "OH, SCUSA. CREDEVO CHE FOSSI UN RING-FRING DAL PETTO A MACCHIE ARANCIONI!") - (442) - (442 "ORNITOLOGA" "SAPETE, IERI HO VISTO CERTI ESSERI TERRIBILMENTE MALVAGI") - (549 "ORNITOLOGA" "CATTURARE UNA FEMMINA DI FLUT FLUT SULLA SPIAGGIA.") - (632) - (640 :offscreen "ORNITOLOGA" "COSÌ IL SUO POVERO OVETTO È RIMASTO ORFANO IN UN NIDO IN CIMA ALLA SCOGLIERA") - (753 :offscreen "ORNITOLOGA" "E IO NON RIESCO AD ARRIVARCI. SE POTESTE ARRAMPICARVI FIN LÌ E SPINGERLO GIÙ...") - (916 :offscreen "ORNITOLOGA" "HO MESSO DEL FIENO SOTTO LA SCOGLIERA, ATTERRERÀ SENZA ROMPERSI.") - (1023) - (1027 "ORNITOLOGA" "FATE QUESTO PIACERE A UNA VECCHIA SIGNORA E IO VI DARÒ UNA BELLA BATTERIA.") - (1198) - ) - -("bird-lady-reminder-1" - (60 "ORNITOLOGA" "OH, CIAO RAGAZZI. AVETE GIÀ TROVATO L'UOVO AZZURRO SULLA SCOGLIERA?") - (208) - (215 "ORNITOLOGA" "SE RIUSCITE A SPINGERLO GIÙ DAL BORDO, IO VI DARÒ UNA BATTERIA.") - (348) - ) - -("bird-lady-reminder-2" - (60 "ORNITOLOGA" "EHI, STATE ANCORA BIGHELLONANDO QUI ATTORNO? AH AH AH AH!") - (170) - (181 "ORNITOLOGA" "SCOMMETTO CHE QUEL POVERO OVETTO AZZURRO SULLA SCOGLIERA SARÀ GIÀ CONGELATO!") - (313) - (316 "ORNITOLOGA" "SALVATELO SPINGENDOLO OLTRE IL BORDO DELLA SCOGLIERA E IO VI REGALERÒ UNA BELLA BATTERIA.") - ) - -("mayor-introduction" - (39 "SINDACO" "OH NO.. NO NO NO NO NO... NON DITEMI CHE ANCHE VOI DUE AVETE QUALCHE PROBLEMA!") - (171) - (179 "SINDACO" "PRIMA MI RIFERISCONO CHE SONO STATI AVVISTATI DEI MOSTRI VICINO AL VILLAGGIO, E ORA QUESTO.") - (313) - (321 "SINDACO" "HUH BEH, VEDETE QUEI CONGEGNI LASSÙ, LI VEDETE? VEDETE CHE NON SI MUOVONO?!") - (475 "SINDACO" "SIGNIFICA CHE IL NOSTRO VILLAGGIO È RIMASTO SENZA ENERGIA!") - (569) - (577 "SINDACO" "L'ECO-RAGGIO CHE PROVIENE DAL TEMPIO DELLA GIUNGLA È STATO INTERROTTO") - (685) - (686 "SINDACO" "E, SAPETE RAGAZZI MIEI, SONO TUTTI TROPPO SPAVENTATI PER ANDARE LÀ, A SCOPRIRE CHE COS'È SUCCESSO!") - (850) - (852 "DAXTER" "MH, HAI PAGATO LA BOLLETTA?") - (915) - (926 "SINDACO" "CHE COSA? OH-HOHOHOHOH, MA CHE SCIOCCHEZZA!") - (1071) - (1084 "SINDACO" "SENTITE, SE VOI DUE RIUSCITE A SISTEMARE L'ECO-RAGGIO, IO VI DARÒ UNA BATTERIA.") - (1273 "SINDACO" "OH OOH OOH ASPETTATE, C'È UN'ALTRA COSA, EHM...") - (1353 "SINDACO" "ECCO, VOGLIO DIRE CHE SE PER CASO FOSTE INTERESSATI A DARE UN CONTRIBUTO ALLA CAMPAGNA PER LA MIA RIELEZIONE,") - (1551 "SINDACO" "IO POTREI DECIDERE DI SEPARARMI DA UN'ALTRA BATTERIA.") - (1668) - (1671 "SINDACO" "E-E BEH, ECCO, IL CONTRIBUTO MINIMO - OH, OH! È MODESTO...") - (1807 "SINDACO" "SOLO 90 GLOBI PRECURSOR.") - ) - -("mayor-reminder-beams" - (31 "SINDACO" "GIÀ DI RITORNO? NON AVETE ANCORA RIPARATO L'ECO-RAGGIO?!") - (157 "SINDACO" "UUH UHUHUH... MA IL NOSTRO VILLAGGIO HA BISOGNO DEL VOSTRO AIUTO!") - ) - -("mayor-reminder-donation" - (30 "SINDACO" "COSÌ SIETE VENUTI A FARE UNA DONAZIONE PER LA MIA CAMPAGNA, HO HO HO HO.") - (147) - (149 "SINDACO" "CON 90 GLOBI PRECURSOR VI SIETE GUADAGNATI UNA BATTERIA, E UN GRAZIE.") - ) - -("mayor-resolution-beams" - (33 "SINDACO" "OH OH OH, OH MA CHE MERAVIGLIOSA APPARIZIONE! BEH, IO VI RINGRAZIO.") - (199 "SINDACO" "E L'INTERO VILLAGGIO RINGRAZIERÀ ME!") - (279 "SINDACO" "OH BRAVI RAGAZZI, AVETE RESTITUITO L'ENERGIA AL VILLAGGIO E ASSICURATO LA MIA RIELEZIONE,") - (472) - (473 "SINDACO" "E QUINDI VOI, MIEI PRODI, VI SIETE GUADAGNATI UNA BATTERIA.") - ) - -("mayor-resolution-donation" - (32 "SINDACO" "E COSÌ AVETE DECISO DI DARE UN CONTRIBUTO? BEEENE... UN CONTRIBUTO CONSISTENTE, SPERO.") - (219) - (225 "SINDACO" "YUUH! EH HE HE, OH SÌ, È DECISAMENTE UN CONTRIBUTO CONSISTENTE!") - (396 "SINDACO" "BEH, BEH IO-IO-IO, IO SPERO SOLO CHE QUESTA BATTERIA ESPRIMA ADEGUATAMENTE LA MIA GRATITUDINE.") - ) - -("sculptor-introduction" - (30 "SCULTORE" "EHI... ESSERINO PELOSO!") - (154) - (170 "SCULTORE" "AWW... PER UN ATTIMO AVEVO PENSATO CHE FOSSI LA MIA MUSA.") - (282) - (295 "DAXTER" "LA TUA COSA?") - (334) - (350 "SCULTORE" "NON AVETE MAI VISTO UNA MUSA PRIMA D'ORA?") - (430) - (434 "SCULTORE" "È UNA SPECIE DI SCOIATTOLINA LUMINOSA GRANDE COSÌ, PIENA DI CORAGGIO E MATTA COME UNA CAVALLA!") - (622) - (638 "DAXTER" "AAAH, CERTO, HO CAPITO! SAREBBE UNA SPECIE DI AMICONE.") - (757) - (763 "SCULTORE" "SE DEVO DIRE IL VERO, SENZA LA MIA CARA MUSA, NON RIESCO PIÙ A SCOLPIRE NIENTE.") - (920) - (926 "SCULTORE" "MA QUANDO LEI È QUI CON ME... AH-HA! VEDO LA BELLEZZA IN OGNI COSA, SAPETE?") - (1087) - (1091 "SCULTORE" "ORA INVECE NON FAREI DI CESELLO NEANCHE UNA SCATOLA.") - (1182) - (1200 :offscreen "SCULTORE" "CREDO SIA SCAPPATA ALL'ISOLA DELLA NEBBIA.") - (1278) - (1281 "SCULTORE" "AHH, SPERO SOLO STIA BENE.") - (1370) - (1373 "SCULTORE" "VI DARÒ UNA BATTERIA SE ME LA RIPORTATE!") - (1441) - (1464 "DAXTER" "EHI, UN MOMENTO! - NOI - NON ABBIAMO ALCUNA INTENZIONE DI TORNARE SULL'ISOLA DELLA NEBBIA!") - (1646) - (1647 "DAXTER" "DICO BENE?") - ) - -("sculptor-reminder-1" - (27 "SCULTORE" "AH! ALLORA, RAGAZZI! ... AVETE GIÀ TROVATO LA MIA MUSA?") - (169) - ) - -("sculptor-resolution" - (87 "SCULTORE" "OH, LA MIA MUSA! L'AVETE SALVATA! AAH, SIETE DAVVERO STUPENDI!") - (236 "SCULTORE" "ECCO, TENETE QUESTA BATTERIA. NON MI SERVE PIÙ, ORA HO RITROVATO L'ISPIRAZIONE!") - ) - -("BIR-AM01" :hint #x0 (0 "ORNITOLOGA" "SEI GIÀ VICINO ALL'UOVO?")) -("BIR-AM02" :hint #x0 (0 "ORNITOLOGA" "ECCO, SOLO UN POCHINO PIÙ AVANTI!")) -("BIR-AM03" :hint #x0 (0 "ORNITOLOGA" "OH, BENE, SPINGILO. OH-OH, PIANO!")) -("BIR-AM04" :hint #x0 (0 "ORNITOLOGA" "OH, MAMMA MIA, AVEVO DETTO PIANO!")) -("BIR-AM05" :hint #x0 (0 "ORNITOLOGA" "CORAGGIO, SPINGI L'UOVO GIÙ DALLA SCOGLIERA!")) -("BIR-AM06" :hint #x0 (0 "ORNITOLOGA" "OOOOH!")) -("BIR-AM07" :hint #x0 (0 "ORNITOLOGA" "QUI, UCCELLINO. QUI, UCCELLINO BELLO.")) -("BIR-AM08" :hint #x0 (0 "ORNITOLOGA" "QUI, UCCELLINO.")) -("BIR-AM09" :hint #x0 (0 "ORNITOLOGA" "STATE ATTENTI! NON SEMBRA UN POSTO MOLTO SICURO!")) -("BIR-AM10" :hint #x0 (0 "ORNITOLOGA" "ATTENZIONE, ADAGIO!")) -("BIR-AM11" :hint #x0 (6 "ORNITOLOGA" "BUON LAVORO. CI VEDIAMO GIÙ VICINO ALL'UOVO!")) -("BIR-AM12" :hint #x0 (0 "ORNITOLOGA" "VOI SÌ CHE SIETE DEI VERI AMANTI DEGLI ANIMALI!")) -("BIR-AM13" :hint #x0 (0 "ORNITOLOGA" "VEDETE QUALCHE ALTRO UCCELLINO LASSÙ?")) -("BIR-LO01" :hint #x0 (0 "ORNITOLOGA" "SMACK... FIRULÌ...")) -("BIR-LO02" :hint #x0 (0 "ORNITOLOGA" "OH, QUELLO È PROPRIO GRAZIOSO.")) -("BIR-LO03" :hint #x0 (0 "ORNITOLOGA" "OOH GUARDA, UN MUCKY-MUCK!")) -("BIR-am08" :hint #x0 (0 "ORNITOLOGA" "QUI, UCCELLINO...")) -("CHI-AM01" :hint #x0 (0 "SINDACO" "OOH NO...! QUESTA È UNA CATASTROFE! U-UNA VERA... CATASTROFE...")) - -("CHI-AM02" :hint #x0 - (0 "SINDACO" "VOGLIONO CHE IO VADA NELLA GIUNGLA - IO! HO HO OH...") - (214) - (232 "SINDACO" "PREFERIREI LOTTARE CON UN FLUT FLUT IMBESTIALITO.") - ) - -("CHI-AM03" :hint #x0 - (0 "SINDACO" "UGH... PRIMA LA BARCA DEL PESCATORE VIENE A-ATTACCATA DA UN M-MOSTRO...") - (352) - (387 "SINDACO" "E ORA- ORA QUESTO... CHE ALTRO... CHE ALTRO POTREBBE ANDARE STORTO?!") - ) - -("CHI-AM04" :hint #x0 - (0 "SINDACO" "OHH... IO- IO- NON SO IO- IOIOIOIO... OOOOH... FORSE DOVREI AUMENTARE LE TASSE PER...") - (393 "SINDACO" "PER POTER RIMEDIARE QUESTO PASTICCIO.") - ) - -("CHI-AM05" :hint #x0 (0 "SINDACO" "PROBLEMI...? OH- IOIOIOIO... P-PROBLEMI... OH... PROBLEMI..!")) -("CHI-AM06" :hint #x0 (0 "SINDACO" "SOB... SIGH... A-A-ADESSO È IMPOSSIBILE... CHE MI RIELEGGANO...")) -("CHI-AM07" :hint #x0 (0 "SINDACO" "OOOOHHH... CHE COSA È SUCCESSO... ALL'ECO-RAGGIO?")) -("CHI-AM08" :hint #x0 (0 "SINDACO" "SIGH... P-PERCHÉ... M-M-MA IO... PERCHÉ? PERCHÉ? SOB...")) -("CHI-LO01" :hint #x0 (0 "SINDACO" "OOH... MULINI A VENTO, MOSTRI, ENERGIA, RIELEZIONE...")) -("CHI-LO02" :hint #x0 (0 "SINDACO" "MHMH... VOTAZIONI... M-MOSTRI... R-RIELEZIONE...")) -("SCU-AM01" :hint #x0 (0 "SCULTORE" "OHH... NON CI RIESCO PROPRIO PIÙ.")) -("SCU-AM02" :hint #x0 (0 "SCULTORE" "COME VORREI RITROVARE L'ISPIRAZIONE.")) -("SCU-AM03" :hint #x0 (0 "SCULTORE" "SONO ISPIRATO COME... COME UN SASSO.")) -("SCU-AM04" :hint #x0 (0 "SCULTORE" "OOHH... DOV'È LA MIA MUSA?")) -("SCU-AM05" :hint #x0 (0 "SCULTORE" "NON POSSO LAVORARE COSÌ!")) -("SCU-AM06" :hint #x0 (0 "SCULTORE" "OH DIO... TORNERÀ MAI DA ME?")) -("SCU-LO01" :hint #x0 (0 "SCULTORE" "ODDIO...")) -("sksp0028" :hint #x0 (0 "DAXTER" "CALCIA L'UOVO! EH-EH! CALCIALO! CALCIALO!")) -("sksp0019" :hint #x236 (0 "DAXTER" "EHI, DEI GABBIANI! AVANTI, INSEGUIAMOLI!")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "EHI! QUEL DANNATO PELLICANO HA APPENA PRESO UNA BATTERIA!") - (197) - (217 "DAXTER" "ANDIAMO A DARE UNA BELLA BATTUTA AL SUO GROSSO SEDERE!") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "EHI, PER SPOSTARE LE ROCCE, PROVA A COLPIRLE CON UN PUGNO!")) -("sksp0031" :hint #x23a (0 "DAXTER" "UUH! USIAMO IL CANNONE PER FAR SALTARE TUTTO IN ARIA!")) -("sksp0034" :hint #x23b (0 "DAXTER" "AHOOGA! AHOOGA! TUFFATI PER PRENDERE QUELLE UOVA JAK, TUFFATI!")) -("sksp0020" :hint #x268 (0 "DAXTER" "YAAH HA HA! FACCIAMOLO DI NUOVO!")) -("sksp0021" :hint #x269 (0 "DAXTER" "ECCO DI NUOVO QUEI GABBIANI. PRENDIAMOLI!!")) -("sksp0022" :hint #x26a (0 "DAXTER" "YAAAH HA HA HA HA HA!! WOO HO HO HO!")) -("sksp0023" :hint #x26b (0 "DAXTER" "WOOHOO!")) -("sksp0024" :hint #x26c (0 "DAXTER" "YAAH HA HA! YEAH!")) -("sksp0025" :hint #x273 (0 "DAXTER" "WOW! HANNO PROVOCATO UNA SLAVINA! SU, ANDIAMO A VEDERE!")) -("sksp0027" :hint #x274 (0 "DAXTER" "SPICCIATI! DOBBIAMO PRENDERE LA BATTERIA PRIMA CHE IL PELLICANO LA RACCOLGA DI NUOVO!")) - -("sksp0029" :hint #x275 - (0 "DAXTER" "EH, POTREMMO PARLARE CON LA VECCHIA SIGNORA") - (125 "DAXTER" "E VEDERE SE ABBIAMO ROTTO L'UOVO DEL FLUT FLUT.") - ) - -("sagevb01" :hint #x288 - (40 "SAMOS" "BENE, VEDO CHE AVETE DECISO DI SBLOCCARE I MIEI RACCOGLITORI.") - (290 "SAMOS" "VI FAREI LE MIE CONGRATULAZIONI, MA AVRETE SICURAMENTE MOLTO DA FARE") - (564 "SAMOS" "E NON VOGLIO FARVI PERDERE TEMPO.") - (702) - (722 "SAMOS" "IN OGNI CASO, SE LE COSE NON DOVESSERO ANDARE PER IL MEGLIO,") - (930 "SAMOS" "DAXTER POTREBBE COMUNQUE TROVARSI UN LAVORO") - (1079 "SAMOS" "SISTEMANDO IL PROBLEMA DEI TOPI NEL VILLAGGIO.") - (1221 "SAMOS" "AH AH AH AH AH.") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "COLPISCI QUEI PALI CON UN PUGNO DAL BASSO!")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (5 :offscreen "PESCATORE" "È CHE CI SONO DUE TIPI DI PESCE BUONO: I PESCI DA 1 CHILO, E I PESCI DA 5 CHILI.") - (226 :offscreen "PESCATORE" "SE TI LASCI SCAPPARE 20 CHILI DI PESCE BUONO, MI RIPRENDO LA RETE!") - (378) - (380 :offscreen "PESCATORE" "IN QUESTO FIUME CI SONO ANGUILLE VELENOSE.") - (491) - (491 :offscreen "PESCATORE" "PRENDI ANCHE SOLO UNA DI QUELLE DISGRAZIATE") - (578 :offscreen "PESCATORE" "E TI AVVELENERÀ TUTTI I PESCI CHE HAI GIÀ PRESO! AH AH AH AH!") - ) - -("fisher-introduction" - (0 "DAXTER" "SCUSA, COS'HAI NEL CESTINO?") - (49 "PESCATORE" "OH, BEH, C'È POCO DA DIRE.") - (100) - (108 "PESCATORE" "QUEI MOSTRI CHE GIRANO PER L'OCEANO MI HANNO STACCATO A MORSI UN PEZZO DI BARCA.") - (224) - (225 "PESCATORE" "E ORA SI INGOZZANO CON I MIEI PESCI!") - (290) - (295 "PESCATORE" "LE HO PROVATE TUTTE, MA IN QUESTO FIUME NON RIESCO A PIGLIARE NEANCHE UN PESCE!") - (419) - (431 "DAXTER" "OOH! NON SARÀ... COLPA DEL TUO ALITO?") - (515) - (520 "PESCATORE" "PENSI DI POTER FARE MEGLIO?") - (569) - (570 "PESCATORE" "PROVA TU A PESCARE IN UN FIUME CON UNA RETE PICCOLISSIMA!") - (665) - (669 "PESCATORE" "TI REGALERÒ UNA BATTERIA SE RIUSCIRAI A PRENDERE 200 CHILI DI PESCE!") - (808) - (810 "PESCATORE" "GUARDA, A TE E AL TUO AMICO,") - (863 "PESCATORE" "PRESTERÒ LA MIA BARCA PIÙ VELOCE PER ANDARE ALL'ISOLA DELLA NEBBIA.") - (955) - (959 "PESCATORE" "ALLORA, TI INTERESSA LA SFIDA?") - ) - -("fisher-reject" - (3 "PESCATORE" "EHI TU, SE TI VIENE VOGLIA DI PROVARE A GUADAGNARTI LA BATTERIA,") - (107 "PESCATORE" "SAI DOVE POTRAI TROVARMI.") - ) - -("fisher-reminder-1" (0 "PESCATORE" "ALLORA, PERCHÉ NON PROVI A BATTERE IL FIUME?")) - -("fisher-resolution" - (6 "PESCATORE" "CE L'AVETE FATTA! AVETE PRESO 200 CHILI DI PESCE!") - (115) - (131 "PESCATORE" "NIENTE MALE PER DUE NOVELLINI!") - (185) - (199 "PESCATORE" "ECCO LA BATTERIA CHE AVEVO PROMESSO.") - (278 "PESCATORE" "E POTETE USARE LA MIA BARCA QUANDO VOLETE!") - (360 "PESCATORE" "È ANCORATA AL PORTO.") - ) - -("FIS-AM01" :hint #x0 (0 "PESCATORE" "GRR, DANNATI PESCI... NON RIUSCIRÒ A PRENDERNE NEANCHE UNO.")) - -("FIS-AM02" :hint #x0 - (0 "PESCATORE" "QUEI MOSTRI CHE MI HANNO MORSO LA BARCA") - (129 "PESCATORE" "MI MANDERANNO IN ROVINA!") - ) - -("FIS-AM03" :hint #x0 - (0 "PESCATORE" "DANNATE CANAGLIE!") - (139 "PESCATORE" "QUI NEL CESTO, MALEDETTI PESCI, QUI DOVETE VENIRE...") - (380 "PESCATORE" "HEH HE HE HE HE...") - (479) - ) - -("FIS-AM04" :hint #x0 (0 "PESCATORE" "AAH, COME MI PIACE IL PROFUMO DEL PESCE LA MATTINA...")) -("FIS-AM05" :hint #x0 (0 "PESCATORE" "MMH, COME MI MANGEREI DELLE BELLE CODE DI PESCE SOTTO SALE...")) -("FIS-AM06" :hint #x0 (0 "PESCATORE" "MI RICORDO ANCORA QUELLO GROSSO CHE È SCAPPATO...")) -("FIS-LO01" :hint #x0 (0 "PESCATORE" "GRR-GRR!")) -("FIS-LO03" :hint #x0 (0 "PESCATORE" "HA HA HA HA HA HAH!")) -("FIS-LO04" :hint #x0 (0 "PESCATORE" "DANNATI PESCI! NON ENTRANO MAI NELLA MIA RETE!")) -("FIS-LO05" :hint #x0 (0 "PESCATORE" "HA HA HA AH HA HA HA HAH!")) -("FIS-TA01" :hint #x0 (0 "PESCATORE" "A SINISTRA!")) -("FIS-TA02" :hint #x0 (0 "PESCATORE" "VAI A DESTRA!")) -("FIS-TA03" :hint #x0 (0 "PESCATORE" "NE ARRIVA UNO GROSSO!")) -("FIS-TA04" :hint #x0 (0 "PESCATORE" "NE HAI MANCATO UNO ENORME!")) -("FIS-TA05" :hint #x0 (0 "PESCATORE" "NON PERDERNE UN ALTRO DI QUELLI!")) -("FIS-TA06" :hint #x0 (0 "PESCATORE" "FERMO...")) -("FIS-TA07" :hint #x0 (0 "PESCATORE" "HAI LE VELE AFFLOSCIATE, FIGLIOLO.")) -("FIS-TA08" :hint #x0 (0 "PESCATORE" "ARGH! MANCATO.")) -("FIS-TA09" :hint #x0 (0 "PESCATORE" "MI SA CHE TI CI VUOLE UNA RETE PIÙ GROSSA...")) -("FIS-TA10" :hint #x0 (0 "PESCATORE" "MANCATO DI NUOVO!")) -("FIS-TA11" :hint #x0 (0 "PESCATORE" "FERMA! CI SEI QUASI...")) -("FIS-TA1A" :hint #x0 (0 "PESCATORE" "SINISTRA!")) -("FIS-TA2A" :hint #x0 (0 "PESCATORE" "DESTRA!")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "MMH, SE L'ECO BLU PUÒ ESSERE USATO PER COSTRUIRE UN PONTE, SCOMMETTO CHE PUÒ ANCHE APRIRE UNA PORTA.") - (287) - (291 "DAXTER" "TORNIAMO INDIETRO PER RICARICARTI.") - ) - -("sksp0040" :hint #x23d (0 "DAXTER" "SALIAMO SU QUELLA MACCHINA E ROMPIAMO LO SPECCHIO CHE DEVÌA IL RAGGIO PRECURSOR!")) -("sksp0041" :hint #x23e (0 "DAXTER" "DOBBIAMO RAGGIUNGERE LA CIMA DI QUELLA TORRE!")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "DOVREMMO CHIEDERE AL PESCATORE CHE SI TROVA VICINO AL FIUME CHE COSTEGGIA LA GIUNGLA") - (203 "DAXTER" "SE CI PRESTA LA SUA BARCA PER VOLAAARE VERSO L'ISOLA DELLA NEBBIA!") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "EHI, CI SONO DEI PICCOLI SEGNI LUMINOSI SU QUEI CARTELLI,") - (215 "DAXTER" "E C'È ANCHE UNA LUCE CHE ESCE DA QUEL CONDOTTO!") - (389) - (403 "DAXTER" "STAI PENSANDO A QUELLO CHE PENSO IO...?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "YEAH, E COSÌ ABBIAMO UN LANCIATORE PRECURSOR.") - (127 "DAXTER" "EHI, MA NON SEI CARICATO CON L'ECO BLU! UFFA, ALLORA NON CI SERVE A NULLA!") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "DOVREMMO DIRE A QUEL FANFARONE DEL SINDACO CHE È IN DEBITO CON NOI") - (183 "DAXTER" "PER AVER RIATTIVATO I RAGGI ENERGETICI DEL VILLAGGIO!") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "QUESTE TORRI SPARSE PER TUTTA LA GIUNGLA SERVONO A RIFLETTERE GLI ECO-RAGGI!") - (215) - (215 "DAXTER" "ANDIAMO A DIVERTIRCI UN PO'!") - ) - -("sksp0b42" :hint #x278 - (0 "DAXTER" "SMETTILA DI LASCIARTI SCAPPARE I PESCI GIALLI! PESANO 5 LIBBRE OGNUNO!") - (257 "DAXTER" "NON SONO NIENTE MALE, JAK.") - ) - -("asstvb02" :hint #x289 - (10 "KEIRA" "WOW, HAI VISTO? HAI APERTO I CAMINI DI VENTILAZIONE DELL'ECO BLU DI TUTTO IL MONDO!") - (261) - (268 "KEIRA" "SAPEVO CHE C'ERA UN MODO PER FARLO!") - (374) - (381 "KEIRA" "DEVONO ESSERCI LUOGHI NEI QUALI È POSSIBILE APRIRE") - (515 "KEIRA" "TUTTI GLI ALTRI CAMINI DI VENTILAZIONE.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "ALLINEA IL RAGGIO INDIRIZZANDOLO VERSO LA TORRE SUCCESSIVA!")) -("sksp0050" :hint #x29d (0 "DAXTER" "ROMPI LO SPECCHIO, JAK!")) -("sksp0051" :hint #x29e (0 "DAXTER" "PRENDI GLI INSETTI, JAK! PRENDI GLI INSETTI!")) -("sksp0052" :hint #x29f (0 "DAXTER" "ANDIAMO ALLA PROSSIMA TORRE E RICOLLEGHIAMO IL RAGGIO!")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "MMH! POSSIAMO SEGUIRE IL RAGGIO PER TROVARE LA PROSSIMA TORRE.")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "TI DEVI CARICARE CON QUELLA COSA BLU PER RIUSCIRE AD APRIRLA!")) - -;; ----------------- -;; misty -;; ----------------- - -("evilbro-misty-end" - (20 :offscreen "VOCE MASCHILE" "QUEI DUE POTREBBERO RIVELARSI UN PROBLEMA.") - (114) - (120 :offscreen "VOCE FEMMINILE" "NON PREOCCUPARTI, CARO FRATELLO. INVIERÒ IL MIO ESERCITO DI LURKER AD OCCUPARSENE.") - (261) - (264 "VOCE MASCHILE" "ASSICURATI SOLO CHE NON SI AVVICININO TROPPO ALLE NOSTRE OPERAZIONI A NORD.") - (409) - (415 "VOCE FEMMINILE" "DUBITO CHE ARRIVERANNO COSÌ LONTANO.") - (476 "VOCE FEMMINILE" "MA SE CI RIUSCIRANNO, CI SARÀ UNA SORPRESA AD ATTENDERLI AL VILLAGGIO ROCCIOSO.") - (638) - (643 "VOCE MASCHILE" "QUINDI... FARAI USCIRE KLAWW DALLA SUA GABBIA?") - (810) - (819 "VOCE FEMMINILE" "PENSO CHE NE VALGA LA PENA.") - (906) - (931 "VOCE MASCHILE" "CERTO.") - (1001) - ) - -("sksp0064" :hint #x245 (0 "DAXTER" "GUARDATI ALLE SPALLE! TI RICORDI COS'È SUCCESSO L'ULTIMA VOLTA CHE SIAMO STATI QUI!?")) -("sksp0067" :hint #x249 (0 "DAXTER" "NON CADERE NELLA NEBBIA!! ANCHE PERCHÉ NON PENSO CHE RIUSCIREMMO AD USCIRNE.")) - -("sksp0059" :hint #x26e - (0 "DAXTER" "QUESTO POSTO MI SPAVENTA...") - (119 "DAXTER" "STIAMO LONTANI DAL FANGO, OK?") - ) - -("sksp0060" :hint #x26f - (0 "DAXTER" "AGH, QUESTO POSTO MI FA VENIRE I BRIVIDI!") - (174 "DAXTER" "E CREDIMI, È UN'ESPERIENZA NUOVA SE SEI RICOPERTO... DI PELO!") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "WOW! VEDO LA MUSA DELLO SCULTORE!")) -("sksp0062" :hint #x27e (0 "DAXTER" "COLPIAMO E DISTRUGGIAMO I PALLONI DEI LURKER!")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "HO DETTO... DI DISTRUGGERE I PALLONI, JAK, NON LE MINE!") - (300) - (328 "DAXTER" "REGOLA NUMERO UNO: EVITA SEMPRE LE MINE!") - ) - -("sagevb02" :hint #x28a - (30 "SAMOS" "DEVO AMMETTERLO: SONO IMPRESSIONATO. NON MI AVETE DELUSO!") - (349) - (426 "SAMOS" "ORA CHE I LURKER NON POSSONO APRIRE IL SILOS,") - (587 "SAMOS" "NON POTRANNO NEMMENO INFESTARE IL MONDO CON L'ECO OSCURO") - (781 "SAMOS" "E CAUSARNE LA DISTRUZIONE.") - (870) - (907 "SAMOS" "MA ORA TOGLITI QUEL GHIGNO DALLA FACCIA, DAXTER!") - (1075 "SAMOS" "VOI DUE AVETE MOLTE COSE DA FARE.") - (1213 "SAMOS" "MUOVETEVI!") - ) - -("asstvb03" :hint #x28b - (8 "KEIRA" "BENE! AVETE BLOCCATO TUTTE LE MINE!") - (149 "KEIRA" "PER SETTIMANE SONO STATE UNA MINACCIA PER LE ACQUE INTORNO AL NOSTRO VILLAGGIO.") - (350 "KEIRA" "RIPORTATE LO ZOOMER AL TRANS-PAD, COSÌ LO TELETRASPORTERÒ INDIETRO!") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "È UN'IMBOSCATA, JAK! È UN'IMBOSCATA!!")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "TUFFATI IN SALTO SU QUELLA BOLLA INSTABILE.")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "PRENDI L'ECO ROSSO!")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "L'ECO ROSSO AUMENTA LA FORZA DEI TUOI ATTACCHI!")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "ABBIAMO BISOGNO DELL'ECO BLU PER CARICARLO!")) -("sksp0435" :hint #x2aa (0 "DAXTER" "COLPISCI QUELLE OSSA!")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (33 "KEIRA" "OTTIMO! AVETE LE 20 BATTERIE NECESSARIE AD ATTIVARE LO SCUDO DI CALORE.") - (145) - (155 "KEIRA" "ORA FATE ATTENZIONE, PERCHÉ LO SCUDO PROTEGGERÀ LO ZOOMER FINO ALLA TEMPERATURA DI 500 GRADI.") - (317 "KEIRA" "QUINDI CERCATE DI MANTENERLO FREDDO.") - (374) - (379 :offscreen "KEIRA" "VOLANDO SOPRA LA LAVA LO FARETE SURRISCALDARE VELOCEMENTE.") - (458) - (466 "KEIRA" "RAGGIUNGETE I 500 GRADI, ED È FINITA!") - (553) - (555 "DAXTER" "FINITA?! NEL SENSO DI DUE EROI ABBRUSTOLITI?!") - (636) - (644 "KEIRA" "IL CANYON DI FUOCO È MOLTO CALDO.") - (710 "KEIRA" "SFRUTTATE BENE I SALTI PER RESTARE A CONTATTO COL TERRENO IL MENO POSSIBILE.") - (816) - (827 :offscreen "KEIRA" "HO ANCHE SPARSO DEI PALLONI REFRIGERANTI NELLA ZONA") - (894 :offscreen "KEIRA" "COSÌ POTETE RAFFREDDARE VELOCEMENTE LO SCUDO.") - (956) - (978 "KEIRA" "OH! E QUANDO SIETE LÌ, NON DIMENTICATE DI ATTIVARE") - (1060 "KEIRA" "IL TELETRASPORTO NEL LABORATORIO DEL SAGGIO BLU.") - (1140) - (1156 "KEIRA" "IN QUESTO MODO POTREMO RAGGIUNGERVI.") - (1222) - (1235 "KEIRA" "IN BOCCA AL LUPO!") - ) - -("sksp0076" :hint #x501 (0 "DAXTER" "AVANTI, JAK! IL TERRENO È DANNATAMENTE CALDO, SALTA!")) -("sksp0077" :hint #x502 (0 "DAXTER" "PALLONI: BUONI, MAGMA CALDO: CATTIVO!")) -("sksp0078" :hint #x503 (0 "DAXTER" "STAI SUL PONTE PRECURSOR PER NON ESSERE FERITO.")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "AAH! STO MORENDO! STO ARRIVANDO, NONNO!") - (257) - (270 "DAXTER" "DEVI PORTARE QUESTA COSA DALL'ALTRA PARTE PRIMA CHE SI SURRISCALDI!") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "PER STERZARE DI PIÙ, CURVA MENTRE VOLI!")) -("sksp0081" :hint #x506 (0 "DAXTER" "GAAH! POTREI GUIDARE IO?!")) -("sksp0082" :hint #x507 (0 "DAXTER" "STAI PROVANDO A EVITARE LE SCATOLE DI ECO OSCURO, VERO?")) -("sksp0083" :hint #x508 (0 "DAXTER" "UHUH! VEDIAMO SE RIUSCIAMO A SALTARE SOPRA A QUEL LURKER!")) -("sksp0084" :hint #x509 (0 "DAXTER" "TROPPO VICINO, TROPPO VICINO!!")) -("sksp0085" :hint #x50a (0 "DAXTER" "WOW! QUESTA BAMBOLA SI STA SURRISCALDANDO!")) -("sksp0086" :hint #x50b (0 "DAXTER" "ANCORA POCHI SECONDI E SAREMO UN FLUT FLUT FRITTO!")) -("sksp0087" :hint #x50d (0 "DAXTER" "COLPISCI QUEI PALLONI PER ABBASSARE LA TEMPERATURA!")) -("sksp0088" :hint #x50e (0 "DAXTER" "ARRIVA UN ALTRO PALLONE!")) -("sksp0089" :hint #x50f (0 "DAXTER" "AVREI DOVUTO RIMANERE A DORMIRE QUESTA MATTINA!")) -("sksp0090" :hint #x510 (0 "DAXTER" "HAI MANCATO UN PALLONE! CERCA DI COLPIRLI, O FINIREMO FRITTI!")) -("sksp0091" :hint #x511 (0 "DAXTER" "QUESTO COSO STA DIVENTANDO TROPPO CALDO!")) -("sksp0092" :hint #x512 (0 "DAXTER" "SENTI PUZZA DI BRUCIATO?")) -("sksp0093" :hint #x513 (0 "DAXTER" "LA MIA CODA È IN FIAMMEEE!")) -("sksp0094" :hint #x514 (0 "DAXTER" "ESPLODERÀÀÀ!")) -("sksp0095" :hint #x515 (0 "DAXTER" "YA-HAA! CI SIAMO RIUSCITI!")) -("sksp0096" :hint #x516 (0 "DAXTER" "ANCHE QUI CI SONO DELLE MOSCHE SCOUT!")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (67 "SAMOS" "WHAOO!") - (117) - (160 "SAMOS" "PENSO CHE NON MI ABITUERÒ MAI ALLA SENSAZIONE FORMICOLANTE DEL TELETRASPORTO.") - (290) - (304 "SAMOS" "EHI!") - (319) - (323 :offscreen "SAMOS" "SEMBRA CHE IL SAGGIO BLU ABBIA DATO UNA FESTA.") - (412) - (416 "KEIRA" "OH NO, GUARDATE! IL VILLAGGIO DI PIETRA È IN FIAMME!") - (502) - (511 "SAMOS" "ACCIDENTI, E CHE FESTA!") - (568) - (573 "KEIRA" "NO! COS'HAI CAPITO? INTENDO DIRE CHE IL VILLAGGIO È STATO BOMBARDATO CON MASSI INCANDESCENTI!") - (728) - (807 "KEIRA" "OH-OH! SEMBRA CHE IL SAGGIO BLU STESSE LAVORANDO A UNA MACCHINA FLUTTUANTE PER POTERLI MUOVERE.") - (960 :offscreen "KEIRA" "SUPPONENDO CHE FUNZIONI, CI SERVIRANNO DELLE BATTERIE PER ALIMENTARLO.") - (1074 "KEIRA" "PERCIÒ SARÀ MEGLIO CHE ANDIATE A CERCARNE ALTRE.") - (1150 "SAMOS" "DAREMO UN'OCCHIATA AI SUOI APPUNTI.") - (1222 :offscreen "SAMOS" "JAK, VAI A SENTIRE CHE DICONO GLI ABITANTI, POI TORNA QUI E AGGIORNACI.") - (1366 :offscreen "SAMOS" "... E PORTA CON TE LA PALLA DI PELO!") - ) - -("assistant-village2-introduction-flutflut" - (35 "KEIRA" "DI NUOVO QUI, RAGAZZI?") - (73) - (79 "DAXTER" "\"RAGAZZO\"?!") - (103) - (107 "DAXTER" "EHI! IO SONO... UN ESEMPLARE ADULTO...") - (184) - (192 "DAXTER" "UHM...") - (210) - (229 "DAXTER" "DI QUALCOSA DI... PELOSO, EHM...") - (302) - (319 "KEIRA" "INDOVINATE UN PO'? HO AVUTO IL PERMESSO DALL'ORNITOLOGA DEL VILLAGGIO") - (426 "KEIRA" "DI SELLARE IL NOSTRO PICCOLO FLUT FLUT, NON È UNA BELLA NOTIZIA?") - (516) - (528 "KEIRA" "A QUANTO PARE C'È UN TRANS-PAD DEI PRECURSOR NELLA PALUDE FANGOSA.") - (639) - (649 "KEIRA" "SE RIUSCIRETE A TROVARLO, VI INVIERÒ IL FLUT FLUT PER FARVELO CAVALCARE, D'ACCORDO?") - (772) - (778 "KEIRA" "IL SUO LUNGO SALTO POTREBBE ESSERVI UTILE PER ATTRAVERSARE LA ZONA!") - (870) - ) - -("assistant-village2-introduction-robbers" - (13 "KEIRA" "EHI, VOI DUE!") - (62 "KEIRA" "IO SO DOVE RECUPERARE UN'ALTRA BATTERIA!") - (132) - (140 "KEIRA" "IN BASE AGLI APPUNTI,") - (167 "KEIRA" "UN PAIO DI GIORNI FA, ALCUNI LURKER VOLANTI NE HANNO RUBATA UNA AL SAGGIO BLU,") - (282 "KEIRA" "E POI SONO FUGGITI VERSO IL BACINO DEL PRECURSOR.") - (369 "KEIRA" "SONO CERTA CHE POTETE RAGGIUNGERLI COL VOSTRO ZOOMER E RINTRACCIARE QUELLO CHE HA LA BATTERIA.") - (509 "KEIRA" "LO ZOOMER È SUL TRANS-PAD VICINO ALL'ENTRATA DEL BACINO DEL PRECURSOR.") - (614) - ) - -("assistant-village2-introduction-room" - (36 "KEIRA" "PARE CHE LA STRUTTURA DEI PRECURSOR, SITUATA APPENA OLTRE LA COSTA,") - (137 "KEIRA" "CONDUCA ALLA CITTÀ PERDUTA SOTTOMARINA.") - (197) - (213 "KEIRA" "IL SAGGIO BLU HA TENTATO PIÙ VOLTE DI CAPIRE IL SISTEMA PER PORTARE UNA DELLE STANZE IN SUPERFICIE.") - (353 "KEIRA" "MA PURTROPPO NON CI È MAI RIUSCITO.") - (408 "KEIRA" "ANDATE A CONTROLLARE!") - (435) - (438 "DAXTER" "EHM... MA NON CI SONO UN SACCO DI... SQUALI LURKER IN QUELLE ACQUE?") - (562 "KEIRA" "PERCHÉ? TE LA FAI SOTTO?") - (638 "DAXTER" "CHI, IO? CERTO CHE NO! MI-MI INFORMAVO SOLO PER JAK!") - (773 "DAXTER" "EMH... LO SAI... QUANT'È FIFONE A VOLTE.") - (860) - (874 "KEIRA" "BEH, SE NUOTERETE DENTRO LA BARRIERA CORALLINA, GLI SQUALI LURKER NON VI DARANNO NOIA.") - (1011 "KEIRA" "NON AMANO LE ACQUE POCO PROFONDE.") - (1070) - ) - -("assistant-village2-reminder-1-flutflut" - (27 "KEIRA" "SONO CERTA CHE IL FLUT FLUT VI SARÀ D'AIUTO NELLA PALUDE.") - (120 "KEIRA" "INDIVIDUATE IL TRANS-PAD E IO VE LO INVIERÒ.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (23 "KEIRA" "ORA TELETRASPORTERÒ IL VOSTRO ZOOMER AL BACINO DEL PRECURSOR,") - (120 "KEIRA" "COSÌ POTRETE DARE LA CACCIA AI LURKER VOLANTI DI CUI PARLAVAMO.") - (230) - ) - -("assistant-village2-reminder-1-room" - (43 "KEIRA" "SIETE GIÀ ARRIVATI ALLA CITTÀ PERDUTA, RAGAZZI?") - (114) - (126 "KEIRA" "DOVRESTE PROVARE A FAR EMERGERE LA STANZA A CUI STAVA LAVORANDO IL SAGGIO BLU.") - (233) - ) - -("assistant-village2-resolution" - (47 "KEIRA" "BENE, AVETE LE BATTERIE PER LA MACCHINA!") - (116 "KEIRA" "CI FORNIRANNO L'ENERGIA SUFFICIENTE PER SOLLEVARE IL MASSO.") - (206) - (299 "KEIRA" "ECCO FATTO!") - (330) - (344 "KEIRA" "MI RACCOMANDO, SIATE PRUDENTI QUANDO AFFRONTATE IL LURKER CHE C'È LASSÙ.") - (433) - (440 "DAXTER" "ASPETTATE! EHM...") - (494 "DAXTER" "HO DECISO, IO RIMARRÒ QUI PER PROTEGGERE KEIRA!") - (562) - (570 "DAXTER" "JAK, CREDO TU POSSA MACIULLARE QUEL MOSTRO ANCHE SENZA DI ME.") - (663) - (679 "KEIRA" "OH, DAVVERO EROICO DA PARTE TUA.") - (734) - ) - -("gambler-introduction-1" - (30 "GIOCATORE D'AZZARDO" "OH, NO. NON CI VOLEVA UN ALTRO \"EROE\".") - (105 "GIOCATORE D'AZZARDO" "HO PERSO ANCHE LE MUTANDE SCOMMETTENDO SU 'STO COSIDDETTO EROE") - (203 "GIOCATORE D'AZZARDO" "CONTRO QUEL MOSTRO LÀ.") - (238) - (247 "GIOCATORE D'AZZARDO" "DAMMI RETTA, FATTI FURBO E PUNTA SUL MOSTRO.") - (330) - (347 "GIOCATORE D'AZZARDO" "QUESTA SCOMMESSA MI HA PRATICAMENTE ROVINATO!") - (423 "GIOCATORE D'AZZARDO" "SENTI, TI FACCIO UNA PROPOSTA.") - (476 "GIOCATORE D'AZZARDO" "CON 90 GLOBI IO MI RIMETTO IN SESTO, ESCO DA QUESTA BOTTE") - (580 "GIOCATORE D'AZZARDO" "E IN CAMBIO TI REGALERÒ UNA BELLA BATTERIA.") - (658 "GIOCATORE D'AZZARDO" "E SE SEI CORAGGIOSO, HO UN'ALTRA SCOMMESSA PER TE.") - (754 :offscreen "GIOCATORE D'AZZARDO" "LA MIA GRANDE RIMONTA!") - (788) - (795 :offscreen "GIOCATORE D'AZZARDO" "BATTI IL RECORD DI VELOCITÀ DEL PRECIPIZIO DELLA MORTE NEL BACINO DEL PRECURSOR.") - (926 :offscreen "GIOCATORE D'AZZARDO" "IO NE RICAVERÒ") - (958 "GIOCATORE D'AZZARDO" "UNA BELLA SOMMETTA E TU UN'ALTRA BATTERIA.") - ) - -("gambler-reminder-money" - (11 "GIOCATORE D'AZZARDO" "EHI. NON DIMENTICARTI DI QUEI GLOBI, AMICO.") - (81 "GIOCATORE D'AZZARDO" "ME NE SERVONO 90, PER AVERE UNA BATTERIA, OVVIAMENTE!") - ) - -("gambler-reminder-race" - (11 "GIOCATORE D'AZZARDO" "BEH, CHE COSA STAI ASPETTANDO? QUESTA BOTTE MI FA VENIRE IL PRURITO!") - (113) - (118 "GIOCATORE D'AZZARDO" "BATTI IL RECORD DI DISCESA DEL PRECIPIZIO DELLA MORTE E FARAI VINCERE ANCHE ME!") - ) - -("gambler-resolution-money" - (9 "GIOCATORE D'AZZARDO" "HEH HEH HEH! OH, CERTO!") - (70) - (76 "GIOCATORE D'AZZARDO" "CON QUEI GLOBI RICOMINCIERÒ A VINCERE E USCIRÒ DA QUESTA BOTTE!") - (174 "GIOCATORE D'AZZARDO" "ECCO LA BATTERIA CHE TI AVEVO PROMESSO!") - ) - -("gambler-resolution-race" - (12 "GIOCATORE D'AZZARDO" "OH, SEI STATO GRANDE, RAGAZZO! LO SAPEVO CHE AVRESTI BATTUTO IL RECORD.") - (143 "GIOCATORE D'AZZARDO" "ALLORA, ECCO A TE LA BATTERIA. IO VADO A RISCUOTERE LA MIA GROSSA VINCITA!") - ) - -("geologist-introduction" - (27 "GEOLOGA" "VOI DUE MI SEMBRATE DEI TIPI MOLTO IN GAMBA.") - (101 "GEOLOGA" "HO IN CORSO UN PROGETTO DI RICERCA, POTRESTE DARMI UNA MANO?") - (198) - (204 "DAXTER" "EHI, ABBIAMO UNA MISSIONE DA PORTARE A TERMINE, SIAMO NOI AD AVER BISOGNO DI AIUTO!") - (323) - (331 "GEOLOGA" "BEH, FORSE POSSIAMO AIUTARCI A VICENDA.") - (392) - (405 "GEOLOGA" "STO STUDIANDO IL MODO IN CUI LE TALPE FULMINE SCAVANO LE TANE") - (489 "GEOLOGA" "NEL BACINO DEL PRECURSOR, ACCANTO AL NOSTRO VILLAGGIO.") - (562) - (574 :offscreen "GEOLOGA" "ORA, I LURKER HANNO SPAVENTATO LE TALPE E LE HANNO FATTE VENIRE IN SUPERFICIE!") - (697) - (700 :offscreen "GEOLOGA" "E SICCOME LE POVERINE SONO CIECHE, NON RIESCONO PIÙ A TORNARE SOTTO TERRA.") - (808) - (827 "GEOLOGA" "SE VOI POTESTE GUIDARLE ATTRAVERSO LE LORO GALLERIE, SALVERESTE LORO LA VITA.") - (945) - (958 "GEOLOGA" "HO QUI UNA BATTERIA COME INCENTIVO PER VOI.") - (1028) - (1035 "DAXTER" "MA CERTO, TALPE FULMINE... ALTROCHÉ!") - (1150) - (1164 "DAXTER" "MAGARI PER DUE BATTERIE, MH?") - (1229 "GEOLOGA" "BEH, CI HAI PROVATO. POTREI SEPARARMI DA UN'ALTRA BATTERIA SOLO SE") - (1344 "GEOLOGA" "VOI DUE MI PORTASTE I GLOBI PRECURSOR PER LE MIE ATTREZZATURE DI RICERCA.") - (1465 "GEOLOGA" "D'ACCORDO?") - (1506) - ) - -("geologist-reminder-moles" - (24 "GEOLOGA" "AVETE GUIDATO LE TALPE FULMINE AI TUNNEL SOTTERRANEI?") - (109) - (124 "GEOLOGA" "FATE IN FRETTA: LA LUCE DIRETTA DEL SOLE È DANNOSA PER LORO!") - ) - -("geologist-reminder-money" (30 "GEOLOGA" "SE NON AVRÒ QUEI GLOBI, NON POTRÒ CONTINUARE LA MIA RICERCA!")) - -("geologist-resolution-moles" - (38 "GEOLOGA" "GRAZIE PER AVER SALVATO QUELLE TALPE, SIETE STATI BRAVISSIMI!") - (140) - (150 "GEOLOGA" "ECCO UNA BATTERIA, VI SARÀ MOLTO UTILE.") - (227) - (235 "GEOLOGA" "ADESSO POSSO TORNARE ALLA MIA RICERCA!") - ) - -("geologist-resolution-money" - (29 "GEOLOGA" "OH, AVETE I GLOBI PER ME!") - (80) - (92 "GEOLOGIST" "ECCO LA BATTERIA CHE AVEVO PROMESSO.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (6 "SAMOS" "OK GENTE, QUI LA SITUAZIONE PUZZA PIÙ DELL'ASCELLA DI UN LURKER.") - (144) - (159 "SAMOS" "POCO TEMPO PRIMA DELLA SUA SCOMPARSA,") - (220 "SAMOS" "IL SAGGIO BLU AVEVA ANNOTATO LE PROBLEMATICHE DI TUTTE LE AREE CIRCOSTANTI.") - (357) - (365 "SAMOS" "RITENGO SIA DI PARTICOLARE INTERESSE") - (433 "SAMOS" "L'INFEZIONE CAUSATA DALL'ECO OSCURO DI ALCUNE POVERE PIANTE") - (546 "SAMOS" "NEL BACINO DEL PRECURSOR.") - (591) - (596 :offscreen "SAMOS" "KEIRA TELETRASPORTERÀ IL VOSTRO ZOOMER ANTI-GRAVITÀ AL TRANS-PAD PIÙ VICINO.") - (728 "SAMOS" "RAGGIUNGETE CON LO ZOOMER UN CAMINO E PORTATE SUBITO L'ECO VERDE A TUTTE LE PIANTE MALATE.") - (892 "SAMOS" "QUESTO DOVREBBE CURARLE.") - (948) - (953 "SAMOS" "NON DIMENTICATENE NEMMENO UNA, ALTRIMENTI L'INFEZIONE") - (1064 "SAMOS" "SI PROPAGHERÀ MOLTO VELOCEMENTE") - (1130 "SAMOS" "TRA LE PIANTE SANE.") - (1168) - (1199 :offscreen "SAMOS" "E TU, DAXTER...") - (1257 "SAMOS" "COMINCIA A DARE UNA RIPULITA!") - (1313 "SAMOS" "... E NON TRALASCIARE GLI ANGOLI!") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAMOS" "SPERO CHE VI SIATE PORTATI IL PRANZO, PERCHÉ SIAMO SOLTANTO ALL'INIZIO.") - (130) - (136 "SAMOS" "DUNQUE, SECONDO GLI APPUNTI DEL SAGGIO BLU, I LURKER HANNO INFESTATO L'INTERA PALUDE DELLA BAIA.") - (300) - (307 :offscreen "SAMOS" "SEMBRA CHE STIANO PENSANDO DI UTILIZZARE UN DIRIGIBILE") - (395 :offscreen "SAMOS" "PER POTER RECUPERARE DAL TERRENO FANGOSO UN IMPORTANTE MANUFATTO DEI PRECURSOR.") - (531) - (541 :offscreen "SAMOS" "VOI, DOVETE ANDARE LAGGIÙ... E SPEZZARE LE CATENE.") - (675) - (686 "SAMOS" "NON SO COSA INTENDANO FARE CON QUEL MANUFATTO,") - (775 "SAMOS" "MA AD ESSERE SINCERO, AMICI MIEI, NON PREVEDO NULLA DI BUONO.") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (24 "SAMOS" "LA VISTA MI STA GIOCANDO UN BRUTTO SCHERZO!") - (93) - (105 "SAMOS" "PERCHÉ IO SO CHE IN QUESTO MOMENTO VOI DUE VI TROVATE NEL BACINO DEL PRECURSOR") - (238 "SAMOS" "PER SALVARE LE PIANTE INFETTATE DALL'ECO OSCURO.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (6 "SAMOS" "BEH, CHE COSA FATE DI NUOVO QUI?") - (70) - (91 "SAMOS" "DAL BALCONE POSSO VEDERE CHE IL DIRIGIBILE DEI LURKER") - (176 :offscreen "SAMOS" "SI TROVA ANCORA SULLA PALUDE.") - (237) - (253 "SAMOS" "E VOI OVVIAMENTE NON AVETE PORTATO A TERMINE LA MISSIONE.") - (340) - (368 "SAMOS" "MUOVETEVI!") - (400) - ) - -("warrior-introduction" - (34 "SOLDATO" "OHH... LA MIA TESTA. CHE MALE!") - (128) - (140 "DAXTER" "DUBITO CHE PER TE SIA UN ORGANO VITALE!") - (212 "DAXTER" "NON FARCI CASO, FUSTONE!") - (258 "FUSTONE" "OH, CERTO, UNA VOLTA IO ERO UN DURO.") - (333 "FUSTONE" "FORSE IL PIÙ INFLESSIBILE DI TUTTI.") - (410 "SOLDATO" "HO CERCATO DI DIFENDERE QUESTO VILLAGGIO DALLE ORRIBILI CREATURE DA SOLO, PER QUASI UN ANNO INTERO!") - (588) - (603 :offscreen "SOLDATO" "POI È ARRIVATO QUEL MOSTRO TREMENDO, E HA INCOMINCIATO IL BOMBARDAMENTO COI MACIGNI.") - (750) - (769 :offscreen "SOLDATO" "IO ERO... PIENO DI CORAGGIO... E CON L'ARMATURA CHE RISPLENDEVA SOTTO IL SOLE,") - (938 "SOLDATO" "E SONO SALITO IN CIMA ALLA COLLINA PER AFFRONTARLO...!") - (1033) - (1048 "SOLDATO" "MA LUI MI HA PESTATO COME SE FOSSI UNA BISTECCA DI YAKOW DA CUOCERE!") - (1172) - (1179 "DAXTER" "PERCHÉ NON PROVI A UCCIDERLO CON I TUOI MELODRAMMI?") - (1257 "DAXTER" "CON ME CI STAI RIUSCENDO!") - (1303) - (1310 :offscreen "SOLDATO" "DOPO IL MIO ULTIMO TERRIBILE FALLIMENTO,") - (1393 :offscreen "SOLDATO" "HA BLOCCATO LA STRADA PER IL SUO COVO CON UN MACIGNO DA 30 TONNELLATE,") - (1512 :offscreen "SOLDATO" "E ORA NESSUNO PUÒ RAGGIUNGERLO PER SFIDARLO DI NUOVO.") - (1640) - (1668 :offscreen "SOLDATO" "ALLORA, IL NOSTRO SAGGIO, UN MAESTRO DELL'ECO BLU, ASSIEME AD UN GENIO DELLA MECCANICA,") - (1866 :offscreen "SOLDATO" "HA INVENTATO UN MACCHINARIO CAPACE DI SOLLEVARE IL MACIGNO E TOGLIERLO DI MEZZO!") - (2025) - (2035 "SOLDATO" "MA, AHIMÉ... IL SAGGIO È SPARITO PRIMA CHE POTESSIMO FARLO FUNZIONARE.") - (2200) - (2221 "SOLDATO" "E HA PORTATO CON SÉ ANCHE TUTTE LE SUE BATTERIE.") - (2330) - (2359 :offscreen "SOLDATO" "PERLOMENO, SONO RIUSCITO AD ELIMINARE UN BEL PO' DI PONTONI") - (2459 :offscreen "SOLDATO" "COSÌ IL MOSTRO NON POTRÀ PIÙ SCENDERE E FARMI DI NUOVO DEL MALE.") - (2561) - (2576 "DAXTER" "WOW, OTTIMO LAVORO, FUSTONE. MA ORA...") - (2684 "DAXTER" "CI SERVIRAI PER... RIPRENDERCELE!") - (2766) - (2774 "SOLDATO" "OH, CERTO! E COME NO? E LA MIA SORTE SARÀ SEGNATA!") - (2888 "SOLDATO" "OHH...") - (2943) - (2955 "SOLDATO" "EH VA BENE. OKAY.") - (3046 "SOLDATO" "PORTATEMI 90 GLOBI PRECURSOR E IO ANDRÒ A SCIOGLIERE TUTTI I PONTONI.") - (3173) - (3202 "SOLDATO" "MA VI ASSICURO CHE NON COMBATTERÒ MAI PIÙ CONTRO QUEL MOSTRO!") - ) - -("warrior-reminder-1" - (40 "SOLDATO" "PRENDETEVI TUTTO IL TEMPO CHE VI SERVE PER PORTARMI I GLOBI PRECURSOR,") - (147 "SOLDATO" "NON HO AFFATTO INTENZIONE DI RICOSTRUIRE IL PONTE COSÌ IN FRETTA!") - ) - -("warrior-resolution" - (32 "SOLDATO" "OH.") - (67) - (74 "SOLDATO" "CHE MERAVIGLIA.") - (120) - (139 "SOLDATO" "BRAVI, MI AVETE PORTATO I GLOBI PRECURSOR.") - (234) - (243 "SOLDATO" "D'ACCORDO.") - (279) - (287 "SOLDATO" "SISTEMERÒ IL PONTE.") - (334) - (346 "SOLDATO" "BASTA CHE NON MI CHIEDIATE DI COMBATTERE DI NUOVO CON QUEL MOSTRO TREMENDO!") - (476) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "ORA, COME FUNZIONA QUESTA MACCHINA FLUTTUANTE?")) -("ASSTLP24" :hint #x0 (5 "KEIRA" "ANCHE USANDO LE BATTERIE, AVREMO ENERGIA SUFFICIENTE?")) -("GAM-AM01" :hint #x0 (0 "GIOCATORE D'AZZARDO" "EHI, VENTI A UNO NON È MALE!")) -("GAM-AM02" :hint #x0 (0 "GIOCATORE D'AZZARDO" "HUNN, SEMBRAVA COSÌ SICURO!")) -("GAM-AM03" :hint #x0 (0 "GIOCATORE D'AZZARDO" "HE HE HE... LA PROSSIMA VOLTA FARÒ IL COLPO GROSSO!")) -("GAM-AM04" :hint #x0 (0 "GIOCATORE D'AZZARDO" "HA! SE AVESSI UN GLOBO PER OGNI OPPORTUNITÀ MANCATA...!")) -("GAM-AM05" :hint #x0 (0 "GIOCATORE D'AZZARDO" "EHI! LE BOTTI POTREBBERO TORNARE DI MODA.")) -("GAM-AM06" :hint #x0 (0 "GIOCATORE D'AZZARDO" "AHH... HO BISOGNO DI UN PO' DI FORTUNA.")) -("GAM-AM07" :hint #x0 (0 "GIOCATORE D'AZZARDO" "WOW, QUANTE PROBABILITÀ HO DI TRASFERIRMI IN UNA CITTÀ ASSEDIATA?")) -("GAM-AM08" :hint #x0 (0 "GIOCATORE D'AZZARDO" "DOVEVA ESSERE SICURA!")) -("GAM-AM09" :hint #x0 (0 "GIOCATORE D'AZZARDO" "GIORNO NUOVO, SCOMMESSA NUOVA.")) -("GAM-AM10" :hint #x0 (0 "GIOCATORE D'AZZARDO" "SCOMMETTO CHE NESSUNO PUÒ BATTERE QUEL MOSTRO.")) -("GAM-AM11" :hint #x0 (0 "GIOCATORE D'AZZARDO" "... DOVREI RISCUOTERE E ANDARMENE VIA.")) -("GAM-AM12" :hint #x0 (0 "GIOCATORE D'AZZARDO" "EHI, NON SEMPRE SI PUÒ VINCERE.")) -("GAM-AM13" :hint #x0 (0 "GIOCATORE D'AZZARDO" "EHI, CHE C'HAI DA RIDERE? MI TROVI RIDICOLO?!")) -("GEO-AM01" :hint #x0 (0 "GEOLOGA" "MMH, MOLTO INTERESSANTE...")) -("GEO-AM02" :hint #x0 (0 "GEOLOGA" "POVERE PICCOLINE...")) -("GEO-AM03" :hint #x0 (0 "GEOLOGA" "NOTEVOLE...")) -("GEO-AM04" :hint #x0 (0 "GEOLOGA" "BUONA FORTUNA!")) -("GEO-AM05" :hint #x0 (0 "GEOLOGA" "ODIOSI LURKER...")) -("GEO-AM06" :hint #x0 (0 "GEOLOGA" "ANCHE LE PIETRE HANNO UN CUORE...")) -("GEO-AM07" :hint #x0 (0 "GEOLOGA" "TENETE DURO, PICCOLE MIE...")) -("GEO-AM08" :hint #x0 (0 "GEOLOGA" "ADESSO POSSO TORNARE ALLA MIA RICERCA!")) -("GEO-LO01" :hint #x0 (0 "GEOLOGA" "DEVO RIPRENDERE LA MIA RICERCA.")) -("GEO-LO02" :hint #x0 (0 "GEOLOGA" "MMH, QUESTA ROCCIA È MOLTO VECCHIA...")) -("SAGELP20" :hint #x0 (0 "SAMOS" "MMH... MMMH!")) -("SAGELP21" :hint #x0 (0 "SAMOS" "I LURKER DEVONO ESSERE FERMATI.")) -("SAGELP22" :hint #x0 (5 "SAMOS" "CAPISCO...")) -("SAGELP23" :hint #x0 (3 "SAMOS" "NO...")) -("SAGELP24" :hint #x0 (7 "SAMOS" "COSA PUÒ ESSERGLI SUCCESSO...?")) -("WAR-LO1A" :hint #x0 (0 "SOLDATO" "SOOOOOOOOOOOOOOB...")) -("WAR-LO1B" :hint #x0 (0 "SOLDATO" "HUHH... IIIIII-GHI-GHI-GHI SIIIIIIIIGH...")) - -("WAR-LO1C" :hint #x0 - (0 "SOLDATO" "AH-AH-AH... SNORT!") - (151 "SOLDATO" "WAHAAAAAAAAAAA...") - ) - -("asstvb22" :hint #x326 - (69 "KEIRA" "WOW! AVETE FATTO RIEMERGERE UNA PARTE DELLE ROVINE SOTTOMARINE!") - (324 "KEIRA" "SEMBRA CHE POSSIATE USARE L'ECO IN UN MODO MAI VISTO PRIMA!") - (526 "KEIRA" "UNA BATTERIA È RIEMERSA CON LA STANZA. SALITE E PRENDETELA.") - (718) - ) - -("asstvb20" :hint #x327 - (61 "KEIRA" "OTTIMO VOLO! QUEI LURKER NON ERANO ALL'ALTEZZA DEL VOSTRO ZOOMER!") - (297 "KEIRA" "ORA ABBIAMO UN'ALTRA BATTERIA!") - ) - -("asstvb21" :hint #x328 - (51 "KEIRA" "OTTIMO LAVORO! NON SIETE CONTENTI DI AVER SALVATO IL NOSTRO PICCOLO AMICO FLUT FLUT?") - (327 "KEIRA" "POTRÀ ESSERCI UTILE IN FUTURO.") - (427 "KEIRA" "ORA TORNATE AL TRANS-PAD, MENTRE IO LO PORTO A CASA.") - ) - -("sagevb03" :hint #x36a - (0 "SAMOS" "CONTINUATE A STUPIRMI.") - (145 "SAMOS" "MA FORSE È SOLO PERCHÉ NON AVEVO GRANDI ASPETTATIVE.") - (425 "SAMOS" "OK, IL VOSTRO MOMENTO DI GLORIA È FINITO.") - (616 "SAMOS" "ORA MUOVETEVI!") - ) - -("sagevb04" :hint #x36b - (0 "SAMOS" "OTTIMO LAVORO, JAK! TUO ZIO SAREBBE FIERO DI TE.") - (231 "SAMOS" "QUELLO ERA IL BRACCIO GIGANTE DI UN ROBOT DEI PRECURSOR.") - (457 "SAMOS" "NON NE AVEVO MAI VISTO UNO IN COSÌ BUONE CONDIZIONI!") - (673 "SAMOS" "NON RIESCO A IMMAGINARE PERCHÉ I LURKER LO VOLESSERO,") - (855 "SAMOS" "MA DI CERTO NOI NON VOLEVAMO CHE SE NE IMPOSSESSASSERO.") - (1050) - (1068 "SAMOS" "SE CONTINUATE COSÌ... NAH, NON CE LA FARETE MAI.") - (1388 "SAMOS" "MA ALMENO PROVATECI. QUESTO È CIÒ CHE CONTA.") - (1600) - ) - -("asstvb71" :hint #x36c - (0 "KEIRA" "NON AVETE ABBASTANZA BATTERIE PER ATTIVARE LA MACCHINA DEL SAGGIO BLU!") - (202 "KEIRA" "NON POSSIAMO SOLLEVARE QUEL MASSO FINCHÉ NON TROVATE ALMENO 45 BATTERIE.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "FINCHÉ NON SCOPRIAMO PERCHÉ IL SAGGIO BLU È SCOMPARSO,") - (169 "KEIRA" "AVRETE BISOGNO DI 45 BATTERIE PER ATTIVARE QUELLA MACCHINA.") - (394 "KEIRA" "ANDATE A PRENDERLE!") - ) - -("asstvb28" :hint #x36f - (19 "KEIRA" "EHI! NON DIMENTICATEVI DEL SAGGIO E DI ME!") - (178) - (189 "KEIRA" "DOVETE ATTIVARE IL TELETRASPORTO PER FARCI ARRIVARE LÌ!") - (369) - (369 "KEIRA" "È NEL LABORATORIO DEL SAGGIO BLU, ALLA FINE DEL CANYON DI FUOCO.") - (566) - (566 "KEIRA" "SE NON CI FATE ARRIVARE LÌ, NON POTREMO AIUTARVI!") - ) - -("asstvb29" :hint #x370 - (16 "KEIRA" "EEHI! STIAMO ANCORA ASPETTANDO!!") - (172 "KEIRA" "ATTIVATE IL TELETRASPORTO!") - ) - -("asstvb30" :hint #x371 (11 "KEIRA" "EHI! NON POSSIAMO RAGGIUNGERVI FINCHÉ NON ATTIVATE IL TELETRASPORTO!")) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (15 "BILLY" "BENE! QUEI MALEDETTI STANNO PER TORNARE.") - (118 "BILLY" "SPARATEGLI SENZA PIETÀ, E SALVATE ALMENO UNO DI QUEI BUONI PIATTINI.") - ) - -("billy-introduction" - (15 "BILLY" "EHILÀ, AMICI! VI PIACE LA MIA STUPENDA PALUDE?") - (131 "BILLY" "È TUTTA ROBA MIA QUESTA QUI.") - (187 "BILLY" "CIOÈ, È TUTTO MIO QUELLO CHE NON SPROFONDA NEL FANGO! HAHAHAHAHAH...") - (349) - (349 "DAXTER" "SNIFF SNIFF...") - (370) - (376 "DAXTER" "A GIUDICARE DALL'ODORE, SI DIREBBE CHE NON VEDI") - (442 "DAXTER" "UNA VASCA DA BAGNO DA UN SECOLO!") - (497) - (535 "BILLY" "BEH, COS'È UNA VASCA DA BAGNO?") - (592) - (608 "BILLY" "E COMUNQUE AL MOMENTO HO DEI PROBLEMI BEN PIÙ GRAVI...") - (680) - (706 "BILLY" "SEMBRA CHE QUI ATTORNO SIA TUTTO APPESTATO DA QUEI DANNATI LURKER,") - (807 "BILLY" "CHE CON LE LORO SPORCHE ZAMPACCE ACCHIAPPANO TUTTO QUELLO CHE POSSONO.") - (923 "BILLY" "HANNO FATTO PERSINO SCAPPARE IL MIO HIPHOG, FARTHY.") - (1017) - (1033 "BILLY" "GIÀ, ORMAI È SPARITO DA UN SACCO DI TEMPO, SAPETE?") - (1133) - (1154 :offscreen "BILLY" "CONTINUO A METTERGLI FUORI I SUOI SPUNTINI,") - (1223 :offscreen "BILLY" "MA QUEI MALEDETTI RATTI DI PALUDE GLIELI RUBANO TUTTI!") - (1338 :offscreen "BILLY" "SE RIUSCISSI A TENERE LONTANO QUELLE BESTIACCE PER UN PO',") - (1433 :offscreen "BILLY" "IL MIO FARTHY FIUTEREBBE I SUOI BOCCONCINI PREFERITI E TORNEREBBE!") - (1538) - (1550 "BILLY" "MI DATE UNA MANO?") - ) - -("billy-reject" - (13 "BILLY" "ALLORA, SE PER CASO CAMBIATE IDEA, SAPETE TUTTI DOVE TROVARMI!") - (158 "BILLY" "AH-AHAHAHAHAH...") - (240) - ) - -("billy-reminder-1" (44 "BILLY" "EEEHI! SIETE TORNATI PER AIUTARMI A FERMARE QUEI RATTACCI?")) - -("billy-resolution" - (10 "BILLY" "CHE MI VENGA UN COLPO! CERTO CHE TU SPARI PROPRIO BENE!") - (128 "BILLY" "GRAZIE MILLE PER L'AIUTO!") - ) - -("BIL-AM01" :hint #x0 (0 "BILLY" "MI PIACE IL FANGO.")) -("BIL-AM02" :hint #x0 (0 "BILLY" "MALEDETTI RATTACCI.")) -("BIL-AM03" :hint #x0 (0 "BILLY" "HO PROPRIO BISOGNO DI UN GOCCETTO.")) -("BIL-AM04" :hint #x0 (0 "BILLY" "GLADÌOLA.")) -("BIL-AM05" :hint #x0 (0 "BILLY" "HO BISOGNO DEL MIO SCIROPPINO.")) -("BIL-AM06" :hint #x0 (0 "BILLY" "HO BISOGNO DI UN PO' DI REFRIGERIO.")) -("BIL-AM07" :hint #x0 (0 "BILLY" "MALEDETTO CALDO, MI PRUDE TUTTO.")) -("BIL-AM08" :hint #x0 (0 "BILLY" "DANNAZIONE! HO L'ORTICARIA DAL CALDO.")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "MMH! MI PIACE IL FANGO!")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "MALEDETTI RATTACCI!")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "MALEDETTI RATTACCI!")) -("BIL-LO01" :hint #x0 (0 "BILLY" "FAAAAAARTHY!")) -("BIL-LO02" :hint #x0 (0 "BILLY" "PORCELLINO-PORCELLINO!")) -("BIL-LO03" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "FARTHY!")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "PORCELLINO-PORCELLINO!")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "PORCELLINO! PORCELLINO!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "LÀ!")) -("BIL-TA02" :hint #x0 (0 "BILLY" "VAI!")) -("BIL-TA03" :hint #x0 (0 "BILLY" "LÌ!")) -("BIL-TA04" :hint #x0 (0 "BILLY" "ACCIDENTI.")) -("BIL-TA05" :hint #x0 (0 "BILLY" "UN RATTO NE HA PRESO UNO.")) -("BIL-TA06" :hint #x0 (0 "BILLY" "E UN ALTRO...")) -("BIL-TA07" :hint #x0 (0 "BILLY" "NE RIMANE UNO...")) -("BIL-TA08" :hint #x0 (0 "BILLY" "PRESI.")) -("BIL-TA09" :hint #x0 (0 "BILLY" "YEEHAA!")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "LÀ!")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "VAI!")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "LÌ.")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "PORC...")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "AAAH!")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "UN RATTO NE HA PRESO UNO!")) -("SKSP009F" :hint #x0 (0 "DAXTER" "PRENDILO! PRENDILO! HA HA HA!")) -("sksp0137" :hint #x351 (0 "DAXTER" "SCOMMETTO CHE POSSIAMO SPARARE A QUEI MASSI SE CI CARICHIAMO CON L'ECO GIALLO.")) -("sksp0138" :hint #x352 (0 "DAXTER" "DOVREMMO SPARARE A QUELLE ROCCE CHE BLOCCANO LE CATENE.")) -("sksp0139" :hint #x353 (0 "DAXTER" "POTREMMO AIUTARE QUELLO STRANO RAGAZZO A TROVARE IL SUO CUCCIOLO.")) -("sksp0140" :hint #x354 (0 "DAXTER" "IL FLUT FLUT PUÒ VOLTEGGIARE PIÙ A LUNGO SE ESEGUI UN DOPPIO SALTO!")) -("sksp0141" :hint #x355 (0 "DAXTER" "NON TOCCARE QUEL CATRAME CALDO O TI FARAI MOLTO MALE!")) -("sksp0142" :hint #x356 (0 "DAXTER" "L'ACQUA È UN POSTO SICURO DOVE PASSARE.")) -("sksp0143" :hint #x357 (0 "DAXTER" "AAH-HA! LIBERATI DA QUELLA LINGUA!")) -("sksp0144" :hint #x358 (0 "DAXTER" "SPARA ALLE TANE DEI RATTI PER NON FARNE USCIRE PIÙ.")) -("sksp0145" :hint #x359 (0 "DAXTER" "PUOI SPARARE DELLE PALLE DI FUOCO QUANDO SEI CARICATO CON L'ECO GIALLO!")) -("sksp0146" :hint #x35a (0 "DAXTER" "EHI! C'È DELL'ECO GIALLO!")) -("sksp0147" :hint #x35b (0 "DAXTER" "PUOI DONDOLARTI SU QUEL PALO!")) -("sksp0148" :hint #x35c (0 "DAXTER" "ATTENTO, QUEL ROVO PUNGE!")) -("sksp0149" :hint #x35d (0 "DAXTER" "EHI, SEMBRA CHE UNA CATENA STIA BLOCCANDO IL DIRIGIBILE!")) -("sksp0150" :hint #x35e (0 "DAXTER" "ATTENTO QUANDO QUELLA RANA È CARICA!")) -("sksp0151" :hint #x35f (0 "DAXTER" "SCAPPA, JAK!")) -("sksp0152" :hint #x360 (0 "DAXTER" "ATTENTO, JAK! È UN'IMBOSCATA!")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "QUELLO DEVE ESSERE L'ARTEFATTO PRECURSOR CHE I LURKER STANNO CERCANDO!") - (195 "DAXTER" "SEMBRA UN BRACCIO DI UN ROBOT GIGANTE!") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "QUEL CATRAME NERO SEMBRA CALDO E PERICOLOSO!")) -("sksp0155" :hint #x363 (0 "DAXTER" "SPARA AI PIPISTRELLI USANDO L'ECO GIALLO!")) -("sksp0156" :hint #x364 (0 "DAXTER" "FORSE POSSIAMO EVITARE I PIPISTRELLI!")) -("sksp0157" :hint #x365 (0 "DAXTER" "HAI VISTO? MANCANO SOLO TRE CATENE!")) -("sksp0158" :hint #x366 (0 "DAXTER" "WOW! MANCANO SOLO DUE CATENE!")) -("sksp0159" :hint #x367 (0 "DAXTER" "IL DIRIGIBILE STA PER STACCARSI. TROVIAMO L'ULTIMA CATENA!")) -("sksp0160" :hint #x368 (0 "DAXTER" "EHI! ECCO IL FLUT FLUT.")) -("sksp0161" :hint #x369 (0 "DAXTER" "ODIO I RATTI! E SONO QUASI UNO DI LORO.")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "UUH! ABBIAMO BATTUTO IL RECORD!")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "TE L'HO DETTO PRIMA E TE LO RIPETO...") - (159 "DAXTER" "EVITA LE SCATOLE DELL'ECO OSCURO!!") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "AVANTI, INSEGUIAMO QUELLE TALPE SOTTO TERRA.")) -("sksp0112" :hint #x338 (0 "DAXTER" "ANDIAMO A PRENDERE LA BATTERIA DALLA GEOLOGA.")) -("sksp0113" :hint #x339 (0 "DAXTER" "QUELLE DEVONO ESSERE LE PIANTE INFESTATE DI CUI PARLAVA IL VECCHIO.")) -("sksp0114" :hint #x33a (0 "DAXTER" "DOBBIAMO USARE L'ECO VERDE PER CURARE LE PIANTE!")) -("sksp0115" :hint #x33b (0 "DAXTER" "ATTRAVERSA IL CONDOTTO DI VENTILAZIONE DELL'ECO VERDE!")) -("sksp0116" :hint #x33c (0 "DAXTER" "QUELLO È UNO DEI LURKER VOLANTI! POTREBBE AVERE UNA BATTERIA!")) -("sksp0117" :hint #x33d (0 "DAXTER" "È IL BUCO DI UNA TALPA!")) -("sksp0118" :hint #x33e (0 "DAXTER" "ORA VOLIAMO SOPRA LE PIANTE INFESTATE!")) -("sksp0119" :hint #x33f (0 "DAXTER" "PRESO UN ANELLO, MA NE MANCANO ANCORA MOLTI!")) -("sksp0120" :hint #x340 (0 "DAXTER" "PRESTO! ECCO L'ANELLO SUCCESSIVO!")) -("sksp0121" :hint #x341 (0 "DAXTER" "PRESTO! DEVI ATTRAVERSARE GLI ANELLI PRIMA CHE SI DISATTIVINO!")) -("sksp0122" :hint #x342 (0 "DAXTER" "DANNAZIONE! L'ERBA CI RALLENTA...")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "PRESTO! SEGUI QUEL TUBO!")) -("sksp0124" :hint #x344 (0 "DAXTER" "HO UNA BRUTTA SENSAZIONE...")) -("sksp0125" :hint #x345 (0 "DAXTER" "SEMBRA CHE QUELLE COSE ABBIANO BISOGNO DI UNA CARICA DI ECO BLU.")) -("sksp0126" :hint #x346 (0 "DAXTER" "PRENDIAMO LA BATTERIA SUL TETTO!")) -("sksp0127" :hint #x347 (0 "DAXTER" "COLPISCI IL RAGAZZO IN CIMA!")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK! CORRI! L'ECO OSCURO STA VENENDO FUORI!")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHH! L'ECO OSCURO SI STA AVVICINANDO!")) -("sksp0130" :hint #x34a (0 "DAXTER" "OOH, PENSO CHE DOVREMMO ATTIVARE TUTTE QUELLE PIATTAFORME.")) -("sksp0131" :hint #x34b (0 "DAXTER" "EHI! SEMBRA CHE TU POSSA TUFFARTI IN SALTO SU QUEI RAGAZZI!")) -("sksp0132" :hint #x34c (0 "DAXTER" "EEH-EEH! OOOOH! OOH! A-AOOH!")) -("sksp0133" :hint #x34d (0 "DAXTER" "DAI, CARICHIAMO TUTTE QUELLE COSE CONTEMPORANEAMENTE!")) -("sksp0134" :hint #x34e (0 "DAXTER" "PERCHÉ NON FACCIAMO PIÙ ATTENZIONE A QUEI TUBI CALDI?!")) -("sksp0135" :hint #x34f (0 "DAXTER" "L'ACQUA SEMBRA PERICOLOSA QUANDO CAMBIA COLORE!")) -("sksp0136" :hint #x350 (0 "DAXTER" "DEVI USCIRE DALL'ACQUA PRIMA CHE CAMBI COLORE!")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (65 "KEIRA" "OTTIMO LAVORO! GLI ABITANTI DEL VILLAGGIO DI PIETRA STANNO TIRANDO UN SOSPIRO DI SOLLIEVO!") - (359 "KEIRA" "MA NON C'È TEMPO PER FESTEGGIARE!") - (471 "KEIRA" "USATE LO ZOOMER PER ATTRAVERSARE IL PASSO MONTANO DI FRONTE A VOI.") - (674 "KEIRA" "FATE ATTENZIONE, SEMBRA CHE I LURKER ABBIANO IMBOTTITO DI ESPLOSIVO TUTTA LA ZONA!") - (903 "KEIRA" "RAGGIUNTO IL CRATERE VULCANICO, RICORDATEVI DI VISITARE IL LABORATORIO DEL SAGGIO ROSSO E DI ATTIVARE IL") - (1159 "KEIRA" "TELETRASPORTO, COSÌ IO E PAPÀ POTREMO RAGGIUNGERVI.") - (1410) - ) - -("asstvb24" :hint #x605 - (30 "KEIRA" "OH NO! QUEI LURKER DEVONO ESSERE DIRETTI A UN DETONATORE ALLA FINE DEL CANYON!") - (300) - (307 "KEIRA" "SE LO RAGGIUNGONO PRIMA DI VOI, FARANNO SALTARE L'INTERO PASSO!") - (502 "KEIRA" "DOVETE PRECEDERLI E DISTRUGGERE IL DETONATORE, O SARÀ TUTTO FINITO!") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "DOBBIAMO SCONFIGGERE I LURKER CHE SI TROVANO ALLA FINE DEL PASSAGGIO!")) -("sksp0301" :hint #x608 (0 "DAXTER" "NON COLPIRE QUEGLI ESPLOSIVI!")) -("sksp0302" :hint #x609 (0 "DAXTER" "STAGLI LONTANO E VEDRAI CHE CE LA FAREMO!")) -("sksp0303" :hint #x60a (0 "DAXTER" "COLPISCI L'ECO BLU PER ACCELERARE!")) -("sksp0304" :hint #x60b (0 "DAXTER" "EVITA GLI ALBERI, JAK! CI RALLENTANO!")) -("sksp0305" :hint #x60c (0 "DAXTER" "PIÙ ECO BLU PRENDI, PIÙ ACCELERI!")) -("sksp0306" :hint #x60d (0 "DAXTER" "FAI ATTENZIONE AGLI ESPLOSIVI!")) -("sksp0307" :hint #x60e (0 "DAXTER" "STAI LONTANO DAI POZZI!")) -("sksp0308" :hint #x60f (0 "DAXTER" "FORSE DOVREI GUIDARE IO!")) -("sksp0309" :hint #x610 (0 "DAXTER" "C'È UN LURKER!")) -("sksp0310" :hint #x611 (0 "DAXTER" "PRENDILI, JAK!")) -("sksp0311" :hint #x612 (0 "DAXTER" "NE ABBIAMO PASSATO UNO!")) -("sksp0312" :hint #x613 (0 "DAXTER" "AAAH, UNO DEI LURKER CI HA SUPERATO!")) -("sksp0313" :hint #x614 (0 "DAXTER" "SONO MOLTO AVANTI!")) -("sksp0314" :hint #x615 (0 "DAXTER" "YAA-AH! SIAMO PRIMI!")) -("sksp0315" :hint #x616 (0 "DAXTER" "PIÙ VELOCE, JAK, PIÙ VELOCE!")) -("sksp0316" :hint #x617 (0 "DAXTER" "SALTA, SALTAAA!")) -("sksp0317" :hint #x618 (0 "DAXTER" "CONTINUA COSÌ!")) -("sksp0318" :hint #x619 (0 "DAXTER" "YAAAAAAAAHH!")) -("sksp0319" :hint #x61a (0 "DAXTER" "SARÀ UN FINALE COMBATTUTO!")) -("sksp0320" :hint #x61b (0 "DAXTER" "ARRIVERANNO AL DETONATORE PRIMA DI NOI!")) -("sksp0321" :hint #x61c (0 "DAXTER" "CI SIAMO RIUSCITI! ABBIAMO EVITATO CHE DISTRUGGESSERO IL PASSAGGIO!")) - -("asstvb25" :hint #x61d - (10 "KEIRA" "BEL LAVORO! LI AVETE PRECEDUTI AL DETONATORE!") - (184 "KEIRA" "IL LABORATORIO DEL SAGGIO ROSSO È PROPRIO DI FRONTE A VOI.") - (348 "KEIRA" "ANDATE AD ATTIVARE IL TELETRASPORTO, COSÌ POSSIAMO RAGGIUNGERVI.") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (19 "KEIRA" "RAGAZZI, CONTINUATE A RACCOGLIERE LE BATTERIE,") - (89 "KEIRA" "È IL SOLO MODO PER POTER PROSEGUIRE IL VIAGGIO VERSO NORD.") - (192) - ) - -("minershort-introduction-gnawers" - (11 "GORDY" "EHI VOI DUE! PERCHÉ NON CERCATE DI RENDERVI UTILI?") - (100 "GORDY" "DEI LURKER STANNO SCAVANDO NELLA GROTTA OSCURA LÀ SOPRA.") - (200 :offscreen "GORDY" "SEMBRA STIANO CERCANDO I MANUFATTI DEI PRECURSOR...") - (279) - (286 :offscreen "GORDY" "SE LI POSSONO PRENDERE ANCHE TUTTI, PER QUEL CHE M'IMPORTA.") - (363) - (368 :offscreen "WILLARD" "GIÀ, PER QUEL CHE C'IMPORTA.") - (431) - (448 "GORDY" "WILLARD, DÀ DA MANGIARE AL CANARINO.") - (502) - (503 "GORDY" "A ME INTERESSANO SOLTANTO LE GEMME!") - (572 "GORDY" "MA NON RIESCO A PRENDERLE PERCHÉ QUANDO VENGONO ESTRATTE,") - (659 "GORDY" "PURTROPPO FANNO CROLLARE TUTTO!") - (715) - (717 "GORDY" "CERCA DI ELIMINARE I LURKER CHE ROSICCHIANO I TRONCHI DI SUPPORTO,") - (818 "GORDY" "COSÌ MI SARAI DI GRANDE AIUTO.") - (875) - (886 "GORDY" "E MUOVITI!") - ) - -("minershort-introduction-orbs" - (16 "WILLARD" "GAH... EHI, GORDY! ACCIPICCHIA, PENSO CHE ABBIAMO DELLE VISITE!") - (153) - (156 "GORDY" "\"PENSI\", WILLARD? E-EHM, SALVE, STRANIERI, SIETE... DI PASSAGGIO?") - (284) - (284 "GORDY" "AH, BEH-BEH, ANCHE NOI, PROSEGUIAMO, NON C'È NIENTE DI INTERESSANTE QUI...") - (429 "WILLARD" "MA NON AVEVI DETTO CHE QUESTA ERA UNA GEMMA INESTIMABILE, DI GRANDE VALORE E CHE-") - (555 :offscreen "GORDY" "WILLARD!") - (592 "DAXTER" "ABBIAMO BISOGNO DI BATTERIE, NON DI GEMME!") - (695) - (695 "WILLARD" "EHM, NOI ABBIAMO BEN 4 BATTERIE. MMH, LE VUOI?") - (810) - (821 "GORDY" "QUELLO CHE QUESTO CERVELLO DI GALLINA VUOLE DIRE,") - (914 "GORDY" "È CHE POTREMMO ANCHE AVERE DELLE BATTERIE QUI INTORNO,") - (1016 "GORDY" "E POTREMMO ANCHE SEPARARCENE PER LA SOMMA DI, BEH...") - (1120) - (1120 :offscreen "GORDY" "... 90 GLOBI CIASCUNA.") - (1159 "DAXTER" "DOV'È CHE L'HO SENTITA QUESTA?") - (1228 "DAXTER" "EHI, CERVELLONI, COME PENSATE DI FARE PER PORTARE FUORI DI QUI QUELLA GROSSA GEMMA?") - (1390) - (1390 "GORDY" "SENTI, QUESTO BRILLANTONE. BEH, ABBIAMO ALTRI DODICI ANNI DI TEMPO PER PROVARCI!") - (1542) - (1545 "WILLARD" "MMH, UHH... MMH, GORDY, NON CI VORREBBE UN PO' MENO TEMPO SE TI METTESSI A SCAVARE ANCHE TU, EH?") - (1787 "GORDY" "HO LA SCIATICA! HUMPF!") - (1860 "WILLARD" "MM MM") - ) - -("minershort-introduction-switch" - (42 :offscreen "WILLARD" "PSST, EHI, RAGAZZI...") - (121 "WILLARD" "SAPETE, IO E BIRDIE UN GIORNO STAVAMO ESPLORANDO UNA GROTTA MITICA...") - (244) - (247 "WILLARD" "ERA PIENA DI UN BEL METALLO ARANCIONE,") - (323 "WILLARD" "ED ERA N-NASCOSTA MOLTO BENE DIETRO ALCUNI ALBERI SULLE MONTAGNE INNEVATE!") - (503) - (509 "WILLARD" "L'HO DETTO A GORDY, MA LUI... SI È MESSO A GRIDARE COME UN PAZZO PERCHÉ AVEVO SMESSO DI SCAVARE! OOH!") - (700 :offscreen "GORDY" "PERCHÉ DIAVOLO NON STAI SCAVANDO?!") - (744 "WILLARD" "OH SCUSA, GORDY!") - ) - -("minershort-reminder-1-gnawers" - (6 "GORDY" "INSOMMA, VUOI OCCUPARTI DEI LURKER CHE STANNO GIÀ ROSICCHIANDO") - (103 "GORDY" "I TRONCHI DI SUPPORTO DELLA GROTTA OSCURA?!") - (191 "GORDY" "QUEI TRONCHI NON POSSONO RESISTERE PER SEMPRE AI LORO DENTI! UMPF!") - ) - -("minershort-reminder-1-orbs" - (25 "GORDY" "NON SCORDARE IL PATTO. DEVI PORTARCI BEN... 100 GLOBI!") - (126 :offscreen "WILLARD" "MA COME? AVEVI DETTO 90...") - (193 "GORDY" "W-WILLARD!") - (228) - (247 "GORDY" "D'ACCORDO. 90 GLOBI PER UNA BATTERIA.") - (344) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "ALLORA, SIETE RIUSCITI A TROVARE LA GROTTA DIETRO AGLI ALBERI SULLE MONTAGNE INNEVATE?") - (174 "WILLARD" "GIÀ... MI SA DOVRÒ ANDARCI AL PIÙ PRESTO ANCH'IO,") - (276 "WILLARD" "PER CERCARE DI NASCONDERMI DA GORDY,") - (346 "WILLARD" "CHE NON LA SMETTE MAI DI SGRIDARMI!") - (412 :offscreen "GORDY" "WILLAAARD!!") - (454 "WILLARD" "VISTO? MMH!") - ) - -("minershort-reminder-2-orbs" - (30 "WILLARD" "M-MA COME, GORDY?") - (79 "GORDY" "HO DETTO 90 GLOBI PER UNA BATTERIA, W-I-LLARD!!") - ) - -("minershort-resolution-1-orbs" - (26 "GORDY" "AHEM, BENE, RAGAZZI.") - (74 "GORDY" "ECCO COME D'ACCORDO UNA BATTERIA PER I VOSTRI GLOBI. CONTENTI?") - (200) - ) - -("minershort-resolution-2-orbs" - (13 "GORDY" "GRUNT...") - (27 "WILLARD" "OOH! OH, QUESTA VOLTA L'HO TROVATA, SÌ!") - (146) - (150 "GORDY" "UH?") - (159 "WILLARD" "ECCOLA QUA!") - (190) - (202 "WILLARD" "È UNA... È UNAA... UUUH...") - (284 :offscreen "GORDY" "UNA BATTERIA!") - (358 "WILLARD" "SÌÌÌ! È QUELLO CHE VOLEVO DIRE! HEHE!") - (467 "GORDY" "PERFETTO. CI HAI LASCIATO IN MUTANDE!") - (539 "GORDY" "NON RESTA PIÙ NEANCHE... UNA BATTERIA... PER NOIALTRI!") - (647 "GORDY" "UH! SE TI PRENDO! EH EH EH EH!") - ) - -("sage-village3-introduction" - (6 "SAMOS" "WOW! MI SONO SEMPRE DOMANDATO SE AVREI PERSO DEI PEZZI VIAGGIANDO IN QUESTI AFFARI!") - (153) - (187 "SAMOS" "EHI, PER TUTTE LE SACRE YAKOW! IL LABORATORIO DEL SAGGIO ROSSO È PIÙ DISASTRATO DI QUELLO DEL BLU!") - (321) - (321 "KEIRA" "EHI, SEMBRA PROPRIO CHE QUI DENTRO CI SIA STATA UNA ZUFFA!") - (418) - (441 "VOCE MASCHILE" "UH UH EH EH EHE!") - (500) - (516 "VOCE MASCHILE" "NON MI AZZARDEREI A CHIAMARLA \"ZUFFA\".") - (616 "VOCE MASCHILE" "TU CHE NE DICI, MIA CARA SORELLA?") - (680 "VOCE FEMMINILE" "CERTAMENTE NO.") - (725 "VOCE FEMMINILE" "IL SAGGIO ROSSO SI È ARRESO COSÌ FACILMENTE...") - (807) - (815 "VOCE FEMMINILE" "... NON È STATO AFFATTO DIVERTENTE.") - (860) - (891 "SAMOS" "GOL? SEI TU?") - (965) - (971 "SAMOS" "ALLA FINE HAI PERSO LE STAFFE, EH?") - (1065 "SAMOS" "E, MAIA! VI AVEVO AVVISATO CHE L'ECO OSCURO AVREBBE AVUTO UN BRUTTO EFFETTO SU DI VOI!") - (1197 "SAMOS" "MMH, NESSUNO DÀ MAI RETTA AL VECCHIO SAMOS...") - (1281) - (1292 "SAMOS" "COSA NE AVETE FATTO DEL SAGGIO BLU E DEL SAGGIO ROSSO?") - (1382 "GOL" "NON PREOCCUPARTI DEI TUOI PITTORESCHI AMICI.") - (1505 "GOL" "LI ABBIAMO PORTATI TUTTI NELLA NOSTRA CITTADELLA.") - (1616 "GOL" "SONO... OSPITI \"SPECIALI\".") - (1691 "MAIA" "GIÀ. HANNO GENTILMENTE ACCETTATO DI AIUTARCI NEL NOSTRO PICCOLO PROGETTO.") - (1824) - (1829 "GOL" "MH, TI SBAGLIAVI SAMOS!") - (1915 "GOL" "L'ECO OSCURO PUÒ ESSERE CONTROLLATO!") - (2004) - (2012 "GOL" "ABBIAMO APPRESO I SUOI SEGRETI,") - (2094 "GOL" "E ADESSO POSSIAMO PLASMARE IL MONDO A NOSTRO PIACIMENTO!") - (2229) - (2235 "SAMOS" "NON POTETE CONTROLLARE L'ECO OSCURO!") - (2329 "SAMOS" "NEMMENO I PRECURSOR-") - (2359 "MAIA" "FINORA, ABBIAMO DOVUTO ACCONTENTARCI DI QUEL POCO ECO CHE SI TROVAVA VICINO ALLA SUPERFICIE.") - (2515) - (2529 "MAIA" "MA BEN PRESTO, POTREMO ACCEDERE AI VASTI GIACIMENTI D'ECO OSCURO") - (2636 "MAIA" "CHE DA TEMPO SONO CELATI NELLE PROFONDITÀ.") - (2717 "SAMOS" "NON NEI SILOS!") - (2758) - (2766 "GOL" "SÌ, SÌ, PROPRIO I SILOS!") - (2859 "GOL" "SARANNO TUTTI QUANTI APERTI") - (2927 "GOL" "E TUTTO L'ECO OSCURO DEL MONDO SARÀ NOSTRO!") - (3028) - (3041 "SAMOS" "MA È IMPOSSIBILE! SOLO UN ROBOT PRECURSOR-") - (3128 "MAIA" "OH, NON ESSERE COSÌ DELUSO, SAMOS.") - (3223 "MAIA" "ABBIAMO DEI GRANDI PROGETTI SU DI TE.") - (3305) - (3314 :offscreen "MAIA" "MH MH MH MH MH! AH HA HA HA HA HA HA! AH AH AH...") - (3495) - (3496 "DAXTER" "ASPETTA UN ATTIMO!") - (3538) - (3543 "DAXTER" "QUELLO ERA GOL?") - (3586) - (3601 "DAXTER" "LO STESSO GOL CHE DOVEVA FARMI TORNARE NORMALE?") - (3690 "DAXTER" "GOL È IL TIZIO CHE STA CERCANDO DI FARCI FUORI?!") - (3772) - (3788 "DAXTER" "SONO FINITO.") - (3822) - (3839 "SAMOS" "POTREMMO ESSERE FINITI TUTTI.") - (3897) - (3911 "SAMOS" "SE APRONO I SILOS, L'ECO OSCURO COMINCIERÀ A DISTRUGGERE TUTTO CIÒ CON CUI ENTRERÀ IN CONTATTO!") - (4086 "SAMOS" "DOBBIAMO ANDARE ALLA CITTADELLA PER FERMARLI!") - (4189) - (4194 "KEIRA" "LA VIA PIÙ VELOCE È IL CONDOTTO LAVICO IN FONDO A QUESTO CRATERE.") - (4306 "KEIRA" "EH! QUALCHE ALTRA BATTERIA, E LO SCUDO DI CALORE DEL VOSTRO ZOOMER") - (4400 "KEIRA" "POTREBBE SUPERARE INCOLUME QUELL'INFERNO.") - (4460) - (4469 "SAMOS" "BENE, RAGAZZI. SAPETE COSA FARE!") - (4545 "SAMOS" "AVANTI, SACCHI DI PULCI, ANDATE A CERCARE ALTRE BATTERIE!") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (11 "SAMOS" "PER TUTTE LE PALLE DI ECO!") - (60) - (72 "SAMOS" "SEMBRA CHE CI SIA UNA FORTE PRESENZA DI LURKER NELLE GROTTE DEL RAGNO!") - (179) - (186 "DAXTER" "PERFETTO! DAL NOME SEMBRA GIÀ UN BEL POSTO.") - (298) - (304 "DAXTER" "FAMMI INDOVINARE... CI SONO RAGNI NELLE GROTTE DEL RAGNO, GIUSTO?") - (459 "SAMOS" "CERTO CHE È PIENO DI RAGNI NELLE GROTTE DEL RAGNO!") - (562) - (575 "SAMOS" "MA QUESTO È L'ULTIMO DEI PROBLEMI!") - (634) - (646 "SAMOS" "I LURKER SONO ALLA RICERCA DEI CRISTALLI DI ECO OSCURO CONCENTRATO.") - (752) - (768 "SAMOS" "DOVETE DISTRUGGERE I CRISTALLI PRIMA CHE QUEI MOSTRI CI METTANO SOPRA LE ZAMPE!") - (896) - (915 "SAMOS" "MUOVE-TE-VI!") - (950) - ) - -("sage-village3-introduction-rams" - (8 "SAMOS" "SONO FELICE CHE SIATE QUI.") - (78 "SAMOS" "CI SONO PARECCHI LURKER SULLE MONTAGNE.") - (152) - (160 :offscreen "SAMOS" "SEMBRA CHE ABBIANO TROVATO DELL'ECO OSCURO CONGELATO NEI GHIACCIAI") - (274 :offscreen "SAMOS" "E ORA STIANO CERCANDO DI ESTRARLO.") - (378) - (388 "SAMOS" "MENTRE SIETE LASSÙ ALLA RICERCA DI BATTERIE,") - (486 "SAMOS" "CERCATE DI FERMARE I LURKER,") - (550 "SAMOS" "EVITANDO CHE ALTRO ECO OSCURO FINISCA NELLE MANI DI GOL.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (0 "SAMOS" "DOVETE DISTRUGGERE I CRISTALLI DI ECO OSCURO CHE SI TROVANO NELLE GROTTE DEL RAGNO!") - (126) - ) - -("sage-village3-reminder-1-rams" - (3 "SAMOS" "NON POSSIAMO PERMETTERE AI LURKER DI IMPOSSESSARSI DELLE SCATOLE DI ECO OSCURO.") - (134 "SAMOS" "RAGGIUNGETE LE CIME INNEVATE E FERMATELI!") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "MMH, VEDIAMO...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "MH...")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "ODDIO...!")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "AH-HA!")) -("ASSTLP34" :hint #x0 (0 "KEIRA" "HUH... A COSA SI PREPARANO GOL E MAIA...?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "MMH... DOBBIAMO RAGGIUNGERE LA CITTÀ DEI PRECURSOR...")) -("ASSTLP36" :hint #x0 (0 "KEIRA" "HUH. LO SCUDO DI CALORE AVRÀ BISOGNO DI ALTRA ENERGIA PER RESISTERE ALLA LAVA.")) -("ASSTLP37" :hint #x0 (0 "KEIRA" "GAH... DOBBIAMO SALVARE GLI ALTRI SAGGI.")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "UNO DI QUESTI GIORNI SARÒ RICCO...") - (180 "WILLARD" "VOLEVI DIRE: SAREMO RICCHI!") - (360 "GORDY" "SÌ. VABEH...") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "SCAVA, WILLARD! SCAVA!") - (115 "WILLARD" "UH, SÌ, MA TU NON SCAVI?") - (320 "GORDY" "NO! PERCHÉ IO SONO LA MENTE!") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "GYUHH, G-GORDY? POSSO STACCARE?") - (199 "GORDY" "STACCARE?! SE NON LA PIANTI TI STACCO LE ORECCHIE! SCAVA!") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "STO MORENDO DI FAME, GORDY!") - (205 "GORDY" "MANGIATI IL CANARINO!") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "GUH, GORDY? HO BISOGNO DI UN PICCONE PIÙ GROSSO!") - (213 "GORDY" "NO. HAI BISOGNO DI UN CERVELLO PIÙ GROSSO!") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "HI-HAHAHAHA! SARÒ RICCO!")) -("MSH-AM02" :hint #x0 (0 "GORDY" "SCAVA, SCAVA, SCAAAVA!")) -("MSH-AM03" :hint #x0 (0 "GORDY" "WILLARD! LAVORA, NON PERDERE TEMPO!")) -("MSH-AM04" :hint #x0 (0 "GORDY" "UHUHUH! SARÒ L'UOMO PIÙ RICCO DEL MONDO, HAHA!")) -("MSH-AM05" :hint #x0 (0 "GORDY" "OH HO HO! NON SI È MAI VISTA UNA GEMMA COSÌ GRANDE, HAHA!")) -("MSH-AM06" :hint #x0 (0 "GORDY" "CARA MINIERA, ADDIO!")) -("MSH-AM07" :hint #x0 (0 "GORDY" "LE MIE GEMME! TUTTE MIE!")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "HO-HA HA HA! NON VEDO L'ORA DI CAMBIARLA CON DEI BEI BIGLIETTONI! EH EH!")) -("MSH-AM10" :hint #x0 (0 "GORDY" "SEMBRA UNA RARA CRISTITE FLORCONIA! HOHOHO!")) -("MSH-AM11" :hint #x0 (0 "GORDY" "EHI, SONO TUTTE MIE. SONO MIE, HO DETTO!")) -("MSH-AM12" :hint #x0 (0 "GORDY" "DIMMI, WILLARD. COSA VUOI FARE CON IL TUO QUARTO DI METÀ?")) -("MSH-AM1A" :hint #x0 (0 "GORDY" "SARÒ RICCO!")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "SCAVA. SCAVA! SCAVA!")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "LAVORA, NON PERDERE TEMPO!")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "GUH, SIAMO QUASI PRONTI.")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "GUHH, POSSIAMO FARE UNA PAUSA?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "OHH, HO UNA FAME...!")) - -("MTA-AM04" :hint #x0 - (0 "WILLARD" "DUHH... MI SA CHE LA GABBIETTA DI BIRDIE") - (198 "WILLARD" "HA BISOGNO DI UNA PULITINA...") - ) - -("MTA-AM05" :hint #x0 (0 "WILLARD" "MA È UNA GEMMA PAUROSA!")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "DUHH, HO SEMPRE DESIDERATO FARE IL BOSCAIOLO!")) - -("MTA-AM07" :hint #x0 - (0 "WILLARD" "DUHH, GORDY HA PROMESSO DI DARMI LA METÀ") - (231 "WILLARD" "DI TUTTO CIÒ CHE RIESCO A PORTARE!") - ) - -("MTA-AM08" :hint #x0 (0 "WILLARD" "EH HEH- EH HEH... BIRDIE È IL MIO MIGLIORE AMICO!")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "VOGLIO BENE AL MIO BIRDIE.")) -("SAGELP31" :hint #x0 (5 "SAMOS" "QUESTO NON VA BENE.")) -("SAGELP32" :hint #x0 (0 "SAMOS" "CRISTALLI DI ECO OSCURO?")) -("SAGELP33" :hint #x0 (5 "SAMOS" "MAIA E GOL NON CAPISCONO PIÙ NIENTE...")) -("SAGELP34" :hint #x0 (0 "SAMOS" "MH. I POTERI DELL'ECO OSCURO NON POSSONO ESSERE CONTROLLATI.")) -("SAGELP35" :hint #x0 (13 "SAMOS" "ECO OSCURO NEI GHIACCIAI?!")) -("SAGELP36" :hint #x0 (0 "SAMOS" "AH! CI SONO TRUPPE LURKER A SPASSO SULLE MONTAGNE!")) -("SAGELP37" :hint #x0 (9 "SAMOS" "COS'HA IN MENTE GOL...?")) -("SAGELP38" :hint #x0 (12 "SAMOS" "POTREBBE DAVVERO AVERE...?")) - -("asstva73" :hint #x427 - (0 "KEIRA" "EHI, RAGAZZI! SECONDO I MIEI CALCOLI SERVONO 72 BATTERIE PER ATTIVARE LO SCUDO DI CALORE") - (303 "KEIRA" "E PASSARE LA ZONA LAVICA SULLA STRADA VERSO LA CITTADELLA DI GOL E MAIA.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "NON AVETE BATTERIE A SUFFICIENZA PER SUPERARE LA ZONA LAVICA!") - (204 "KEIRA" "NON POTETE RAGGIUNGERE LA CITTADELLA DI GOL E MAIA") - (357 "KEIRA" "PRIMA DI AVER TROVATO 72 BATTERIE!") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "QUESTA GONDOLA SEMBRA FUNZIONARE MALE.") - (149 "KEIRA" "CERCHERÒ DI RIMETTERLA A POSTO E DI FARLA RIPARTIRE.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "HO RIATTIVATO LA GONDOLA! ORA PUÒ PORTARVI FINO ALLA MONTAGNA NEVOSA.") - (229 "KEIRA" "USATELA OGNI VOLTA CHE NE AVETE BISOGNO!") - ) - -("asstv100" :hint #x44f - (0 "KEIRA" "OK, ABBIAMO BATTERIE SUFFICIENTI PER AUMENTARE LA POTENZA DELLO SCUDO DI CALORE.") - (269 "KEIRA" "SCENDETE USANDO IL CARRELLO MINERARIO VICINO AL GEYSER LAVICO.") - (460 "KEIRA" "CI VEDIAMO ALL'ENTRATA DEL CONDOTTO, COSÌ POTRÒ MODIFICARE LO ZOOMER.") - (655 "KEIRA" "AVANTI, MUOVETEVI!") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HA-HA, OK! ABBIAMO BATTERIE SUFFICIENTI A POTENZIARE LO SCUDO DI CALORE.") - (297 "KEIRA" "CI VEDIAMO AL CRATERE VULCANICO.") - (411 "KEIRA" "VI ASPETTO AL PASSAGGIO, GIÙ, OLTRE IL GEYSER LAVICO.") - (610 "KEIRA" "PORTATE LE BATTERIE!") - (780) - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "MUOVETEVI CON QUELLE BATTERIE!") - (117 "KEIRA" "VI STO ASPETTANDO AL CARRELLO MINERARIO, VICINO AL GEYSER LAVICO.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "NON DIMENTICATE DI ATTIVARE IL TELETRASPORTO PER FARCI ARRIVARE FIN LÌ.") - (200 "KEIRA" "ENTRATE NEL LABORATORIO DEL SAGGIO ROSSO ") - (307 "KEIRA" "AL CENTRO DEL CRATERE VULCANICO.") - (421 "KEIRA" "NON POTREMO RAGGIUNGERVI FINCHÉ NON SARÀ DI NUOVO OPERATIVO.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "EHI! SIAMO ANCORA AL VILLAGGIO ROCCIOSO!") - (135 "KEIRA" "ATTIVATE IL TELETRASPORTO.") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "VORREMMO RAGGIUNGERVI AL CRATERE VULCANICO.") - (120 "KEIRA" "ENTRATE NEL LABORATORIO DEL SAGGIO ROSSO E ATTIVATE IL TELETRASPORTO!") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "COME POSSIAMO ENTRARE IN QUESTO FORTE...?")) -("sksp0346" :hint #x444 (0 "DAXTER" "FORSE L'ECO ROSSO PUÒ SCONFIGGERE QUEL RAGAZZO!")) -("sksp0347" :hint #x445 (0 "DAXTER" "DOBBIAMO FARE UN SALTO CON GIRAVOLTA!")) -("sksp0348" :hint #x446 (0 "DAXTER" "DOBBIAMO TROVARE UN MODO PER APRIRE QUEL CONDOTTO!")) -("sksp0349" :hint #x447 (0 "DAXTER" "QUELLO LAGGÙ SEMBRA UN INTERRUTTORE DELL'ECO!")) -("sksp0350" :hint #x448 (0 "DAXTER" "PRENDILO QUANDO I PUNGIGLIONI SONO DENTRO!")) -("sksp0351" :hint #x449 (0 "DAXTER" "PREMI IL PULSANTE!")) -("sksp0352" :hint #x44a (0 "DAXTER" "PRESTO! PRIMA CHE TORNINO GIÙ!")) -("sksp0359" :hint #x44b (0 "DAXTER" "DEVI USARE L'ECO ROSSO!")) -("sksp0360" :hint #x44c (0 "DAXTER" "SÌ! ABBIAMO ATTIVATO I CONDOTTI DI VENTILAZIONE DELL'ECO GIALLO!")) -("sksp0362" :hint #x44d (0 "DAXTER" "AAH! SEMBRA UNA BATTERIA CONGELATA!")) -("sksp0363" :hint #x44e (0 "DAXTER" "SOLO UN FLUT FLUT PUÒ SALTARE COSÌ DISTANTE!")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "PENSO CHE QUELLO FOSSE L'ULTIMO CRISTALLO DI ECO OSCURO!")) -("sksp0328" :hint #x433 (0 "DAXTER" "FORSE PUOI SPARARE MEGLIO SE MIRI USANDO IL TUO VISORE!")) -("sksp0329" :hint #x434 (0 "DAXTER" "OH, NO! ALTRO ECO OSCURO!")) -("sksp0330" :hint #x435 (0 "DAXTER" "NON ABBIAMO RACCOLTO TUTTI QUEI CRISTALLI DI ECO OSCURO!")) -("sksp0331" :hint #x436 (0 "DAXTER" "SPARA AI LURKER CHE STANNO MANGIANDO I PALI!")) -("sksp0332" :hint #x437 (0 "DAXTER" "NON LASCIARE CHE SI SPENGANO LE LUCI!")) -("sksp0333" :hint #x438 (0 "DAXTER" "COLPISCI I CRISTALLI PER FARE LUCE.")) -("sksp0334" :hint #x439 (0 "DAXTER" "SCAPPA! QUEL CRISTALLO STA PER ESPLODERE!")) -("sksp0335" :hint #x43a (0 "DAXTER" "EWH, HANNO TROVATO IL ROBOT PRECURSOR!")) -("sksp0336" :hint #x43b (0 "DAXTER" "ROMPI LE UOVA, PRIMA CHE SI SCHIUDANO!")) -("sksp0337" :hint #x43c (0 "DAXTER" "QUI DENTRO È SPAVENTOSO...")) -("sksp0338" :hint #x43d (0 "DAXTER" "SEMBRA CHE LE TELE DI RAGNO SI ROMPANO DOPO DUE RIMBALZI.")) -("sksp0339" :hint #x43e (0 "DAXTER" "GRR! ODIO. I RAGNI...!")) -("sksp0340" :hint #x43f (0 "DAXTER" "ARRIVANO DEI PICCOLI RAGNI!")) -("sksp0341" :hint #x440 (0 "DAXTER" "ORA DOVREMMO ESSERE NELLA TANA DI UN RAGNO!")) -("sksp0342" :hint #x441 (0 "DAXTER" "GUARDA! ALTRI RAGNI!")) -("sksp0343" :hint #x442 (0 "DAXTER" "USCIAMO DI QUIIIII!")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (70 "DAXTER" "EHI! ALLORA, DOV'È IL VECCHIO BASSO E RUGOSO?") - (150) - (155 "KEIRA" "È TERRIBILE... PAPÀ NON SI TROVA PIÙ!") - (235 "KEIRA" "CREDO CHE GOL E MAIA... L'ABBIANO RAPITO!") - (328 "DAXTER" "RILASSATI DOLCEZZA! LA SITUAZIONE È DEL TUTTO SOTTO CONTROLLO.") - (456 "KEIRA" "\"SOTTO CONTROLLO\"?!") - (512 "KEIRA" "LE TRUPPE DEI LURKER CONTINUANO AD AUMENTARE,") - (600 "KEIRA" "I SAGGI SONO STATI RAPITI,") - (657 "KEIRA" "GOL E MAIA HANNO ABBASTANZA ECO OSCURO PER COMPLETARE IL LORO PIANO,") - (760 "KEIRA" "E PER FERMARLI, VOLETE COMBATTERE FINO AD ARRIVARE ALLA LORO CITTADELLA?!") - (870) - (898 "DAXTER" "BEH... SÌ! ECCO, PIÙ O MENO...") - (1022 "KEIRA" "DOVETE LIBERARE MIO PADRE PRIMA CHE SIA TROPPO TARDI!") - (1120 "KEIRA" "E, JAK... STA' ATTENTO.") - (1200) - (1210 "DAXTER" "CERTO! - STAREMO -, ATTENTI!") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "HA-HA! BENISSIMO!") - (52 "KEIRA" "CON QUESTE BATTERIE EXTRA, DOVREI ESSERE IN GRADO DI FORNIRE ALLO SCUDO DI CALORE") - (169 "KEIRA" "ABBASTANZA ENERGIA PER RESISTERE ALLA LAVA!") - (240 "KEIRA" "MA LO SCUDO HA ANCORA DEI LIMITI.") - (302 "KEIRA" "NON PUÒ RESISTERE A TEMPERATURE SUPERIORI AGLI 800 GRADI,") - (408 "KEIRA" "QUINDI TENETE D'OCCHIO LA BARRA.") - (472 "KEIRA" "NON VOGLIO PENSARE A COSA SUCCEDEREBBE ALLO ZOOMER SE LO SCUDO DOVESSE CEDERE...") - (590) - (605 "DAXTER" "MMH, GIÀ, LO SCUDO...") - (680) - (683 "DAXTER" "... COSA?! LO ZOOMER??") - (744 "DAXTER" "EHI, E A NOI CHI CI PENSA?!") - (791) - (798 "DAXTER" "NON POTREMMO CERCARE UNA VIA PIÙ SICURA PER RAGGIUNGERE LA CITTADELLA?!") - (890) - (892 "KEIRA" "ASCOLTATE, HO SPARSO ALTRI PALLONI REFRIGERANTI NEL CONDOTTO.") - (990 "KEIRA" "POTRETE USARLI PER MANTENERE BASSA LA TEMPERATURA.") - (1071 "KEIRA" "E NON DIMENTICATE DI ATTIVARE IL TELETRASPORTO AL LABORATORIO DEL SAGGIO GIALLO.") - (1196 "KEIRA" "CONTIAMO SU DI VOI!") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "DOBBIAMO MUOVERCI, O SIAMO FRITTI!")) -("sksp0365" :hint #x703 (0 "DAXTER" "SCEGLI UN PERCORSO QUALUNQUE!")) -("sksp0366" :hint #x704 (0 "DAXTER" "EVITA LE MINE, JAK, O SPARAGLI!")) -("sksp0367" :hint #x705 (0 "DAXTER" "TROVA UN MODO PER ATTRAVERSARE QUEI BARILI DI ECO OSCURO!")) -("sksp0368" :hint #x706 (0 "DAXTER" "CONTINUA A COLPIRE QUEI PALLONI!")) -("sksp0369" :hint #x707 (0 "DAXTER" "CI STIAMO SCALDANDO TROPPO!")) -("sksp0370" :hint #x708 (0 "DAXTER" "ESPLODERÀÀÀ!")) -("sksp0371" :hint #x709 (0 "DAXTER" "CERCA DELL'ECO BLU, JAK!")) -("sksp0372" :hint #x70a (0 "DAXTER" "SPARAAA!")) -("sksp0373" :hint #x70b (0 "DAXTER" "YAA-HA! CHE VIAGGIO!")) -("sksp0374" :hint #x70c (0 "DAXTER" "SÌÌ! CURVA E SFRIGOLA, BABY!")) -("sksp0375" :hint #x70d (0 "DAXTER" "SPARA ALLE SFERE ENERGETICHE PER APRIRE LA PORTA!")) -("sksp0376" :hint #x70e (0 "DAXTER" "SPARA ALLE SFERE ENERGETICHE PRIMA DI ANDARE A FUOCO!")) -("sksp0379" :hint #x711 (0 "DAXTER" "ZOOMIN'!")) -("sksp0380" :hint #x712 (0 "DAXTER" "CI SIAMO RIUSCITI!")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (63 "SAGGIO BLU" "GRAN BEL LAVORO, RAGAZZI! SAMOS AVEVA RAGIONE SU DI VOI!") - (169) - (172 "SAGGIO BLU" "GIÀ, BELL'AMMASSO DI METALLO PRECURSOR!") - (257 "SAGGIO BLU" "QUELLA PERICOLOSA CREATURA MECCANICA NON DOVRÀ MAI RIUSCIRE A SPRIGIONARE IL SUO TERRIBILE POTERE!") - (420) - (421 "SAGGIO BLU" "QUINDI, PROVERÒ A METTERE IN FUNZIONE LO SCUDO, CREANDO UN CONDOTTO D'ENERGIA TRA ME") - (572 "SAGGIO BLU" "E L'ENORME VARCO CHE SI TROVA AL DI SOTTO DI ESSA!") - (666) - (678 "DAXTER" "AH... BRAVO. CE L'HAI FATTA. ALLORA NOI... ANDIAMO SUBITO A CERCARE AIUTO.") - (883) - (899 :offscreen "DAXTER" "MOLTO STRANO...") - (980) - ) - -("green-sagecage-introduction" - (134 "SAMOS" "ERA ORA CHE VI FACESTE VIVI!") - (216 "DAXTER" "ANCHE NOI SIAMO FELICI DI VEDERTI.") - (286 "DAXTER" "TI HANNO MESSO A PULIRE PER TERRA ORA, EH?") - (352 "SAMOS" "NON È IL MOMENTO DI SCHERZARE, DAXTER.") - (431 "SAMOS" "GOL E MAIA CI HANNO RAPITO PER ASSORBIRE LE NOSTRE ENERGIE") - (531 "SAMOS" "E DARE POTENZA ALLA LORO TERRIBILE MACCHINA.") - (603) - (610 :offscreen "SAMOS" "SEMBRA CHE ABBIANO MONTATO CIÒ CHE RIMANEVA DI UN ROBOT PRECURSOR") - (721 :offscreen "SAMOS" "CON ALCUNI MANUFATTI TROVATI SCAVANDO NELLA ZONA.") - (808) - (812 :offscreen "SAMOS" "E CHE QUINDI ABBIANO AGGIUNTO ALTRE DIAVOLERIE CREATE DA LORO,") - (921 :offscreen "SAMOS" "DANDO VITA AD UN MOSTRO IN GRADO DI APRIRE I SILOS DELL'ECO OSCURO.") - (1070 "SAMOS" "SE RIESCI A LIBERARCI TUTTI E QUATTRO, POTREMO UNIRE I NOSTRI POTERI") - (1189 "SAMOS" "E DISTRUGGERE LO SCUDO ENERGETICO INTORNO AL ROBOT, PRIMA CHE POSSANO DISTRUGGERE IL MONDO.") - ) - -("green-sagecage-outro-preboss" - (77 "GOL" "SEI ARRIVATO TROPPO TARDI, SAMOS.") - (170 "GOL" "QUANDO AVRÒ UNA QUANTITÀ ILLIMITATA DI ECO OSCURO,") - (267 "GOL" "ANCHE LA CHIAVE DELLA CREAZIONE SARÀ MIA!") - (342 "SAMOS" "MA QUESTA È UNA FOLLIA!") - (396 "SAMOS" "LIBERARE COSÌ TANTO ECO OSCURO DISTRUGGERÀ TUTTO CIÒ CHE CONOSCIAMO!") - (500) - (520 "SAMOS" "CONSIDERA BENE QUELLO CHE È SUCCESSO A TE!") - (578) - (586 "MAIA" "CI HA DATO UNA BELLEZZA SUPERIORE A TUTTO CIÒ CHE VOI POTETE CAPIRE.") - (693) - (708 "DAXTER" "\"BELLEZZA\"? VI SIETE GUARDATI BENE ALLO SPECCHIO DI RECENTE?!") - (825) - (837 "MAIA" "ASPETTA FINO A QUANDO NON AVREMO APERTO TUTTI I SILOS, PICCOLETTO!") - (946 "MAIA" "TU CHE NE DICI, TI VA BENE BASSO E PELOSO?") - (1028) - (1047 "GOL" "E PENSARE, CHE VOI DUE SIETE ARRIVATI FIN QUI PER CERCARE IL MIO AIUTO.") - (1195 "GOL" "PAZZI! DIVERTITEVI CON UN POSTO IN PRIMA FILA") - (1304 "GOL" "NELLA NUOVA CREAZIONE DEL MONDO!") - (1391) - (1613 "SAMOS" "JAK! SALI SULL'ASCENSORE, PRESTO! E FERMA SUBITO QUEL ROBOT!") - ) - -("green-sagecage-resolution" - (46 "SAMOS" "BEL LAVORO, RAGAZZI! ORA SIETE DEI VERI EROI.") - (173 "SAMOS" "UNIRÒ I POTERI DELL'ECO VERDE CON QUELLI DEGLI ALTRI TRE SAGGI") - (284 "SAMOS" "PER APRIRE UN VARCO NELLA BARRIERA ENERGETICA INTORNO AL ROBOT PRECURSOR.") - (410) - (415 "DAXTER" "SÌ, SÌ, MI SEMBRA UN BUON INIZIO.") - (473 "DAXTER" "MA DOPO CHE AVRETE APERTO IL VARCO, CHE COSA PENSATE DI FARE AL ROBOT?") - (588 "SAMOS" "NIENTE, DAXTER. NOI DOVREMO GIÀ TENERE LO SCUDO APERTO.") - (720 "SAMOS" "ECCO... VI DOVRETE OCCUPARE VOI DI DISTRUGGERE IL ROBOT.") - (838 "DAXTER" "OH, OTTIMO. DEVO AIUTARE IL TIPO CHE MI HA TRASFORMATO IN UNA PALLA DI PELO") - (995 "DAXTER" "A DISTRUGGERE L'UNICA PERSONA IN GRADO DI FARMI TORNARE NORMALE!") - (1108) - (1121 "DAXTER" "GULP...") - (1141) - (1172 "SAMOS" "PER PRIMA COSA SALVATE IL MONDO,") - (1244 "SAMOS" "POI CERCHEREMO DI CONVINCERE GOL AD AIUTARE DAXTER.") - ) - -("redsage-resolution" - (52 "SAGGIO ROSSO" "HEHEHEH, ALLA FINE SIETE ARRIVATI A SALVARMI.") - (190 "SAGGIO ROSSO" "SAPETE DA QUANTO TEMPO SONO QUI? PERCHÉ CI AVETE IMPIEGATO TANTO? BENE... HEHEHEH,") - (378 "SAGGIO ROSSO" "DUNQUE, COME VI CHIAMATE?") - (429) - (442 "DAXTER" "IO SONO DAXTER. LUI È JAK. È CON ME.") - (548 :offscreen "SAGGIO ROSSO" "BEL LAVORO, DAXTER. SEI UN VERO EROE!") - (677) - (711 "SAGGIO ROSSO" "ECCO, DEVI EVITARE CHE GOL LANCI IL SUO ROBOT.") - (845 "SAGGIO ROSSO" "IO UTILIZZERÒ, VEDIAMO UN PO', IL MIO POTERE DELL'ECO PER APRIRE LO SCUDO.") - ) - -("yellowsage-resolution" - (58 "SAGGIO GIALLO" "CHI POTEVA PENSARE CHE SAREI VISSUTO FINO A VEDERE") - (153 "SAGGIO GIALLO" "IL GIORNO IN CUI SAREI STATO SALVATO DA UN RAGAZZO E DAL SUO TOPO MUSCHIATO!?") - (280) - (318 "SAGGIO GIALLO" "... MH, GLIELA FARÒ PAGARE A CARA A GOL E MAIA PER QUESTO MOMENTO A DIR POCO IMBARAZZANTE.") - (483) - (494 "SAGGIO GIALLO" "POI DECIDERÒ SE MANGIARE DEL BUON TOPO MUSCHIATO IN UMIDO...") - (602) - (619 :offscreen "SAGGIO GIALLO" "EH!") - (630) - ) - -("BLU-AM01" :hint #x0 (0 "SAGGIO BLU" "UN PO' DI AIUTO SAREBBE UUUUTILE!")) -("BLU-AM02" :hint #x0 (0 "SAGGIO BLU" "AH, QUESTO È UN BEL GUAIO.")) -("BLU-AM03" :hint #x0 (0 "SAGGIO BLU" "MMH, CI TROVIAMO DI FRONTE A UN BELL'ENIGMA.")) -("RED-AM01" :hint #x0 (0 "SAGGIO ROSSO" "C'È NESSUNO?")) -("RED-AM02" :hint #x0 (0 "SAGGIO ROSSO" "BENE...")) -("RED-AM03" :hint #x0 (0 "SAGGIO ROSSO" "COSA VI HA TRATTENUTO?")) -("YEL-AM01" :hint #x0 (0 "SAGGIO GIALLO" "IL TEMPO STA PER SCADERE!")) -("YEL-AM02" :hint #x0 (0 "SAGGIO GIALLO" "EHI! PORTATEMI FUORI DI QUI!")) -("YEL-AM03" :hint #x0 (0 "SAGGIO GIALLO" "QUANDO SARÒ FUORI DI QUI, INIZIERÀ UNA SPARATORIA!")) -("sksp0381" :hint #x806 (0 "DAXTER" "DISTRUGGI IL GENERATORE PER LIBERARE IL SAGGIO!")) -("sksp0382" :hint #x807 (0 "DAXTER" "RIMANI ATTACCATO AL BORDO!")) -("sksp0383" :hint #x808 (0 "DAXTER" "ABBIAMO COMPAGNIA, JAK. UN BEL PO' DI LURKEEERS!")) -("sksp0384" :hint #x809 (0 "DAXTER" "DISTRUGGI QUEI GENERATORI!")) -("sksp0385" :hint #x80a (0 "DAXTER" "PREMI IL PULSANTE!")) -("sksp0386" :hint #x80b (0 "DAXTER" "QUEL ROBOT NON MI SPAVENTA!")) -("sksp0387" :hint #x80c (0 "DAXTER" "SALIAMO SU QUELLE PIATTAFORME!")) -("sksp0388" :hint #x80d (0 "DAXTER" "NON MANCARE IL PROSSIMO LANCIATOREEE!")) -("sksp0389" :hint #x80e (0 "DAXTER" "ATTENTO!")) -("sksp0390" :hint #x80f (0 "DAXTER" "DOBBIAMO LIBERARE TUTTI I SAGGI!")) -("sksp0391" :hint #x810 (0 "DAXTER" "PENSI CHE GOL MI RITRASFORMERÀ LO STESSO?")) -("sksp0392" :hint #x811 (0 "DAXTER" "ALLORA QUESTA È LA CITTADELLA DI GOL E MAIA. CARINA E GRADEVOLE.")) -("sksp0393" :hint #x812 (0 "DAXTER" "ATTERRA SUL LANCIATORE SUCCESSIVO!")) -("sksp0378" :hint #x813 (0 "DAXTER" "LA PORTA È APERTA, ANDIAMO!")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (167 :offscreen "GOL" "L'ECO LUMINOSO! MA ALLORA ESISTE!") - (275 :offscreen "MAIA" "NON DEVONO RIUSCIRE A PRENDERLO!") - ) - -("green-sagecage-daxter-sacrifice" - (6 "DAXTER" "L'ECO LUMINOSO!") - (47 "DAXTER" "POTREBBE SERVIRE A FARMI TORNARE NORMALE!") - (114) - (135 "DAXTER" "OHHH... OPPURE POTREBBE FERMARE IL ROBOT.") - (235) - (247 "DAXTER" "MMH... RESTARE PELOSO, O SALVARE IL MONDO...") - (368 "DAXTER" "CHE SCELTA...") - (404) - (439 "DAXTER" "OOKAY, VA BENE, SALVEREMO IL MONDO.") - (522 "DAXTER" "MA VEDIAMO DI FARE IN FRETTA, PRIMA CHE IO CAMBI IDEA!") - (634) - (681 "DAXTER" "GRRR!") - ) - -("green-sagecage-outro-beat-boss-a" - (168 :offscreen "MAIA" "FA' QUALCOSA!") - (216) - (595 :offscreen "GOL" "NOOOOO!") - ) - -("green-sagecage-outro-beat-boss-b" - (534 "SAMOS" "BEH, FORSE SONO STATO UN PO' TROPPO DURO CON VOI, RAGAZZI MIEI.") - (654 "SAMOS" "VOI AVETE TUTTO QUELLO CHE SERVE PER DIVENTARE EROI!") - (745) - (758 "KEIRA" "MA ORA, DAXTER, NON TI POSSIAMO TRASFORMARE.") - (845) - (853 "DAXTER" "OH, NON PREOCCUPARTI PER ME BABY.") - (923 "DAXTER" "SAI COME SI DICE DI SOLITO? IL VINO BUONO STA IN UNA BOTTE... PICCOLINA.") - (1096) - (1114 "SAGGIO BLU" "JAK, HAI DAVVERO UN INCREDIBILE TALENTO NEL CANALIZZARE L'ECO!") - (1225) - (1232 "SAGGIO BLU" "SAMOS, DOPOTUTTO POTRESTI ANCHE AVER RAGIONE SU DI LUI!") - (1321) - (1330 "SAGGIO ROSSO" "SAI KEIRA, SENZA IL TUO AIUTO E SENZA LA TUA INGENUITÀ,") - (1456 "SAGGIO ROSSO" "TUTTO CIÒ NON SAREBBE STATO POSSIBILE.") - (1523 "SAGGIO ROSSO" "HAHAHAH. CHISSÀ, FORSE ABBIAMO TROVATO UN NUOVO SAGGIO") - (1633 "SAGGIO ROSSO" "ORA CHE GOL E MAIA NON CI SONO PIÙ...") - (1728) - (1742 "SAMOS" "GIÀ, GOL E MAIA... SÌ, L'ECO OSCURO PROBABILMENTE LI AVRÀ DISTRUTTI.") - (1946 :offscreen "SAMOS" "GIÀ, PROBABILMENTE...") - (1999) - (2006 "DAXTER" "AH, CHE IMPORTA? CHE RITORNINO, POSSIAMO SCONFIGGERLI UN'ALTRA VOLTA, VERO JAK?") - (2168) - (2182 "DAXTER" "NON HO DETTO... BENE, JAK?") - (2256) - (2314 "DAXTER" "WOW! DATTI UNA CALMATA, RAGAZZO!") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (155 "SAMOS" "PER TUTTE LE YAKOW! CHE COSA PUÒ ESSERE QUELLO?") - (250 "KEIRA" "WOW! SI TRATTA DI UN ANTICO PORTONE PRECURSOR!") - (355 :offscreen "KEIRA" "E SEMBRA CHE PER APRIRLO DOVREMO RIEMPIRE TUTTE E 100 LE FESSURE CON DELLE BATTERIE.") - (493 "DAXTER" "UHM, MA NOI SIAMO DEGLI EROI, RICORDI?") - (570 "DAXTER" "ECCOCI QUA, CON LE 100 BATTERIE NECESSARIE.") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (155 "SAMOS" "PER TUTTE LE YAKOW! CHE COSA PUÒ ESSERE QUELLO?") - (250 "KEIRA" "WOW! SI TRATTA DI UN ANTICO PORTONE PRECURSOR!") - (355 :offscreen "KEIRA" "E SEMBRA CHE PER APRIRLO DOVREMO RIEMPIRE TUTTE E 100 LE FESSURE CON DELLE BATTERIE.") - (493 "DAXTER" "OH RAGAZZI... ECCOCI TORNARE ALLA CARICA!") - (595 "DAXTER" "MH-MH!") - (639 "DAXTER" "MPH!") - ) - -("green-sagecage-outro-big-finish" - (328 "DAXTER" "WOW! MA CHE COS'È, PER VOI?") - (425) - (435 "KEIRA" "A ME SEMBRA COSÌ BELLO...") - (516) - (519 "SAMOS" "PER TUTTI I PRECURSOR...") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "MICA TI VORRAI ARRENDERE, VERO?")) -("GOL-AM02" :hint #x0 (27 "GOL" "PRESTO, L'ECO OSCURO, SARÀ NOSTRO!")) -("GOL-AM03" :hint #x0 (0 "GOL" "FINISCILI!")) -("GOL-AM04" :hint #x0 (0 "GOL" "FUOCO!")) -("GOL-AM05" :hint #x0 (0 "GOL" "DISTRUGGILI!")) -("GOL-AM06" :hint #x0 (0 "GOL" "COSA? ANCORA LORO!")) -("GOL-AM07" :hint #x0 (0 "GOL" "È TROPPO TARDI!")) -("GOL-AM08" :hint #x0 (0 "GOL" "SEI MIO!")) -("GOL-AM09" :hint #x0 (0 "GOL" "ORA SEI MIO!")) -("GOL-AM10" :hint #x0 (0 "GOL" "AH HA HA HA HA!")) -("GOL-AM11" :hint #x0 (0 "GOL" "NESSUNA PIETÀ!")) -("GOL-AM12" :hint #x0 (0 "GOL" "PRENDI QUESTO!")) -("GOL-AM13" :hint #x0 (0 "GOL" "BEL TENTATIVO!")) -("GOL-AM14" :hint #x0 (0 "GOL" "STAI. FERMO!")) -("GOL-AM15" :hint #x0 (0 "GOL" "SEI PATETICO!")) -("GOL-AM16" :hint #x0 (0 "GOL" "NOOO!")) -("GOL-AM17" :hint #x0 (0 "GOL" "AHHH!")) -("GOL-AM18" :hint #x0 (0 "GOL" "APRIREMO IL SILOS, E VI FAREMO A PEZZI!")) -("GOL-AM19" :hint #x0 (0 "GOL" "L'ECO LUMINOSO! MA ALLORA ESISTE!")) -("GOL-AM20" :hint #x0 (0 "GOL" "NON RIUSCIREMO A PRENDERLO!")) -("MAI-AM01" :hint #x0 (0 "MAIA" "FINISCILI, UNA VOLTA PER TUTTE!")) -("MAI-AM02" :hint #x0 (0 "MAIA" "ELIMINALI!")) -("MAI-AM03" :hint #x0 (0 "MAIA" "HA HA HA!")) -("MAI-AM04" :hint #x0 (0 "MAIA" "L'ECO NON VI PROTEGGERÀ ORA!")) -("MAI-AM05" :hint #x0 (0 "MAIA" "FA' QUALCOSA!")) -("MAI-AM06" :hint #x0 (0 "MAIA" "AGH!")) -("MAI-AM07" :hint #x0 (0 "MAIA" "NOOOOO!")) -("MAI-AM08" :hint #x0 (0 "MAIA" "APRIREMO I SILOS E VI DISTRUGGEREMO ENTRAMBI!")) -("MAI-AM09" :hint #x0 (0 "MAIA" "NON DEVONO RIUSCIRE A PRENDERLO!")) -("sksp0394" :hint #x0 (0 "DAXTER" "RECUPERA L'ECO GIALLO!")) -("sksp0395" :hint #x0 (0 "DAXTER" "SPARA AL ROBOT, JAK!")) -("sksp0396" :hint #x0 (0 "DAXTER" "SPARAGLI AL BRACCIO!")) -("sksp0397" :hint #x0 (0 "DAXTER" "SPARA ALLA SUA PISTOLA!")) -("sksp0398" :hint #x0 (0 "DAXTER" "SPARAGLI IN TESTA!")) -("sksp0399" :hint #x0 (0 "DAXTER" "ATTENTO ALL'ESPLOSIONE!")) -("sksp0400" :hint #x0 (0 "DAXTER" "SI STA CARICANDO!")) -("sksp0401" :hint #x0 (0 "DAXTER" "PRENDI L'ECO BLU!")) -("sksp0402" :hint #x0 (0 "DAXTER" "PRENDI L'ECO ROSSO!")) -("sksp0403" :hint #x0 (0 "DAXTER" "HO UNA BRUTTA SENSAZIONE!")) -("sksp0404" :hint #x0 (0 "DAXTER" "USA IL LANCIATORE, PRESTO!")) -("sksp0405" :hint #x0 (0 "DAXTER" "HAI FATTO IMPAZZIRE L'ANIMALE!")) -("sksp0406" :hint #x0 (0 "DAXTER" "NON POSSIAMO TOCCARE QUEI RAGAZZI!")) -("sksp0407" :hint #x0 (0 "DAXTER" "USA L'ECO GIALLO!")) -("sksp0408" :hint #x0 (0 "DAXTER" "SPARA A QUEI RAGAZZI!")) -("sksp0409" :hint #x0 (0 "DAXTER" "PRENDI DELL'ECO LUMINOSO, JAK!")) -("sksp0410" :hint #x0 (0 "DAXTER" "SEMBRA ARRABBIATO!")) -("sksp0411" :hint #x0 (0 "DAXTER" "SALTA PER EVITARE LE ESPLOSIONI!")) -("sksp0412" :hint #x0 (0 "DAXTER" "ORA POSSIAMO PREOCCUPARCI DEGLI AFFARI!")) -("sksp0413" :hint #x0 (0 "DAXTER" "BELLA MIRA, AMICO!")) -("sksp0414" :hint #x0 (0 "DAXTER" "QUESTO DEVE FAR MALE!")) -("sksp0415" :hint #x0 (0 "DAXTER" "STA ARRIVANDO!")) -("sksp0416" :hint #x0 (0 "DAXTER" "YA-AH! CE L'HAI FATTA!")) -("sksp0417" :hint #x0 (0 "DAXTER" "AVANTI GOL E MAIA, FATE \"CIAO CIAO\" CON LA MANINA!")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "STIAMO ASPETTANDO. EHI, SEI SVEGLIO?")) -("sksp0449" :hint #x0 (0 "DAXTER" "PREMI IL TASTO START PER GIOCARE.")) -("sksp0450" :hint #x0 (0 "DAXTER" "VUOI SMETTERE DI GIOCARE?")) -("sksp0451" :hint #x0 (0 "DAXTER" "NON PENSO PROPRIO.")) -("sksp0452" :hint #x0 (0 "DAXTER" "OK, CI VEDIAMO DOPO.")) -("sksp0455" :hint #x0 (0 "DAXTER" "RAGAZZI, MA CHI È TUTTA QUESTA GENTE?")) -("sksp0466" :hint #x0 (0 "DAXTER" "NON ERO NIENTE MALE, VERO RAGAZZE?")) - -;; ----------------- -;; uncategorized -;; ----------------- diff --git a/game/assets/jak1/subtitle/game_subtitle_ptbr.gd b/game/assets/jak1/subtitle/game_subtitle_ptbr.gd deleted file mode 100644 index 00d34879ef..0000000000 --- a/game/assets/jak1/subtitle/game_subtitle_ptbr.gd +++ /dev/null @@ -1,2437 +0,0 @@ -(language-id 13) -(text-version jak1-v2) - -;; ----------------- -;; intro -;; ----------------- - -("sage-intro-sequence-a" - (24 :offscreen "SAMOS" "EU PASSEI A MINHA VIDA BUSCANDO PELAS RESPOSTAS QUE MEU PAI,") - (156 :offscreen "SAMOS" "E O PAI DO MEU PAI, FALHARAM EM ENCONTRAR") - (255) - (260 :offscreen "SAMOS" "QUEM FORAM OS PRECURSORES?") - (323 :offscreen "SAMOS" "POR QUE ELES CRIARAM OS VASTOS MONÓLITOS ESPALHADOS PELO NOSSO PLANETA?") - (451) - (454 :offscreen "SAMOS" "COMO ELES UTILIZAVAM O ECO, A ENERGIA VITAL DO PLANETA?") - (578) - (581 :offscreen "SAMOS" "QUAL ERA O SEU OBJETIVO? POR QUE ELES DESAPARECERAM?") - (708) - (720 :offscreen "SAMOS" "EU PERGUNTEI AS PLANTAS, MAS ELAS NÃO SE LEMBRAM") - (818 :offscreen "SAMOS" "AS PLANTAS PERGUNTARAM AS PEDRAS, MAS AS PEDRAS NÃO SE RECORDAM") - (955 :offscreen "SAMOS" "ATÉ MESMO AS PEDRAS NÃO SE RECORDAM...") - (1064) - (1087 :offscreen "SAMOS" "CADA OSSO DO MEU CORPO ME DIZ QUE AS RESPOSTAS ESTÃO NAS COSTAS DE UM JOVEM GAROTO") - (1297 :offscreen "SAMOS" "ALHEIO AO SEU DESTINO, DESINTERESSADO NA BUSCA PELA VERDADE, E IGNORANDO MEUS ENSINAMENTOS!") - (1536) - (1542 :offscreen "SAMOS" "E POR QUE ELE DARIA OUVIDOS AO VELHO SAMOS?") - (1677) - (1683 :offscreen "SAMOS" "EU SOU APENAS O MESTRE DO ECO VERDE, UM DOS HOMENS MAIS SÁBIOS DO PLANETA") - (1872) - (1955 :offscreen "SAMOS" "ENTÃO PARECE QUE A RESPOSTA NÃO COMEÇA COM UMA PESQUISA CUIDADOSA, OU REFLEXÕES SENSÍVEIS.") - (2141) - (2145 :offscreen "SAMOS" "NÃOO! ASSIM COMO MUITOS DOS MISTÉRIOS DO DESTINO") - (2281 :offscreen "SAMOS" "ELA COMEÇA COM UM PEQUENO ATO DE DESOBEDIÊNCIA.") - (2440 "DAXTER" "HEY! HMM, JAK? AQUELA VELHA COISA VERDE FALOU PARA NÃO VIR AQUI!") - ) - -("sage-intro-sequence-d1" - (137 "SAMOS" "MAS O QUE DIABOS VERDES VOCÊS DOIS QUEREM?") - (220 "DAXTER" "NÓ- NÓ- ELE ESTAVA- ELES ESTAVAM- EU- EU ESTAVA-") - (283 "SAMOS" "NÃO ME DIGA! EM VEZ DE OUVIREM MINHA SABEDORIA, VOCÊS DOIS FORAM DAR UM PASSEIO") - (440 "SAMOS" "NO ÚNICO LUGAR QUE EU DISSE PARA NÃO IREM: ILHA DAS NÉVOAS!") - (550 "DAXTER" "FOI ISSO MESMO! E ENTÃ-") - (579 "SAMOS" "E ENTÃO, DAXTER, VOCÊ FINALMENTE TOMOU UM BANHO, MAS FOI EM UM POÇO DE ECO NEGRO.") - (793 "DAXTER" "ESCUTA AQUI, COROA, VOCÊ VAI FICAR DANDO ESPORRO, OU VOCÊ VAI ME AJUDAR A SAIR DESSA?") - (920 "SAMOS" "VOU FICAR DANDO ESPORRO! PORQUE NA MINHA OPINIÃO PROFISSIONAL, A MUDANÇA FOI UMA MELHORIA.") - (1079 "SAMOS" "E ALÉM DISSO... EU NÃO PODERIA TE AJUDAR MESMO SE QUISESSE") - (1186 "DAXTER" "QUÊ!?") - (1220 "SAMOS" "SÓ EXISTE UMA PESSOA QUE ESTUDOU O ECO NEGRO POR TEMPO O BASTANTE") - (1329 "SAMOS" "PARA TER UMA CHANCE DE TE TRAZER A SUA FORMA ANTIGA:") - (1431 "SAMOS" "GOL ACHERON, O SÁBIO.") - (1493) - (1496 :offscreen "SAMOS" "MAS ELE VIVE AO NORTE. LONGE, BEM LONGE AO NORTE. NINGUÉM FALA COM ELE HÁ ANOS") - (1718 "SAMOS" "EU TE TELEPORTARIA PARA LÁ, MAS TAMBÉM NÃO CONSIGO") - (1831 "SAMOS" "NENHUM DOS OUTROS TRÊS SÁBIOS QUE MANTÉM OS OUTROS PORTAIS DE TELETRANSPORTE") - (1934 "SAMOS" "ATIVARAM O SEUS PORTAIS JÁ FAZ UM BOM TEMPO!") - ) - -("sage-intro-sequence-d2" - (3 "SAMOS" "O ÚNICO OUTRO CAMINHO AO NORTE É A PÉ PELA DESFILADEIRO DE FOGO") - (114 :offscreen "SAMOS" "MAS O SEU SOLO VULCÂNICO É QUENTE O BASTANTE PARA DERRETER METAL PRECURSOR.") - (224 "SAMOS" "VOCÊ NÃO CONSEGUE ATRAVESSAR A PÉ.") - (270 "KEIRA" "MAS VOCÊ PODERIA VOAR POR CIMA DELE, SE VOCÊ TIVESSE UM ZOOMER COM UM ESCUDO DE CALOR.") - (393) - (396 "KEIRA" "E POR ACASO EU ESTOU TRABALHANDO EM ALGO ASSIM AGORA MESMO") - (512) - (515 "KEIRA" "EU SÓ PRECISO DE VINTE POWER CELLS PARA TER ENERGIA O BASTANTE") - (605 "KEIRA" "PARA SUPORTAR O CALOR DO DESFILADEIRO, NÃO É MESMO, PAPAI?") - (696) - (699 "SAMOS" "SIM, KEIRA, ISSO PODE FUNCIONAR. MAS COMO UM GAROTO") - (826 :offscreen "SAMOS" "E MEIO!") - (857 "SAMOS" "VÃO CONSEGUIR VINTE POWER CELLS?") - (910 "KEIRA" "DOS ALDEÕES! A MAIORIA DELES TEM UMA OU DUAS POWER CELL GUARDADA EM ALGUM LUGAR.") - (1050 :offscreen "KEIRA" "E MESMO QUE ELES NÃO QUEIRAM SIMPLESMENTE DAR ELAS") - (1133 "KEIRA" "MOLHAR A MÃO DELES COM ALGUMAS ORBES DE PRECURSOR DEVE RESOLVER.") - (1243) - (1246 :offscreen "KEIRA" "E EU APOSTO QUE DEVE TER AINDA MAIS DELAS POR AÍ APENAS ESPERANDO QUE ALGUM") - (1364 "KEIRA" "CORAJOSO AVENTUREIRO AS ENCONTRE.") - (1435 "DAXTER" "BEM, NÓS AO MENOS TEMOS O CORAJOSO AVENTUREIRO.") - (1529) - (1532 "SAMOS" "CORAJOSO AVENTUREIRO?") - (1582 "SAMOS" "VOCÊS DOIS NÃO CONSEGUIRIAM NEM SAIR DA VILA SEM TREINAMENTO") - (1685) - (1689 "SAMOS" "ANTES DE QUALQUER COISA, VOCÊS VÃO ENTRAR NO TELEPORTADOR") - (1810 "SAMOS" "E TREINAR NA GEYSER ROCK .") - (1872) - (1878 "DAXTER" "UH, NÃO VAI TER NENHUM ECO NEGRO GOSMENTO LÁ NÉ?") - (1993 "DAXTER" "PORQUE EU ODIARIA CAIR NELE DE NOVO E TRANSFORMAR EM VOCÊ!") - (2069) - (2072 "SAMOS" "VÃO LÁ AGORA! ANTES QUE EU TRANSFORME VOCÊS DOIS EM SAMAMBAIAS") - (2189) - ) - -("sage-intro-sequence-e" - (200 "SAMOS" "BOM TREINO, MENINOS, MAS ISSO NÃO É NADA COMPARADO AOS DESAFIOS QUE VIRÃO A SEGUIR") - (359 "DAXTER" "AH, VAI SER SUAVE. A GENTE TEM A MANHA, NÉ JAK?") - (496 "DAXTER" "NÓS ADORARIAMOS CONVERSAR MAIS, VERDÃO, MAS NÓS ERR... ESTAMOS COM SEDE DE AVENTURA.") - (660 "SAMOS" "CERTO, CERTO, \"AVENTUREM-SE\" POR AÍ ENTÃO.") - (787 "SAMOS" "E ENQUANTO VOCÊS ESTIVEREM \"AVENTURANDO,\" POR QUE NÃO FAZEM ALGO DE ÚTIL?") - (940) - (952 :offscreen "SAMOS" "MEUS MALDITOS COLETORES DE ECO VERDE ESTÃO ENTUPIDOS DE NOVO.") - (1043) - (1046 :offscreen "SAMOS" "VÃO PARA O CANTO MAIS AO FUNDO DA PRAIA E LIMPEM ELES, QUE TAL?.") - (1160) - (1169 :offscreen "SAMOS" "SIGAM AS LÂMPADAS, ELAS VÃO TE LEVAR ATÉ ELES.") - (1310) - (1313 :offscreen "SAMOS" "AGORA, TODOS VOCÊS...") - (1415) - (1439 :offscreen "SAMOS" "SUMAM DAQUI!!!") - ) - -("sidekick-human-intro-sequence-b" - (547 "VELHO" "CONTINUEM SUAS BUSCAS POR ARTEFATOS E ECO.") - (664) - (674 "VELHO" "SE OS HABITANTES TIVEREM ITENS PRECURSORES, VOCÊS SABEM O QUE FAZER.") - (819) - (839 "MULHER" "ATAQUEM QUALQUER UM QUE TENTAR SAIR DA VILA.") - (937 "MULHER" "NÓS VAMOS ATACÁ-LOS NA HORA CERTA.") - (1027) - ) - -("sidekick-human-intro-sequence-c" - (12 "DAXTER" "O QUE ESTAMOS FAZENDO AQUI, JAK? ESSE LUGAR DÁ MO MEDO!") - (151) - (366 "DAXTER" "HUH?") - (402 "DAXTER" "PORCARIA PRECURSOR IDIOTA!") - (496) - (576 "DAXTER" "EEK! QUE LAMA NEGRA É ESSA? NÃO PARECE MUITO AMIGÁVEL.") - (721) - (774 "DAXTER" "O SÁBIO FALA TODA HORA SOBRE OS PRECURSORES QUE CONSTRUÍRAM ESSE LUGAR.") - (906 "DAXTER" "\"ONDE ELES FORAM? POR QUE ELES CONSTRUÍRAM ESSE BAGULHO?\"") - (1011 "DAXTER" "OLHA EU GOSTO DE ORBES PRECURSORAS E POWER CELLS IGUAL A TODO MUNDO") - (1124 "DAXTER" "MAS SE QUER SABER, EU ACHO QUE ELES ERAM UNS TROUXAS.") - (1212 "DAXTER" "WHOA! COMO VOCÊ FEZ ISSO?") - (1271) - (1331 "DAXTER" "JAK, EU ACHO QUE DEU RUIM!") - (1386) - (1857 "DAXTER" "NOSSA, ISSO ARDEU.") - (1913) - (1941 "DAXTER" "EU TE FALEI QUE A GENTE NÃO DEVIA TER VINDO AQUI, E TU NÃO QUIS SABER") - (2037) - (2057 "DAXTER" "O QUE?") - (2104) - (2189 "DAXTER" "WAAAAAAAAHHHHHHHH!!") - (2307 "DAXTER" "OKAY, OKAY. EU TÔ BEM, EU TÔ BEM...") - (2431) - (2481 "DAXTER" "WAAAAAAAAHHHHHHHH!!") - ) - -;; ----------------- -;; sidekick -;; ----------------- - -("death-0181" (0 "DAXTER" "NÃO VÁ PARA A LUZ, JAK! NÃO VÁ PARA A LUZ!")) - -("death-0182" - (0 "DAXTER" "HEY, JAK! EU POSSO...") - (55) - (68 "DAXTER" "FICAR COM A SUA COLEÇÃO DE INSETOS?") - ) - -("death-0184" - (0 "DAXTER" "ENQUANTO VOCÊ ESTÁ AÍ EM BAIXO, EHM...") - (60) - (70 "DAXTER" "PODE COÇAR MEU PEZINHO?") - ) - -("death-0186" - (0 "DAXTER" "NÃO SE PREOCUPE EU VOU TE VINGAR!") - (50) - (69 "DAXTER" "...SÓ QUE NÃO.") - ) - -("death-0187" - (0 "DAXTER" "BEM, UH...") - (46) - (56 "DAXTER" "ANTES VOCÊ DO QUE EU.") - ) - -("death-0191" - (0 "DAXTER" "AQUILO DEVE TER DOÍDO.") - (46 "DAXTER" "DEVO CHAMAR REFORÇOS?") - ) - -("death-0193" - (0 "DAXTER" "PRIMEIRO PASSO: FIQUE VIVO!") - (65 "DAXTER" "SEGUNDO PASSO...") - (97) - (107 "DAXTER" "TENTE NÃO FAZER ALGO ASSIM DE NOVO") - ) - -("death-0195" - (0 "DAXTER" "EU ESTAVA LOGO ATRÁS DE VOCÊ, JAK!") - (69 "DAXTER" "...JURO. EU ESTAVA.") - ) - -("death-0197" - (0 "DAXTER" "CURATIVOS... MACA!") - (62) - (72 "DAXTER" "ECA... BALA DE MENTA?") - ) - -("death-0199" - (0 "DAXTER" "EU VOU DIZER ALGO MUITO TRISTE NO FUNERAL, TIPO...") - (105 "DAXTER" "...\"COMO EU VOU VOLTAR AO NORMAL AGORA?!\"") - ) - -("death-0202" (0 "DAXTER" "BONS SONHOS, JAK!")) -("sksp009a" :hint #x0 (0 "DAXTER" "HA HA! A GENTE MOSTROU PRA ELE NÉ.")) - -("sksp0014" :hint #x233 - (0 "DAXTER" "NÓS JUNTAMOS ORBES O BASTANTE PARA TROCAR POR UMA POWER CELL.") - (215 "DAXTER" "VAMOS VOLTAR E FAZER A TROCA!") - ) - -("sksp0009" :hint #x251 - (0 "DAXTER" "QUE COISA ESQUISITA, APOSTO QUE CONSEGUIMOS ABRIR ISSO") - (204 "DAXTER" "SE VOCÊ SE ENERGIZAR COM AQUELA COISA AZUL BRILHANTE .") - ) - -("sksp0001" :hint #x280 (0 "DAXTER" "HEY! AQUELA DELÍCINHA DA KEIRA TINHA RAZÃO, TEM TRANS-PADS AQUI.")) -("sksp0002" :hint #x281 (0 "DAXTER" "CONFIA EM MIM, ESSAS CAIXAS DE ECO NEGRO SÃO PROBLEMA!")) - -("sksp0003" :hint #x282 - (0 "DAXTER" "APOSTO QUE SE ACHARMOS TODAS ESSAS MOSCAS DE BUSCA FOFINHAS EM CADA ÁREA") - (215 "DAXTER" "AO MENOS UMA DELAS VAI TER UMA POWER CELL!") - ) - -("sksp0004" :hint #x283 (0 "DAXTER" "BELEZA, TESOURO!")) - -("sksp0005" :hint #x284 - (0 "DAXTER" "ESSAS CAIXAS DE MADEIRA E FERRO NÃO PARECEM SER MUITO FORTES!") - (163) - (169 "DAXTER" "APOSTO QUE ELAS QUEBRAM SE VOCÊ PULAR MERGULHANDO NELAS.") - ) - -("sksp0006" :hint #x285 - (0 "DAXTER" "ESSAS CAIXAS GROSSAS DE METAL SÃO MAIS DURAS QUE CRÂNIO DE BOI!") - (188 "DAXTER" "MAS DEVE TER ALGO QUE CONSIGA ESTOURAR ELAS.") - ) - -("sksp0007" :hint #x286 (0 "DAXTER" "DUAS PALAVRAS: POWER CELLS, A GENTE PRECISA DELAS E TÁ FAZENDO FALTA")) -("sksp0008" :hint #x287 (0 "DAXTER" "NÓS PRECISAMOS DE ORBES, ORBES JAK! COMO QUE VAMOS COMPRAR POWER CELLS SEM ORBES?!")) -("sksp009b" :hint #x28e (0 "DAXTER" "AEEE, MAIS ORBES!")) -("sksp009c" :hint #x28f (0 "DAXTER" "FAZ FAVOR E FICA LONGE DAS CAIXAS DE ECO NEGRO")) -("sksp009d" :hint #x290 (0 "DAXTER" "YEAH-HA-HA-HA!")) -("sksp009e" :hint #x291 (0 "DAXTER" "WA-HOO!")) -("sksp009f" :hint #x292 (0 "DAXTER" "TOMA! TOMA! HA HA HA!")) -("sksp009g" :hint #x293 (0 "DAXTER" "ATRÁS DE VOCÊ, JAK!")) -("sksp009i" :hint #x294 (0 "DAXTER" "NÓS ENCONTRAMOS TODAS AS MOSCAS DE BUSCA NESSA ÁREA?")) -("sksp009j" :hint #x295 (0 "DAXTER" "HEY! PARECE QUE AS MOSCAS DE BUSCA ESTÃO SEMPRE EM CAIXAS VERMELHAS.")) -("sksp009k" :hint #x296 (0 "DAXTER" "BELEZA, VOCÊ ENCONTROU TODAS AS MOSCAS DE BUSCA DESSA ÁREA!")) - -;; ----------------- -;; oracle -;; ----------------- - -("oracle-intro-1" - (0 "ORÁCULO" "QUEM DESPERTA O ORÁCULO?") - (75) - (81 "ORÁCULO" "ESPERA, UM DE VOCÊS POSSUÍ A LUZ EM SI.") - (198) - (206 "ORÁCULO" "ANTES DO INÍCIO DOS TEMPOS, EU OBSERVO E ESPERO PELO RETORNO DO VERDADEIRO HERÓI.") - (390) - (395 "ORÁCULO" "ME OFEREÇA 120 ORBES PRECURSORAS PARA CADA POWER CELL QUE EU POSSUO.") - ) - -("oracle-intro-2" - (0 "ORÁCULO" "CUIDADO COM A LUZ NEGRA, POIS ELA DISTORCEU O DESTINO DE UM DE VOCÊS.") - (171) - (181 "ORÁCULO" "ME TRAGA 120 ORBES PRECURSORAS PARA CADA POWER CELL QUE EU POSSUO.") - ) - -("oracle-intro-3" - (0 "ORÁCULO" "BUSQUEM A LUZ PURA, POIS EM TUAS CHAMAS RESIDEM AS RESPOSTAS.") - (172) - (182 "ORÁCULO" "VOCÊ PODE OBTER MINHAS POWER CELLS SE ME TROUXER 120 ORBES PRECURSORAS PARA CADA UMA.") - ) - -("oracle-left-eye-1" (0 "ORÁCULO" "VOCÊ SE PROVOU DIGNO, AQUI ESTÁ UMA POWER CELL.")) -("oracle-left-eye-2" (0 "ORÁCULO" "PELO SEU SACRIFÍCIO, EU LHE OFEREÇO UMA POWER CELL.")) -("oracle-left-eye-3" (0 "ORÁCULO" "PELO SEU ESFORÇO, UMA POWER CELL SERÁ A RECOMPENSA.")) -("oracle-reminder-1" (0 "ORÁCULO" "ME TRAGA 120 ORBES PRECURSORAS E EU RECOMPENSAREI COM UMA POWER CELL.")) -("oracle-reminder-2" (0 "ORÁCULO" "ME OFEREÇA 120 ORBES PRECURSORAS E UMA POWER CELL SERÁ SUA RECOMPENSA.")) -("oracle-reminder-3" (0 "ORÁCULO" "VOCÊ DEVE ME TRAZER 120 ORBES PRECURSORAS PARA CADA POWER CELL QUE EU POSSUO")) -("oracle-right-eye-1" (0 "ORÁCULO" "PELO SEU PRESENTE, MAIS UMA POWER CELL É SUA.")) -("oracle-right-eye-2" (0 "ORÁCULO" "AQUI ESTÁ MAIS UMA POWER CELL PARA SUA JORNADA.")) -("oracle-right-eye-3" (0 "ORÁCULO" "VOCÊ OBTEVE MAIS UMA POWER CELL.")) - -;; ----------------- -;; training -;; ----------------- - -("asstvb40" :hint #x900 - (0 "KEIRA" "ESSE DISPOSITIVO É UM COMUNICADOR, COM ELE, MEU PAI E EU") - (181 "KEIRA" "PODEMOS TE ACONSELHAR EM QUALQUER MOMENTO DA SUA JORNADA.") - ) - -("asstvb41" :hint #x901 - (0 "KEIRA" "ESSAS COISAS FLUTUANTES EM FORMATO DE OVO SÃO ORBES PRECURSORAS") - (176) - (180 "KEIRA" "COLETE O BASTANTE DELAS, E ALGUNS DOS ALDEÕES TE DARÃO") - (315 "KEIRA" "UMA POWER CELL EM TROCA.") - ) - -("asstvb42" :hint #x902 - (0 "KEIRA" "ISSO É UMA POWER CELL, O MAIS IMPORTANTE ARTEFATO PRECURSOR QUE VOCÊ PODE ENCONTRAR!") - (327) - (333 "KEIRA" "VOCÊ PRECISA COLETAR 20 DESSAS PARA QUE EU POSSA ENERGIZAR O ESCUDO DE CALOR") - (507 "KEIRA" "PARA O SEU ANTI-GRAV. ZOOMER.") - ) - -("asstvb44" :hint #x903 - (0 "KEIRA" "HEY, VOCÊS ENCONTRARAM UMA DAS MINHAS MOSCAS DE BUSCA!") - (160 "KEIRA" "EU ENVIEI 7 DELAS PARA CADA ÁREA EM BUSCA DE POWER CELLS") - (343 "KEIRA" "MAS OS LURKERS DEVEM TER CAPTURADO TODAS ELAS!") - ) - -("asstvb45" :hint #x904 - (0 "KEIRA" "WOW! ESSA ÚLTIMA MOSCA DE BUSCA TINHA UMA POWER CELL!") - (219 "KEIRA" "APOSTO QUE SE VOCÊ ACHAR TODAS AS 7 EM CADA ÁREA VOCÊ ENCONTRARÁ AINDA MAIS POWER CELLS.") - ) - -("asstvb46" :hint #x905 - (0 "KEIRA" "CUIDADO COM O OCEANO, AS ÁGUAS ESTÃO LOTADAS DE TUBARÕES LURKER") - (258 "KEIRA" "E EU NUNCA VI NINGUÉM DERROTAR UM DELES.") - (419) - (426 "KEIRA" "FIQUE LONGE DELES SE VOCÊ SABE O QUE É MELHOR PRA SUA SAÚDE!") - ) - -("asstvb47" :hint #x906 (0 "KEIRA" "LEMBRE-SE, ISSO É UMA POWER CELL. VOCÊ PRECISA COLETAR QUANTO VOCÊ FOR CAPAZ DELAS.")) - -("asstvb48" :hint #x907 - (0 "KEIRA" "ISSO É UMA FONTE DE ECO AZUL, MAIS CONCENTRADO QUE AS FRAÇÕES FLUTUANTES,") - (253 "KEIRA" "ESSA FONTE TE DARÁ UMA CARGA COMPLETA DE ECO AZUL,") - (419 "KEIRA" "PERMITINDO QUE VOCÊ USE ELE POR MAIS TEMPO.") - ) - -("sagevb21" :hint #x908 - (3 "SAMOS" "ESSAS PEQUENAS BOLAS VERDES DE ENERGIA SÃO UM TIPO DE ECO.") - (280 "SAMOS" "PEGUE 50 PEQUENOS ECOS VERDES, OU UM GRANDE PARA RECUPERAR SUA SAÚDE.") - ) - -("sagevb22" :hint #x909 - (0 "SAMOS" "ESSE É UM ECO AZUL, ELE CONTÉM A ENERGIA DO MOVIMENTO") - (291 "SAMOS" "ECO AZUL PERMITE QUE VOCÊ CORRA MAIS RÁPIDO, QUEBRE CAIXAS E ") - (640 "SAMOS" "ATIVE ARTEFATOS PRECURSORES QUANDO SE APROXIMA DELES.") - ) - -("sagevb23" :hint #x90a (0 "SAMOS" "CADA FRAÇÃO DE ECO AZUL AUMENTA O TEMPO QUE VOCÊ CONSEGUE USAR SEUS PODERES.")) - -("sagevb24" :hint #x90b - (3 "SAMOS" "ESSA É UMA PORTA PRECURSORA, ELA SÓ PODE SER ABERTA AO SE APROXIMAR DELA") - (357 "SAMOS" "ENQUANTO CANALIZA ECO AZUL PELO SEU CORPO.") - ) - -("sagevb25" :hint #x90c - (3 "SAMOS" "BOM TRABALHO, O ECO AZUL ABRIU ESSA PORTA. COM O ECO AZUL VOCÊ CONSEGUE") - (365 "SAMOS" "DAR VIDA A TODO TIPO DE ARTEFATO PRECURSOR ADORMECIDO HÁ ANOS.") - ) - -("sagevb26" :hint #x90d (0 "SAMOS" "USE SEU VISOR PARA VER O PROGRESSO DURANTE SUA AVENTURA .")) -("sagevb27" :hint #x90e (1 "SAMOS" "VOCÊ PODE PULAR E ENTÃO PULAR DE NOVO PARA SUBIR MAIS ALTO.")) -("sagevb28" :hint #x90f (0 "SAMOS" "QUANDO ESTIVER RODEADO DE INIMIGOS, USE SEU CHUTE ROTATIVO.")) -("sagevb29" :hint #x910 (0 "SAMOS" "ISSO NÃO FOI UM CHUTE ROTATIVO, TENTE DE NOVO.")) -("sagevb30" :hint #x911 (0 "SAMOS" "VAMOS LÁ, JAK, DÊ UM CHUTE ROTATIVO.")) -("sagevb31" :hint #x912 (0 "SAMOS" "BOM TRABALHO. USE O CHUTE ROTATIVO QUANDO VOCÊ QUISER DAR UM BOM ATAQUE AO REDOR.")) -("sagevb32" :hint #x913 (0 "SAMOS" "PARA UM ATAQUE RETO, EM MOVIMENTO, USE SEU PUNHO PARA SOCAR.")) -("sagevb33" :hint #x914 (0 "SAMOS" "ISSO NÃO FOI UM SOCO, VAMOS LÁ, DÁ UM SOCO.")) -("sagevb34" :hint #x915 (0 "SAMOS" "JAK! DÊ UM SOCO.")) -("sagevb35" :hint #x916 (0 "SAMOS" "MUITO BEM, USE O SOCO PARA ENCURTAR A DISTÂNCIA RAPIDAMENTE.")) - -("sagevb36" :hint #x917 - (0 "SAMOS" "AS VEZES VOCÊ VAI QUERER ACERTAR AS COISAS COM UMA FORÇA MAIOR.") - (210) - (216 "SAMOS" "PARA QUEBRAR UMA DESSAS CAIXAS, VOCÊ DEVE PULAR NO AR") - (418 "SAMOS" "E ENTÃO MERGULHAR NELA COM AS MÃOS") - ) - -("sagevb37" :hint #x918 (0 "SAMOS" "QUANDO SE SENTIR CONFIANTE, TENTE USAR OS SEUS MOVIMENTOS EM COMBINAÇÕES.")) - -("sagevb38" :hint #x919 - (0 "SAMOS" "VOCÊ NÃO PODE VOLTAR PELO TELEPORTADOR ANTES DE") - (168 "SAMOS" "ACHAR TODAS AS 4 POWER CELLS NESSA ILHA.") - ) - -("sagevb39" :hint #x91a - (0 "SAMOS" "ÓTIMO, VOCÊ ACHOU TODAS AS POWER CELL NA ILHA") - (269 "SAMOS" "VOLTE PRO TELEPORTADOR PARA QUE EU TE TRAGA DE VOLTA PRA CÁ, RÁPIDO!") - ) - -;; ----------------- -;; village1 -;; ----------------- - -("assistant-introduction-blue-eco-switch" - (23 "DAXTER" "EAÍ BEBÊ. O QUE ACHA DE EU E VOCÊ DARMOS UMA VOLTINHA NESSE ZOOMER?") - (175) - (193 "KEIRA" "REGRA NÚMERO 1: EU NÃO SAIO COM ANIMAIS.") - (308) - (312 "DAXTER" "AH VOCÊ NÃO SABE O QUE ESTÁ PERDENDO, HE HE.") - (430) - (505 "KEIRA" "ESCUTA, SE VOCÊS ESTIVEREM DESOCUPADOS, MEU PAI SEMPRE FALA DE UMA") - (635 "KEIRA" "ANTIGA TUBULAÇÃO PRECURSORA ESCONDIDA NO SUBSOLO .") - (739) - (742 :offscreen "KEIRA" "ALGUNS DESSES CANOS LEVAM A FONTES QUE EMANAM ECO,") - (842 :offscreen "KEIRA" "E ALGUMAS DELAS FORAM SELADAS, IMPEDINDO A SAÍDA DO ECO.") - (945) - (954 "KEIRA" "DEVE HAVER UM JEITO DE ABRIR ESSAS FONTES DE NOVO.") - (1052 :offscreen "KEIRA" "EU RASTREEI PARTE DA TUBULAÇÃO DIRETO AO TEMPLO PROIBIDO.") - (1138 "KEIRA" "TALVEZ VOCÊ DEVESSE VER SE ACHA ALGUM TIPO DE INTERRUPTOR LÁ.") - (1246) - ) - -("assistant-introduction-race-bike" - (9 "DAXTER" "EI BEBÊ, TÁ TRABALHANDO EM QUÊ?") - (63 "KEIRA" "CUIDADO COM ISSO, EU ESTOU TENTANDO DESCOBRIR COMO TELEPORTAR O ZOOMER") - (200 "KEIRA" "USANDO OS TRANS-PADS QUE OS PRECURSORES DEIXARAM POR TODO O MUNDO.") - (308) - (312 :offscreen "KEIRA" "SE VOCÊ ENCONTRAR ALGUM DELES, EU POSSO LOCALIZAR ATRAVÉS DO SEU COMUNICADOR") - (453 :offscreen "KEIRA" "E TE ENVIAR O ZOOMER!") - (508 "KEIRA" "FIQUE DE OLHO POR TRANS-PADS NA ILHA DA NÉVOAS, E EM OUTROS LUGARES TAMBÉM!") - (665) - ) - -("assistant-reminder-1-blue-eco-switch" - (23 "KEIRA" "TENHO CERTEZA DE QUE SE VOCÊ DER UMA OLHADA NO TEMPLO PROIBIDO PRECURSOR") - (143 "KEIRA" "VOCÊ VAI CONSEGUIR ABRIR A FONTE DE ECO AZUL FECHADA NA PRAIA SENTINELA .") - (295) - ) - -("assistant-reminder-1-generic" (25 "KEIRA" "EI RAPAZES, CONTINUEM PEGANDO POWER CELLS, ELAS SÃO A CHAVE PARA A JORNADA AO NORTE.")) - -("assistant-reminder-1-race-bike" - (19 "KEIRA" "EU DEFINITIVAMENTE DESCOBRI COMO USAR OS TRANS-PADS.") - (106 "KEIRA" "AGORA VÃO PARA A ILHA DAS NÉVOAS, EU VOU ENVIAR O ZOOMER PARA LÁ.") - (229) - ) - -("explorer-introduction" - (23 "TIO DO JAK" "OLÁ MEU QUERIDO MENINO. TU ME PEGASTES EM UM MOMENTO INOPORTUNO.") - (197 "TIO DO JAK" "ONTEM EU ESTAVA PRONTO PARA PARTIR EM MINHA JORNADA,") - (288 "TIO DO JAK" "MAS ME ENCONTRO EM DESVANTAGEM QUANTO AS VELHAS ORBES PRECURSORAS.") - (426) - (430 "TIO DO JAK" "LHE ASSEGURO QUE POSSUÍA 90 DELAS ANTERIORMENTE,") - (538 "TIO DO JAK" "PORÉM ACREDITO QUE SEU AMIGO, VOCÊ SABE, AQUELE DIMINUTO IRRITANTE MISERÁVEL E FEIO.") - (716 "TIO DO JAK" "PODE TER AS FURTADO PARA SE DIVERTIR UM POUCO.") - (829) - (865 "TIO DO JAK" "TODAVIA, TERIAS A BONDADE DE EMPRESTAR 90 ORBES PRECURSORAS AO SEU VELHO TIO") - (1043 "TIO DO JAK" "PARA QUE ELE POSSA SEGUIR VIAGEM? EM TROCA, LHE OFEREÇO UMA POWER CELL.") - ) - -("explorer-reminder-1" - (25 "TIO DO JAK" "O QUÊ? NÃO TENS TAL ABUNDÂNCIA? HARRUMPH!") - (148 "TIO DO JAK" "BEM, MENOS DE 90 ORBES PRECURSORAS") - (251 "TIO DO JAK" "E NÃO LOGRAREI EM MINHA VIAGEM.") - (387) - ) - -("explorer-reminder-2" - (33 "TIO DO JAK" "Ô VEJA BEM, O ACORDO É DE 90 ORBES PRECURSORAS POR UMA POWER CELL.") - (187 "TIO DO JAK" "UMA TROCA DEVERÁS JUSTA.") - ) - -("explorer-resolution" - (28 "TIO DO JAK" "VEJO QUE VOCÊS DOIS VOLTARAM PARA FAZER A TROCA, BOM, BOM, SUBLIME!") - (179 "TIO DO JAK" "EH, VOCÊ TEM UH, AS ORBES QUE COMBINAMOS?") - (310) - (324 "TIO DO JAK" "ESPERO QUE DÊ BOM USO À ESTA POWER CELL, MEU JOVEM MENINO, TA TA, TCHAU TCHAU!") - ) - -("farmer-introduction" - (1 "FAZENDEIRO" "TIRAR LEITE DO BOI, TIRAR LEITE DO BOI...") - (113 "FAZENDEIRO" "OH! É VOCÊ... ESTOU DESCANSANDO MEUS VELHOS OSSOS. TENHO TENTADO PÔR ESSES BOIS") - (317 "FAZENDEIRO" "DE VOLTA NO CURRAL O DIA TODO! UMAS CRIATURAS ESTRANHAS TENTARAM ROUBÁ-LOS MAIS CEDO.") - (454) - (456 "FAZENDEIRO" "ACHA QUE PODE AJUDAR UM VELHO SENHOR A LEVÁ-LOS DE VOLTA AO CURRAL?") - ) - -("farmer-reminder-1" (0 "FAZENDEIRO" "EI, MEUS BOIS CONTINUAM SOLTOS! EH, PODERIA BOTAR ELES DE VOLTA NO CURRAL?")) - -("farmer-reminder-2" - (0 "FAZENDEIRO" "ESSES MALDITOS BOIS CONTINUAM PERAMBULANDO SOLTOS.") - (85 "FAZENDEIRO" "VOCÊ NÃO IA BOTAR ELES NO CURRAL?") - ) - -("farmer-resolution" - (0 "FAZENDEIRO" "AH, MUITO BEM MEU GAROTO. VOCÊ COLOCOU ESSES SACOS DE PULGA DE VOLTA NO CURRAL.") - (134 "FAZENDEIRO" "AGORA POSSO DORMIR EM PAZ, LEVE ESSA POWER CELL PELO INCÔMODO.") - (340) - ) - -("sage-introduction-misty-cannon" - (24 "SAMOS" "OH, SÃO OS HERÓIS CONQUISTADORES.") - (136 "SAMOS" "ÓTIMO, EU QUERIA FALAR COM VOCÊS SOBRE ALGO SÉRIO.") - (258) - (261 :offscreen "SAMOS" "PARECE HAVER BASTANTE CIRCULAÇÃO DE LURKERS NA ILHA DAS NÉVOAS.") - (387) - (393 :offscreen "SAMOS" "EU CONSIGO VÊ-LOS BOMBARDEANDO O ARMAZÉM PRECURSOR PELA MINHA TORRE DE VIGIA.") - (525) - (528 "SAMOS" "SE OS LURKERS CONSEGUIREM ABRIR E LIBERAR O ECO NEGRO, NÓS PODEMOS") - (663 "SAMOS" "ACABAR TENDO QUE ANDAR POR AÍ IGUAL A ESSE PEQUENO ESPÉCIME.") - (788) - (807 "SAMOS" "JAK, É HORA DE VOCÊ PROVAR O SEU VALOR.") - (906 "SAMOS" "PEÇA EMPRESTADO O BARCO DO PESCADOR PARA IR À ILHA DAS NÉVOAS") - (1018 "SAMOS" "SUBA AO TOPO DO ARMAZÉM PRECURSOR E ACABE COM AQUELE CANHÃO.") - (1171) - (1177 "DAXTER" "E... QUANTO A MIM?") - (1232) - (1235 "SAMOS" "VOCÊ? POR QUE VOCÊ NÃO PASSA UM PANO NO CHÃO? ELES PARECEM TER PERDIDO O BRILHO.") - ) - -("sage-reminder-1-ecorocks" - (28 "SAMOS" "MAS QUE \"CORAJOSOS AVENTUREIROS\" VOCÊS SÃO.") - (132 "SAMOS" "JÁ VOLTARAM E NÃO DESENTUPIRAM MEUS COLETORES DE ECO!") - (244) - (252 :offscreen "SAMOS" "ELES ESTÃO NO CANTO MAIS DISTANTE DA PRAIA, GAROTOS.") - (365) - (366 :offscreen "SAMOS" "AGORA...") - (412 :offscreen "SAMOS" "METAM O PÉ!") - ) - -("sage-reminder-1-generic" - (54 "SAMOS" "O QUE VOCÊS ESTÃO FAZENDO AQUI? VOCÊS TEM POWER CELLS PARA COLETAR!") - (178) - (181 "SAMOS" "ME DEIXEM SOZINHO... ATÉ VOCÊS PEGAREM ELAS!") - ) - -("sage-reminder-1-misty-cannon" - (24 "SAMOS" "O BOMBARDEAMENTO ESTÁ PIORANDO!") - (86 :offscreen "SAMOS" "ENCONTRE O PESCADOR NA SELVA PROIBIDA, E CONSIGA O BARCO COM ELE") - (215 :offscreen "SAMOS" "E VÁ PARA A ILHA DAS NÉVOAS PARAR AQUELE CANHÃO.") - (317) - (320 "SAMOS" "E VOCÊ DAXTER, VOCÊ PRECISA LIMPAR O CHÃO. ESSE LUGAR TÁ UMA ZONA!") - ) - -("sage-reminder-2-generic" - (27 "SAMOS" "VOCÊS DOIS NÃO ENTENDEM A GRAVIDADE DA SITUAÇÃO.") - (137 "SAMOS" "ISSO É MAIS DO QUE UM GAROTO FICANDO FELPUDO, É SOBRE A VIDA COMO NÓS A CONHECEMOS.") - (320) - (323 "SAMOS" "AGORA, VÃO LÁ E REALIZEM O SEUS DESTINOS.") - (455) - ) - -("ASSTLP01" :hint #x0 (0 "KEIRA" "HMM...")) -("ASSTLP02" :hint #x0 (0 "KEIRA" "TENHO QUE FAZER ESSE ESCUDO FUNCIONAR...")) -("ASSTLP03" :hint #x0 (0 "KEIRA" "NÓS PRECISAMOS DE MAIS POWER CELLS PRA ENERGIZA-LO...")) -("ASSTLP04" :hint #x0 (0 "KEIRA" "CADÊ A MINHA CHAVE INGLESA?")) -("ASSTLP05" :hint #x0 (0 "KEIRA" "O DESFILADEIRO DE FOGO É TÃO QUENTE...")) -("EXP-AM01" :hint #x0 (0 "TIO DO JAK" "EU PRECISO SAIR LOGO EM MINHA JORNADA, PRECISO DE ORBES PRECURSORAS!")) -("EXP-AM02" :hint #x0 (0 "TIO DO JAK" "VAMOS VER, ONDE EU DEVO IR PRIMEIRO? EH...")) -("EXP-AM03" :hint #x0 (0 "TIO DO JAK" "QUE SAUDADE DE PEGAR A ESTRADA.")) -("EXP-AM04" :hint #x0 (0 "TIO DO JAK" "TANTOS LUGARES PARA IR, E TÃO POUCO TEMPO.")) -("EXP-AM05" :hint #x0 (0 "TIO DO JAK" "BEM, NA MINHA ÉPOCA, VOCÊ PODIA ANDAR POR AÍ SEM SER ATACADO POR MONSTROS!")) -("EXP-LO02" :hint #x0 (0 "TIO DO JAK" "EU PRECISO DE MAIS ORBES PRECURSORAS.")) -("EXP-LO1A" :hint #x0 (0 "TIO DO JAK" "(MURMURO)")) -("FAR-AM01" :hint #x0 (0 "FAZENDEIRO" "(RONCA) AQUI, BESSIE... AQUI, BESSIE, BESSIE... QUEM É UMA BOA MENINA?")) -("FAR-AM02" :hint #x0 (0 "FAZENDEIRO" "TENHO QUE COLHER ANTES DOS BESOUROS DE JUNHO...")) -("FAR-AM2A" :hint #x0 (0 "FAZENDEIRO" "TENHO QUE COLHER ANTES QUE OS BESOUROS DE JUNHO CONSIGAM...")) -("FAR-LO01" :hint #x0 (0 "FAZENDEIRO" "(RONCA)")) -("FAR-LO1A" :hint #x0 (0 "FAZENDEIRO" "(RONCA)")) -("SAGELP03" :hint #x0 (0 "SAMOS" "ESSES DOIS NÃO CONSEGUEM ABRIR OS OUVIDOS...")) - -("SAGELP04" :hint #x0 - (0 "SAMOS" "ELE NUNCA VAI SER IGUAL AO TIO DELE...") - (221 "SAMOS" "EU NÃO LIGO PARA O QUE OS OUTROS DIGAM.") - ) - -("SAGELP05" :hint #x0 (0 "SAMOS" "OLÁ, SÁBIO AZUL? OLÁ? ONDE DIABOS ELE PODE ESTAR?...")) -("SAGELP06" :hint #x0 (0 "SAMOS" "MINHA NOSSA...")) -("SAGELP11" :hint #x0 (0 "SAMOS" "ALGUÉM? QUALQUER UM? APAREÇA")) -("sksp0010" :hint #x231 (0 "DAXTER" "EI!, BORA DAR UMA OLHADA NO BARCO DAQUELE BAFO DE PEIXE NA DOCA")) - -("sksp0013" :hint #x232 - (0 "DAXTER" "VOCÊ VIU O TAMANHO DA MORDIDA QUE AQUELE TUBARÃO LURKER DEU NO BARCO DO PESCADOR?") - (315) - (337 "DAXTER" "MELHOR FICAR LONGE DELES, EU NÃO ACHO QUE A GENTE DÊ CONTA DE UM BICHO ASSIM.") - ) - -("sksp0015" :hint #x234 - (0 "DAXTER" "ESSE DEVE SER UM DAQUELES ORÁCULOS PRECURSORES QUE O SÁBIO SEMPRE FALA.") - (228 "DAXTER" "ESPERO QUE ELES NÃO SEJAM TÃO FEIOS PESSOALMENTE!") - ) - -("sksp0017" :hint #x235 (0 "DAXTER" "WOW! SE LIGA NAQUELA ESTÁTUA MANEIRINHA ALI NAS PEDRAS")) - -("sksp0043" :hint #x24e - (0 "DAXTER" "TALVEZ FOSSE BOM TROCAR UMA IDEIA COM O PESCADOR.") - (95) - (100 "DAXTER" "ME FALARAM QUE ELE ESTAVA NA SELVA PROIBIDA, PESCANDO NO RIO DE BAIXO!") - ) - -("asstvb09" :hint #x24f - (0 "KEIRA" "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA CARREGAR O ESCUDO.") - (216) - (234 "KEIRA" "VOCÊ NÃO CONSEGUE PASSAR ANTES DE PEGAR POWER CELLS SUFICIENTES.") - ) - -("sksp018a" :hint #x297 - (0 "DAXTER" "AQUELE FAZENDEIRO PREGUIÇOSO NOS DEVE UMA POWER CELL!") - (156 "DAXTER" "VAMOS FALAR COM ELE!") - ) - -("asstvb04" :hint #x2b1 - (0 "KEIRA" "ÓTIMO, VOCÊS PEGARAM POWER CELLS SUFICIENTES PARA O ESCUDO DE CALOR, ME ENCONTREM") - (233 "KEIRA" "NA ENTRADA DO DESFILADEIRO DE FOGO, SUBINDO O PENHASCO ATRÁS DA CASA DO FAZENDEIRO.") - (559 "KEIRA" "TRAGAM AS POWER CELLS RÁPIDO, MEU PAI DISSE QUE VIU MAIS LURKERS POR AÍ") - ) - -("asstvb08" :hint #x2b2 - (0 "KEIRA" "TRAGAM LOGO AS POWER CELLS, ESTOU ESPERANDO NA ENTRADA DO DESFILADEIRO DE FOGO") - (260 "KEIRA" "NO TOPO DO PENHASCO ATRÁS DA CASA DO FAZENDEIRO") - ) - -;; ----------------- -;; beach -;; ----------------- - -("bird-lady-beach-resolution" - (30 "SRA.PÁSSARO" "NOSSA!, EU ESPERO QUE O COITADINHO ESTEJA BEM, TOMA, UMA POWER CELL PELA SUA CORAGEM.") - (243) - (306 "FLUT FLUT" "MAMA!") - (354) - (406 "FLUT FLUT" "MAMA!") - (430 "DAXTER" "OH NÃO! NÃO, NÃO, NÃO, NÃO!") - (533) - (535 "SRA.PÁSSARO" "OLHA SÓ... NÃO É FOFO? ELE ACHA QUE VOCÊ É A MÃE DELE.") - (696) - (699 "DAXTER" "EH? EU NÃO SOU TUA MÃE! TÁ VENDO ALGUMA PENA AQUI?") - (803) - (807 "SRA.PÁSSARO" "OH, AMOR A PRIMEIRA VISTA! AHH...") - (936) - (939 "SRA.PÁSSARO" "OLHA GAROTOS, EU VOU LEVAR ESSE PINTINHO DE VOLTA PRA VILA COMIGO") - (1054 "SRA.PÁSSARO" "E PEDIR PARA O SÁBIO TOMAR CONTA DELE.") - ) - -("bird-lady-introduction" - (125 "SRA.PÁSSARO" "MINHA NOSSA, ESSE PASSARINHO ESTÁ TERRIVELMENTE DOENTE.") - (245) - (251 "DAXTER" "HUH! TU TAMBÉM NÃO TÁ ESSAS COISAS NÃO, MOÇA!") - (328) - (331 "SRA.PÁSSARO" "OH, DESCULPA. EU ACHEI QUE VOCÊ FOSSE UMA ANDORINHA PINTADA DE BARRIGA AMARELA.") - (451) - (454 "SRA.PÁSSARO" "SABE, ONTEM EU VI CRIATURAS PERVERSAS") - (578 "SRA.PÁSSARO" "CAPTURAREM UMA MÃE FLUT FLUT PERTO DA PRAIA.") - (648) - (654 :offscreen "SRA.PÁSSARO" "AGORA O POBRE OVO DELA FICOU ÓRFÃO NUM NINHO NO TOPO DO PENHASCO") - (796 :offscreen "SRA.PÁSSARO" "E EU NÃO CONSIGO CHEGAR ATÉ ELE. SE VOCÊ PUDER SUBIR LÁ E EMPURRAR O OVO, EU JUNTEI") - (945 :offscreen "SRA.PÁSSARO" "UM POUCO DE FENO AQUI EM BAIXO PARA QUE ELE CAIA EM SEGURANÇA") - (1041) - (1044 "SRA.PÁSSARO" "FAÇA ESSE FAVOR A UMA VELHA SENHORA E EU LHE DAREI UMA POWER CELL.") - (1198) - ) - -("bird-lady-reminder-1" - (56 "SRA.PÁSSARO" "OH, OLÁ DE NOVO, VOCÊS ENCONTRARAM AQUELE OVO AZUL NO TOPO DO PENHASCO?") - (208) - (211 "SRA.PÁSSARO" "EMPURRE-O PARA CAIR AQUI EM BAIXO E TE DAREI UMA POWER CELL!") - (348) - ) - -("bird-lady-reminder-2" - (58 "SRA.PÁSSARO" "VOCÊS MENINOS AINDA ESTÃO PASSEANDO POR AQUI? HO HO HO.") - (170) - (174 "SRA.PÁSSARO" "APOSTO QUE AQUELE POBRE OVO SOZINHO NO PENHASCO DEVE ESTAR COM MUITO FRIO.") - (313) - (316 "SRA.PÁSSARO" "SALVE-O EMPURRANDO ELE PARA FORA DO PENHASCO E EM TROCA TE DAREI UMA POWER CELL.") - ) - -("mayor-introduction" - (31 "PREFEITO" "NÃO... (MURMURA) NÃO ME DIGA QUE VOCÊS DOIS TAMBÉM ESTÃO COM PROBLEMAS!") - (171) - (174 "PREFEITO" "PRIMEIRO EU OUÇO SOBRE MONSTROS AVISTADOS PRÓXIMO A VILA E AGORA ISSO .") - (313) - (320 "PREFEITO" "ESTÃO VENDO AQUELAS ENGRENAGENS ALI, GAROTOS? VEEM ELAS? VEEM QUE ELAS NÃO SE MEXEM?") - (479 "PREFEITO" "ISSO SIGNIFICA QUE NOSSA VILA ESTÁ SEM ENERGIA!") - (569) - (576 "PREFEITO" "O RAIO DE ECO AZUL QUE VINHA DA SELVA PROIBIDA FOI INTERROMPIDO!") - (685) - (689 "PREFEITO" "E TODO MUNDO ESTÁ COM MEDO DEMAIS PARA IR LÁ E DESCOBRIR O QUE HOUVE.") - (850) - (864 "DAXTER" "VOCÊ PAGOU A CONTA?") - (911) - (915 "PREFEITO" "YEAH-HMM? OH-HUH-OH, VOCÊ É ENGRAÇADO.") - (1068) - (1074 "PREFEITO" "OLHA, SE VOCÊS DOIS CONSERTAREM O RAIO DE ECO EU DOU UMA POWER CELL.") - (1262 "PREFEITO" "OH OOH OOH E-E MAIS UMA COISA, UH...") - (1346 "PREFEITO" "SE ESTIVEREM INTERESSADOS EM FAZER UMA CONTRIBUIÇÃO PARA MINHA CAMPANHA DE REELEIÇÃO,") - (1551 "PREFEITO" "EU-EU POSSO TALVEZ DAR MAIS UMA POWER CELL!") - (1668) - (1671 "PREFEITO" "A CONTRIBUIÇÃO MÍNIMA É, OH, BEM MODESTA...") - (1797 "PREFEITO" "90 ORBES PRECURSORAS.") - ) - -("mayor-reminder-beams" - (26 "PREFEITO" "JÁ VOLTARAM? E SEM CONSERTAR OS RAIOS DE ECO AZUL?") - (157 "PREFEITO" "A VILA PRECISA DE VOCÊS, GAROTOS!") - ) - -("mayor-reminder-donation" - (26 "PREFEITO" "AH, VEIO FAZER UMA DOAÇÃO PARA A MINHA CAMPANHA?, OH HO HO HO.") - (157) - (160 "PREFEITO" "90 ORBES PRECURSORAS E EM TROCA, UMA POWER CELL, OBRIGADO.") - ) - -("mayor-resolution-beams" - (28 "PREFEITO" "OH HO HO, MAS QUE BELEZURA, OBRIGADO!") - (205 "PREFEITO" "E A VILA INTEIRA IRÁ AGRADECER A MI-") - (269 "PREFEITO" "UH, A VOCÊS, VOCÊS RETORNARAM A ENERGIA A VILA E GARANTIRAM MINHA REELEIÇÃO!") - (472) - (475 "PREFEITO" "E POR ISSO, MEU GAROTO, VOCÊ GANHOU UMA POWER CELL.") - ) - -("mayor-resolution-donation" - (28 "PREFEITO" "ENTÃO ER, VOCÊ UH, QUER CONTRIBUIR? BOM... U-U-UMA QUANTIA SIGNIFICATIVA EU ESPERO.") - (219) - (224 "PREFEITO" "YOOH! EH HE HE, É UMA, OH, ISSO É UMA CONTRIBUIÇÃO SIGNIFICATIVA!") - (365 "PREFEITO" "EU, E-E-EU-E EU SÓ ESPERO QUE ESSA POWER CELL REPRESENTE MINHA GRATIDÃO.") - ) - -("sculptor-introduction" - (30 "ESCULTOR" "EI... CARINHA PELUDO!") - (154) - (161 "ESCULTOR" "AWW... POR UM MINUTO EU ACHEI QUE VOCÊ FOSSE MINHA MUSA.") - (282) - (285 "DAXTER" "SUA O QUE?") - (334) - (343 "ESCULTOR" "VOCÊ NUNCA VIU MINHA MUSA ANTES?") - (424) - (428 "ESCULTOR" "É UM PEQUENO ESQUILO BRILHANTE MAIS OU MENOS DO SEU TAMANHO, BEM VALENTE E SERELEPE!") - (622) - (631 "DAXTER" "OH, ENTENDI, TIPO UM COMPANHEIRO.") - (751) - (757 "ESCULTOR" "E NA VERDADE, SEM MINHA MUSA, NÃO CONSIGO ESCULPIR.") - (915) - (918 "ESCULTOR" "MAS COM ELA EM VOLTA... EU VEJO BELEZA EM TUDO, SABE?") - (1085) - (1089 "ESCULTOR" "AGORA EU NÃO CONSIGO ESCULPIR NEM UMA CAIXA.") - (1182) - (1191 :offscreen "ESCULTOR" "EU ACHO QUE ELA FUGIU PRA AQUELA ILHA DAS NÉVOAS.") - (1278) - (1281 "ESCULTOR" "AWW, SÓ ESPERO QUE ELA ESTEJA BEM.") - (1370) - (1376 "ESCULTOR" "TRAZER ELA DE VOLTA SERIA DIGNO DE UMA POWER CELL!") - (1436) - (1464 "DAXTER" "ESPERA UM MINUTO, NÓS NÃO VAMOS VOLTAR PARA ILHA DAS NÉVOAS!") - (1634) - (1643 "DAXTER" "VAMOS?") - ) - -("sculptor-reminder-1" - (27 "ESCULTOR" "AW EAE CARAS, VOCÊS JÁ ACHARAM MINHA MUSA?") - (169) - ) - -("sculptor-resolution" - (87 "ESCULTOR" "OH, MINHA MUSA, VOCÊS A SALVARAM, AW, VOCÊS SÃO OS MELHORES") - (230 "ESCULTOR" "AQUI, FIQUEM COM ESSA POWER CELL, NÃO PRECISO DELA AGORA QUE TENHO MINHA INSPIRAÇÃO!") - ) - -("BIR-AM01" :hint #x0 (0 "SRA.PÁSSARO" "VOCÊS JÁ ESTÃO PERTO DO OVO?")) -("BIR-AM02" :hint #x0 (0 "SRA.PÁSSARO" "ISSO AÍ, SÓ MAIS UM POUCO!")) -("BIR-AM03" :hint #x0 (0 "SRA.PÁSSARO" "OH, BOM, AGORA EMPURRE. OH, COM CUIDADO!")) -("BIR-AM04" :hint #x0 (0 "SRA.PÁSSARO" "OH, NOSSA, ISSO NÃO FOI CUIDADOSO")) -("BIR-AM05" :hint #x0 (0 "SRA.PÁSSARO" "VAMOS LÁ, EMPURRE O OVO DO PENHASCO!")) -("BIR-AM06" :hint #x0 (0 "SRA.PÁSSARO" "OHH!")) -("BIR-AM07" :hint #x0 (0 "SRA.PÁSSARO" "OH, AQUI, PASSARIN PASSARIN. AQUI, PASSARIN PASSARIN.")) -("BIR-AM08" :hint #x0 (0 "SRA.PÁSSARO" "AQUI, PASSARIN PASSARIN.")) -("BIR-AM09" :hint #x0 (0 "SRA.PÁSSARO" "CUIDADO, É PERIGOSO AÍ NO ALTO!")) -("BIR-AM10" :hint #x0 (0 "SRA.PÁSSARO" "CUIDADO, DE LEVE JÁ BASTA!")) -("BIR-AM11" :hint #x0 (0 "SRA.PÁSSARO" "BOM TRABALHO! AGORA ME ENCONTRE AQUI NO OVO.")) -("BIR-AM12" :hint #x0 (0 "SRA.PÁSSARO" "VOCÊ DEVE SER UM VERDADEIRO AMANTE DOS ANIMAIS!")) -("BIR-AM13" :hint #x0 (0 "SRA.PÁSSARO" "VOCÊ VIU ALGUM OUTRO PÁSSARO LÁ EM CIMA?")) -("BIR-LO01" :hint #x0 (0 "SRA.PÁSSARO" "(BEIJO) (ASSOBIO)")) -("BIR-LO02" :hint #x0 (0 "SRA.PÁSSARO" "OH NOSSA, ESSE É UM LINDO.")) -("BIR-LO03" :hint #x0 (0 "SRA.PÁSSARO" "OH OLHA, É UM MUCKY-MUCK.")) -("BIR-am08" :hint #x0 (0 "SRA.PÁSSARO" "AQUI, PASSARIN PASSARIN...")) -("CHI-AM01" :hint #x0 (0 "PREFEITO" "ISSO É UMA CATÁSTROFE, UMA CATÁSTROFE ESTOU DIZENDO!")) - -("CHI-AM02" :hint #x0 - (0 "PREFEITO" "ELES QUEREM QUE EU VÁ PARA A SELVA - EU! HO HO OH...") - (214) - (219 "PREFEITO" "EU PREFIRO LUTAR COM UM FLUT-FLUT RAIVOSO.") - ) - -("CHI-AM03" :hint #x0 - (0 "PREFEITO" "...PRIMEIRO O BARCO DO PESCADOR, (GAGUEJA) É ATACADO POR UM MONSTRO...") - (352) - (395 "PREFEITO" "E AGORA, E AGORA ISSO... O QUE MAIS PODE DAR ERRADO?") - ) - -("CHI-AM04" :hint #x0 (0 "PREFEITO" "EU NÃO... EU, E-EU... OOH, TALVEZ EU DEVESSE AUMENTAR OS IMPOSTOS PARA RESOLVER ISSO.")) -("CHI-AM05" :hint #x0 (0 "PREFEITO" "PROBLEMAS... PROBLEMAS... PROBLEMAS!")) -("CHI-AM06" :hint #x0 (0 "PREFEITO" "EU NUNCA SEREI REELEITO AGORA...")) -("CHI-AM07" :hint #x0 (0 "PREFEITO" "O QUE HOUVE COM O RAIO DE ENERGIA DA VILA?")) -("CHI-AM08" :hint #x0 (0 "PREFEITO" "EU... ELES, EU NÃO... (GAGUEJA)")) -("CHI-LO01" :hint #x0 (0 "PREFEITO" "...MOINHO DE VENTO, MONSTROS, PODER, REELEIÇÃO...")) -("CHI-LO02" :hint #x0 (0 "PREFEITO" "...AS PESQUISAS, EU... MONSTROS, HM... REELEIÇÃO, OH...")) -("SCU-AM01" :hint #x0 (0 "ESCULTOR" "AW... EU SÓ NÃO CONSIGO MAIS.")) -("SCU-AM02" :hint #x0 (0 "ESCULTOR" "AW, QUERIA TER ALGUMA INSPIRAÇÃO.")) -("SCU-AM03" :hint #x0 (0 "ESCULTOR" "ESTOU TÃO INSPIRADO QUANTO... ESSA PEDRA.")) -("SCU-AM04" :hint #x0 (0 "ESCULTOR" "AW... CADÊ A MINHA MUSA?")) -("SCU-AM05" :hint #x0 (0 "ESCULTOR" "NÃO CONSIGO TRABALHAR ASSIM!")) -("SCU-AM06" :hint #x0 (0 "ESCULTOR" "AH CARA... SERÁ QUE ELA VAI UM DIA VOLTAR PRA MIM?")) -("SCU-LO01" :hint #x0 (0 "ESCULTOR" "AH CARA...")) -("sksp0028" :hint #x0 (0 "DAXTER" "CHUTA O OVO! HEE-HEE! BICA ELE! CHUTA ELE!")) -("sksp0019" :hint #x236 (0 "DAXTER" "HEY, GAIVOTAS! BORA BOTAR ELAS PRA CORRER.")) - -("sksp0026" :hint #x237 - (0 "DAXTER" "HEY! AQUELE PELICANO CATOU A POWER CELL!") - (197) - (200 "DAXTER" "BORA COMER O PELICANO NA PORRADA!") - ) - -("sksp0030" :hint #x239 (0 "DAXTER" "EI, TENTA SOCAR AS PEDRAS PRA TIRA-LAS DO CAMINHO!")) -("sksp0031" :hint #x23a (0 "DAXTER" "OOH! BORA USAR O CANHÃO PRA EXPLODIR AS COISAS!")) -("sksp0034" :hint #x23b (0 "DAXTER" "AWOOGA! AWOOGA! MERGULHA NESSAS ORBES, JAK, MERGULHA!")) -("sksp0020" :hint #x268 (0 "DAXTER" "YEAH HA HA! BORA FAZER DE NOVO!")) -("sksp0021" :hint #x269 (0 "DAXTER" "AS GAIVOTAS VOLTARAM, VAMO PEGAR ELAS!!")) -("sksp0022" :hint #x26a (0 "DAXTER" "YEAH HA HA HA HA HA!! WOO HO HO HO!")) -("sksp0023" :hint #x26b (0 "DAXTER" "WOOHOO!")) -("sksp0024" :hint #x26c (0 "DAXTER" "YEAH HA HA! YEAH!")) -("sksp0025" :hint #x273 (0 "DAXTER" "WOW! ELAS CAUSARAM UMA AVALANCHE, VAMOS CHECAR.")) -("sksp0027" :hint #x274 (0 "DAXTER" "RÁPIDO, TEMOS QUE PEGAR A POWER CELL ANTES QUE O PELICANO PEGUE ELA DE NOVO.")) - -("sksp0029" :hint #x275 - (0 "DAXTER" "EH, MELHOR IRMOS FALAR COM A SRA.PÁSSARO") - (125 "DAXTER" "E VER SE QUEBRAMOS ESSE OVO DE FLUT FLUT.") - ) - -("sagevb01" :hint #x288 - (0 "SAMOS" "BEM, VEJO QUE VOCÊS FINALMENTE RESOLVERAM DESENTUPIR MEUS COLETORES.") - (347) - (352 "SAMOS" "EU DARIA OS MEUS PARABÉNS, MAS VOCÊS TEM TANTA COISA PRA FAZER QUE NÃO QUERO PERDER TEMPO.") - (705) - (712 "SAMOS" "A PROPÓSITO, SE AS COISAS NÃO FUNCIONAREM,") - (884 "SAMOS" "DAXTER SEMPRE PODERÁ TRABALHAR CUIDANDO DA QUESTÃO DOS RATOS DA VILA.") - (1116 "SAMOS" "NYEH HA HA HA HA.") - ) - -("sksp0443" :hint #x2af (0 "DAXTER" "SOQUE ESSAS ESTACAS DE BAIXO PRA CIMA!")) - -;; ----------------- -;; jungle -;; ----------------- - -("fisher-accept" - (0 :offscreen "PESCADOR" "EXISTEM DOIS TIPOS DE PEIXES QUE PRESTAM, OS DE 1 QUILO E OS DE 5 QUILOS.") - (220 :offscreen "PESCADOR" "HEH. SE TU PERDER 20 QUILOS DE PEIXE BOM, VÔ TOMAR A VARA DA TUA MÃO!") - (432) - (438 :offscreen "PESCADOR" "TEM ENGUIAS VENENOSAS NO RIO.") - (542) - (545 :offscreen "PESCADOR" "SE OCÊ CATAR UM SÓ DESSES TREM, VAI ENVENENAR TODOS OS PEIXES.") - ) - -("fisher-introduction" - (0 "DAXTER" "O QUE TEM NA CESTA?") - (47 "PESCADOR" "SÓ VENTO.") - (100) - (103 "PESCADOR" "SAS PESTE DE MONSTRO RODANO O OCEANO, LASCARAM UMA MORDIDA NO MEU BARCO.") - (226) - (229 "PESCADOR" "E AGORA TÃO COMENO MEUS PEIXE!") - (290) - (293 "PESCADOR" "NÃO IMPORTA O QUE EU FAÇA, NUM CONSIGO PEGA UM ÚNICO PEIXE NESSE RIO.") - (419) - (425 "DAXTER" "WHOOA! TALVEZ... SEJA SEU HÁLITO.") - (515) - (521 "PESCADOR" "ACHA QUE FAZ MELHOR? TENTA CATAR PEIXE COM ESSA REDE PEQUENA!") - (665) - (671 "PESCADOR" "TE DOU UMA POWER CELL SE TU PEGAR 200 QUILOS DOS PESTINHAS!") - (808) - (814 "PESCADOR" "E DEIXO VOCÊ E O CAMARÃOZINHO AQUI USAR MEU BARCO PRA CHEGAR NA ILHA DAS NÉVOAS.") - (955) - (961 "PESCADOR" "IAÍ VÃO ACEITÁ O DESAFIO?") - ) - -("fisher-reject" (2 "PESCADOR" "BEM SE QUISEREM TENTAR GANHAR A POWER CELL, SABEM ONDE ME ENCONTRAR.")) -("fisher-reminder-1" (6 "PESCADOR" "TÃO QUERENDO VER SE GANHAM DO RIO?")) - -("fisher-resolution" - (0 "PESCADOR" "CÊS CONSEGUIRAM, PEGARAM 200 QUILOS DE PEIXE!") - (115) - (120 "PESCADOR" "NADA MAL PRA UMA DUPLA DE GENTE DA TERRA!") - (185) - (199 "PESCADOR" "TA AQUI A POWER CELL, E PODEM PEGAR MEU BARCO NA DOCA DA VILA") - (351 "PESCADOR" "SEMPRE QUE QUISEREM!") - ) - -("FIS-AM01" :hint #x0 (0 "PESCADOR" "GRR, SAS DROGA DE PEIXE... NUM CONSIGO PEGAR UM SÓ.")) -("FIS-AM02" :hint #x0 (0 "PESCADOR" "ESSES MONSTRO MORDERAM MEU BARCO, VÃO ME QUEBRAR.")) - -("FIS-AM03" :hint #x0 - (0 "PESCADOR" "DROGA, ESTAS PESTES!") - (135 "PESCADOR" "PRA MINHA CESTA, MALDITOS PEIXES! VENHAM!...") - (419) - (425 "PESCADOR" "HEH HE HE HE HE...") - ) - -("FIS-AM04" :hint #x0 (0 "PESCADOR" "OH EU AMO O CHEIRO DE PEIXE DE MANHÃ.")) -("FIS-AM05" :hint #x0 (0 "PESCADOR" "OOH QUERIA UM PEIXE BEM SALGADINHO NO PÃO.")) -("FIS-AM06" :hint #x0 (0 "PESCADOR" "AINDA TÔ PENSANDO NO GRANDÃO QUE MI ESCAPOU...")) -("FIS-LO01" :hint #x0 (0 "PESCADOR" "GRR!")) -("FIS-LO03" :hint #x0 (0 "PESCADOR" "HA HA HA HA HA HAH!")) -("FIS-LO04" :hint #x0 (0 "PESCADOR" "MALDITOS PEIXES... NUM ENTRAM NA MINHA REDE!")) -("FIS-LO05" :hint #x0 (0 "PESCADOR" "HA HA HA AH HA HA HA HAH!")) -("FIS-TA01" :hint #x0 (0 "PESCADOR" "PRA ESQUERDA!")) -("FIS-TA02" :hint #x0 (0 "PESCADOR" "VIRA PRA DIREITA!")) -("FIS-TA03" :hint #x0 (0 "PESCADOR" "LÁ VEM UM GRANDÃO!")) -("FIS-TA04" :hint #x0 (0 "PESCADOR" "TU PERDEU UM PESADO AMIGÃO!")) -("FIS-TA05" :hint #x0 (0 "PESCADOR" "NUM ME PERDE MAIS UM ASSIM NÃO!")) -("FIS-TA06" :hint #x0 (0 "PESCADOR" "FIRME GAROTO.")) -("FIS-TA07" :hint #x0 (0 "PESCADOR" "SUAS VELAS TÃO BALANÇANDO AO VENTO, GAROTO.")) -("FIS-TA08" :hint #x0 (0 "PESCADOR" "ESCAPOU.")) -("FIS-TA09" :hint #x0 (0 "PESCADOR" "PARECE QUE OCÊ PRECISA DE UMA REDE MAIOR...")) -("FIS-TA10" :hint #x0 (0 "PESCADOR" "FUGIU DE NOVO!")) -("FIS-TA11" :hint #x0 (0 "PESCADOR" "SEGURA FIRME! TÁ QUASE LÁ...")) -("FIS-TA1A" :hint #x0 (0 "PESCADOR" "ESQUERDA!")) -("FIS-TA2A" :hint #x0 (0 "PESCADOR" "DIREITA!")) - -("sksp0038" :hint #x23c - (0 "DAXTER" "HMM, SE O ECO AZUL CONSEGUE CONSTRUIR UMA PONTE, APOSTO QUE ABRE UMA PORTA!") - (275) - (281 "DAXTER" "VAMOS VOLTAR E TE ENERGIZAR DE NOVO.") - ) - -("sksp0040" :hint #x23d (0 "DAXTER" "VAMOS SUBIR NESSA MÁQUINA E QUEBRAR O ESPELHO QUE TÁ REFLETINDO O RAIO PRECURSOR!")) -("sksp0041" :hint #x23e (0 "DAXTER" "NÓS PRECISAMOS SUBIR NO TOPO DAQUELA TORRE!")) - -("sksp0011" :hint #x240 - (0 "DAXTER" "A GENTE DEVIA PERGUNTAR AO PESCADOR LÁ NO RIO DA SELVA PROIBIDA") - (136 "DAXTER" "SE NÓS PODEMOS PEGAR O BARCO DELE EMPRESTADO PRA IR NA ILHA DAS NÉVOAS!") - ) - -("sksp0039" :hint #x25b - (0 "DAXTER" "EI, TEM MARCAÇÕES DE RELÂMPAGO AZUL NAQUELES POSTES") - (202 "DAXTER" "E TEM ECO AZUL SAINDO DAQUELA FONTE ALI.") - (391) - (400 "DAXTER" "ESTÁ PENSANDO NO QUE EU ESTOU PENSANDO?") - ) - -("sksp0035" :hint #x25c - (0 "DAXTER" "É, TEMOS UM LANÇADOR PRECURSOR AQUI") - (117 "DAXTER" "MAS VOCÊ NÃO ESTÁ ENERGIZADO COM O NEGÓCIO AZUL, ENTÃO NÃO VAI DAR EM NADA!") - ) - -("sksp0018" :hint #x25e - (0 "DAXTER" "NÓS TEMOS QUE IR FALAR PRO PREFEITO QUE ELE TÁ DEVENDO A GENTE") - (223 "DAXTER" "POR CONECTAR O RAIO DE ENERGIA DA VILA!") - ) - -("sksp0037" :hint #x25f - (0 "DAXTER" "ESSA TORRES ESPALHADAS PELA SELVA DEVEM REDIRECIONAR O RAIO DE ECO AZUL.") - (214) - (220 "DAXTER" "VAMO MEXER NELAS!") - ) - -("sksp0b42" :hint #x278 (0 "DAXTER" "PARA DE PERDER OS PEIXES AMARELOS, ELES PESAM 5 QUILOS CADA, É MUITO PEIXE, JAK.")) - -("asstvb02" :hint #x289 - (0 "KEIRA" "WOW, TU VIU ISSO? FONTES DE ECO AZUL FORAM ATIVADAS EM TODO O MUNDO!") - (305) - (315 "KEIRA" "EU SABIA QUE DAVA PRA LIGAR ELAS.") - (435) - (442 "KEIRA" "DEVE TER LUGARES PARA LIGAR AS OUTRAS FONTES TAMBÉM.") - ) - -("sksp0049" :hint #x29c (0 "DAXTER" "ALINHE O RAIO APONTANDO ELE PARA A PRÓXIMA TORRE!")) -("sksp0050" :hint #x29d (0 "DAXTER" "QUEBRE O ESPELHO, JAK!")) -("sksp0051" :hint #x29e (0 "DAXTER" "PEGA ELES, JAK! PEGA ELES!")) -("sksp0052" :hint #x29f (0 "DAXTER" "VAMOS PRA PRÓXIMA TORRE E RECONECTAR O RAIO LÁ!")) -("sksp0053" :hint #x2a0 (0 "DAXTER" "HEY! NÓS PODEMOS SEGUIR O RAIO PRA ACHAR A PRÓXIMA TORRE.")) -("sksp0054" :hint #x2a1 (0 "DAXTER" "PRECISAMOS TE ENERGIZAR COM O NEGÓCIO AZUL PRA ABRIR ISSO!")) - -;; ----------------- -;; misty -;; ----------------- - -("fishermans-boat-ride-to-village1-alt" - (167 :offscreen "VELHO" "ESSES DOIS PODEM SE TORNAR UM PROBLEMA.") - (261) - (264 :offscreen "MULHER" "NÃO SE PREOCUPE, QUERIDO IRMÃO, VOU MANDAR MINHA TROPA DE LURKERS LIDAR COM ELES.") - (408) - (411 "VELHO" "SÓ GARANTA QUE ELES NÃO VÃO CHEGAR PERTO DEMAIS DAS OPERAÇÕES AO NORTE.") - (556) - (562 "MULHER" "EU DUVIDO QUE ELES CHEGUEM TÃO LONGE.") - (623 "MULHER" "MAS SE CHEGAREM, TERÃO UMA SURPRESA NA VILA DA PEDRA.") - (785) - (790 "VELHO" "ENTÃO... VAI SOLTAR O KLAWW DA JAULA?") - (957) - (966 "MULHER" "ACHO QUE VALE O RISCO.") - (1053) - (1078 "VELHO" "DE FATO.") - (1148) - ) - -("sksp0064" :hint #x245 (0 "DAXTER" "FICA ESPERTO, VOCÊ LEMBRA O QUE ROLOU DA ULTIMA VEZ QUE VIEMOS AQUI.")) -("sksp0067" :hint #x249 (0 "DAXTER" "NÃO CAIA NA NÉVOA EM BAIXO DE NÓS, OU NÃO IREMOS SAIR MAIS DE LÁ.")) -("sksp0059" :hint #x26e (0 "DAXTER" "ESSE LUGAR ME DÁ ARREPIOS, VAMOS TENTAR FICAR FORA DO LODO, OKAY?")) - -("sksp0060" :hint #x26f - (0 "DAXTER" "ESSE LUGAR ME ASSUSTA, E ACREDITE, ESTÁ SENDO UMA EXPERIÊNCIA COMPLETAMENTE NOVA.") - (337 "DAXTER" "QUANDO SE ESTÁ COBERTO DE PELOS!") - ) - -("sksp0056" :hint #x27b (0 "DAXTER" "HEY! TÔ VENDO A MUSA DO ESCULTOR!")) -("sksp0062" :hint #x27e (0 "DAXTER" "VAMOS BATER NESSES LURKERS DE BALÃO E PICOTAR ELES")) - -("sksp0063" :hint #x27f - (0 "DAXTER" "EU DISSE: \"PICOTAR OS LURKERS,\" JAK. NÃO AS MINAS!") - (332) - (344 "DAXTER" "REGRA NUMERO UM: EVITE AS MINAS!") - ) - -("sagevb02" :hint #x28a - (6 "SAMOS" "EU TENHO QUE ADMITIR, ESTOU SURPRESO. VOCÊS DOIS NÃO ESTRAGARAM TUDO!") - (385) - (400 "SAMOS" "AGORA QUE OS LURKERS NÃO CONSEGUEM ABRIR O ARMAZÉM, ELES NÃO PODEM INUNDAR O MUNDO") - (710 "SAMOS" "EM ECO NEGRO E CAUSAR UMA DESTRUIÇÃO INIMAGINÁVEL.") - (863) - (880 "SAMOS" "TIRA ESSE SORRISO RIDÍCULO DA CARA, DAXTER, VOCÊS DOIS TEM MUITO O QUE FAZER.") - (1191 "SAMOS" "AGORA MÃOS À OBRA!") - ) - -("asstvb03" :hint #x28b - (0 "KEIRA" "ÓTIMO, VOCÊS ACABARAM COM OS LURKERS LANÇADORES DE MINA!") - (190 "KEIRA" "ELES VINHAM AMEAÇANDO AS ÁGUAS EM VOLTA DA VILA HÁ SEMANAS.") - (391 "KEIRA" "TRAGA O ZOOMBER DE VOLTA AO TRANS-PAD E EU VOU TELEPORTA-LO DE VOLTA.") - ) - -("sksp0069" :hint #x2a3 (0 "DAXTER" "É UMA EMBOSCADA, JAK! É UMA EMBOSCADA!")) -("sksp0070" :hint #x2a4 (0 "DAXTER" "PULE, E ENTÃO MERGULHE NA GANGORRA.")) -("sksp0071" :hint #x2a5 (0 "DAXTER" "PEGA O ECO VERMELHO!")) -("sksp0072" :hint #x2a6 (0 "DAXTER" "ECO VERMELHO DEIXA OS SEUS ATAQUES MAIS FORTES.")) -("sksp0073" :hint #x2a7 (0 "DAXTER" "NÓS PRECISAMOS DE ECO AZUL PRA ENERGIZAR ESSA PLATAFORMA!")) -("sksp0435" :hint #x2aa (0 "DAXTER" "DERRUBA ESSES OSSOS!")) - -;; ----------------- -;; firecanyon -;; ----------------- - -("assistant-firecanyon-resolution" - (25 "KEIRA" "ÓTIMO! VOCÊ CONSEGUIU AS 20 POWER CELLS PARA O ESCUDO DE CALOR!") - (140) - (143 "KEIRA" "TENHA CUIDADO, O ESCUDO SÓ VAI PROTEGER O ZOOMER ATÉ CHEGAR EM 260 GRAUS,") - (295 "KEIRA" "ENTÃO TENTE MANTÊ-LO FRIO.") - (343) - (346 :offscreen "KEIRA" "VOAR PELA LAVA ABERTA VAI TE AQUECER RÁPIDO COM CERTEZA.") - (458) - (462 "KEIRA" "CHEGUE A 260 GRAUS E ACABOU.") - (546) - (552 "DAXTER" "ACABOU?! TIPO ACABOU VIRANDO METAL DERRETIDO?!") - (636) - (639 "KEIRA" "O DESFILADEIRO DE FOGO É MUITO QUENTE, ENTÃO BUSQUE PLATAFORMAS DE SALTO") - (745 "KEIRA" "PARA TE MANTER FORA DO CHÃO.") - (792) - (795 :offscreen "KEIRA" "EU TAMBÉM SOLTEI VÁRIOS BALÕES AZUIS DE RESFRIAMENTO") - (895 :offscreen "KEIRA" "USE ELE PARA DIMINUIR A TEMPERATURA RAPIDAMENTE.") - (956) - (962 "KEIRA" "OH! E QUANDO VOCÊ ESTIVER DO OUTRO LADO, NÃO ESQUEÇA DE ATIVAR") - (1063 "KEIRA" "O TELEPORTADOR NO LABORATÓRIO DO SÁBIO AZUL.") - (1140) - (1146 "KEIRA" "PARA QUE A GENTE POSSA SE TELEPORTAR E ENCONTRAR VOCÊS!") - (1222) - (1228 "KEIRA" "BOA SORTE!") - ) - -("sksp0077" :hint #x502 (0 "DAXTER" "BALÕES BOM, MAGMA QUENTE FLAMEJANTE RUIM!")) -("sksp0078" :hint #x503 (0 "DAXTER" "VOE PELAS PLATAFORMAS PRECURSORAS PARA NOS MANTER FRIO.")) - -("sksp0079" :hint #x504 - (0 "DAXTER" "AHH! EU VO MORRER! EU TO CHEGANDO, VOVÔ!") - (257) - (270 "DAXTER" "TU TEM QUE LEVAR ESSA COISA PARA O OUTRO LADO ANTES QUE SUPERAQUEÇA!") - ) - -("sksp0080" :hint #x505 (0 "DAXTER" "USE A VOLTA PARA PEGAR IMPULSO")) -("sksp0081" :hint #x506 (0 "DAXTER" "AHH! TALVEZ EU DEVESSE PILOTAR!")) -("sksp0082" :hint #x507 (0 "DAXTER" "VOCÊ TÁ TENTANDO EVITAR AS CAIXAS DE ECO NEGRO, NÉ?!")) -("sksp0083" :hint #x508 (0 "DAXTER" "OOH! VÊ SE DÁ PRA PEGAR IMPULSO BATENDO NOS LURKERS!")) -("sksp0084" :hint #x509 (0 "DAXTER" "QUASE, QUASE!")) -("sksp0085" :hint #x50a (0 "DAXTER" "WHOA! ESSE BEBÊ TÁ FICANDO QUENTE DEMAIS!")) -("sksp0086" :hint #x50b (0 "DAXTER" "MAIS UNS SEGUNDOS E ESTAMOS FRITOS!")) -("sksp0087" :hint #x50d (0 "DAXTER" "ACERTE OS BALÕES PARA ESFRIAR!")) -("sksp0088" :hint #x50e (0 "DAXTER" "LÁ VEM MAIS UM BALÃO!")) -("sksp0089" :hint #x50f (0 "DAXTER" "QUERIA TER DORMIDO ESSA MANHÃ!")) -("sksp0090" :hint #x510 (0 "DAXTER" "TU PERDEU UM BALÃO, NÓS PRECISAMOS DELES OU ESTAMOS COZIDOS!")) -("sksp0091" :hint #x511 (0 "DAXTER" "ESSA NENÉM TA FICANDO MUITO QUENTE!")) -("sksp0092" :hint #x512 (0 "DAXTER" "TÁ SENTINDO CHEIRO DE QUEIMADO?!")) -("sksp0093" :hint #x513 (0 "DAXTER" "ACHO QUE MEU RABO TÁ PEGANDO FOGO!")) -("sksp0094" :hint #x514 (0 "DAXTER" "VAI EXPLODIR!")) -("sksp0095" :hint #x515 (0 "DAXTER" "WAHOO! NÓS CONSEGUIMOS!")) -("sksp0096" :hint #x516 (0 "DAXTER" "TEM MOSCAS DE BUSCA AQUI TAMBÉM!")) - -;; ----------------- -;; village2 -;; ----------------- - -("assistant-village2-introduction" - (57 "SAMOS" "WHOA!") - (117) - (157 "SAMOS" "ACHO QUE NUNCA VOU ME ACOSTUMAR COM ESSE FORMIGAMENTO DO TELEPORTE.") - (280) - (298 "SAMOS" "HEY!") - (326) - (332 :offscreen "SAMOS" "PARECE QUE O SÁBIO AZUL DEU UMA FESTA.") - (410 "KEIRA" "MINHA NOSSA! VILA DA PEDRA ESTÁ EM CHAMAS!") - (497) - (500 "SAMOS" "UMA BELA FESTA.") - (562) - (565 "KEIRA" "NÃO, NÃO! TÔ TENTANDO DIZER QUE A VILA DA PEDRA FOI BOMBARDEADA COM ROCHAS FLAMEJANTES!") - (726) - (807 "KEIRA" "OH! E PARECE QUE O SÁBIO AZUL ESTÁ TRABALHANDO EM UMA MÁQUINA PARA LEVITAR ELAS.") - (957 :offscreen "KEIRA" "PRESSUPONDO QUE ESTEJA FUNCIONANDO, ELA VAI PRECISAR DE POWER CELLS.") - (1070 "KEIRA" "ACHO QUE VOCÊS DOIS VÃO PRECISAR ENCONTRAR MAIS.") - (1145 "SAMOS" "MELHOR DARMOS UMA OLHADA NAS ANOTAÇÕES DELE.") - (1220 :offscreen "SAMOS" "JAK, VÁ CHECAR OS MORADORES, E ENTÃO VOLTE E NOS INFORME.") - (1370 :offscreen "SAMOS" "E LEVE A BOLA DE PELO COM VOCÊ!") - ) - -("assistant-village2-introduction-flutflut" - (22 "KEIRA" "JÁ VOLTARAM, MENINOS?") - (69) - (75 "DAXTER" "\"MENINO\"?") - (103) - (110 "DAXTER" "EI GATINHA, EU SOU UM TOTALMENTE CRESCIDO...") - (169) - (188 "DAXTER" "AH...") - (210) - (222 "DAXTER" "ALGUM TRECO... ALGUM TRECO FELPUDO.") - (302) - (309 "KEIRA" "OH, ADIVINHA? COM A PERMISSÃO DA SRA. PÁSSARO,") - (414 "KEIRA" "EU EQUIPEI A BEBÊ FLUT-FLUT COM UMA SELA.") - (512) - (522 "KEIRA" "PARECE QUE TEM UM TRANS-PAD NO PÂNTANO LAMACENTO.") - (644) - (648 "KEIRA" "SE VOCÊ ENCONTRÁ-LO, TE MANDO A FLUT-FLUT TOTALMENTE EQUIPADA.") - (772) - (775 "KEIRA" "OS SALTOS DELA PODEM SER ÚTEIS CRUZANDO O LODO.") - (870) - ) - -("assistant-village2-introduction-robbers" - (30 "KEIRA" "HEY, VOCÊS DOIS!") - (66 "KEIRA" "SEI ONDE ENCONTRAR OUTRA POWER CELL!") - (132) - (138 "KEIRA" "DE ACORDO COM ESSAS ANOTAÇÕES,") - (176 "KEIRA" "HÁ ALGUNS DIAS ATRÁS, LURKERS VOADORES ROUBARAM UMA DO SÁBIO AZUL,") - (292 "KEIRA" "E LEVARAM ELA VOANDO PARA O BACIA PRECURSOR.") - (367 "KEIRA" "APOSTO QUE VOCÊS CONSEGUEM ATROPELAR OS LURKERS COM O ZOOMER") - (435 "KEIRA" "ATÉ ACHAREM O QUE LEVOU A POWER CELL.") - (502 "KEIRA" "VOCÊS VÃO ACHAR O ZOOMER PERTO DA BACIA PRECURSOR.") - (614) - ) - -("assistant-village2-introduction-room" - (30 "KEIRA" "APARENTEMENTE, A ESTRUTURA PRECURSOR AO FINAL DA COSTA") - (124 "KEIRA" "LEVA PARA UMA CIDADE SUBMERSA PERDIDA.") - (201) - (204 "KEIRA" "O SÁBIO AZUL ESTAVA TENTANDO DESCOBRIR") - (258 "KEIRA" "COMO TRAZER UMA DAS CAPSULAS PARA A SUPERFÍCIE.") - (338 "KEIRA" "MAS ELE NUNCA TEVE SUCESSO.") - (395 "KEIRA" "VOCÊS DEVERIAM DAR UMA OLHADA!") - (427) - (436 "DAXTER" "UH... NÃO TEM MUITOS, UM...") - (495 "DAXTER" "TUBARÕES LURKER NAQUELAS ÁGUAS?") - (555 "KEIRA" "POR QUE? TÁ COM MEDO?") - (635 "DAXTER" "EU? CLARO QUE NÃO!") - (702 "DAXTER" "SÓ TÔ CUIDANDO DO JAK AQUI!") - (752 "DAXTER" "VOCÊ, É, HEH...") - (782) - (800 "DAXTER" "SABE O PEIDÃO QUE ELE É.") - (845) - (870 "KEIRA" "BEM, SE VOCÊ NADAR PELO RECIFE DE CORAL, EU DUVIDO QUE OS TUBARÕES VENHAM TE INCOMODAR.") - (998 "KEIRA" "ELES NÃO GOSTAM DE ÁGUA RASA.") - ) - -("assistant-village2-reminder-1-flutflut" - (24 "KEIRA" "TENHO CERTEZA QUE A FLUT-FLUT VAI SER ÚTIL NO PÂNTANO.") - (115 "KEIRA" "ENCONTRE O TRANS-PAD E EU TELEPORTO ELA ATÉ VOCÊ.") - (200) - ) - -("assistant-village2-reminder-1-robbers" - (23 "KEIRA" "VOU TELEPORTAR O ZOOMER ATÉ VOCÊ NA BACIA PRECURSOR,") - (111 "KEIRA" "PRA VOCÊ PODER PERSEGUIR AQUELES LURKERS VOADORES QUE FALAMOS A RESPEITO.") - (230) - ) - -("assistant-village2-reminder-1-room" - (35 "KEIRA" "VOCÊS JÁ NADARAM PRA FORA DA CIDADE PRECURSOR PERDIDA?") - (118) - (121 "KEIRA" "VOCÊS DEVERIAM TENTAR ERGUER A SALA QUE O SÁBIO AZUL ESTAVA BUSCANDO.") - (230) - ) - -("assistant-village2-resolution" - (35 "KEIRA" "ÓTIMO, VOCÊS TEM AS CELLS PRA MÁQUINA!") - (112 "KEIRA" "ELAS DEVEM DAR ENERGIA O BASTANTE PARA LEVANTAR AQUELA ROCHA.") - (206) - (295 "KEIRA" "LÁ VAI!") - (330) - (335 "KEIRA" "AGORA, TENHAM CUIDADO ENFRENTANDO AQUELE MONSTRO LURKER LÁ EM CIMA.") - (433) - (441 "DAXTER" "ESPERE! UH...") - (489 "DAXTER" "EU VOU FICAR AQUI E CUIDAR DA KEIRA!") - (562) - (568 "DAXTER" "JAK, EU ACHO QUE VOCÊ ESTÁ PRONTO PRA CUIDAR DAQUELE MONSTRO SEM MIM.") - (663) - (669 "KEIRA" "OH, TÃO HEROICO DA SUA PARTE.") - (734) - ) - -("gambler-introduction-1" - (24 "APOSTADOR" "AW, NÃO. MAIS UM \"HERÓI\".") - (97 "APOSTADOR" "EU PERDI MINHAS CALÇAS APOSTANDO NA TAL \"GRANDE LUTA\" DESSE") - (186 "APOSTADOR" "HERÓI AQUI CONTRA O MONSTRO LÁ EM CIMA.") - (238) - (241 "APOSTADOR" "PODE CONFIAR, A JOGADA É APOSTAR NO MONSTRO.") - (330) - (344 "APOSTADOR" "ESSA APOSTA ME DEIXOU QUASE ZERADO!") - (414 "APOSTADOR" "ENTÃO, VAI AQUI UMA PROPOSTA.") - (473 "APOSTADOR" "ME TRAGA 90 ORBES PARA EU ME REERGUER E SAIR DESSE BARRIL,") - (570 "APOSTADOR" "E EU TE DOU UMA POWER CELL EM TROCA.") - (651 "APOSTADOR" "E SE ESTIVER NO PIQUE, EU TENHO MAIS UMA APOSTA EM JOGO.") - (734 :offscreen "APOSTADOR" "MEU GRANDE RETORNO!") - (788) - (794 :offscreen "APOSTADOR" "SUPERE O TEMPO DO FALECIDO GORGE NA BACIA PRECURSOR,") - (902 :offscreen "APOSTADOR" "E EU VOU GANHAR UMA NOTA PRETA!") - (949 "APOSTADOR" "E POR ISSO, TE DAREI MAIS UMA POWER CELL.") - ) - -("gambler-reminder-money" - (2 "APOSTADOR" "EI. NÃO SE ESQUEÇA DAS MINHAS ORBES.") - (77 "APOSTADOR" "90 E TE DOU UMA, UMA POWER CELL, É ISSO!") - ) - -("gambler-reminder-race" - (1 "APOSTADOR" "BEM, TÃO ESPERANDO O QUE?") - (60 "APOSTADOR" "ESSE BARRIL TÁ ME COÇANDO!") - (113) - (116 "APOSTADOR" "SUPERE O RECORDE DO FALECIDO GORGE,") - (181 "APOSTADOR" "E VAMOS SER VENCEDORES!") - ) - -("gambler-resolution-money" - (0 "APOSTADOR" "HEH HEH HEH! OH, YEAH!") - (70) - (76 "APOSTADOR" "ESSAS ORBES VÃO ME TIRAR DESSE BARRIL!") - (174 "APOSTADOR" "TÁ AQUI A POWER CELL QUE EU PROMETI!") - ) - -("gambler-resolution-race" - (0 "APOSTADOR" "OH, BOA DIREÇÃO, GAROTO! EU SABIA QUE AQUELE RECORDE IA CAIR.") - (140 "APOSTADOR" "AGORA, AQUI ESTÁ SUA POWER CELL, E EU POSSO PEGAR MINHA GRANA!") - ) - -("geologist-introduction" - (27 "GEOLOGISTA" "VOCÊS DOIS PARECEM UMA DUPLA DE CAMARADAS COMPETENTES.") - (98 "GEOLOGISTA" "EU ESTOU NO MEIO DE UMA PESQUISA,") - (149 "GEOLOGISTA" "E TALVEZ VOCÊS POSSAM ME AJUDAR.") - (198) - (203 "DAXTER" "HEY, NÓS QUE ESTAMOS NA GRANDE JORNADA AQUI.") - (276 "DAXTER" "NÓS QUE PEDIMOS SUA AJUDA.") - (323) - (326 "GEOLOGISTA" "BEM, TALVEZ POSSAMOS NOS AJUDAR.") - (392) - (402 "GEOLOGISTA" "EU VENHO ESTUDANDO HÁ ANOS OS HÁBITOS DE ESCAVAÇÃO DAS") - (470 "GEOLOGISTA" "TOUPEIRAS RELÂMPAGO NA BACIA PRECURSOR PRÓXIMA A NOSSA VILA.") - (557) - (566 :offscreen "GEOLOGISTA" "MAS AGORA ESSES LURKERS TERRÍVEIS ENXOTARAM AS TOUPEIRAS PARA A SUPERFICIE!") - (682) - (685 :offscreen "GEOLOGISTA" "E POR SEREM CEGAS COMO MORCEGOS, NÃO CONSEGUEM ACHAR O CAMINHO DE VOLTA O SUBSOLO.") - (808) - (822 "GEOLOGISTA" "SE VOCÊ PUDESSE GUIÁ-LAS DE VOLTA ATÉ OS SEUS BURACOS,") - (890 "GEOLOGISTA" "VOCÊ PODE SALVAR A VIDA DELAS.") - (945) - (955 "GEOLOGISTA" "EU TENHO UMA POWER CELL QUE DIZ QUE VOCÊ É CAPAZ.") - (1028) - (1035 "DAXTER" "YEAH, TOUPEIRAS RELÂMPAGOS... ESTAMOS PREOCUPADOS.") - (1150) - (1163 "DAXTER" "TALVEZ POR DUAS POWER CELLS!") - (1232 "GEOLOGISTA" "BOA TENTATIVA. MAS ESTOU DISPOSTA A DEIXAR MAIS UMA POWER CELL") - (1342 "GEOLOGISTA" "EM TROCA DE 90 ORBES PRECURSORAS PARA MEU EQUIPAMENTO DE PESQUISA.") - (1460 "GEOLOGISTA" "JUSTO?") - (1506) - ) - -("geologist-reminder-moles" - (24 "GEOLOGISTA" "VOCÊS LEVARAM AS TOUPEIRAS RELÂMPAGO DE VOLTA AO SUBSOLO?") - (109) - (118 "GEOLOGISTA" "SE APRESSEM - A LUZ DO SOL NÃO FAZ BEM PRA ELAS!") - ) - -("geologist-reminder-money" (26 "GEOLOGISTA" "PRECISO DAQUELAS ORBES PRA CONTINUAR MINHA PESQUISA!")) - -("geologist-resolution-moles" - (30 "GEOLOGISTA" "OBRIGADA POR SALVAR AS TOUPEIRAS, FOI MUITO BACANA DA SUA PARTE.") - (140) - (150 "GEOLOGISTA" "AQUI ESTÁ UMA POWER CELL PARA TE AJUDAR.") - (227) - (237 "GEOLOGISTA" "AGORA POSSO VOLTAR A MINHA PESQUISA!") - ) - -("geologist-resolution-money" - (27 "GEOLOGISTA" "OH, VOCÊ TEM AS ORBES!") - (80) - (80 "GEOLOGISTA" "AQUI ESTÁ A POWER CELL QUE COMBINAMOS.") - (154) - ) - -("sage-bluehut-introduction-crop-dusting" - (3 "SAMOS" "BEM, A SITUAÇÃO AQUI TÁ FEDENDO MAIS QUE SOVACO DE LURKER.") - (144) - (152 "SAMOS" "ANTES DO SUMIÇO DO SÁBIO AZUL,") - (220 "SAMOS" "ELE REGISTROU PROBLEMAS SIGNIFICATIVOS EM TODA REGIÃO EM VOLTA.") - (357) - (360 "SAMOS" "DE INTERESSE PARTICULAR MEU, ESTÁ A INFESTAÇÃO DE ECO NEGRO") - (490 "SAMOS" "EM PLANTAS INOCENTES NA BACIA PRECURSOR.") - (591) - (597 :offscreen "SAMOS" "KEIRA IRÁ TELEPORTAR O ZOOMER PARA O TRANS-PAD MAIS PRÓXIMO.") - (720 "SAMOS" "LEVE O ZOOMER PARA UMA FONTE DE ECO VERDE,") - (787 "SAMOS" "E ENTÃO LEVE O ECO VERDE ATÉ AS PLANTAS INFECTADAS.") - (896 "SAMOS" "ISSO DEVE CURÁ-LAS.") - (948) - (951 "SAMOS" "NÃO PERCA UMA ÚNICA PLANTA, SE NÃO AS INFECTADAS IRÃO CORROMPER AS SAUDÁVEIS.") - (1168) - (1195 :offscreen "SAMOS" "E, DAXTER...") - (1254 "SAMOS" "COMECE A FAZER FAXINA AQUI!") - (1310 "SAMOS" "E NÃO ESQUEÇA OS CANTINHOS!") - ) - -("sage-bluehut-introduction-prec-arm" - (0 "SAMOS" "BEM, ESPERO QUE TENHAM FEITO UMA MARMITA. PORQUE ESTAMOS SÓ COMEÇANDO.") - (130) - (140 "SAMOS" "DE ACORDO COM AS ANOTAÇÕES DO SÁBIO AZUL,") - (208 "SAMOS" "LURKERS INFESTARAM O PÂNTANO DO OUTRO LADO DA BAÍA.") - (300) - (304 :offscreen "SAMOS" "PARECE QUE ESTÃO PLANEJANDO USAR UM DIRIGÍVEL") - (417 :offscreen "SAMOS" "PARA RETIRAR UM IMPORTANTE ARTEFATO PRECURSOR DA LAMA.") - (531) - (549 :offscreen "SAMOS" "VOCÊS TERÃO QUE IR LÁ E DESTRUIR AS CORDAS DO DIRIGÍVEL.") - (675) - (685 "SAMOS" "QUEM SABE O QUE ELES QUEREM COM ESSE ARTEFATO?") - (764 "SAMOS" "MAS ASSIM COMO O HÁLITO DA COISINHA LARANJA AQUI, NÃO PODE SER BOM.") - ) - -("sage-bluehut-reminder-1-crop-dusting" - (26 "SAMOS" "MEUS OLHOS DEVEM ESTAR ME ENGANANDO!") - (93) - (99 "SAMOS" "PORQUE VOCÊS DOIS COM CERTEZA ESTÃO NA BACIA PRECURSOR,") - (240 "SAMOS" "SALVANDO AS PLANTAS INFECTADAS COM ECO NEGRO.") - ) - -("sage-bluehut-reminder-1-prec-arm" - (0 "SAMOS" "O QUE VOCÊS ESTÃO FAZENDO VOLTANDO AQUI?") - (70) - (82 "SAMOS" "EU CONSIGO VER DA VARANDA") - (132 :offscreen "SAMOS" "QUE O DIRIGÍVEL DOS LURKERS AINDA ESTÁ EM CIMA DO PÂNTANO.") - (250) - (255 "SAMOS" "VOCÊS OBVIAMENTE NÃO CUMPRIRAM SUA TAREFA.") - (340) - (364 "SAMOS" "METAM O PÉ!") - (400) - ) - -("warrior-introduction" - (24 "GUERREIRO" "OHH... MINHA CABEÇA DÓI.") - (128) - (137 "DAXTER" "EU DUVIDO QUE ELA SEJA UM DOS SEUS ÓRGÃOS VITAIS!") - (212 "DAXTER" "SAI DESSA, CARA DURÃO!") - (264 "GUERREIRO" "OH, CLARO, EU JÁ FUI DURÃO.") - (337 "GUERREIRO" "TALVEZ O MAIS DURÃO QUE HÁ.") - (402 "GUERREIRO" "EU DEFENDI A VILA SOZINHO DAQUELAS TERRÍVEIS CRIATURAS POR QUASE UM ANO!") - (594 :offscreen "GUERREIRO" "E ENTÃO, AQUELE MONSTRO HORRENDO APARECEU E COMEÇOU OS BOMBARDEIOS.") - (760 :offscreen "GUERREIRO" "ENTÃO, CHEIO DE HONRA, COM A ARMADURA BRILHANDO AO SOL...") - (928 "GUERREIRO" "EU ESCALEI A COLINA PARA PEGÁ-LO...!") - (1033) - (1044 "GUERREIRO" "MAS ELE ME SURROU COMO SE ESTIVESSE AMACIANDO UM BIFE.") - (1172) - (1178 "DAXTER" "JÁ TENTOU ATACÁ-LO COM SEU MELODRAMA?") - (1255 "DAXTER" "PORQUE ESTÁ QUASE ME MATANDO!") - (1303) - (1310 :offscreen "GUERREIRO" "APÓS A MINHA ESPANTOSA DERROTA,") - (1395 :offscreen "GUERREIRO" "ELE SELOU O CAMINHO ATÉ ELE COM UMA PEDRA DE 30 TONELADAS,") - (1515 :offscreen "GUERREIRO" "IMPEDINDO QUE QUALQUER UM POSSA DESAFIÁ-LO NOVAMENTE.") - (1640) - (1669 "GUERREIRO" "E ENTÃO, NOSSO SÁBIO, UM MESTRE DO ECO AZUL E GÊNIO DA MECÂNICA, CRIOU UMA MÁQUINA") - (1905 "GUERREIRO" "CAPAZ DE LEVANTAR A PEDRA PARA FORA DO CAMINHO...!") - (2030) - (2040 "GUERREIRO" "MAS ELE SUMIU ANTES DE TER A CHANCE DE LIGÁ-LA.") - (2200) - (2222 "GUERREIRO" "E LEVOU TODAS AS SUAS POWER CELLS COM ELE.") - (2330) - (2360 :offscreen "GUERREIRO" "EU AO MENOS FUI CAPAZ DE ESPALHAR AS PONTES O BASTANTE PARA EVITAR") - (2465 :offscreen "GUERREIRO" "QUE AQUELE MONSTRO DESÇA AQUI E ME MACHUQUE.") - (2561) - (2566 "DAXTER" "YEAH, BOM, BOM TRABALHO, CARA DURÃO. MAS, UM...") - (2659 "DAXTER" "NÓS VAMOS PRECISAR QUE VOCÊ, UH... COLOQUE ELAS NO LUGAR E TAL.") - (2766) - (2770 "GUERREIRO" "OH, CLARO! E ME CONDENAR?") - (2880 "GUERREIRO" "(CHORA)") - (2943) - (2949 "GUERREIRO" "TÁ CERTO. TUDO BEM.") - (3036 "GUERREIRO" "ME TRAGA 90 ORBES PRECURSORAS E EU ALINHO AS PONTES.") - (3173) - (3197 "GUERREIRO" "MAS EU NÃO VOU LUTAR COM AQUELE MONSTRO DE NOVO!") - ) - -("warrior-reminder-1" - (27 "GUERREIRO" "PODE LEVAR TODO TEMPO DO MUNDO PRA ME TRAZER AQUELAS ORBES") - (123 "GUERREIRO" "EU NÃO QUERO ALINHAR ESSAS PONTES TÃO CEDO.") - ) - -("warrior-resolution" - (30 "GUERREIRO" "OH.") - (67) - (73 "GUERREIRO" "MARAVILHA.") - (120) - (126 "GUERREIRO" "VOCÊS ME TROUXERAM AS ORBES PRECURSORAS. (CHORA)") - (234) - (240 "GUERREIRO" "TÁ CERTO.") - (279) - (285 "GUERREIRO" "VOU CONSERTAR AS PONTES.") - (334) - (340 "GUERREIRO" "MAS NÃO PEÇA PARA EU ME ENCONTRAR COM AQUELA CRIATURA DE NOVO!") - (476) - ) - -("ASSTLP23" :hint #x0 (0 "KEIRA" "AGORA, COMO ELE FEZ AQUELE LEVITADOR FUNCIONAR?")) -("ASSTLP24" :hint #x0 (0 "KEIRA" "AGORA, MESMO COM AS POWER CELLS, TEREMOS ENERGIA O BASTANTE?")) -("GAM-AM01" :hint #x0 (0 "APOSTADOR" "EI, UMA CHANCE DE 20 PRA UM NÃO É NADA MAL!")) -("GAM-AM02" :hint #x0 (0 "APOSTADOR" "NÃO, ERA GARANTIDO!")) -("GAM-AM03" :hint #x0 (0 "APOSTADOR" "HEH HEH HEH... EU VOU ENCHER OS BOLSOS DA PRÓXIMA!")) -("GAM-AM04" :hint #x0 (0 "APOSTADOR" "HEH! SE EU TIVESSE UMA ORBE PARA CADA OPORTUNIDADE PERDIDA...")) -("GAM-AM05" :hint #x0 (0 "APOSTADOR" "HEY! BARRIS PODEM VOLTAR A MODA!")) -("GAM-AM06" :hint #x0 (0 "APOSTADOR" "OH... EU PRECISO DAR SORTE.")) -("GAM-AM07" :hint #x0 (0 "APOSTADOR" "AW, QUAIS AS CHANCES DE EU ME MUDAR PARA UMA VILA SOB ATAQUE?")) -("GAM-AM08" :hint #x0 (0 "APOSTADOR" "EU ACHAVA QUE TINHA UMA BOA DICA!")) -("GAM-AM09" :hint #x0 (0 "APOSTADOR" "MAIS UM DIA, MAIS UM JOGO.")) -("GAM-AM10" :hint #x0 (0 "APOSTADOR" "APOSTO QUE NINGUÉM DERRUBA AQUELE MONSTRO.")) -("GAM-AM11" :hint #x0 (0 "APOSTADOR" "HUH-HUH... EU DEVIA SACAR A GRANA E SEGUIR A VIDA.")) -("GAM-AM12" :hint #x0 (0 "APOSTADOR" "EH, AS VEZES NÃO DÁ PRA GANHAR.")) -("GAM-AM13" :hint #x0 (0 "APOSTADOR" "EI, TÁ RINDO DO QUE? VOCÊ NÃO VAI COM A MINHA CARA?")) -("GEO-AM01" :hint #x0 (0 "GEOLOGISTA" "MM, DADOS INTERESSANTES...")) -("GEO-AM02" :hint #x0 (0 "GEOLOGISTA" "POBRES TOUPEIRINHAS...")) -("GEO-AM03" :hint #x0 (0 "GEOLOGISTA" "INTERESSANTE...")) -("GEO-AM04" :hint #x0 (0 "GEOLOGISTA" "BOA SORTE, MENINOS!")) -("GEO-AM05" :hint #x0 (0 "GEOLOGISTA" "LURKERS MALDITOS...")) -("GEO-AM06" :hint #x0 (0 "GEOLOGISTA" "PEDRAS TAMBÉM TEM SENTIMENTOS...")) -("GEO-AM07" :hint #x0 (0 "GEOLOGISTA" "AGUENTEM FIRME, PEQUENINOS...")) -("GEO-AM08" :hint #x0 (0 "GEOLOGISTA" "AGORA POSSO VOLTAR À MINHA PESQUISA!")) -("GEO-LO01" :hint #x0 (0 "GEOLOGISTA" "TENHO QUE VOLTAR À MINHA PESQUISA.")) -("GEO-LO02" :hint #x0 (0 "GEOLOGISTA" "HM, ESSA PEDRA É BEM ANTIGA...")) -("SAGELP20" :hint #x0 (0 "SAMOS" "HMM...")) -("SAGELP21" :hint #x0 (0 "SAMOS" "OS LURKERS PRECISAM SER IMPEDIDOS.")) -("SAGELP22" :hint #x0 (0 "SAMOS" "ENTENDO...")) -("SAGELP23" :hint #x0 (0 "SAMOS" "NÃO...")) -("SAGELP24" :hint #x0 (0 "SAMOS" "O QUE PODE TER ACONTECIDO COM ELES?")) -("WAR-LO1A" :hint #x0 (0 "GUERREIRO" "(CHORANDO)")) -("WAR-LO1B" :hint #x0 (0 "GUERREIRO" "(SOLUÇO)")) - -("WAR-LO1C" :hint #x0 - (0 "GUERREIRO" "(ASSOA O NARIZ)") - (200 "GUERREIRO" "(CONTINUA CHORANDO)") - ) - -("asstvb22" :hint #x326 - (50 "KEIRA" "WOW! VOCÊS TROUXERAM UMA PARTE DAS RUÍNAS SUBAQUÁTICAS PARA A SUPERFÍCIE!") - (300 "KEIRA" "PARECE QUE VOCÊ PODE USAR O ECO DE FORMAS NUNCA ANTES VISTAS!") - (520 "KEIRA" "UMA POWER CELL EMERGIU DA CAPSULA. SUBA LÁ E PEGUE ELA.") - (775) - ) - -("asstvb20" :hint #x327 - (40 "KEIRA" "BOM VÔO! ESSES LURKERS NÃO ERAM PÁREOS PARA SEU ZOOMER!") - (310 "KEIRA" "AÍ ESTÁ, MAIS UMA POWER CELL!") - ) - -("asstvb21" :hint #x328 - (50 "KEIRA" "BOM TRABALHO! VOCÊS NÃO ESTÃO FELIZES DE SALVAR NOSSA PEQUENA AMIGA FLUT-FLUT?") - (290 "KEIRA" "ELA PODE SER ÚTIL NOVAMENTE.") - (420 "KEIRA" "AGORA, VOLTEM AO TRANS-PAD, E EU VOU LEVAR ELA PARA CASA.") - ) - -("sagevb03" :hint #x36a - (0 "SAMOS" "VOCÊS CONTINUAM ME IMPRESSIONANDO. MAS PODE SER POR EU TER EXPECTATIVAS BAIXAS.") - (420 "SAMOS" "OKAY, O SEU MOMENTO DE GLÓRIA ACABOU, MÃOS A OBRA!") - ) - -("sagevb04" :hint #x36b - (0 "SAMOS" "BOM TRABALHO, JAK! SEU TIO FICARIA ORGULHOSO.") - (240 "SAMOS" "ESSE ERA UM BRAÇO GIGANTE DE UM ROBÔ PRECURSOR.") - (475 "SAMOS" "NUNCA VI UM EM CONDIÇÕES TÃO BOAS!") - (685 "SAMOS" "NEM IMAGINO O QUE OS LURKERS QUERIAM COM ISSO,") - (868 "SAMOS" "MAS COM CERTEZA NÃO SERIA BOM SE ELES TIVESSEM ELE.") - (1020) - (1040 "SAMOS" "SE CONTINUAR DESSE JEITO...") - (1205 "SAMOS" "NAH, VOCÊ AINDA TÁ LONGE DE SER UM HERÓI.") - (1430) - (1450 "SAMOS" "MAS CONTINUE TENTANDO. É FOFINHO.") - ) - -("asstvb71" :hint #x36c - (16 "KEIRA" "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA ENERGIZAR A MÁQUINA DO SÁBIO AZUL.") - (200 "KEIRA" "NÃO PODEMOS LEVANTAR AQUELA ROCHA SEM AS 45 POWER CELLS.") - ) - -("asstvb72" :hint #x36d - (0 "KEIRA" "ATÉ DESCOBRIRMOS O POR QUÊ DO SUMIÇO DO SÁBIO AZUL,") - (179 "KEIRA" "VOCÊ VAI PRECISAR PEGAR 45 POWER CELLS PARA ENERGIZAR ESSA MÁQUINA.") - (406 "KEIRA" "VÁ PEGÁ-LAS!") - ) - -("asstvb28" :hint #x36f - (0 "KEIRA" "EI! NÃO ESQUEÇA DO SÁBIO E EU!") - (178) - (184 "KEIRA" "VOCÊ TEM QUE LIGAR O TELEPORTADOR PARA A GENTE PASSAR!") - (374) - (380 "KEIRA" "ESTÁ NO LABORATÓRIO DO SÁBIO AZUL, NO FINAL DO DESFILADEIRO DE FOGO.") - (564) - (570 "KEIRA" "SE NÃO PASSARMOS, NÃO PODEMOS TE AJUDAR!") - ) - -("asstvb29" :hint #x370 - (0 "KEIRA" "EI! AINDA ESTAMOS ESPERANDO!") - (185 "KEIRA" "LIGUE O TELEPORTADOR!") - ) - -("asstvb30" :hint #x371 (1 "KEIRA" "NÓS NÃO PODEMOS PASSAR ENQUANTO O TELEPORTADOR NÃO FOR LIGADO!")) - -;; ----------------- -;; swamp -;; ----------------- - -("billy-accept" - (5 "BILLY" "ÓTIMO! ESSES RATOS VÃO VOLTAR A QUALQUER MOMENTO.") - (109 "BILLY" "ATIRE NELES, E NUM DEIXA ELES COMEREM AO MENOS UM LANCHINHO.") - ) - -("billy-introduction" - (6 "BILLY" "OLAR, AMIGOS! GUSTARAM DO MEU LINDO PÂNTANO?") - (123 "BILLY" "EU SÔ DONO DI TUDO AQUI. TUDO QI NÃO AFUNDOU NA LAMA! HA HA HA...") - (349) - (369 "DAXTER" "PELO CHEIRO, EU APOSTO QUE SEU CHUVEIRO AFUNDOU NA LAMA A MUITO TEMPO.") - (497) - (519 "BILLY" "QUIÉ CHUVEIRO?? DI TODO JEITO, TENHO PROBREMAS MAIORES AGORA...") - (680) - (691 "BILLY" "PARECE QUE UNS MARDITOS LURKERS TÃO RODANDO A AREA,") - (798 "BILLY" "CATANO TUDO QUE ELES CONSEGUEM BOTÁ AQUELAS PATAS GORDA DELES.") - (910 "BILLY" "E AFUGENTARAM MEU MASCOTE, PEIDINHO.") - (1017) - (1021 "BILLY" "ELE TÁ SUMIDO JÁ FAZ UM TEMPÃO.") - (1133) - (1136 :offscreen "BILLY" "EU TÔ BOTANDO O LANCHIN FAVORITO DELE MAS OS RATO DE PÂNTANO MARDITOS FICAM ROBANO") - (1318 :offscreen "BILLY" "SE TU PUDESSE MANTER SAS RATAZANA LONGE POR TEMPO O BASTANTE,") - (1408 :offscreen "BILLY" "EU SEI QUE O PEIDINHO IA SENTIR O CHEIRIN DO LANCHE E VOLTAR") - (1519) - (1530 "BILLY" "CÊS ME AJUDA?") - ) - -("billy-reject" - (7 "BILLY" "BEM, SE MUDAREM DE IDEIA, CÊS SABE ONDE ME ACHAR!") - (249) - ) - -("billy-reminder-1" (37 "BILLY" "AHH, CÊS VOLTARAM PRA ACABAR COM OS RATOS?")) -("billy-resolution" (0 "BILLY" "MACACOS ME MORDAM! CÊ SABE MESMO COMO ATIRAR! MUITO OBRIGADO SÔ PELA AJUDA.")) -("BIL-AM01" :hint #x0 (0 "BILLY" "EU AMO A LAMA.")) -("BIL-AM02" :hint #x0 (0 "BILLY" "MARDITOS RATOS DE PÂNTANO.")) -("BIL-AM03" :hint #x0 (0 "BILLY" "EU PRECISO DUMA BOA GOLADA DO REMÉDIO DA MAINHA.")) -("BIL-AM04" :hint #x0 (0 "BILLY" "GLADÍOLO.")) -("BIL-AM05" :hint #x0 (0 "BILLY" "EU PRECISO DUM CHIMARRÃO.")) -("BIL-AM06" :hint #x0 (0 "BILLY" "EU PRECISO DE UM REFRESCO.")) -("BIL-AM07" :hint #x0 (0 "BILLY" "MARDIÇÃO, ESSE CALOR TÁ ME DANDO COCEIRA.")) -("BIL-AM08" :hint #x0 (0 "BILLY" "DROGA... ESSE CALOR TÁ ME ARDENO TODO.")) -("BIL-AM1A" :hint #x0 (0 "BILLY" "MM-MM! EU ADORO A LAMA!")) -("BIL-AM2A" :hint #x0 (0 "BILLY" "MARDITOS RATOS DE PÂNTANO!")) -("BIL-AM2B" :hint #x0 (0 "BILLY" "MARDITOS RATIN DE PÂNTANO!")) -("BIL-LO01" :hint #x0 (0 "BILLY" "PEIDINHO!")) -("BIL-LO02" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!")) -("BIL-LO03" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE!")) -("BIL-LO1A" :hint #x0 (0 "BILLY" "PEIDINHO!")) -("BIL-LO2A" :hint #x0 (0 "BILLY" "SOIEE-SOIEE-SOIEE!")) -("BIL-LO2B" :hint #x0 (0 "BILLY" "SOIEE! SOIEE!")) -("BIL-TA01" :hint #x0 (0 "BILLY" "PEGA ELES!")) -("BIL-TA02" :hint #x0 (0 "BILLY" "BOM TIRO!")) -("BIL-TA03" :hint #x0 (0 "BILLY" "BEM ALI!")) -("BIL-TA04" :hint #x0 (0 "BILLY" "AW, DROGA.")) -("BIL-TA05" :hint #x0 (0 "BILLY" "O RATO CATOU UM LANCHINHO.")) -("BIL-TA06" :hint #x0 (0 "BILLY" "E MAIS UM...")) -("BIL-TA07" :hint #x0 (0 "BILLY" "SÓ TEM MAIS UM...")) -("BIL-TA08" :hint #x0 (0 "BILLY" "PEGOU ELE.")) -("BIL-TA09" :hint #x0 (0 "BILLY" "YEEHAW!")) -("BIL-TA1A" :hint #x0 (0 "BILLY" "PEGA ELES!")) -("BIL-TA2A" :hint #x0 (0 "BILLY" "BOM TIRO!")) -("BIL-TA3A" :hint #x0 (0 "BILLY" "POR ALI.")) -("BIL-TA4A" :hint #x0 (0 "BILLY" "DROGA!")) -("BIL-TA4B" :hint #x0 (0 "BILLY" "DROGA!")) -("BIL-TA5A" :hint #x0 (0 "BILLY" "O RATO LEVOU UM LANCHINHO!")) -("SKSP009F" :hint #x0 (0 "DAXTER" "TOMA! TOMA! HA HA HA!")) -("sksp0137" :hint #x351 (0 "DAXTER" "APOSTO QUE PODEMOS ATIRAR NESSAS PEDRAS ENORMES COM O ECO AMARELO.")) -("sksp0138" :hint #x352 (0 "DAXTER" "NÓS DEVÍAMOS ATIRAR NAS PEDRAS QUE SEGURAM AS CORDAS.")) -("sksp0139" :hint #x353 (0 "DAXTER" "TALVEZ DEVÊSSEMOS AJUDAR A ACHAR O PET DO ESQUISITÃO.")) -("sksp0140" :hint #x354 (0 "DAXTER" "A FLUT-FLUT PODE PLANAR MAIS LONGE SE PULAR DE NOVO NO AR!")) -("sksp0141" :hint #x355 (0 "DAXTER" "NÃO TOQUE NO PICHE QUENTE PRETO, OU IRÁ SE MACHUCAR!")) -("sksp0142" :hint #x356 (0 "DAXTER" "ESSAS ÁGUAS ESTÃO SEGURAS PARA FICAR.")) -("sksp0143" :hint #x357 (0 "DAXTER" "WAAH! CORTA A LÍNGUA DELE!")) -("sksp0144" :hint #x358 (0 "DAXTER" "ATIRE NOS NINHOS DE RATO PRA ELES PARAREM DE SAIR DE DENTRO.")) -("sksp0145" :hint #x359 (0 "DAXTER" "WOW! VOCÊ CONSEGUE ATIRAR BOLAS DE FOGO QUANDO ENERGIZADO COM ECO AMARELO.")) -("sksp0146" :hint #x35a (0 "DAXTER" "EI! ISSO É ECO AMARELO!")) -("sksp0147" :hint #x35b (0 "DAXTER" "VOCÊ CONSEGUE RODAR NAQUELE CANO ALI!")) -("sksp0148" :hint #x35c (0 "DAXTER" "CUIDADO COM AQUELES ESPINHOS!")) -("sksp0149" :hint #x35d (0 "DAXTER" "EI, PARECE QUE TEM UMA CORDA SEGURANDO O DIRIGÍVEL!")) -("sksp0150" :hint #x35e (0 "DAXTER" "CUIDADO QUANDO O SAPO ESTIVER CARREGADO!")) -("sksp0151" :hint #x35f (0 "DAXTER" "METE O PÉ, JAK!")) -("sksp0152" :hint #x360 (0 "DAXTER" "CUIDADO, JAK! É UMA EMBOSCADA!")) - -("sksp0153" :hint #x361 - (0 "DAXTER" "EI, ESSE DEVE SER O ARTEFATO PRECURSOR QUE OS LURKERS ESTÃO ATRÁS!") - (175 "DAXTER" "PARECE UM BRAÇO ROBÔ GIGANTE!") - ) - -("sksp0154" :hint #x362 (0 "DAXTER" "ESSE PICHE PRETO PARECE QUENTE E PERIGOSO!")) -("sksp0155" :hint #x363 (0 "DAXTER" "ATIRA NOS MORCEGOS COM O NEGÓCIO AMARELO!")) -("sksp0156" :hint #x364 (0 "DAXTER" "TALVEZ DÊ PRA DERRUBAR OS MORCEGOS!")) -("sksp0157" :hint #x365 (0 "DAXTER" "TU VIU ISSO? SÓ FALTAM MAIS TRÊS CORDAS!")) -("sksp0158" :hint #x366 (0 "DAXTER" "WOW! SÓ MAIS DUAS CORDAS.")) -("sksp0159" :hint #x367 (0 "DAXTER" "ESSE DIRIGÍVEL ESTÁ NO LIMITE! VAMOS ENCONTRAR A ULTIMA CORDA!")) -("sksp0160" :hint #x368 (0 "DAXTER" "HEY! LÁ ESTÁ A FLUT-FLUT!")) -("sksp0161" :hint #x369 (0 "DAXTER" "EU ODEIO RATOS, E EU SOU QUASE UM.")) - -;; ----------------- -;; rolling -;; ----------------- - -("sksp0109" :hint #x335 (0 "DAXTER" "WOO! A GENTE BATEU O RECORDE!")) - -("sksp0110" :hint #x336 - (0 "DAXTER" "EU JÁ FALEI ANTES, VOU FALAR DE NOVO...") - (164 "DAXTER" "EVITE AS CAIXAS DE ECO NEGRO!") - ) - -("sksp0111" :hint #x337 (0 "DAXTER" "VAMOS LEVAR ESSAS TOUPEIRAS DE VOLTA AO SUBSOLO.")) -("sksp0112" :hint #x338 (0 "DAXTER" "VAMO PEGAR A NOSSA POWER CELL DA GEOLOGISTA.")) -("sksp0113" :hint #x339 (0 "DAXTER" "ESSAS DEVEM SER AS PLANTAS INFESTADAS QUE O VELHO CABEÇA DE TRONCO FALOU.")) -("sksp0114" :hint #x33a (0 "DAXTER" "PRECISAMOS USAR O ECO VERDE PRA CURAR ELAS.")) -("sksp0115" :hint #x33b (0 "DAXTER" "JAK, PASSE NA FONTE DE ECO VERDE.")) -("sksp0116" :hint #x33c (0 "DAXTER" "ESSE É UM DOS LURKERS VOADORES! ELE PODE TER UMA POWER CELL!")) -("sksp0117" :hint #x33d (0 "DAXTER" "LÁ ESTÁ O BURACO DAS TOUPEIRAS!")) -("sksp0118" :hint #x33e (0 "DAXTER" "AGORA, VAMOS PASSAR PELAS PLANTAS INFECTADAS!")) -("sksp0119" :hint #x33f (0 "DAXTER" "UM ANEL JÁ FOI, FALTA UM MONTE!")) -("sksp0120" :hint #x340 (0 "DAXTER" "RÁPIDO! ALI ESTÁ O PRÓXIMO ANEL!")) -("sksp0121" :hint #x341 (0 "DAXTER" "RÁPIDO! VOCÊ TEM QUE PASSAR POR CADA ANEL ANTES QUE ELE APAGUE!")) -("sksp0122" :hint #x342 (0 "DAXTER" "EI! ESSA GRAMA NOS DESACELERA...")) - -;; ----------------- -;; sunken -;; ----------------- - -("sksp0123" :hint #x343 (0 "DAXTER" "RÁPIDO! SIGA ESSE CANO!")) -("sksp0124" :hint #x344 (0 "DAXTER" "EU TÔ COM UM MAU PRESSENTIMENTO.")) -("sksp0125" :hint #x345 (0 "DAXTER" "ESSAS COISAS PARECEM PRECISAR DE UMA CARGA DE ECO AZUL.")) -("sksp0126" :hint #x346 (0 "DAXTER" "VAMO PEGAR A POWER CELL NO TOPO DESSA COISA!")) -("sksp0127" :hint #x347 (0 "DAXTER" "CHUTA O CARINHA NO TOPO!")) -("sksp0128" :hint #x348 (0 "DAXTER" "JAK! CORRE! O ECO NEGRO ESTÁ SUBINDO!")) -("sksp0129" :hint #x349 (0 "DAXTER" "AHH! O ECO NEGRO TÁ CHEGANDO PERTO")) -("sksp0130" :hint #x34a (0 "DAXTER" "UH, ACHO QUE TEMOS QUE ATIVAR TODAS AS PLATAFORMAS.")) -("sksp0131" :hint #x34b (0 "DAXTER" "EI! PARECE QUE VOCÊ PODE MERGULHAR PULANDO NESSES CARAS!")) -("sksp0132" :hint #x34c (0 "DAXTER" "EE-EE! WHOA! WHO-AH! WHO-AHH!")) -("sksp0133" :hint #x34d (0 "DAXTER" "APOSTO QUE DÁ PRA CARREGAR TODOS AO MESMO TEMPO!")) -("sksp0134" :hint #x34e (0 "DAXTER" "QUE TAL PEGAR LEVE NOS CANOS QUENTES?!")) -("sksp0135" :hint #x34f (0 "DAXTER" "ESSA ÁGUA PARECE PERIGOSA QUANDO MUDA DE COR!")) -("sksp0136" :hint #x350 (0 "DAXTER" "VOCÊ TEM QUE SAIR DA ÁGUA ANTES QUE MUDE DE COR!")) - -;; ----------------- -;; ogre -;; ----------------- - -("asstvb23" :hint #x604 - (45 "KEIRA" "ÓTIMO TRABALHO! TODOS DA VILA DA PEDRA ESTÃO SUSPIRANDO ALIVIADOS!") - (340 "KEIRA" "MAS NÃO HÁ TEMPO PARA COMEMORAR, USE O ZOOMER PARA NAVEGAR PELA PASSAGEM DA MONTANHA.") - (650 "KEIRA" "TOME CUIDADO! PARECE QUE OS LURKERS ARMARAM EXPLOSIVOS NA PASSAGEM TODA!") - (945 "KEIRA" "CHEGANDO NA CRATERA VULCÂNICA, VÁ PARA O LABORATÓRIO DO SÁBIO VERMELHO") - (1176 "KEIRA" "E ATIVE O TELEPORTADOR PARA QUE EU E O PAPAI POSSAMOS CHEGAR ATÉ VOCÊ.") - (1410) - ) - -("asstvb24" :hint #x605 - (40 "KEIRA" "MINHA NOSSA! ESSES LURKERS DEVEM ESTAR INDO PARA O DETONADOR NO FINAL DA PASSAGEM!") - (304 "KEIRA" "SE ELES CHEGAREM ANTES DE VOCÊ, ELES VÃO EXPLODIR A PASSAGEM TODA!") - (525 "KEIRA" "VOCÊ PRECISA SER MAIS RÁPIDO E DESTRUIR O DETONADOR, OU ESTÁ TUDO ACABADO!") - ) - -("sksp0300" :hint #x607 (0 "DAXTER" "TEMOS QUE ULTRAPASSAR OS LURKERS ATÉ O FINAL!")) -("sksp0301" :hint #x608 (0 "DAXTER" "NÃO ENCOSTE NOS EXPLOSIVOS!")) -("sksp0302" :hint #x609 (0 "DAXTER" "SE MANTENHA NA FRENTE DELES E TÁ TUDO CERTO!")) -("sksp0303" :hint #x60a (0 "DAXTER" "PEGUE O ECO AZUL PARA GANHAR VELOCIDADE!")) -("sksp0304" :hint #x60b (0 "DAXTER" "EVITE AS ÁRVORES, JAK! ELAS NOS ATRASAM!")) -("sksp0305" :hint #x60c (0 "DAXTER" "QUANTO MAIS ECO AZUL PEGARMOS, MAIS RÁPIDO NÓS VAMOS!")) -("sksp0306" :hint #x60d (0 "DAXTER" "CUIDADO COM OS EXPLOSIVOS!")) -("sksp0307" :hint #x60e (0 "DAXTER" "EVITE OS BURACOS!")) -("sksp0308" :hint #x60f (0 "DAXTER" "TALVEZ EU DEVA PILOTAR!")) -("sksp0309" :hint #x610 (0 "DAXTER" "LÁ ESTÁ UM DOS LURKERS!")) -("sksp0310" :hint #x611 (0 "DAXTER" "PEGA ELE, JAK!")) -("sksp0311" :hint #x612 (0 "DAXTER" "PASSAMOS UM!")) -("sksp0312" :hint #x613 (0 "DAXTER" "WAH, UM DOS LURKERS PASSOU A GENTE!")) -("sksp0313" :hint #x614 (0 "DAXTER" "ELES ESTÃO MUITO NA FRENTE!")) -("sksp0314" :hint #x615 (0 "DAXTER" "YEAH, ESTAMOS NA LIDERANÇA!")) -("sksp0315" :hint #x616 (0 "DAXTER" "MAIS RÁPIDO, JAK, MAIS RÁPIDO!")) -("sksp0316" :hint #x617 (0 "DAXTER" "GRANDE SALTO, GRANDE SALTO!")) -("sksp0317" :hint #x618 (0 "DAXTER" "SE SEGURA!")) -("sksp0318" :hint #x619 (0 "DAXTER" "YAAHH!")) -("sksp0319" :hint #x61a (0 "DAXTER" "VAI SER PERTO!")) -("sksp0320" :hint #x61b (0 "DAXTER" "ELES VÃO NOS VENCER ATÉ O DETONADOR!")) -("sksp0321" :hint #x61c (0 "DAXTER" "CONSEGUIMOS! IMPEDIMOS ELES DE DETONAR A PASSAGEM!")) - -("asstvb25" :hint #x61d - (10 "KEIRA" "BOM TRABALHO! VOCÊS VENCERAM ELES ATÉ O DETONADOR!") - (210 "KEIRA" "O LABORATÓRIO DO SÁBIO VERMELHO É LOGO EM FRENTE, LIGUE O TELEPORTADOR PARA NÓS.") - ) - -;; ----------------- -;; village3 -;; ----------------- - -("assistant-village3-reminder" - (25 "KEIRA" "EI RAPAZES! CONTINUEM COLETANDO POWER CELLS.") - (98 "KEIRA" "ELAS SÃO A CHAVE PARA SEGUIRMOS NOSSA JORNADA AO NORTE.") - (196) - ) - -("minershort-introduction-gnawers" - (5 "GORDY" "POR QUE VOCÊS NÃO FAZEM ALGO DE ÚTIL?") - (89 "GORDY" "LURKERS TÃO ESCAVANDO AS CAVERNAS NEGRAS ALI.") - (191 :offscreen "GORDY" "PARECEM ESTAR ATRÁS DE ARTEFATOS PRECURSORES.") - (265) - (271 :offscreen "GORDY" "ELES PODEM PEGAR OS ARTEFATOS, TÔ NEM AÍ.") - (357) - (360 :offscreen "WILLARD" "TAMO NEM AÍ!") - (441) - (444 "GORDY" "WILLARD, ALIMENTE SEU PÁSSARO.") - (490) - (496 "GORDY" "SÓ ME IMPORTO COM GEMAS!") - (566 "GORDY" "MAS NUM VOU PODER PEGAR AS GEMAS DA CAVERNA") - (625 "GORDY" "PORQUE QUANDO ELES ACABAREM, ELES VÃO SOTERRAR O LUGAR!") - (715) - (721 "GORDY" "SE VOCÊ ACABAR COM OS LURKERS QUE ESTÃO COMENDO OS PILARES,") - (827 "GORDY" "VOCÊ PODE SALVAR A CAVERNA PARA MIM.") - (875) - (884 "GORDY" "AGORA VAZA!") - ) - -("minershort-introduction-orbs" - (18 "WILLARD" "HEY GORDY, UH, ACHO QUE TEMOS VISITA.") - (153) - (157 "GORDY" "TU ACHA, WILLARD? OLÁ, ESTRANHOS, UH, TÃO DE PASSAGEM?") - (288) - (291 "GORDY" "UH, NÓS, TAMBÉM. BEM, NÓS TEMOS QUE SEGUIR, NÃO TEM NADA PRA VER AQUI.") - (410 "WILLARD" "UÉ, TU NÃO FALOU QUE ESSA ERA UMA GEMA INESTIMÁVEL QUE VALIA...") - (548 :offscreen "GORDY" "WILLARD!") - (591 "DAXTER" "NA VERDADE, QUEREMOS POWER CELLS, NÃO GEMAS.") - (691) - (694 "WILLARD" "A GENTE TEM QUATRO DELAS. DUH, TU QUER UMA?") - (804) - (810 "GORDY" "O QUE O CABEÇA DE PÁSSARO ESTÁ TENTANDO DIZER AQUI,") - (908 "GORDY" "TALVEZ TENHAMOS ALGUMAS POWER CELLS SOBRANDO,") - (1005 "GORDY" "E NÓS PODEMOS ESTAR DISPOSTOS A TROCAR ELAS POR...") - (1111 :offscreen "GORDY" "90 ORBES CADA.") - (1154 "DAXTER" "ONDE FOI QUE EU OUVI ISSO ANTES?") - (1222 "DAXTER" "EI, COMO OS DOIS GÊNIOS ESPERAM TIRAR ESSA GEMA ENORME DAÍ?") - (1383) - (1389 "GORDY" "BEM, ESPERTÃO, TEMOS MAIS DOZE ANOS DE ESCAVAÇÃO PARA DESCOBRIR ISSO.") - (1545) - (1560 "WILLARD" "UHH... GORDY, NÃO LEVARIA MENOS TEMPO SE VOCÊ CAVASSE TAMBÉM?") - (1774) - ) - -("minershort-introduction-switch" - (38 :offscreen "WILLARD" "PSST, CARAS. DUH...") - (123 "WILLARD" "O PASSARINHO E EU ESTÁVAMOS VIMOS UMA CAVERNA QUE VOCÊS IRIAM GOSTAR!") - (244) - (247 "WILLARD" "ESTAVA REPLETA DE UM METAL LARANJA BONITO,") - (337 "WILLARD" "E MUITO BEM ESCONDIDA ATRÁS DE UMAS ÁRVORES NA MONTANHA NEVADA!") - (512) - (518 "WILLARD" "EU FALEI PRO GORDY, MAS ELE GRITOU COMIGO POR NÃO ESTAR ESCAVANDO!") - (684 :offscreen "GORDY" "POR QUE VOCÊ NÃO ESTÁ ESCAVANDO?!") - (753 "WILLARD" "DESCULPA!") - ) - -("minershort-reminder-1-gnawers" - (15 "GORDY" "VÃO LOGO DAR UM JEITO NAQUELES LURKERS QUE ESTÃO") - (93 "GORDY" "COMENDO OS PILARES DA CAVERNA NEGRA!") - (198 "GORDY" "AQUELES PILARES NÃO VÃO AGUENTAR POR MUITO TEMPO!") - ) - -("minershort-reminder-1-orbs" - (25 "GORDY" "NÃO ESQUEÇA DO NOSSO ACORDO. TRAGA 100 ORBES.") - (130 :offscreen "WILLARD" "DUH... VOCÊ TINHA DITO 90.") - (200 "GORDY" "WILLARD!") - (230) - (240 "GORDY" "CERTO. 90 ORBES POR UMA POWER CELL.") - (346) - ) - -("minershort-reminder-1-switch" - (2 "WILLARD" "VOCÊ ACHOU A CAVERNA ATRÁS DAS ÁRVORES NA MONTANHA NEVADA?") - (165) - (186 "WILLARD" "DAQUI A POUCO VOU LÁ, PRA ME ESCONDER DO GORDY, ELE TÁ GRITANDO COMIGO DE NOVO!") - (408 :offscreen "GORDY" "WILLARD!!") - ) - -("minershort-reminder-2-orbs" - (27 "WILLARD" "DUH, GORDY?") - (78 "GORDY" "90 ORBES POR UMA POWER CELL, WILLARD! URGH!") - ) - -("minershort-resolution-1-orbs" - (25 "GORDY" "OH, TÁ CERTO ENTÃO.") - (80 "GORDY" "AQUI ESTÁ UMA POWER CELL POR ESSAS ORBES SUAS.") - (150) - ) - -("minershort-resolution-2-orbs" - (28 "WILLARD" "OOH! OH, EU CONSIGO DESSA VEZ! UH...") - (150) - (165 "WILLARD" "AQUI ESTÁ UMA...") - (196) - (205 "WILLARD" "DUHH.. AQUI ESTÁ UMA...!") - (264) - (270 :offscreen "GORDY" "UMA POWER CELL!") - (358 "WILLARD" "É, É... O QUE ELE DISSE.") - (458 "GORDY" "É ISSO. VOCÊ ZEROU A GENTE .") - (540 "GORDY" "NÃO! MAIS! POWER! CELLS!") - (666) - ) - -("sage-village3-introduction" - (6 "SAMOS" "OW! EU SEMPRE ME PERGUNTO SE ESTOU PERDENDO PEDAÇOS DO CORPO NESSAS COISAS!") - (153) - (183 "SAMOS" "SANTA VACA! O LABORATÓRIO DO SÁBIO VERMELHO TÁ PIOR QUE O DO AZUL!") - (321) - (321 "KEIRA" "BEM, DEFINITIVAMENTE PARECE QUE TEVE UMA BRIGA AQUI.") - (418) - (441 "VELHO" "HA HA HA HA HA!") - (500) - (528 "VELHO" "EU NÃO DIRIA QUE FOI UMA \"BRIGA\". E VOCÊ, QUERIDA IRMÃ?") - (672 "MULHER" "CERTAMENTE NÃO. O SÁBIO VERMELHO DESISTIU COM TÃO POUCO ESFORÇO.") - (799) - (806 "MULHER" "NÃO FOI NEM UM POUCO DIVERTIDO.") - (860) - (884 "SAMOS" "GOL? É VOCÊ?") - (965) - (969 "SAMOS" "VOCÊ FINALMENTE CHEGOU NO FUNDO DO POÇO, EH?") - (1060 "SAMOS" "E, MAIA! EU DISSE QUE O ECO NEGRO IRIA AFETAR VOCÊS DOIS!") - (1180 "SAMOS" "HNG, NINGUÉM DÁ OUVIDOS AO VELHO SAMOS...") - (1265) - (1282 "SAMOS" "O QUE VOCÊS FIZERAM COM OS SÁBIOS AZUL E VERMELHO?") - (1372 "GOL" "NÃO SE PREOCUPE COM SEUS AMIGOS COLORIDOS, SEU VELHO TOLO.") - (1516 "GOL" "ELES ESTÃO PERFEITAMENTE SEGUROS NA NOSSA CIDADELA. SÃO NOSSOS CONVIDADOS ESPECIAIS.") - (1680 "MAIA" "ELES GRACIOSAMENTE CONCORDARAM EM NOS AJUDAR EM NOSSO PEQUENO PROJETO.") - (1813) - (1828 "GOL" "VOCÊ ESTAVA ERRADO, SAMOS. O ECO NEGRO PODE SER CONTROLADO!") - (1990) - (1996 "GOL" "NÓS DESCOBRIMOS SEUS SEGREDOS, E AGORA PODEMOS REFAZER O MUNDO AO NOSSO GOSTO.") - (2212) - (2223 "SAMOS" "NÃO SE PODE CONTROLAR O ECO NEGRO POR CONTA PRÓPRIA, NEM OS PRECURSORES CONSEGUIAM") - (2357 "MAIA" "ATÉ AGORA, TIVEMOS QUE NOS VIRAR COM O POUCO QUE ACHÁVAMOS NA SUPERFÍCIE.") - (2508) - (2520 "MAIA" "MAS EM BREVE, TEREMOS ACESSO AS VASTAS RESERVAS") - (2611 "MAIA" "DE ECO NEGRO ESCONDIDA NO FUNDO DO SUBSOLO.") - (2715 "SAMOS" "NÃO OS RESERVATÓRIOS!") - (2758) - (2768 "GOL" "SIM, OS RESERVATÓRIOS!") - (2841 "GOL" "ELES SERÃO ABERTOS, E TODO ECO NEGRO DO MUNDO SERÁ NOSSO!") - (3028) - (3034 "SAMOS" "MAS ISSO É IMPOSSÍVEL! APENAS UM ROBÔ PRECURSOR PODERIA-") - (3128 "MAIA" "OH, NÃO FIQUE TÃO CHATEADO, SAMOS. TEMOS GRANDES PLANOS PARA VOCÊ.") - (3300) - (3303 :offscreen "MAIA" "AH HA HA HA HA HA HA! AH...") - (3460) - (3495 "DAXTER" "ESPERA UM MINUTO!") - (3538) - (3541 "DAXTER" "AQUELE ERA O GOL?") - (3586) - (3595 "DAXTER" "O MESMO GOL QUE DEVERIA ME TRAZER DE VOLTA?") - (3690 "DAXTER" "GOL É O CARA QUE TÁ TENTANDO NOS MATAR?!") - (3772) - (3785 "DAXTER" "TÔ PERDIDO.") - (3822) - (3828 "SAMOS" "TALVEZ ESTEJAMOS TODOS PERDIDOS.") - (3897) - (3903 "SAMOS" "SE ELES ABRIREM OS RESERVATÓRIOS, O ECO NEGRO IRÁ CORROMPER E DESTRUIR TUDO QUE TOCAR!") - (4080 "SAMOS" "NÓS PRECISAMOS IR À CIDADELA E IMPEDI-LOS!") - (4189) - (4192 "KEIRA" "O CAMINHO MAIS RÁPIDO ATÉ LÁ É PELO TÚNEL DE LAVA NO FUNDO DESSA CRATERA.") - (4316) - (4324 "KEIRA" "MAIS ALGUMAS POWER CELLS E O ESCUDO DE CALOR DO ZOOMER") - (4400 "KEIRA" "DEVE TE LEVAR ATÉ O OUTRO LADO EM SEGURANÇA.") - (4460) - (4464 "SAMOS" "TÁ CERTO, MEU GAROTO. VOCÊ SABE O QUE FAZER.") - (4545 "SAMOS" "PEGUE ESSE SACO DE PULGA E VÁ BUSCAR MAIS POWER CELLS.") - (4664) - ) - -("sage-village3-introduction-dark-eco" - (7 "SAMOS" "PELAS GRANDES BOLAS DE ECO!") - (60) - (66 "SAMOS" "PARECE TER UMA GRANDE PRESENÇA LURKER NA CAVERNA DAS ARANHAS!") - (179) - (185 "DAXTER" "ÓTIMO, PARECE SER UM LUGAR SUPER ALEGRE.") - (284) - (296 "DAXTER" "DEIXA EU ADIVINHAR. TEM ARANHAS NA CAVERNA DAS ARANHAS, NÉ?") - (453 "SAMOS" "É CLARO QUE TEM ARANHAS NA CAVERNA DAS ARANHAS!") - (562) - (568 "SAMOS" "MAS ESSE É O MENOR DOS PROBLEMAS!") - (634) - (637 "SAMOS" "OS LURKERS ESTÃO ATRÁS DE CRISTAIS DE ECO NEGRO CONCENTRADO.") - (752) - (761 "SAMOS" "VOCÊS PRECISAM DESTRUIR OS CRISTAIS ANTES QUE OS MONSTROS CONSIGAM LEVÁ-LOS!") - (896) - (907 "SAMOS" "É PRA ONTEM!") - (950) - ) - -("sage-village3-introduction-rams" - (8 "SAMOS" "QUE BOM QUE VOCÊS DOIS ESTÃO AQUI, HÁ UMA MOVIMENTAÇÃO LURKER NAS MONTANHAS.") - (152) - (158 :offscreen "SAMOS" "PARECE QUE ELES ACHARAM E AGORA ESTÃO TENTANDO LEVAR,") - (270 :offscreen "SAMOS" "ALGUMS TANQUES DE ECO NEGRO CONGELADOS NAS GELEIRAS.") - (378) - (381 "SAMOS" "QUANDO ESTIVEREM LÁ RODANDO ATRÁS DE POWER CELLS, IMPEÇAM OS LURKERS,") - (537 "SAMOS" "E TIREM MAIS UM POUCO DE ECO NEGRO DA MÃO DO GOL.") - (660) - ) - -("sage-village3-reminder-1-dark-eco" - (0 "SAMOS" "VOCÊ PRECISA DESTRUIR OS CRISTAIS DE ECO NEGRO NA CAVERNA DAS ARANHAS!") - (126) - ) - -("sage-village3-reminder-1-rams" - (0 "SAMOS" "NÃO PODEMOS DEIXAR OS LURKERS BOTAREM AS MÃOS NOS TANQUES DE ECO.") - (125 "SAMOS" "SUBA NAQUELES PICOS NEVADOS E IMPEÇA-OS!") - (230) - ) - -("ASSTLP30" :hint #x0 (0 "KEIRA" "HM, DEIXA EU VER...")) -("ASSTLP31" :hint #x0 (0 "KEIRA" "HM.")) -("ASSTLP32" :hint #x0 (0 "KEIRA" "OH, MINHA NOSSA...")) -("ASSTLP33" :hint #x0 (0 "KEIRA" "AH-HA!")) -("ASSTLP34" :hint #x0 (0 "KEIRA" "HUH... O QUE GOL E MAIA ESTÃO TRAMANDO?")) -("ASSTLP35" :hint #x0 (0 "KEIRA" "HMM... TEMOS QUE CHEGAR À CIDADE PRECURSOR.")) -("ASSTLP36" :hint #x0 (0 "KEIRA" "HUH. O ESCUDO DE CALOR VAI PRECISAR DE AINDA MAIS ENERGIA PRA SUPORTAR A LAVA.")) -("ASSTLP37" :hint #x0 (0 "KEIRA" "AW... TEMOS QUE SALVAR OS SÁBIOS...")) - -("MIN-LO01" :hint #x0 - (0 "GORDY" "UM DIA DESSES SEREI RICO...") - (180 "WILLARD" "VOCÊ QUER DIZER NÓS SEREMOS RICOS!") - (360 "GORDY" "YEAH. TANTO FAZ.") - ) - -("MIN-LO03" :hint #x0 - (0 "GORDY" "CAVE, WILLARD! CAVE!") - (130 "WILLARD" "YEAH, MAS VOCÊ NÃO ESTÁ CAVANDO!") - (320 "GORDY" "É PORQUE EU ESTOU PENSANDO!") - ) - -("MIN-LO04" :hint #x0 - (0 "WILLARD" "DUH, GORDY? POSSO DAR UM DESCANSO?") - (220 "GORDY" "OH, PODE DEIXAR QUE EU TE BOTO PRA DORMIR, AGORA CAVE!") - ) - -("MIN-LO05" :hint #x0 - (0 "WILLARD" "TÔ MORRENDO DE FOME, GORDY!") - (200 "GORDY" "COMA SEU PÁSSARO!") - ) - -("MIN-LO06" :hint #x0 - (0 "WILLARD" "DUH, GORDY? EU PRECISO DE UMA PICARETA AFIADA.") - (220 "GORDY" "VOCÊ PRECISA É DE UM CÉREBRO AFIADO!") - ) - -("MSH-AM01" :hint #x0 (0 "GORDY" "(RI) EU VOU SER RICO!")) -("MSH-AM02" :hint #x0 (0 "GORDY" "CAVA, CAVA, CAVA!")) -("MSH-AM03" :hint #x0 (0 "GORDY" "WILLARD! TRABALHE COM AS MÃOS, NÃO COM A CABEÇA!")) -("MSH-AM04" :hint #x0 (0 "GORDY" "(RI) EU VOU SER O HOMEM MAIS RICO DO MUNDO! (RI)")) -("MSH-AM05" :hint #x0 (0 "GORDY" "OH HO HO! NINGUÉM NUNCA VIU UMA GEMA DESSE TAMANHO! AH HA HA!")) -("MSH-AM06" :hint #x0 (0 "GORDY" "VIDA FÁCIL, AQUI VOU EU!")) -("MSH-AM07" :hint #x0 (0 "GORDY" "MINHAS GEMAS! TODAS MINHAS!")) -("MSH-AM08" :hint #x0 (0)) -("MSH-AM09" :hint #x0 (0 "GORDY" "(RINDO) MAL POSSO ESPERAR PRA SACAR ESSE BEBÊZINHO! (RI)")) -("MSH-AM10" :hint #x0 (0 "GORDY" "PARECE SER UM RARO CRISTITE ZLARCONIA! (RI)")) -("MSH-AM11" :hint #x0 (0 "GORDY" "PERA UM POUCO, ELAS SÃO TODAS MINHAS TÔ TE FALANDO!")) -("MSH-AM12" :hint #x0 (0 "GORDY" "E ENTÃO, WILLARD. O QUE VOCÊ VAI FAZER COM O SEU QUARTO DA SUA METADE?")) -("MSH-AM1A" :hint #x0 (0 "GORDY" "EU VOU SER RICO!")) -("MSH-AM2A" :hint #x0 (0 "GORDY" "CAVA, CAVA, CAVA!")) -("MSH-AM3A" :hint #x0 (0 "GORDY" "TRABALHE COM AS MÃOS, NÃO COM A CABEÇA!")) -("MTA-AM01" :hint #x0 (0 "WILLARD" "DUH, ESTAMOS PERTO?")) -("MTA-AM02" :hint #x0 (0 "WILLARD" "JESUS, DÁ PRA DAR UM INTERVALO?")) -("MTA-AM03" :hint #x0 (0 "WILLARD" "AWW, TÔ COM FOME...")) -("MTA-AM04" :hint #x0 (0 "WILLARD" "DUH... ACHO QUE A GAIOLA DO PASSARINHO PRECISA SER LAVADA...")) -("MTA-AM05" :hint #x0 (0 "WILLARD" "JESUS, QUE GEMA TERRIVELMENTE GRANDE!")) -("MTA-AM06" :hint #x0 (0 "WILLARD" "DUH... EU SEMPRE QUIS SER UM LENHADOR...")) -("MTA-AM07" :hint #x0 (0 "WILLARD" "DUH, GORDY PROMETEU ME DAR METADE DO QUE EU PUDER CARREGAR!")) -("MTA-AM08" :hint #x0 (0 "WILLARD" "EH HEH... PASSARINHO É O MEU MELHOR AMIGO...")) -("MTA-AM09" :hint #x0 (0 "WILLARD" "EU AMO O MEU PEQUENO PASSARINHO...")) -("SAGELP31" :hint #x0 (0 "SAMOS" "ISSO NÃO É BOM.")) -("SAGELP32" :hint #x0 (0 "SAMOS" "CRISTAIS DE ECO NEGRO?")) -("SAGELP33" :hint #x0 (0 "SAMOS" "MAIA E GOL PERDERAM A CABEÇA!")) -("SAGELP34" :hint #x0 (0 "SAMOS" "HNG, O PODER DO ECO NEGRO NÃO PODE SER CONTROLADO!")) -("SAGELP35" :hint #x0 (0 "SAMOS" "ECO NEGRO NAS GELEIRAS?")) -("SAGELP36" :hint #x0 (0 "SAMOS" "AH! TEM TROPAS LURKERS NAS MONTANHAS!")) -("SAGELP37" :hint #x0 (0 "SAMOS" "O QUE GOL ESTÁ PLANEJANDO...")) -("SAGELP38" :hint #x0 (0 "SAMOS" "SERÁ QUE ELE REALMENTE PODE...?")) - -("asstva73" :hint #x427 - (0 "KEIRA" "EI RAPAZES! PELOS MEUS CÁLCULOS, VAMOS PRECISAR DE 72 POWER CELLS PARA O ESCUDO DE CALOR") - (340 "KEIRA" "AGUENTAR A LAVA NO CAMINHO ATÉ A CIDADELA DE GOL E MAIA.") - ) - -("asstva74" :hint #x428 - (0 "KEIRA" "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA ATRAVESSAR ESSA LAVA!") - (182 "KEIRA" "VOCÊ NÃO CONSEGUE IR ATÉ A CIDADELA DE GOL E MAIA") - (324 "KEIRA" "ENQUANTO NÃO COLETAR 72 POWER CELLS!") - ) - -("asstvb75" :hint #x429 - (0 "KEIRA" "ESSE ELEVADOR PARECE ESTAR COM DEFEITO.") - (165 "KEIRA" "VOU TENTAR FAZER ELE FUNCIONAR DE NOVO.") - ) - -("asstvb76" :hint #x42a - (0 "KEIRA" "EU REATIVEI O ELEVADOR. ELE PODE TE LEVAR PARA A MONTANHA NEVADA!") - (250 "KEIRA" "USE QUANDO QUISER.") - ) - -("asstv100" :hint #x44f - (0 "KEIRA" "OKAY, VOCÊ TEM CELLS O BASTANTE PARA AUMENTAR O PODER DO ESCUDO DE CALOR.") - (220 "KEIRA" "SIGAM O TRILHO DO CARRINHO AO LADO DO ELEVADOR.") - (420 "KEIRA" "TE ENCONTRO NA ENTRADA DO TÚNEL DE LAVA, PARA QUE EU POSSA MODIFICAR O ZOOMER, CORRA!") - ) - -("asstv101" :hint #x450 - (0 "KEIRA" "HAHA, OKAY! VOCÊ TEM POWER CELLS O BASTANTE PARA MELHORAR O ESCUDO DE CALOR.") - (260 "KEIRA" "ME ENCONTRE NA CRATERA VULCÂNICA.") - (390 "KEIRA" "VOU ESTAR TE ESPERANDO NO TÚNEL DE LAVA, AO FINAL DOS TRILHOS DO LADO DO ELEVADOR.") - (610 "KEIRA" "LEVE AS POWER CELLS!") - ) - -("asstv102" :hint #x451 - (0 "KEIRA" "SE APRESSE COM ESSAS POWER CELLS!") - (100 "KEIRA" "EU ESTOU ESPERANDO AO FINAL DOS TRILHOS AO LADO DO ELEVADOR.") - ) - -("asstv103" :hint #x452 - (0 "KEIRA" "NÃO ESQUEÇA DE LIGAR O TELEPORTADOR PARA A GENTE.") - (160 "KEIRA" "VOCÊ PRECISA IR AO LABORATÓRIO DO SÁBIO VERMELHO") - (280 "KEIRA" "NO CENTRO DA CRATERA VULCÂNICA PARA LIGÁ-LO.") - (450 "KEIRA" "NÃO PODEMOS ATRAVESSAR ENQUANTO NÃO ESTIVER LIGADO.") - ) - -("asstv104" :hint #x453 - (0 "KEIRA" "HEY, AINDA ESTAMOS NA VILA DA PEDRA!") - (120 "KEIRA" "LIGUE O TELEPORTADOR!") - ) - -("asstv105" :hint #x454 - (0 "KEIRA" "QUEREMOS NOS JUNTAR A VOCÊ NA CRATERA VULCÂNICA!") - (128 "KEIRA" "VÁ PARA O LABORATÓRIO DO SÁBIO VERMELHO E LIGUE O PORTAL.") - ) - -;; ----------------- -;; snowy -;; ----------------- - -("sksp0345" :hint #x443 (0 "DAXTER" "COMO VAMOS ENTRAR NESSA FORTALEZA?")) -("sksp0346" :hint #x444 (0 "DAXTER" "TALVEZ O ECO VERMELHO DERRUBE ESSE CARA!")) -("sksp0347" :hint #x445 (0 "DAXTER" "PRECISAMOS FAZER UM PULO ROLANDO!")) -("sksp0348" :hint #x446 (0 "DAXTER" "PRECISAMOS ACHAR UMA FORMA DE ABRIR ESSA FONTE!")) -("sksp0349" :hint #x447 (0 "DAXTER" "AQUILO PARECE SER UM INTERRUPTOR DE ECO!")) -("sksp0350" :hint #x448 (0 "DAXTER" "ACERTE ELE QUANDO OS ESPINHOS ESTIVEREM PRA DENTRO!")) -("sksp0351" :hint #x449 (0 "DAXTER" "APERTE O BOTÃO!")) -("sksp0352" :hint #x44a (0 "DAXTER" "RÁPIDO! ANTES QUE ELES DESÇAM!")) -("sksp0359" :hint #x44b (0 "DAXTER" "VOCÊ PRECISA USAR O ECO VERMELHO!")) -("sksp0360" :hint #x44c (0 "DAXTER" "TÁ CERTO! NÓS ABRIMOS AS FONTES DE ECO AMARELO!")) -("sksp0362" :hint #x44d (0 "DAXTER" "OLHA! UMA POWER CELL CONGELADA!")) -("sksp0363" :hint #x44e (0 "DAXTER" "APENAS UM FLUT FLUT CONSEGUE PULAR TÃO LONGE!")) - -;; ----------------- -;; spidercave -;; ----------------- - -("sksp0327" :hint #x432 (0 "DAXTER" "ACHO QUE ESSE FOI O ÚLTIMO CRISTAL DE ECO NEGRO!")) -("sksp0328" :hint #x433 (0 "DAXTER" "TALVEZ A GENTE ATIRE MELHOR SE VOCÊ MIRAR COM A SUA LENTE.")) -("sksp0329" :hint #x434 (0 "DAXTER" "OH, NÃO! MAIS ECO NEGRO!")) -("sksp0330" :hint #x435 (0 "DAXTER" "NÃO ACHO QUE PEGAMOS TODOS OS CRISTAIS DE ECO NEGRO.")) -("sksp0331" :hint #x436 (0 "DAXTER" "ATIRE NOS LURKERS COMENDO AS PILARES!")) -("sksp0332" :hint #x437 (0 "DAXTER" "NÃO DEIXE AS LUZES APAGAREM!")) -("sksp0333" :hint #x438 (0 "DAXTER" "ACERTE O CRISTAL PARA CONSEGUIR ALGUMA LUZ.")) -("sksp0334" :hint #x439 (0 "DAXTER" "CORRE! AQUELE CRISTAL VAI EXPLODIR!")) -("sksp0335" :hint #x43a (0 "DAXTER" "EWH, ELES ACHARAM O ROBÔ PRECURSOR!")) -("sksp0336" :hint #x43b (0 "DAXTER" "ESTOURE OS OVOS! ANTES QUE ELES NASÇAM!")) -("sksp0337" :hint #x43c (0 "DAXTER" "É TÃO ASSUSTADOR AQUI...")) -("sksp0338" :hint #x43d (0 "DAXTER" "PARECE QUE TEIAS DE ARANHA QUEBRAM APÓS DUAS BALANÇADAS.")) -("sksp0339" :hint #x43e (0 "DAXTER" "EU. ODEIO. ARANHAS...")) -("sksp0340" :hint #x43f (0 "DAXTER" "BEBÊS ARANHA VINDO!")) -("sksp0341" :hint #x440 (0 "DAXTER" "ACHO QUE ESTAMOS NO NINHO DAS ARANHA!")) -("sksp0342" :hint #x441 (0 "DAXTER" "CUIDADO, MAIS ARANHAS!")) -("sksp0343" :hint #x442 (0 "DAXTER" "VAMO VAZAR DAQUI!")) - -;; ----------------- -;; lavatube -;; ----------------- - -("assistant-lavatube-end-resolution" - (58 "DAXTER" "HEY! CADÊ AQUELE VERDINHO ENRUGADO?") - (143) - (147 "KEIRA" "ISSO É TERRÍVEL! O PAPAI SUMIU!") - (227 "KEIRA" "ACHO QUE GOL E MAIA SEQUESTRARAM ELE TAMBÉM!") - (318 "DAXTER" "RELAXA, AMORZINHO. EU TENHO TUDO SOB CONTROLE.") - (447) - (450 "KEIRA" "SOB CONTROLE?! TROPAS LURKER CONTINUAM CRESCENDO PELA REGIÃO,") - (591 "KEIRA" "OS SÁBIOS FORAM SEQUESTRADOS,") - (644 "KEIRA" "GOL E MAIA JUNTARAM ECO O BASTANTE PARA COMPLETAR SEU PLANO TERRÍVEL,") - (757 "KEIRA" "E PARA IMPEDI-LOS, VOCÊS VÃO TER QUE CRUZAR A CIDADELA DELES!") - (876) - (888 "DAXTER" "UH... É. ISSO MEIO QUE... RESUME TUDO.") - (1011) - (1014 "KEIRA" "VOCÊS PRECISAM RESGATAR MEU PAI ANTES QUE SEJA TARDE DEMAIS!") - (1112 "KEIRA" "E JAK...") - (1158 "KEIRA" "TENHA CUIDADO.") - (1191) - (1200 "DAXTER" "É. NÓS VAMOS TER!") - ) - -("assistant-lavatube-start-resolution" - (0 "KEIRA" "HA HA! TUDO CERTO!") - (48 "KEIRA" "COM ESSAS POWER CELLS ADICIONAIS, EU DEVO CONSEGUIR ABASTECER O ESCUDO DE CALOR") - (157 "KEIRA" "COM ENERGIA O BASTANTE PARA AGUENTAR ESSA LAVA.") - (227) - (230 "KEIRA" "MAS O ESCUDO AINDA TEM UM LIMITE.") - (285) - (288 "KEIRA" "AGORA ELE AGUENTA TEMPERATURAS DE ATÉ 426 GRAUS, NADA ALÉM DISSO.") - (400 "KEIRA" "ENTÃO FIQUEM DE OLHO NO MEDIDOR.") - (457) - (463 "KEIRA" "NÃO QUERO NEM PENSAR NO QUE ESSAS TEMPERATURAS FARIAM COM O SEU ZOOMER") - (550 "KEIRA" "SE O ESCUDO NÃO SUPORTAR.") - (590) - (617 "DAXTER" "É, O CALOR...") - (663) - (672 "DAXTER" "O QUE? O ZOOMER? EI! E QUANTO A GENTE?!") - (784) - (790 "DAXTER" "NÃO ACHA QUE PODÍAMOS PROCURAR UMA ROTA MAIS SEGURA PARA A CIDADELA DO GOL?") - (885) - (895 "KEIRA" "OLHA, EU SOLTEI MAIS BALÕES DE RESFRIAMENTO NO TÚNEL.") - (987 "KEIRA" "USEM ELES PARA MANTER A TEMPERATURA BAIXA.") - (1060 "KEIRA" "E NÃO ESQUEÇAM DE ATIVAR O TELEPORTADOR NO LABORATÓRIO DO SÁBIO AMARELO.") - (1184) - (1187 "KEIRA" "ESTAMOS CONTANDO COM VOCÊS.") - ) - -("sksp0364" :hint #x702 (0 "DAXTER" "TEMOS QUE CORRER, OU ESTAMOS FRITOS!")) -("sksp0365" :hint #x703 (0 "DAXTER" "ESCOLHE UM CAMINHO, QUALQUER CAMINHO!")) -("sksp0366" :hint #x704 (0 "DAXTER" "DESVIE OU ATIRE NAS MINAS, JAK!")) -("sksp0367" :hint #x705 (0 "DAXTER" "ACHE UM CAMINHO ENTRE OS BARRIS DE ECO NEGRO!")) -("sksp0368" :hint #x706 (0 "DAXTER" "CONTINUE ACERTANDO ESSES BALÕES DE RESFRIAMENTO!")) -("sksp0369" :hint #x707 (0 "DAXTER" "ESTAMOS FICANDO QUENTES DEMAIS!")) -("sksp0370" :hint #x708 (0 "DAXTER" "VAI EXPLODIR!")) -("sksp0371" :hint #x709 (0 "DAXTER" "VÁ PELO ECO AZUL, JAK!")) -("sksp0372" :hint #x70a (0 "DAXTER" "ATIRA PRA ABRIR CAMINHO!")) -("sksp0373" :hint #x70b (0 "DAXTER" "WAHOO! QUE VIAGEM!")) -("sksp0374" :hint #x70c (0 "DAXTER" "SIM! RODA E QUEIMA, BEBÊ!")) -("sksp0375" :hint #x70d (0 "DAXTER" "ATIRA NAS ESFERAS DE ENERGIA PRA ABRIR A PORTA!")) -("sksp0376" :hint #x70e (0 "DAXTER" "ATIRA NAS ESFERAS DE ENERGIA ANTES QUE A GENTE QUEIME!")) -("sksp0379" :hint #x711 (0 "DAXTER" "VOANDO!")) -("sksp0380" :hint #x712 (0 "DAXTER" "CONSEGUIMOS ATRAVESSAR!")) - -;; ----------------- -;; citadel -;; ----------------- - -("bluesage-resolution" - (63 "SÁBIO AZUL" "BOM TRABALHO, COMPANHEIROS! O VELHO SAMOS ESTAVA CERTO SOBRE VOCÊS!") - (162) - (165 "SÁBIO AZUL" "PELA SANTO MONTE DE METAL PRECURSOR!") - (253 "SÁBIO AZUL" "ESSA SÓRDIDA CRIAÇÃO MECÂNICA NÃO PODE LOGRAR SUA TERRÍVEL DESTRUIÇÃO!") - (420) - (430 "SÁBIO AZUL" "EU TENTAREI MITIGAR O CAMPO DE FORÇA EMITINDO UM CONDUTO DE ENERGIA") - (563 "SÁBIO AZUL" "ENTRE EU E O GRANDE PORTAL ABAIXO!") - (666) - (669 "DAXTER" "UH... YEAH. FAZ ISSO AÍ. NÓS VAMOS UH... SÓ CONSEGUIR MAIS AJUDA.") - (879) - (891 :offscreen "DAXTER" "LERDÃO!") - (980) - ) - -("green-sagecage-introduction" - (130 "SAMOS" "JÁ ERA HORA DE VOCÊS DOIS RESOLVEREM APARECER!") - (207 "DAXTER" "É BOM TE VER TAMBÉM! ELES TE BOTARAM PRA LAVAR O CHÃO AGORA?") - (343 "SAMOS" "NÃO HÁ TEMPO PARA PIADAS, DAXTER. GOL E MAIA NOS SEQUESTRARAM") - (477 "SAMOS" "PARA USAR NOSSAS ENERGIAS NA MÁQUINA ABOMINÁVEL DELES.") - (574) - (584 :offscreen "SAMOS" "PARECE QUE ELES COMBINARAM PARTES FUNCIONAIS DO ROBÔ PRECURSOR") - (710 :offscreen "SAMOS" "COM ARTEFATOS RECOLHIDOS PELO MUNDO.") - (800) - (816 :offscreen "SAMOS" "E ELES ADICIONARAM MECANISMOS DIABÓLICOS PRÓPRIOS,") - (926 :offscreen "SAMOS" "CRIANDO ALGO CAPAZ DE ABRIR OS RESERVATÓRIOS DE ECO NEGRO.") - (1060 "SAMOS" "SE VOCÊS PUDEREM LIBERTAR NÓS 4, PODEMOS USAR NOSSOS PODERES COMBINADOS") - (1180 "SAMOS" "PARA QUEBRAR O CAMPO DE FORÇA EM VOLTA DO ROBÔ, ANTES QUE ELES O USEM PARA DESTRUIR O MUNDO.") - ) - -("green-sagecage-outro-preboss" - (66 "GOL" "TARDE DEMAIS, SAMOS.") - (125 "GOL" "ASSIM QUE EU TIVER ECO NEGRO ILIMITADO, EU TEREI A CHAVE PARA A PRÓPRIA CRIAÇÃO!") - (335 "SAMOS" "ISSO É LOUCURA! LIBERAR AQUELE TANTO DE ECO NEGRO IRÁ DESTRUIR TUDO QUE CONHECEMOS!") - (503) - (510 "SAMOS" "OLHE O QUE ELE FEZ COM VOCÊ!") - (578) - (586 "MAIA" "NOS TROUXE BELEZA ALÉM DA SUA COMPREENSÃO.") - (693) - (700 "DAXTER" "BELEZA? VOCÊS SE OLHARAM NO ESPELHO RECENTEMENTE?") - (825) - (834 "MAIA" "ESPERE ATÉ ABRIRMOS OS RESERVATÓRIOS, PEQUENINO. VOCÊ ACHA QUE BAIXINHO E PELUDO É RUIM?") - (1028) - (1036 "GOL" "E PENSAR QUE VOCÊS DOIS VIAJARAM ISSO TUDO PELA MINHA AJUDA.") - (1180 "GOL" "TOLOS! APROVEITEM A FILEIRA DA FRENTE PARA O RENASCIMENTO DO MUNDO!") - (1391) - (1605 "SAMOS" "JAK! SUBA NO ELEVADOR E IMPEÇA ESSE ROBÔ!") - ) - -("green-sagecage-resolution" - (35 "SAMOS" "BOM TRABALHO, GAROTOS! VOCÊS SÃO VERDADEIROS HERÓIS AGORA.") - (158 "SAMOS" "EU VOU COMBINAR O MEU PODER COM O DOS OUTROS TRÊS SÁBIOS") - (282 "SAMOS" "E JUNTOS VAMOS DESTRUIR O CAMPO DE FORÇA EM VOLTA DO ROBÔ PRECURSOR.") - (402) - (405 "DAXTER" "TÁ, TÁ, PARECE UM BOM COMEÇO.") - (460 "DAXTER" "E DEPOIS DE ABRIR O CAMPO DE FORÇA, O QUE VOCÊ VAI FAZER QUANTO AO ROBÔ?") - (576 "SAMOS" "NADA, DAXTER. NÓS PRECISAMOS MANTER O CAMPO DE FORÇA ABERTO.") - (702) - (705 "SAMOS" "CABE A VOCÊS DOIS DESCOBRIREM COMO DESTRUIR O ROBÔ.") - (823 "DAXTER" "OH, ÓTIMO. EU AJUDO O CARA QUE ME TRANSFORMOU NUMA BOLA DE PELO") - (983 "DAXTER" "A DESTRUIR A ÚNICA PESSOA QUE PODE ME TRAZER DE VOLTA!") - (1108) - (1161 "SAMOS" "PRIMEIRO, SALVAR O MUNDO! E ENTÃO A GENTE TENTA CONVENCER O GOL A AJUDAR O DAXTER.") - ) - -("redsage-resolution" - (58 "SÁBIO VERMELHO" "(RISOS) VOCÊS FINALMENTE VIERAM ME RESGATAR.") - (196 "SÁBIO VERMELHO" "VOCÊS SABEM A QUANTO TEMPO EU TÔ AQUI? POR QUE DEMORARAM TANTO?... (RISOS)") - (378 "SÁBIO VERMELHO" "E QUAL O NOME DE VOCÊS?") - (428) - (436 "DAXTER" "EU SOU DAXTER! ESSE AÍ É O JAK, ELE TÁ COMIGO.") - (542 :offscreen "SÁBIO VERMELHO" "BOM TRABALHO, DAXTER. VOCÊ É UM VERDADEIRO HERÓI.") - (677) - (703 "SÁBIO VERMELHO" "VOCÊ PRECISA IMPEDIR GOL DE LIBERAR O ROBÔ.") - (837 "SÁBIO VERMELHO" "EU VOU USAR O MEU PODER DE ECO PARA AJUDAR A ABRIR O CAMPO DE FORÇA.") - ) - -("yellowsage-resolution" - (57 "SÁBIO AMARELO" "QUEM DIRIA QUE EU VIVERIA PRA VER O DIA") - (137 "SÁBIO AMARELO" "QUE EU PRECISARIA SER RESGATADO POR UM GAROTO E SUA RATAZANA!") - (262) - (271 "SÁBIO AMARELO" "(SUSPIRA) GOL E MAIA VÃO PAGAR POR ESSE CONSTRANGIMENTO!") - (475) - (485 "SÁBIO AMARELO" "E ENTÃO VAMOS COZINHAR BIFE DE RATAZANA...") - (602) - (610 "DAXTER" "(MEDO)") - (630) - ) - -("BLU-AM01" :hint #x0 (0 "SÁBIO AZUL" "UMA AJUDINHA SERIA BOM!")) -("BLU-AM02" :hint #x0 (0 "SÁBIO AZUL" "OH, MAS QUE CONFUSÃO.")) -("BLU-AM03" :hint #x0 (0 "SÁBIO AZUL" "HMM, ESTAMOS DIANTE DE UM DILEMA DE FATO.")) -("RED-AM01" :hint #x0 (0 "SÁBIO VERMELHO" "TEM ALGUÉM AÍ?")) -("RED-AM02" :hint #x0 (0 "SÁBIO VERMELHO" "BEM...")) -("RED-AM03" :hint #x0 (0 "SÁBIO VERMELHO" "DEMOROU POR QUÊ?")) -("YEL-AM01" :hint #x0 (0 "SÁBIO AMARELO" "O TEMPO TÁ ACABANDO!")) -("YEL-AM02" :hint #x0 (0 "SÁBIO AMARELO" "HEY! ME TIRA DAQUI!")) -("YEL-AM03" :hint #x0 (0 "SÁBIO AMARELO" "QUANDO EU SAIR DAQUI, VAI ROLAR UM TIROTEIO!")) -("sksp0381" :hint #x806 (0 "DAXTER" "QUEBRA O GERADOR PRA LIBERTAR O SÁBIO!")) -("sksp0382" :hint #x807 (0 "DAXTER" "SE SEGURA NA BEIRADA!")) -("sksp0383" :hint #x808 (0 "DAXTER" "TEMOS COMPANHIA, JAK. MUUITOS LURKERS!")) -("sksp0384" :hint #x809 (0 "DAXTER" "DESTRUA ESSES GERADORES!")) -("sksp0385" :hint #x80a (0 "DAXTER" "APERTA O BOTÃO!")) -("sksp0386" :hint #x80b (0 "DAXTER" "ESSE ROBÔ NÃO ME ASSUSTA!")) -("sksp0387" :hint #x80c (0 "DAXTER" "VAMOS SUBIR ESSAS PLATAFORMAS!")) -("sksp0388" :hint #x80d (0 "DAXTER" "NÃO PERCA O PRÓXIMO LANÇADOR!")) -("sksp0389" :hint #x80e (0 "DAXTER" "FICA DE OLHO!")) -("sksp0390" :hint #x80f (0 "DAXTER" "TEMOS QUE RESGATAR TODOS OS SÁBIOS!")) -("sksp0391" :hint #x810 (0 "DAXTER" "ACHA QUE O GOL AINDA VAI ME TRAZER DE VOLTA?")) -("sksp0392" :hint #x811 (0 "DAXTER" "E ESSA CIDADELA DO GOL E MAIA HEIN? BEM ACONCHEGANTE.")) -("sksp0393" :hint #x812 (0 "DAXTER" "ACERTA O PRÓXIMO LANÇADOR!")) -("sksp0378" :hint #x813 (0 "DAXTER" "A PORTA ESTÁ ABRINDO, VAMOS LÁ!")) - -;; ----------------- -;; finalboss -;; ----------------- - -("finalbosscam-white-eco" - (163 :offscreen "GOL" "ECO LUMINOSO! ELE EXISTE!") - (268 :offscreen "MAIA" "ELES NÃO PODEM PEGÁ-LO!") - ) - -("green-sagecage-daxter-sacrifice" - (0 "DAXTER" "ECO LUMINOSO! ISSO PODE ME TRAZER DE VOLTA!") - (114) - (123 "DAXTER" "OU... PODE DESTRUIR AQUELE ROBÔ.") - (235) - (274 "DAXTER" "CONTINUAR FELPUDO, SALVAR O MUNDO... ESCOLHAS...") - (404) - (437 "DAXTER" "TÁ BOM, A GENTE SALVA O MUNDO. MAS FAÇA RÁPIDO ANTES QUE EU MUDE DE IDEIA!") - (634) - ) - -("green-sagecage-outro-beat-boss-a" - (165 :offscreen "MAIA" "FAÇA ALGUMA COISA!") - (216) - (596 :offscreen "GOL" "NÃOOO!") - ) - -("green-sagecage-outro-beat-boss-b" - (522 "SAMOS" "BEM, PARECE QUE FUI DURO DEMAIS COM VOCÊS, GAROTOS!") - (640 "SAMOS" "VOCÊS TEM O QUE É PRECISO PARA SEREM HERÓIS!") - (745) - (751 "KEIRA" "MAS, DAXTER, AGORA NÃO PODEMOS TE TRAZER DE VOLTA.") - (845) - (847 "DAXTER" "NÃO SE PREOCUPE COMIGO, BEBÊ. É COMO DIZ O DITADO: OS MELHORES PERFUMES NOS MENORES FRASCOS.") - (1096) - (1104 "SÁBIO AZUL" "JAK, VOCÊ TEM UM TALENTO INCRÍVEL PARA CANALIZAR ECO!") - (1219) - (1226 "SÁBIO AZUL" "SAMOS, VOCÊ PODE TER RAZÃO SOBRE ESSE AQUI AFINAL!") - (1318) - (1323 "SÁBIO VERMELHO" "E KEIRA, SEM SUA AJUDA E TALENTO, NADA DISSO SERIA POSSÍVEL.") - (1515 "SÁBIO VERMELHO" "HM-HM-HM. TALVEZ TENHAMOS ACHADO UMA NOVA SÁBIA AGORA QUE GOL E MAIA SE FORAM...") - (1728) - (1731 "SAMOS" "SIM, GOL E MAIA... O ECO NEGRO PROVAVELMENTE DESTRUIU ELES.") - (1916 :offscreen "SAMOS" "EH, PROVAVELMENTE...") - (1999) - (2003 "DAXTER" "QUEM LIGA? DEIXA VIR, A GENTE APAGA ELES DE NOVO NÉ, JAK?") - (2168) - (2172 "DAXTER" "EU DISSE, NÉ, JAK?") - (2256) - (2302 "DAXTER" "WHOA! ARRUMA UM QUARTO, GRANDÃO!") - ) - -("green-sagecage-outro-beat-boss-enough-cells" - (151 "SAMOS" "MINHA NOSSA! O QUE PODE SER ISSO?") - (247 "KEIRA" "WOW, É UM ANTIGO PORTÃO PRECURSOR!") - (342 :offscreen "KEIRA" "PARECE QUE SÓ ABRE SE PREENCHERMOS OS 100 BURACOS COM POWER CELLS!") - (485 "DAXTER" "UH, SOMOS HERÓIS, LEMBRA? NÓS TEMOS 100 POWER CELLS!") - ) - -("green-sagecage-outro-beat-boss-need-cells" - (151 "SAMOS" "MINHA NOSSA! O QUE PODE SER ISSO?") - (247 "KEIRA" "WOW, É UM ANTIGO PORTÃO PRECURSOR!") - (342 :offscreen "KEIRA" "PARECE QUE SÓ ABRE SE PREENCHERMOS OS 100 BURACOS COM POWER CELLS!") - (485 "DAXTER" "AH MANO... LÁ VAMOS NÓS DE NOVO!") - ) - -("green-sagecage-outro-big-finish" - (322 "DAXTER" "WOW! O QUE É ISSO?") - (425) - (428 "KEIRA" "É TÃO LINDO...") - (516) - (519 "SAMOS" "PELOS PRECURSORES...") - (602) - ) - -("GOL-AM01" :hint #x0 (0 "GOL" "VOCÊ SÓ NÃO DESISTE, NÃO É?")) -("GOL-AM02" :hint #x0 (0 "GOL" "EM BREVE, O ECO NEGRO SERÁ NOSSO!")) -("GOL-AM03" :hint #x0 (0 "GOL" "ACABE COM ELES!")) -("GOL-AM04" :hint #x0 (0 "GOL" "FOGO!")) -("GOL-AM05" :hint #x0 (0 "GOL" "EXPLODA ELES!")) -("GOL-AM06" :hint #x0 (0 "GOL" "O QUE? ELES DE NOVO!")) -("GOL-AM07" :hint #x0 (0 "GOL" "É TARDE DEMAIS!")) -("GOL-AM08" :hint #x0 (0 "GOL" "VOCÊS SÃO MEUS!")) -("GOL-AM09" :hint #x0 (0 "GOL" "TE PEGUEI AGORA!")) -("GOL-AM10" :hint #x0 (0 "GOL" "AH HA HA HA HA!")) -("GOL-AM11" :hint #x0 (0 "GOL" "SEM PIEDADE!")) -("GOL-AM12" :hint #x0 (0 "GOL" "TOMA ISSO!")) -("GOL-AM13" :hint #x0 (0 "GOL" "BOA TENTATIVA!")) -("GOL-AM14" :hint #x0 (0 "GOL" "FIQUE PARADO!")) -("GOL-AM15" :hint #x0 (0 "GOL" "PATÉTICO!")) -("GOL-AM16" :hint #x0 (0 "GOL" "NÃOOO!")) -("GOL-AM17" :hint #x0 (0 "GOL" "AHHH!")) -("GOL-AM18" :hint #x0 (0 "GOL" "VAMOS ABRIR O RESERVATÓRIO TOTALMENTE E DESTRUIR VOCÊS!")) -("GOL-AM19" :hint #x0 (0 "GOL" "ECO LUMINOSO! ELE EXISTE MESMO!")) -("GOL-AM20" :hint #x0 (0 "GOL" "VAMOS PEGÁ-LO!")) -("MAI-AM01" :hint #x0 (0 "MAIA" "ACABE COM ELES DOIS DE UMA VEZ POR TODAS!")) -("MAI-AM02" :hint #x0 (0 "MAIA" "ACABA COM ELES!")) -("MAI-AM03" :hint #x0 (0 "MAIA" "HA HA HA!")) -("MAI-AM04" :hint #x0 (0 "MAIA" "ECO NÃO VAI TE PROTEGER AGORA!")) -("MAI-AM05" :hint #x0 (0 "MAIA" "FAÇA ALGUMA COISA!")) -("MAI-AM06" :hint #x0 (0 "MAIA" "AGH!")) -("MAI-AM07" :hint #x0 (0 "MAIA" "NÃOOOOO!")) -("MAI-AM08" :hint #x0 (0 "MAIA" "VAMOS ABRIR O RESERVATÓRIO E DESTRUIR VOCÊS!")) -("MAI-AM09" :hint #x0 (0 "MAIA" "ELES NÃO PODEM PEGÁ-LO!")) -("sksp0394" :hint #x0 (0 "DAXTER" "PEGA O ECO AMARELO!")) -("sksp0395" :hint #x0 (0 "DAXTER" "ATIRA NO ROBÔ, JAK!")) -("sksp0396" :hint #x0 (0 "DAXTER" "ATIRA NO BRAÇO DELE!")) -("sksp0397" :hint #x0 (0 "DAXTER" "ATIRA NA ARMA!")) -("sksp0398" :hint #x0 (0 "DAXTER" "ATIRA NA CABEÇA!")) -("sksp0399" :hint #x0 (0 "DAXTER" "CUIDADO COM O DISPARO!")) -("sksp0400" :hint #x0 (0 "DAXTER" "ELE TÁ CARREGANDO!")) -("sksp0401" :hint #x0 (0 "DAXTER" "PEGA O ECO AZUL!")) -("sksp0402" :hint #x0 (0 "DAXTER" "PEGA O ECO VERMELHO!")) -("sksp0403" :hint #x0 (0 "DAXTER" "EU TÔ COM UM MAU PRESSENTIMENTO!")) -("sksp0404" :hint #x0 (0 "DAXTER" "USA O LANÇADOR, RÁPIDO!")) -("sksp0405" :hint #x0 (0 "DAXTER" "AGORA TU DEIXOU O BICHO NERVOSO!")) -("sksp0406" :hint #x0 (0 "DAXTER" "A GENTE NÃO CONSEGUE TOCAR NELES!")) -("sksp0407" :hint #x0 (0 "DAXTER" "USA O ECO AMARELO!")) -("sksp0408" :hint #x0 (0 "DAXTER" "ATIRA NELES!")) -("sksp0409" :hint #x0 (0 "DAXTER" "PEGA O ECO LUMINOSO, JAK!")) -("sksp0410" :hint #x0 (0 "DAXTER" "ELE PARECE IRRITADO!")) -("sksp0411" :hint #x0 (0 "DAXTER" "PULA PRA FUGIR DAS EXPLOSÕES!")) -("sksp0412" :hint #x0 (0 "DAXTER" "AGORA A GENTE TÁ NA MÃO!")) -("sksp0413" :hint #x0 (0 "DAXTER" "BOA MIRA, PARCEIRO!")) -("sksp0414" :hint #x0 (0 "DAXTER" "AQUILO MACHUCOU ELE!")) -("sksp0415" :hint #x0 (0 "DAXTER" "LÁ VEM!")) -("sksp0416" :hint #x0 (0 "DAXTER" "YEAH! TU CONSEGUIU!")) -("sksp0417" :hint #x0 (0 "DAXTER" "DIGAM \"BONS SONHOS\", GOL E MAIA!")) - -;; ----------------- -;; title -;; ----------------- - -("sksp0444" :hint #x0 (0 "DAXTER" "ESTAMOS ESPERANDO. OLÁ?")) -("sksp0449" :hint #x0 (0 "DAXTER" "APERTE START PRA JOGAR.")) -("sksp0450" :hint #x0 (0 "DAXTER" "QUER JOGAR MAIS NÃO?")) -("sksp0451" :hint #x0 (0 "DAXTER" "FOI O QUE PENSEI.")) -("sksp0452" :hint #x0 (0 "DAXTER" "OKAY, TE VEJO DEPOIS.")) -("sksp0455" :hint #x0 (0 "DAXTER" "CARA, QUEM PESSOAL É ESSE?")) -("sksp0466" :hint #x0 (0 "DAXTER" "EU MANDEI BEM. NÃO FOI, GAROTAS?")) - -;; ----------------- -;; uncategorized -;; ----------------- - diff --git a/game/assets/jak1/subtitle/subtitle-groups.json b/game/assets/jak1/subtitle/subtitle-groups.json index e7909e9c6f..9963741525 100644 --- a/game/assets/jak1/subtitle/subtitle-groups.json +++ b/game/assets/jak1/subtitle/subtitle-groups.json @@ -295,7 +295,8 @@ "sksp0072", "sksp0073", "sksp0435", - "fishermans-boat-ride-to-village1-alt" + "fishermans-boat-ride-to-village1-alt", + "evilbro-misty-end" ], "ogre": [ "asstvb23", @@ -539,9 +540,6 @@ "sagevb38", "sagevb39" ], - "uncategorized": [ - "evilbro-misty-end" - ], "village1": [ "ASSTLP01", "ASSTLP02", diff --git a/game/assets/jak1/subtitle/subtitle_lines_ca-ES.json b/game/assets/jak1/subtitle/subtitle_lines_ca-ES.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_ca-ES.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_da-DK.json b/game/assets/jak1/subtitle/subtitle_lines_da-DK.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_da-DK.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_de-DE.json b/game/assets/jak1/subtitle/subtitle_lines_de-DE.json new file mode 100644 index 0000000000..eee7405ba5 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_de-DE.json @@ -0,0 +1,2792 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "SUPER! IHR HABT DIE 20 ENERGIEZELLEN, UM MEINEN HITZESCHILD ZU AKTIVIEREN!", + "SEID ABER VORSICHTIG,", + "DER SCHILD SCHÜTZT DEN ZOOMER NUR BIS ZU EINER TEMPERATUR VON 500 GRAD.", + "ALSO LASST IHN NICHT ZU HEISS LAUFEN.", + "WENN IHR ÜBER GLÜHENDE LAVA FLIEGT, HEIZT IHN DAS GANZ SCHÖN SCHNELL AUF.", + "WENN IHR 500 GRAD ERREICHT, IST ES AUS!", + "AUS?! DU MEINST WIE IN \"AUS UND VORBEI\"?!", + "DER FEUER-CANYON IST SEHR HEISS,", + "ACHTET AUF SPRUNGMÖGLICHKEITEN, UM DEN ABSTAND ZUR LAVA ZU VERGRÖSSERN.", + "ICH HABE AUCH MEHRERE BLAUE KÜHLBALLONS STEIGEN LASSEN,", + "MIT DENEN IHR DIE TEMPERATUR DES SCHILDES SCHNELL SENKEN KÖNNT.", + "ACH, JA, WENN IHR DURCH DEN CANYON SEID, VERGESST JA NICHT, DAS TELEPORTTOR", + "IM LABOR DES BLAUEN WEISEN ZU AKTIVIEREN.", + "DANN KÖNNEN WIR UNS ZU EUCH HINÜBERTELEPORTIEREN!", + "VIEL GLÜCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY, BABY. WOLLEN WIR NICHT ZUSAMMEN EIN PAAR RUNDEN AUF DIESEM A-GRAV ZOOMER DREHEN?", + "REGEL NUMMER EINS: ICH VERABREDE MICH NICHT MIT TIEREN.", + "ACH, DU WEISST JA GAR NICHT, WAS DIR ENTGEHT, EH HEH HEH...", + "HÖR ZU, WENN IHR BESCHÄFTIGUNG BRAUCHT, MEIN VATER HAT VON EINEM", + "ALTEN PRECURSOR-ROHRSYSTEM TIEF UNTER DER ERDE ERZÄHLT.", + "AM ENDE VON EINIGEN ROHREN SIND ÖFFNUNGEN, AUS DENEN DAS ECO HERAUSSTRÖMT,", + "ANDERE SIND VERRIEGELT, SODASS DAS ECO EINGESCHLOSSEN IST.", + "ES MUSS MÖGLICH SEIN, DIE VERRIEGELTEN ÖFFNUNGEN AUFZUMACHEN.", + "ICH HAB RAUSGEFUNDEN, DASS EIN TEIL DER ROHRE UNTER DEM VERBOTENEN TEMPEL LIEGT.", + "SUCHT DORT MAL NACH EINEM SCHALTER." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WAS IST'N DAS HIER?", + "SEI VORSICHTIG! ICH VERSUCHE, HERAUSZUFINDEN, WIE MAN DEN ZOOMER MITHILFE DER", + "PRECURSOR-TRANS-PADS TRANSPORTIEREN KANN.", + "WENN IHR AN EINES DIESER PADS KOMMT, KANN ICH DIE POSITION EURES KOMMUNIKATORS ERMITTELN", + "UND EUCH DEN ZOOMER SCHICKEN!", + "HALTET AUF DER NEBELINSEL AUSSCHAU NACH SOLCHEN TRANS-PADS, ODER SONSTWO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WO IST DENN DER KLEINE SCHRUBBELIGE?", + "ES IST FURCHTBAR! VATER IST VERSCHWUNDEN!", + "GOL UND MAIA HABEN MÖGLICHERWEISE AUCH IHN ENTFÜHRT!", + "IMMER MIT DER RUHE, SÜSSE. ICH HABE ALLES UNTER KONTROLLE.", + "UNTER KONTROLLE? LURKER-ARMEEN BREITEN SICH IM GANZEN LAND AUS,", + "DIE WEISEN SIND ENTFÜHRT WORDEN,", + "GOL UND MAIA HABEN GENUG ECO, UM IHREN FÜRCHTERLICHEN PLAN AUSZUFÜHREN!", + "UM SIE AUFZUHALTEN, WERDET IHR EUCH DURCH IHRE ZITADELLE KÄMPFEN MÜSSEN!", + "ÄH... JA. HAST DU... SCHÖN GESAGT.", + "IHR MÜSST MEINEN VATER RETTEN, BEVOR ES ZU SPÄT IST.", + "UND JAK? SEI VORSICHTIG.", + "JA. WIR SIND ES!" + ], + "assistant-lavatube-start-resolution": [ + "HAHA! IN ORDNUNG!", + "MIT DIESEN ZUSÄTZLICHEN ENERGIEZELLEN MÜSSTE ICH ES SCHAFFEN, DEN HITZESCHILD", + "MIT GENUG ENERGIE ZU VERSORGEN, UM DER LAVA STANDZUHALTEN.", + "ABER DER HITZESCHILD HAT AUCH SEINE GRENZEN!", + "ER HÄLT JETZT TEMPERATUREN VON BIS ZU 800 GRAD STAND, ABER NICHT MEHR.", + "BEHALTET DIE ANZEIGE IM AUGE.", + "NICHT AUSZUDENKEN, WAS DIESE TEMPERATUREN MIT EUREM ZOOMER MACHEN,", + "WENN DER HITZESCHILD VERSAGT.", + "JA, DIE HITZE.", + "ÄH, WAS?! DER ZOOMER?! HEY, WAS IST MIT UNS?!", + "KÖNNEN WIR NICHT EINEN SICHEREN WEG ZU GOLS ZITADELLE FINDEN?", + "GANZ RUHIG. ICH HABE NOCH MEHR KÜHLBALLONS IN DAS LAVA-ROHR GESCHICKT.", + "DIE KÖNNT IHR BENUTZEN, UM DIE TEMPERATUR ZU REGULIEREN.", + "UND VERGESST NICHT, DAS TELEPORTTOR IM LABOR DES GELBEN WEISEN ZU AKTIVIEREN.", + "WIR ZÄHLEN AUF EUCH." + ], + "assistant-reminder-1-blue-eco-switch": [ + "WENN IHR IM VERBOTENEN PRECURSOR-TEMPEL SUCHT, SCHAFFT IHR ES BESTIMMT,", + "DIE VERSCHLOSSENE BLAUE ECO-ÖFFNUNG AM WÄCHTERSTRAND AUFZUMACHEN." + ], + "assistant-reminder-1-generic": [ + "HEY, JUNGS! SAMMELT WEITER ENERGIEZELLEN, IHR BRAUCHT SIE, UM WEITER NACH NORDEN ZU REISEN." + ], + "assistant-reminder-1-race-bike": [ + "ICH WEISS JETZT, WIE MAN DIE TRANS-PADS BENUTZT.", + "GEHT ZUR NEBELINSEL UND ICH SCHICKE EUCH DEN ZOOMER RÜBER." + ], + "assistant-village2-introduction": [ + "WOW!", + "ICH GLAUBE, ICH WERDE MICH NIE AN DIESES KRIBBELN BEIM TELEPORTIEREN GEWÖHNEN.", + "...HEY!", + "SIEHT AUS, ALS HÄTTE DER BLAUE WEISE EINE PARTY GESCHMISSEN.", + "OH, JE! IN FELSDORF IST DIE HÖLLE LOS!", + "WOW, UND WAS FÜR EINE PARTY!", + "NEIN, NEIN! ICH MEINTE, FELSDORF WIRD GERADE MIT BRENNENDEN FELSBLÖCKEN BOMBARDIERT!", + "OH! SIEHT SO AUS, ALS HÄTTE DER BLAUE WEISE AN EINER SCHWEBEMASCHINE GEARBEITET,", + "UM DIE BROCKEN VORZUSCHAFFEN.", + "FALLS SIE FUNKTIONIERT, BRAUCHEN WIR ENERGIEZELLEN, UM SIE ANZUTREIBEN.", + "DA WERDET IHR WOHL NOCH MEHR BESORGEN MÜSSEN.", + "WIR SEHEN UNS BESSER SEINE AUFZEICHNUNGEN AN.", + "JAK, SIEH MAL NACH, WIE ES DEN DORFBEWOHNERN GEHT", + "UND DANN KOMM ZURÜCK UND BERICHTE MIR.", + "UND NIMM DIE RATTE MIT!" + ], + "assistant-village2-introduction-flutflut": [ + "WIEDER ZURÜCK, JUNGS?", + "\"JUNGE\"?", + "HEY, BABY, ICH BIN EIN AUSGEWACHSENER...", + "ÄH...", + "PELZIGER... WIESEL?", + "HEY, WISST IHR, WAS? MIT ERLAUBNIS DER VOGEL-BEOBACHTERIN", + "HABE ICH DAS FLUT-FLUT-BABY MIT EINEM SATTEL AUSGERÜSTET.", + "IM SUMPF SCHEINT NÄMLICH AUCH EIN TRANS-PAD ZU SEIN UND...", + "WENN IHR ES GEFUNDEN HABT, SCHICKE ICH EUCH DAS FLUT-FLUT IN VOLLER REITAUSRÜSTUNG.", + "MIT SEINEN GROSSEN SPRÜNGEN HILFT ES EUCH BEIM ÜBERQUEREN DES TEERS." + ], + "assistant-village2-introduction-robbers": [ + "HEY, IHR ZWEI!", + "ICH WEISS, WO NOCH EINE ENERGIEZELLE IST!", + "IN DEN AUFZEICHNUNGEN DES BLAUEN WEISEN STEHT,", + "DASS IHM EIN PAAR FLIEGENDE LURKER EINE GESTOHLEN HABEN", + "UND DAMIT ZUM PRECURSOR-BECKEN GEFLOGEN SIND.", + "IHR KÖNNT DIE LURKER MIT EUREM ZOOMER JAGEN,", + "BIS IHR DEN MIT DER ENERGIEZELLE GEFUNDEN HABT.", + "DER ZOOMER STEHT AUF DEM TRANS-PAD IN DER NÄHE DES EINGANGS ZUM PRECURSOR-BECKEN." + ], + "assistant-village2-introduction-room": [ + "SCHEINBAR FÜHRT DAS PRECURSOR-BAUWERK VOR DER KÜSTE", + "ZU EINER VERLORENEN UNTERWASSERSTADT.", + "DER BLAUE WEISE HAT VERSUCHT, RAUSZUFINDEN,", + "WIE ER EINE DER KAMMERN AN DIE WASSEROBERFLÄCHE HOLEN KANN.", + "ER HATTE LEIDER KEINEN ERFOLG.", + "SEHT ES EUCH MAL AN!", + "ÄH... GIBT ES DORT NICHT VIELE...", + "LURKER-HAIE IN DEN GEWÄSSERN?", + "WIESO? HAST DU ANGST?", + "ICH? AUF KEINEN FALL!", + "ICH FRAG NUR WEGEN JAK...", + "DU WEISST JA...", + "WAS ER FÜR EIN ANGSTHASE IST.", + "NUN JA, WENN IHR BIS ZUM KORALLENRIFF SCHWIMMT,", + "GLAUBE ICH, LASSEN EUCH DIE LURKER-HAIE IN RUHE.", + "DIE MÖGEN KEIN FLACHES WASSER." + ], + "assistant-village2-reminder-1-flutflut": [ + "DAS FLUT-FLUT WIRD EUCH IM SUMPF VON NUTZEN SEIN.", + "SUCHT DAS TRANS-PAD, DANN SCHICKE ICH EUCH DAS FLUT-FLUT." + ], + "assistant-village2-reminder-1-robbers": [ + "ICH WERDE EUCH DEN ZOOMER IN DIE NÄHE DES PRECURSOR-BECKENS TELEPORTIEREN,", + "DAMIT IHR DIESE FLIEGENDEN LURKER JAGEN KÖNNT, ALLES KLAR?" + ], + "assistant-village2-reminder-1-room": [ + "SEID IHR SCHON ZUR VERLORENEN PRECURSOR-STADT GESCHWOMMEN?", + "VERSUCHT DOCH, DIE KAMMER ZU HEBEN, DIE DEN BLAUEN WEISEN INTERESSIERTE." + ], + "assistant-village2-resolution": [ + "TOLL!", + "DIE ENERGIEZELLEN FÜR DIE MASCHINE!", + "DAS SOLLTE AUSREICHEN, UM DEN FELSBLOCK ZU HEBEN.", + "NA, ALSO!", + "ABER PASST AUF, WENN IHR AUF DAS LURKER-MONSTER DORT OBEN TREFFT.", + "MOMENT!", + "ÄH...", + "ICH BLEIB' HIER UND BESCHÜTZE KEIRA!", + "JAK, DU WIRST BESTIMMT AUCH OHNE MICH MIT DEM MONSTER FERTIG.", + "OH, WIE HELDENHAFT." + ], + "assistant-village3-reminder": [ + "HEY, JUNGS! SAMMELT WEITER ENERGIEZELLEN.", + "IHR BRAUCHT SIE, UM WEITER NACH NORDEN ZU REISEN." + ], + "billy-accept": [ + "GUT! DIESE RATTEN KÖNNEN JEDERZEIT ZURÜCKKOMMEN.", + "ERSCHIESST SIE, DAMIT WENIGSTENS EIN LECKERCHEN ÜBRIGBLEIBT." + ], + "billy-introduction": [ + "HALLO, FREUNDE! GEFÄLLT EUCH MEIN SCHÖNER SUMPF? DAS GEHÖRT ALLES MIR,", + "ZUMINDEST DAS, WAS NICHT IM SCHLAMM VERSINKT! HA, HA, HA!", + "SO, WIE ES HIER RIECHT, IST DEINE BADEWANNE SCHON GANZ SCHÖN LANGE IM SCHLAMM VERSUNKEN!", + "WAS? BADEWANNE? ICH HAB HIER GANZ ANDERE PROBLEME...", + "IN DER GEGEND TREIBEN EIN PAAR WIDERLICHE LURKER IHR UNWESEN", + "UND GREIFEN SICH HIER ECHT ALLES AB.", + "UND SIE HABEN MEIN ZAHMES HIPHOG FARTHY VERSCHEUCHT...", + "ES IST JETZT SCHON SO LANGE WEG...", + "ICH STELLE IMMER SEIN LIEBLINGSFRESSEN RAUS, ABER DIESE SUMPFRATTEN STEHLEN ES JEDES MAL!", + "WENN IHR DIESE VERDAMMTEN VIECHER IN SCHACH HALTET,", + "RIECHT FARTHY GANZ SICHER DIE LECKEREIEN UND KOMMT ZURÜCK!", + "KÖNNT IHR MIR HELFEN?" + ], + "billy-reject": [ + "WENN IHR EUCH DAS NATÜRLICH ANDERS ÜBERLEGT,", + "DANN WISST IHR JA, WO IHR MICH FINDET! (LACHT)" + ], + "billy-reminder-1": [ + "NA, WOLLT IHR MIR JETZT DOCH NOCH HELFEN?" + ], + "billy-resolution": [ + "BRAT' MIR EINER'N STORCH, KANNST DU ABER SCHIESSEN! VIELEN DANK FÜR DIE HILFE!" + ], + "bird-lady-beach-resolution": [ + "OH, JE, HOFFENTLICH GEHT'S DEM ARMEN KLEINEN GUT.", + "HIER, EINE ENERGIEZELLE FÜR EUREN MUT.", + "MAMA!", + "MAMA!", + "OH, NEIN! NEIN! NEIN! NEIN! NEIN!", + "SCHAUT MAL, IST DAS NICHT SÜSS? ES GLAUBT, DU WÄRST SEINE MAMA.", + "HÄ? ICH BIN NICHT DEINE MAMA! HAB ICH ETWA FEDERN?", + "AH, LIEBE AUF DEN ERSTEN BLICK! OH...", + "HÖRT MAL, JUNGS, ICH NEHME DAS KLEINE KÜKEN MIT INS DORF", + "UND KÜMMERE MICH ZUSAMMEN MIT DEM WEISEN DARUM." + ], + "bird-lady-introduction": [ + "ACH, HERRJE, SO EIN FURCHTBAR KRANKES VÖGELCHEN.", + "HAH! SIEHST AUCH NICHT GERADE GESUND AUS, LADY!", + "OH, ENTSCHULDIGUNG.", + "ICH DACHTE, DU WÄRST EIN ORANGEGEFLECKTER BAUCHRINGFRING.", + "WISST IHR, GESTERN HABEN EIN PAAR SCHRECKLICH BÖSE WESEN", + "HIER AM STRAND EINE FLUT-FLUT-MUTTER GEFANGEN.", + "JETZT LIEGT DIESES ARME KLEINE WAISENEI IM NEST OBEN AUF DER KLIPPE", + "UND ICH KOMME NICHT DRAN.", + "KÖNNT IHR DA DRAUFKLETTERN UND ES RUNTERSCHUBSEN?", + "ICH HABE UNTEN ETWAS HEU HINGELEGT, UM ES AUFZUFANGEN.", + "TUT EINER ALTEN FRAU EINEN GEFALLEN UND IHR BEKOMMT EINE ENERGIEZELLE DAFÜR." + ], + "bird-lady-reminder-1": [ + "OH, HALLO NOCHMAL. HABT IHR JUNGS DAS BLAUE EI AUF DER KLIPPE GEFUNDEN?", + "SCHUBST ES RUNTER UND IHR BEKOMMT EINE ENERGIEZELLE!" + ], + "bird-lady-reminder-2": [ + "SEID IHR JUNGS ETWA IMMER NOCH HIER? HA, HA, HA!", + "DEM ARMEN KLEINEN BLAUEN EI AUF DEM ABHANG IST BESTIMMT SCHRECKLICH KALT.", + "SCHUBST ES VON DER KLIPPE RUNTER UND RETTET ES,", + "DAFÜR BEKOMMT IHR EINE ENERGIEZELLE!" + ], + "bluesage-resolution": [ + "GUT GEMACHT, JUNGS! DER ALTE SAMOS HATTE RECHT MIT EUCH!", + "ACH, DU HEILIGES PRECURSOR-METALL!", + "WIR DÜRFEN NICHT ZULASSEN, DASS DIESE HEIMTÜCKISCHE MASCHINE ALLES ZERSTÖRT!", + "ICH WERDE VERSUCHEN, DIE SCHUTZSCHILDTÜR IN BEWEGUNG ZU SETZEN,", + "INDEM ICH EINEN ENERGIESTRAHL", + "ZWISCHEN MIR UND DEM GROSSEN PORTAL DARUNTER ERZEUGE!", + "ÄH... JA. MACH DAS MAL. WIR, ÄH... WERDEN NOCH MEHR HILFE HOLEN.", + "VOLLKOMMEN IRRE!" + ], + "death-0181": [ + "NICHT INS LICHT KOMMEN, JAK! NICHT INS LICHT KOMMEN!" + ], + "death-0182": [ + "WO DU SCHON MAL DA UNTEN BIST...", + "MASSIERST DU MIR DIE FÜSSE?" + ], + "death-0184": [ + "WO DU SCHON MAL DU UNTEN BIST...", + "MASSIERST DU MIR DIE FÜSSE?" + ], + "death-0186": [ + "KEINE SORGE, ICH WERDE DICH...", + "NICHT RÄCHEN." + ], + "death-0187": [ + "AH, JA...", + "BESSER DU ALS ICH." + ], + "death-0191": [ + "UH, DAS HAT WEHGETAN.", + "SOLL ICH VERSTÄRKUNG HOLEN?" + ], + "death-0193": [ + "ERSTER SCHRITT: AM LEBEN BLEIBEN.", + "ZWEITER SCHRITT...", + "MACH SOWAS BLOSS NICHT NOCH MAL MIT MIR!" + ], + "death-0195": [ + "ICH WAR DIREKT HINTER DIR, JAK!", + "...EHRLICH. GLAUB MIR." + ], + "death-0197": [ + "SANITÄTER! 'NE TRAGE!", + "ÄH, EIN ATEMFRISCH?" + ], + "death-0199": [ + "ICH WERDE WAS ECHT BEWEGENDES AUF DEINEM BEGRÄBNIS SAGEN, WIE...", + "\"WER WIRD MICH JETZT ZURÜCKVERWANDELN?!\"" + ], + "death-0202": [ + "SAG \"GUTE NACHT\" JAK!" + ], + "explorer-introduction": [ + "OH, HALLO, MEIN LIEBER JUNGE.", + "DU KOMMST MIR JETZT ABER GERADE EIN WENIG UNGELEGEN.", + "WEISST DU, ICH WOLLTE SCHON GESTERN ZU MEINER REISE AUFBRECHEN,", + "ABER ICH HABE SCHEINBAR ZU WENIG PRECURSOR-ORBS.", + "ICH HÄTTE SCHWÖREN KÖNNEN, DASS ICH 90 STÜCK HATTE.", + "ABER ICH VERMUTE, DEIN JUNGER FREUND,", + "DIESER LÄSTIGE, FURCHTBAR HÄSSLICHE KLEINE KERL HIER,", + "HAT MIR AUS JUX GERADE EIN PAAR ENTWENDET.", + "NUN DENN,", + "WÜRDEST DU DEINEM LIEBEN ALTEN ONKEL FREUNDLICHERWEISE 90 PRECURSOR-ORBS LEIHEN,", + "DAMIT ER AUFBRECHEN KANN? ICH BIETE DIR EINE ENERGIEZELLE DAFÜR." + ], + "explorer-reminder-1": [ + "WAS? SO VIELE HAST DU NICHT? HARUMPH!", + "TJA, MIT WENIGER ALS 90 PRECURSOR-ORBS KANN ICH NICHT AUFBRECHEN,", + "MEIN JUNGE." + ], + "explorer-reminder-2": [ + "NUN JA, 90 PRECURSOR-ORBS FÜR EINE ENERGIEZELLE", + "SIND EIN AUSGESPROCHEN FAIRES GESCHÄFT." + ], + "explorer-resolution": [ + "AH, IHR WOLLT DAS GESCHÄFT ALSO DOCH MACHEN? PRÄCHTIG, AUSGESPROCHEN PRÄCHTIG!", + "HEY, HABT IHR DIE VEREINBARTEN PRECURSOR-ORBS?", + "HM, HOFFENTLICH VERGEUDET IHR DIESE SCHWER VERDIENTE ENERGIEZELLE NICHT.", + "MACHT'S GUT, CIAO CIAO, BYE BYE!" + ], + "farmer-introduction": [ + "MUSS DIE YAKOWS MELKEN, MUSS DIE YAKOWS MELKEN...", + "OH! IHR SEID'S... ICH RUH MICH NUR EIN BISSCHEN AUS.", + "HAB DEN GANZEN TAG VERSUCHT, DIESE STREITLUSTIGEN KÜHE", + "ZURÜCK IN DEN PFERCH ZU KRIEGEN! EIN PAAR SELTSAME TYPEN WOLLTEN SIE SCHON STEHLEN.", + "KÖNNTET IHR WOHL EINEM ALTEN MANN HELFEN UND SIE IN DEN PFERCH BRINGEN?" + ], + "farmer-reminder-1": [ + "HEY! MEINE YAKOWS SIND JA IMMER NOCH DRAUSSEN!", + "SEID BITTE SO NETT UND HOLT SIE JETZT REIN." + ], + "farmer-reminder-2": [ + "DIESE BLÖDEN YAKOWS STROLLEN IMMER NOCH RUM!", + "JETZT BRINGT SIE DOCH ENDLICH MAL IN DEN PFERCH!" + ], + "farmer-resolution": [ + "AH, GUT GEMACHT, MEIN JUNGE. DIE VERLAUSTEN VIECHER SIND JETZT IM PFERCH.", + "NUN KANN ICH BERUHIGT SCHLAFEN. HIER IST EINE ENERGIEZELLE FÜR DEINE MÜHE." + ], + "finalbosscam-white-eco": [ + "HELLES ECO?! ES EXISTIERT ALSO WIRKLICH!", + "SIE DÜRFEN ES NICHT BEKOMMEN!" + ], + "fisher-accept": [ + "MUSST DREI SACHEN WISSEN, WENN DU FISCHST.", + "ERSTENS: KANNST ZWEI ARTEN VON FISCHEN FANGEN, EINPFÜNDER UND FÜNFPFÜNDER.", + "ZWEITENS: LÄSSTE 20 PFUND VON DEN GUTEN FISCHEN ENTWISCHEN,", + "DU, DANN NEHM ICH DIR DAS NETZ WEG.", + "DRITTENS GIBT'S GIFTIGE AALE IM FLUSS,", + "AUCH WENN DU NUR EINEN VON DEN BURSCHEN ERWISCHST, VERGIFTET ER DEN GANZEN FANG!" + ], + "fisher-introduction": [ + "WAS HAST'N DA IM KORB?", + "ACH, NICHT DER REDE WERT.", + "DIE MONSTER DA AM OZEAN HABEN EIN STÜCK AUS MEINEM BOOT RAUSGEBISSEN", + "UND NUN VERLEIBEN SIE SICH MEINEN FANG EIN!", + "EGAL, WAS ICH MACHE, ICH FANG' HIER IM FLUSS EINFACH KEINEN FISCH MEHR.", + "UUH, VIELLEICHT IST'S DEIN MUNDGERUCH.", + "MEINST, DU KANNST DAS BESSER? VERSUCH MAL, MIT 'NEM WINZIGEN NETZ FLUSSFISCHE ZU FANGEN!", + "KRIEGST 'NE ENERGIEZELLE VON MIR, WENN DU 200 PFUND VON DEN VIECHERN FÄNGST!", + "UND ICH LASS DICH UND DEN KNIRPS HIER MEIN SCHNELLBOOT BENUTZEN,", + "UM ZUR NEBELINSEL ZU KOMMEN.", + "NA, WOLLT IHR ES VERSUCHEN?" + ], + "fisher-reject": [ + "NAJA, NUN, WENN IHR ES EUCH ANDERS ÜBERLEGEN TUT,", + "DANN WISST IHR JA, WO IHR MICH FINDET." + ], + "fisher-reminder-1": [ + "WOLLT'S WOHL MIT DEM FLUSS AUFNEHMEN, WAS?" + ], + "fisher-resolution": [ + "IHR HABT'S GESCHAFFT! HABT 200 PFUND FISCH GEFANGEN!", + "NICHT SCHLECHT FÜR EIN PAAR LANDRATTEN!", + "HIER, DIE ENERGIEZELLE.", + "UND IHR KÖNNT EUCH MEIN BOOT VOM DOCK IM DORF HOLEN, WENN IHR ES BRAUCHT!" + ], + "gambler-introduction-1": [ + "OH, NEIN. NICHT NOCH SO EIN \"HELD\".", + "DER KAMPF DIESES SOGENANNTEN HELDEN GEGEN DAS MONSTER", + "HAT MICH MEINE UNTERHOSE GEKOSTET.", + "VERTRAUT MIR, SETZT ALLES AUF DAS MONSTER.", + "NACH DIESER WETTE BIN ICH VÖLLIG BLANK!", + "ICH SCHLAG' EUCH WAS VOR, HÖRT ZU.", + "BESORGT MIR 90 ORBS, DANN KANN ICH ENDLICH AUS DIESEM ELENDEN FASS RAUS,", + "DAFÜR KRIEGT IHR EINE ENERGIEZELLE.", + "UND WENN IHR EIN SPIELCHEN WAGEN WOLLT, ICH HAB' EINE WETTE PARAT:", + "MEIN GROSSES COMEBACK!", + "SCHLAGT DIE REKORDZEIT BEIM RENNEN IN DER TOTENSCHLUCHT IM PRECURSOR-BECKEN!", + "ICH KASSIERE EIN NETTES SÜMMCHEN", + "UND IHR BEKOMMT VON MIR NOCH EINE ZUSÄTZLICHE ENERGIEZELLE." + ], + "gambler-reminder-money": [ + "HEY, DENKT AN MEINE ORBS.", + "90 FÜR MICH UND EINE FÜR EUCH BEIDE. EINE ENERGIEZELLE MEINE ICH NATÜRLICH!" + ], + "gambler-reminder-race": [ + "NA, WORAUF WARTET IHR NOCH?", + "DIESES FASS WIRD LANGSAM UNGEMÜTLICH!", + "SCHLAGT DIE BESTZEIT FÜR DIE STRECKE IN DER TOTENSCHLUCHT,", + "DANN GEWINNEN WIR BEIDE!" + ], + "gambler-resolution-money": [ + "HAHAHA! OH, JA!", + "DIESE ORBS WERDEN MIR WIEDER AUS MEINEM FASS RAUSHELFEN!", + "UND HIER IST DIE ENERGIEZELLE, DIE ICH DIR VORHIN VERSPROCHEN HABE!" + ], + "gambler-resolution-race": [ + "HA, TOLL GELAUFEN, JUNGCHEN.", + "ICH WUSSTE, DASS DU ES SCHAFFST! WIR WERDEN'S WEIT BRINGEN!", + "HIER IST DEINE ENERGIEZELLE UND ICH WERD' MIR JETZT MEIN GELD HOLEN!" + ], + "geologist-introduction": [ + "IHR ZWEI SEHT WIE FÄHIGE LEUTE AUS.", + "ICH LEITE GERADE EIN FORSCHUNGSPROJEKT", + "UND VIELLEICHT KÖNNT IHR MICH UNTERSTÜTZEN.", + "HEY, DAS IST HIER UNSER ABENTEUER,", + "DU SOLLST UNS HELFEN!", + "NAJA, VIELLEICHT KÖNNEN WIR EINANDER HELFEN.", + "SEIT JAHREN ERFORSCHE ICH DAS GRABVERHALTEN DER BLITZMAULWÜRFE", + "IM PRECURSOR-BECKEN NAHE UNSERES DORFES.", + "ABER JETZT HABEN DIE BÖSEN LURKER DIE MAULWÜRFE AN DIE OBERFLÄCHE GETRIEBEN!", + "UND BLIND, WIE SIE SIND, FINDEN SIE DEN WEG UNTER DIE ERDE NICHT MEHR.", + "TREIBT SIE DOCH BITTE WIEDER IN IHRE TUNNEL ZURÜCK,", + "DAMIT WÜRDET IHR IHNEN DAS LEBEN RETTEN.", + "ICH GEB' EUCH AUCH EINE ENERGIEZELLE DAFÜR, OKAY?", + "KLAR, BLITZMAULWÜRFE. GANZ TOLL.", + "OKAY, FÜR ZWEI ENERGIEZELLEN.", + "NETTER VERSUCH.", + "ABER WENN IHR ZWEI MIR 90 PRECURSOR-ORBS", + "FÜR MEIN FORSCHUNGSPROJEKT BESORGT,", + "BEKOMMT IHR VON MIR NOCH EINE ZUSÄTZLICHE ENERGIEZELLE.", + "EINVERSTANDEN?" + ], + "geologist-reminder-moles": [ + "HABT IHR DIE BLITZMAULWÜRFE ZURÜCK UNTER DIE ERDE GETRIEBEN?", + "IHR BEEILT EUCH BESSER, DIREKTES SONNENLICHT SCHADET IHNEN!" + ], + "geologist-reminder-money": [ + "ICH BRAUCHE DIESE ORBS UNBEDINGT FÜR MEINE FORSCHUNGEN!" + ], + "geologist-resolution-moles": [ + "DANKE, DASS IHR DIE MAULWÜRFE GERETTET HABT, DAS WAS SO LIEB VON EUCH!", + "HIER IST DIE ENERGIEZELLE, SIE HILFT EUCH WEITER.", + "JETZT KANN ICH MICH WIEDER MEINER FORSCHUNG WIDMEN!" + ], + "geologist-resolution-money": [ + "OH, IHR HABT DIE ORBS!", + "HIER IST DIE VEREINBARTE ENERGIEZELLE." + ], + "green-sagecage-daxter-sacrifice": [ + "HELLES ECO! DAS KÖNNTE MICH ZURÜCKVERWANDELN, HAH!", + "ODER... ES KÖNNTE DEN ROBOTER AUFHALTEN.", + "HMM... WUSCHELIG BLEIBEN ODER DIE WELT RETTEN? MAL NACHDENKEN...", + "OKAY, NA GUT, DANN RETTEN WIR EBEN DIE WELT, ABER MACHT SCHNELL,", + "BEVOR ICH'S MIR ANDERS ÜBERLEGE!" + ], + "green-sagecage-introduction": [ + "WIRD AUCH LANGSAM ZEIT, DASS IHR ZWEI HIER AUFTAUCHT!", + "SCHÖNEN GUTEN TAG, AUCH! LÄSST MAN DICH JETZT DIE BÖDEN HIER WISCHEN?", + "WIR HABEN KEINE ZEIT ZUM SCHERZEN, DAXTER.", + "GOL UND MAIA HABEN UNS ENTFÜHRT, UM MIT UNSERER ENERGIE", + "IHRE SCHEUSSLICHE MASCHINE ANZUTREIBEN.", + "WIE ES SCHEINT, HABEN SIE DIE FUNKTIONIERENDEN TEILE EINES PRECURSOR-ROBOTERS", + "MIT DEN AUS DEM GANZEN LAND ZUSAMMENGETRAGENEN ARTEFAKTEN VERBUNDEN,", + "EIGENE TEUFLISCHE VERÄNDERUNGEN VORGENOMMEN UND EINE KREATUR ERSCHAFFEN,", + "DIE ALS EINZIGE DIE DUNKLEN PRECURSOR-ECO-STATIONEN ÖFFNEN KANN.", + "WENN DU UNS VIER BEFREIEN KANNST,", + "KÖNNEN WIR ALLE MIT VEREINTEN KRÄFTEN DAS SCHUTZSCHILD UM DEN ROBOTER ZERSTÖREN,", + "BEVOR SIE MIT IHM DIE GANZE WELT VERNICHTEN." + ], + "green-sagecage-outro-beat-boss-a": [ + "TU DOCH WAS!", + "NEEEEIN!" + ], + "green-sagecage-outro-beat-boss-b": [ + "NUN JA, ES SCHEINT, ALS HÄTTE ICH EUCH JUNGS FALSCH EINGESCHÄTZT,", + "IHR HABT DOCH DAS ZEUG ZU HELDEN!", + "OH, DAXTER, JETZT MUSST DU IMMER SO BLEIBEN.", + "MACH DIR KEINE SORGEN UM MICH, SÜSSE.", + "DU WEISST DOCH, ES HEISST: \"KLEINER KERL, ABER GROSS WAS DAHINTER.\"", + "JAK, DU BESITZT EIN UNGLAUBLICHES TALENT, ECO ZU KANALISIEREN!", + "SAMOS, VIELLEICHT HATTEST DU DOCH RECHT MIT DEM BURSCHEN!", + "UND KEIRA, OHNE DEINE HILFE UND DEINEN EINFALLSREICHTUM", + "WÄRE NICHTS DAVON MÖGLICH GEWESEN.", + "HA, HA, HA. VIELLEICHT HABEN WIR JA EINEN NEUEN WEISEN GEFUNDEN, JETZT,", + "WO GOL UND MAIA FORT SIND.", + "JA, GOL UND MAIA... DAS DUNKLE ECO HAT SIE MÖGLICHERWEISE GETÖTET.", + "MÖGLICHERWEISE...", + "ACH, WEN JUCKT'S? HOLT SIE HER, WIR MACHEN SIE NOCHMAL FERTIG! ODER, JAK?", + "ICH SAGTE, \"ODER, JAK?\"", + "WOW! NIMM MAL 'NE KALTE DUSCHE, DU HELD!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HEILIGE YAKOW! WAS IST DAS DENN?", + "WOW, DAS IST EINE ALTE PRECURSOR-TÜR!", + "ES SCHEINT, ALS LIESSE SIE SICH ÖFFNEN, WENN WIR ALLE 100 LÖCHER MIT ENERGIEZELLEN FÜLLEN!", + "ÄHM, WIR SIND HELDEN, WISST IHR NOCH? WIR HABEN 100 ENERGIEZELLEN!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HEILIGE YAKOW! WAS IST DAS DENN?", + "WOW, DAS IST EINE ALTE PRECURSOR-TÜR!", + "ES SCHEINT, ALS LIESSE SIE SICH ÖFFNEN, WENN WIR ALLE 100 LÖCHER MIT ENERGIEZELLEN FÜLLEN!", + "OH, MANN, JETZT GEHT DAS SCHON WIEDER LOS!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WAS... IST DAS?", + "OH, ES IST WUNDERSCHÖN...", + "BEI ALLEN PRECURSORN..." + ], + "green-sagecage-outro-preboss": [ + "DU KOMMST ZU SPÄT, SAMOS.", + "SOBALD ICH UNBEGRENZT DUNKLES ECO BESITZE, WERDE ICH DEN SCHLÜSSEL ZUR SCHÖPFUNG HABEN!", + "DAS IST WAHNSINN! WENN DU SO VIEL DUNKLES ECO FREISETZT, WIRD ALLES ZERSTÖRT! ALLES!", + "SIEH DOCH, WAS ES AUS EUCH GEMACHT HAT!", + "ES HAT UNS EINE ART SCHÖNHEIT GESCHENKT, DIE DU NIE VERSTEHEN WÜRDEST.", + "SCHÖNHEIT? HABT IHR BEIDEN IN LETZTER ZEIT MAL IN DEN SPIEGEL GESCHAUT?", + "WENN DU DENKST, EIN HAARIGER WINZLING ZU SEIN, WÄRE SCHLIMM,", + "WARTE NUR, BIS WIR DIE ECO-STATIONEN GEÖFFNET HABEN!", + "UND IHR ZWEI SEID NUR WEGEN MEINER HILFE SO WEIT GEREIST.", + "NARREN! LEHNT EUCH ZURÜCK UND GENIESST DIE NEUERSCHAFFUNG DER WELT!", + "JAK! NIMM DEN AUFZUG UND HALTE DIESEN ROBOTER AUF!" + ], + "green-sagecage-resolution": [ + "TOLL GEMACHT, JUNGS! JETZT SEID IHR WAHRE HELDEN!", + "ICH VEREINE JETZT MEINE GRÜNE ECO-KRAFT MIT DEN ANDEREN DREI WEISEN", + "UND ZUSAMMEN ÖFFNEN WIR DIE TÜR DES SCHUTZSCHILDES,", + "DAS DEN PRECURSOR-ROBOTER UMGIBT.", + "JA, JA, FÜR DEN ANFANG SCHON GANZ GUT.", + "UND WENN IHR DIESEN SCHILD GEÖFFNET HABT, WAS MACHT IHR DANN MIT DEM ROBOTER?", + "GAR NICHTS, DAXTER. WIR MÜSSEN NUR DAS SCHUTZSCHILD OFFEN HALTEN.", + "DANN LIEGT ES AN EUCH BEIDEN HIER, DEN ROBOTER ZU ZERSTÖREN.", + "OH, KLASSE. JETZT KANN ICH DEM KERL HELFEN, DER MICH IN EINER RATTE VERWANDELT HAT", + "UND DIE EINZIGE PERSON VERNICHTEN, DIE MICH ZURÜCKVERWANDELN KANN!", + "RETTET ZUERST EINMAL DIE WELT, DANN VERSUCHEN WIR,", + "GOL DAZU ZU BRINGEN, DAXTER ZU HELFEN." + ], + "mayor-introduction": [ + "OH... (MURMELT) JETZT SAGT MIR BLOSS NICHT, DASS IHR ZWEI AUCH EIN PROBLEM HABT!", + "ERST WERDEN IN DER NÄHE DES DORFES MONSTER GESICHTET UND JETZT DAS!", + "SEHT IHR DIE WINDMÜHLENFLÜGEL? DA OBEN, JUNGS, JA? DIE STEHEN STILL,", + "DAS BEDEUTET, IM DORF GIBT'S KEINEN STROM!", + "DER ECO-STRAHL AUS DEM DSCHUNGEL-TEMPEL IST UNTERBROCHEN WORDEN, JUNGS", + "UND NIEMAND TRAUT SICH, NACHZUSEHEN, WAS PASSIERT IST!", + "IST DIE RECHNUNG BEZAHLT?", + "JA? HMM, OH, DU BIST JA WITZIG.", + "WÜRDET IHR ZWEI DEN ECO-STRAHL REPARIEREN? FÜR EINE ENERGIEZELLE?", + "OH, NOCH ETWAS...", + "IHR ZWEI WOLLT NICHT ZUFÄLLIG EINE KLEINIGKEIT", + "FÜR DIE KAMPAGNE ZU MEINER WIEDERWAHL SPENDEN?", + "DAS WÄRE MIR GLATT NOCH EINE ENERGIEZELLE WERT!", + "DAS MINIMUM FÜR EINE SPENDE BETRÄGT, ÄHM, JA, BESCHEIDENE 90 PRECURSOR-ORBS!" + ], + "mayor-reminder-beams": [ + "SCHON ZURÜCK? UND OHNE DIE ECO-STRAHLEN ZU REPARIEREN?", + "(SCHLUCHZT) EUER DORF BRAUCHT EUCH, JUNGS!" + ], + "mayor-resolution-beams": [ + "OH HO HO, WAS FÜR EIN WUNDERVOLLER ANBLICK! ICH DANKE EUCH!", + "UND DAS GANZE DORF WIRD MIR DANKEN.", + "OH, JUNGS, DANK EUCH HABEN WIR WIEDER STROM UND MEINE WIEDERWAHL IST GESICHERT!", + "UND DAFÜR, MEIN JUNGE, HAST DU DIR EINE ENERGIEZELLE VERDIENT!" + ], + "mayor-resolution-donation": [ + "IHR WOLLT ALSO ETWAS SPENDEN? GUT... HOFFENTLICH EIN SCHÖNES SÜMMCHEN!", + "JUHU! OHHH, DAS IST EINE GROSSZÜGIGE SPENDE!", + "ICH-ICH-ICH HOFFE NUR,", + "D-D-DA-DASS DIESE ENERGIEZELLE EUREN EINSATZ GEBÜHREND BELOHNT!" + ], + "minershort-introduction-gnawers": [ + "HM, WARUM MACHT IHR BEIDEN EUCH NICHT NÜTZLICH?", + "DIE LURKER SIND DABEI, DIE DUNKLEN HÖHLEN DA DRÜBEN ZU DURCHGRABEN.", + "SIE SCHEINEN NACH PRECURSOR-ARTEFAKTEN ZU SUCHEN.", + "DIE ARTEFAKTE KÖNNEN SIE RUHIG HABEN, DAS IST MIR EGAL.", + "DAS IST UNS EGAL!", + "WILLARD, FÜTTER' DEINEN VOGEL.", + "MIR GEHT'S NUR UM DIE EDELSTEINE!", + "ABER ICH KOMME NICHT AN DIE EDELSTEINE IN DER HÖHLE RAN,", + "DENN WENN SIE FERTIG SIND, WERDEN SIE DIE HÖHLE ZUM EINSTÜRZEN BRINGEN!", + "WENN IHR DIE LURKER AUSSCHALTET, DIE AN DEN STÜTZBALKEN NAGEN,", + "WÜRDET IHR DIE HÖHLE FÜR MICH RETTEN.", + "JETZT MACHT SCHON!" + ], + "minershort-introduction-orbs": [ + "HEY, GORDY, ICH, ÄH, DENKE, WIR HABEN BESUCH.", + "DU DENKST, WILLARD? TAGCHEN, FREUNDE, AUF DER DURCHREISE?", + "JA, WIR AUCH. TJA, WIR MÜSSEN WEITER, ÄHM, NICHTS ZU SEHEN HIER.", + "ÄH, ICH DACHTE, DAS SEI EIN UNBEZAHLBARER EDELSTEIN-", + "WILLARD!", + "EIGENTLICH WOLLEN WIR ENERGIEZELLEN, KEINE EDELSTEINE.", + "WIR HABEN VIER STÜCK DAVON. WOLLT IHR SIE?", + "WAS EUCH DAS SPATZENHIRN HIER SAGEN WILL, IST,", + "DASS WIR VIELLEICHT EIN PAAR ENERGIEZELLEN ÜBRIG HABEN", + "UND UNS VIELLEICHT DAVON TRENNEN KÖNNTEN.", + "FÜR 90 ORBS PRO ZELLE.", + "WO HAB' ICH DAS BLOSS SCHON MAL GEHÖRT?", + "HEY, WIE WOLLT IHR BEIDEN GENIES DIESEN RIESENEDELSTEIN EIGENTLICH HIER WEGBEKOMMEN?", + "TJA, SCHLAUMEIER, WIR HABEN NOCH ZWÖLF JAHRE GRABEN VOR UNS,", + "UM UNS WAS EINFALLEN ZU LASSEN.", + "ÄH, GORDY, WÜRDE ES NICHT SCHNELLER GEHEN, WENN DU MITGRÄBST?" + ], + "minershort-introduction-switch": [ + "PSST, JUNGS. ÄHHM...", + "BIRDIE UND ICH HABEN DA EINE HÖHLE ERFORSCHT, DIE WÜRDE EUCH GEFALLEN!", + "SIE WAR VOLL MIT HÜBSCHEM ORANGENEM METALL", + "UND LAG ECHT GUT VERSTECKT HINTER EIN PAAR BÄUMEN IM SCHNEEGEBIRGE!", + "ICH HAB'S GORDY ERZÄHLT,", + "ABER DER HAT MICH NUR ANGESCHRIEN, WEIL ICH NICHT GEGRABEN HAB'!", + "WIESO GRÄBST DU NICHT?!", + "ENTSCHULDIGUNG!" + ], + "minershort-reminder-1-gnawers": [ + "WÜRDET IHR EUCH ENDLICH UM DIE LURKER KÜMMERN,", + "DIE AN DEN STÜTZBALKEN DER DUNKLEN HÖHLE NAGEN?", + "DIE BALKEN HALTEN DAS SCHLIESSLICH NICHT EWIG AUS!" + ], + "minershort-reminder-1-orbs": [ + "VERGESST UNSERE ABMACHUNG NICHT. BRINGT UNS 100 ORBS.", + "DU HATTEST DOCH 90 GESAGT.", + "WILLARD!", + "NA SCHÖN. 90 ORBS PRO ZELLE." + ], + "minershort-reminder-1-switch": [ + "HABT IHR DIE HÖHLE GEFUNDEN?", + "DA HINTER DEN BÄUMEN IM SCHNEEGEBIRGE UND DIE WÜRDE EUCH GEFALLEN.", + "JA, BALD GEH' ICH DA HIN UND VERSTECK' MICH VOR GORDY,", + "DER SCHREIT MICH BLOSS DAUERND AN!", + "WILLARD!" + ], + "minershort-reminder-2-orbs": [ + "ÄH, GORDY?", + "90 ORBS PRO ENERGIEZELLE, WILLARD! ARGH!" + ], + "minershort-resolution-1-orbs": [ + "ACH, SCHON GUT.", + "HIER HABT IHR EINE ENERGIEZELLE FÜR EURE ORBS." + ], + "minershort-resolution-2-orbs": [ + "OH! DIESMAL DARF ICH, JA!", + "HIER IST EINE...", + "HIER IST, ÄHHH...!", + "EINE ENERGIEZELLE!", + "JA, JA, WAS ER GRAD' GESAGT HAT.", + "DAS WAR'S. IHR HABT UNS VÖLLIG AUSGENOMMEN!", + "KEINE! ENERGIEZELLEN! MEHR!" + ], + "oracle-intro-1": [ + "WER WECKT DAS ORAKEL AUF?", + "WARTET, EINER VON EUCH HAT DAS INNERE LICHT!", + "SEIT ANBEGINN DER ZEIT SUCHE ICH UND WARTE AUF DIE RÜCKKEHR DES WAHREN HELDEN.", + "BRINGT MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE, DIE ICH BESITZE." + ], + "oracle-intro-2": [ + "HÜTET EUCH VOR DEM DUNKLEN LICHT,", + "DENN ES BIRGT EIN SCHLIMMES SCHICKSAL FÜR EINEN VON EUCH.", + "BRINGT MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE, DIE ICH BESITZE." + ], + "oracle-intro-3": [ + "SUCHT DAS REINE LICHT, DENN IN SEINER FLAMME RUHEN DIE ANTWORTEN.", + "VERDIENT MEINE ENERGIEZELLEN, INDEM IHR MIR 120 PRECURSOR-ORBS FÜR JEDE DAVON DARBRINGT." + ], + "oracle-left-eye-1": [ + "IHR HABT EUCH ALS WÜRDIG ERWIESEN. HIER IST EINE ENERGIEZELLE." + ], + "oracle-left-eye-2": [ + "FÜR DEIN OPFER ÜBERREICHE ICH DIR EINE ENERGIEZELLE" + ], + "oracle-left-eye-3": [ + "FÜR EURE MÜHEN ERHALTET IHR EINE ENERGIEZELLE ALS BELOHNUNG." + ], + "oracle-reminder-1": [ + "BRINGT MIR 120 PRECURSOR-ORBS UND ICH BELOHNE EUCH MIT EINER ENERGIEZELLE." + ], + "oracle-reminder-2": [ + "BRINGT MIR 120 PRECURSOR-ORBS UND EINE ENERGIEZELLE SOLL EURE BELOHNUNG SEIN." + ], + "oracle-reminder-3": [ + "IHR MÜSST MIR 120 PRECURSOR-ORBS FÜR JEDE ENERGIEZELLE IN MEINEM BESITZ BRINGEN." + ], + "oracle-right-eye-1": [ + "FÜR EURE GABE ERHALTET IHR EINE WEITERE ENERGIEZELLE." + ], + "oracle-right-eye-2": [ + "HIER IST EINE WEITERE ENERGIEZELLE FÜR EURE SUCHE." + ], + "oracle-right-eye-3": [ + "IHR HABT EUCH EINE WEITERE ENERGIEZELLE VERDIENT." + ], + "redsage-resolution": [ + "(LACHT) ENDLICH KOMMT IHR MICH RETTEN.", + "WISST IHR, WIE LANGE ICH SCHON HIER BIN? WIESO HABT IHR SO LANGE GEBRAUCHT? (LACHT)", + "UND WIE HEISST IHR?", + "ICH BIN DAXTER! DAS IST JAK, GEHÖRT ZU MIR.", + "GUT GEMACHT, DAXTER. DU BIST EIN WAHRER HELD.", + "IHR MÜSST GOL DARAN HINDERN, DEN ROBOTER ZU STARTEN.", + "MIT MEINER ECO-KRAFT HELFE ICH EUCH, DIE SCHUTZSCHILDTÜR ZU ÖFFNEN." + ], + "sage-bluehut-introduction-crop-dusting": [ + "TJA, DIE SITUATION HIER SIEHT SCHLIMMER AUS ALS EIN LURKER-GESICHT.", + "BEVOR DER BLAUE WEISE VERSCHWAND,", + "MACHTE ER NOTIZEN ÜBER SCHWIERIGKEITEN IN ALLEN ANGRENZENDEN GEBIETEN.", + "BESONDERS INTERESSANT FINDE ICH DIE DUNKLE-ECO-INFEKTION", + "EINIGER UNSCHULDIGER PFLANZEN IM PRECURSOR-BECKEN.", + "KEIRA WIRD EUREN A-GRAV-ZOOMER ZUM NÄCHSTEN TRANS-PAD TELEPORTIEREN.", + "FLIEGT MIT DEM ZOOMER ZU EINER GRÜNEN-ECO-ÖFFNUNG", + "UND BRINGT DANN GRÜNES ECO ZU DEN BEFALLENEN PFLANZEN.", + "DAS HEILT SIE.", + "LASST ABER KEINE PLFANZE AUS,", + "SONST INFIZIEREN NÄMLICH DIE KRANKEN PFLANZEN ERNEUT DIE GESUNDEN.", + "UND DAXTER...", + "FANG ENDLICH AN, ZU WISCHEN!", + "BESONDERS IN DEN ECKEN!" + ], + "sage-bluehut-introduction-prec-arm": [ + "ICH HOFFE, IHR HABT AUCH WAS ZU ESSEN DABEI, DENN DAS IST ERST DER ANFANG.", + "LAUT DEM BLAUEN WEISEN WIMMELT ES", + "IM SUMPF AUF DER ANDEREN SEITE DER BUCHT NUR SO VON LURKERN.", + "SCHEINBAR WOLLEN SIE EINEN ZEPPELIN BENUTZEN,", + "UM EIN WICHTIGES PRECURSOR-ARTEFAKT AUS DEM SCHLAMM ZU BERGEN.", + "UND IHR ZWEI MÜSST UNBEDINGT DORT HINÜBER, UM DIE HALTESEILE ZU LÖSEN.", + "WER WEISS, WOZU SIE DAS ARTEFAKT BENUTZEN WOLLEN?", + "ABER ES IST SICHER NICHTS GUTES, WIE DER MUNDGERUCH VON IHM HIER." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "ICH GLAUBE FAST, ICH SEHE NICHT RICHTIG!", + "WEIL ICH DOCH GENAU WEISS...", + "...DASS IHR BEIDEN DORT UNTEN IM PRECURSOR-BECKEN SEID", + "UND DIE VOM DUNKLEN ECO BEFALLENEN PFLANZEN RETTET." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WIESO SEID IHR SCHON ZURÜCK?", + "VON MEINEM BALKON AUS KANN ICH", + "DEN LURKER-ZEPPELIN IMMER NOCH ÜBER DEM SUMPF SCHWEBEN SEHEN.", + "IHR HABT EURE AUFGABE OFFENSICHTLICH NOCH NICHT ERFÜLLT.", + "JETZT MACHT ENDLICH!" + ], + "sage-intro-sequence-a": [ + "MEIN LEBEN LANG HABE ICH DIE ANTWORTEN GESUCHT, DIE MEIN VATER", + "UND MEINES VATERS VATER NIE GEFUNDEN HABEN.", + "WER WAREN DIE PRECURSOR?", + "WARUM ERSCHUFEN SIE DIE RIESIGEN MONOLITHEN,", + "DIE ÜBERALL AUF UNSEREM PLANETEN VERSTREUT SIND?", + "WIE HABEN SIE DAS ECO BEZWUNGEN, DIE LEBENSENERGIE DIESER WELT?", + "WAS WAR IHR PLAN UND WIESO VERSCHWANDEN SIE?", + "ICH HABE DIE PFLANZEN BEFRAGT, ABER SIE ERINNERN SICH NICHT.", + "DIE PFLANZEN HABEN DIE FELSEN BEFRAGT, ABER DIE FELSEN WISSEN ES NICHT MEHR.", + "NICHT EINMAL DIE FELSEN KÖNNEN SICH ERINNERN...", + "JEDE FASER MEINES KÖRPERS SAGT MIR,", + "DASS SICH DIE ANTWORTEN IM BESITZ EINES JUNGEN MANNES BEFINDEN,", + "DER SICH SEINES SCHICKSALS NICHT BEWUSST IST, DEM NICHTS DARAN LIEGT,", + "DIE WAHRHEIT ZU FINDEN, DER MEINE FÜHRUNG ABLEHNT!", + "ABER WARUM SOLLTE ER AUCH SCHON AUF DEN ALTEN SAMOS, DEN WEISEN, HÖREN?", + "ICH BIN JA NUR DER HERRSCHER DES GRÜNEN ECOS, EINER DER WEISESTEN MENSCHEN DER WELT!", + "SO SCHEINT ES,", + "DASS DIE ANTWORT NICHT ETWA DURCH SORGFÄLTIGE FORSCHUNG", + "ODER VERNÜNFTIGES ÜBERLEGEN GEFUNDEN WIRD.", + "OH, NEIN! WIE SO VIELE SCHICKSALHAFTE GEHEIMNISSE", + "FÄNGT ALLES MIT EINER KLEINEN UNGEHORSAMKEIT AN.", + "HEY! ÄH, JAK? DER GRÜNE KERL HAT UNS DOCH VERBOTEN, HIERHER ZU KOMMEN!" + ], + "sage-intro-sequence-d1": [ + "WAS IN GRÜNEM TEUFELSNAMEN WOLLT IHR ZWEI?", + "WIR- WIR- WIR WAREN- DA WAR- ICH- ICH WAR-", + "DU, SEI STILL! ANSTATT MEINEM RAT ZU FOLGEN, SEID IHR BEIDEN", + "AN DEM EINZIGEN ORT HERUMGESTREUNT, DEN ICH EUCH VERBOTEN HATTE: DER NEBELINSEL!", + "DAS STIMMT UND ICH, ÄH-", + "UND DAXTER, DU HAST ENDLICH DAS ÜBERFÄLLIGE BAD GENOMMEN,", + "ABER IN EINER WANNE VOLL MIT DUNKLEM ECO.", + "ALSO, ALTER MANN, WILLST DU HIER JETZT RUMQUATSCHEN", + "ODER HILFST DU MIR RAUS AUS DEM SCHLAMASSEL?!", + "ICH WERDE WEITER HERUMQUATSCHEN, DENN ICH FINDE, DU SIEHST VIEL BESSER AUS ALS VORHER.", + "UND AUSSERDEM... ICH KÖNNTE DIR GAR NICHT HELFEN, AUCH, WENN ICH WOLLTE.", + "WAS?!", + "ES GIBT NUR EINE EINZIGE PERSON, DIE DAS DUNKLE ECO LANGE GENUG ERFORSCHT HAT,", + "UM DICH VIELLEICHT ZURÜCKZUVERWANDELN:", + "GOL ACHERON, DER WEISE.", + "ABER ER LEBT WEIT ENTFERNT IM NORDEN. WEIT, WEIT IM NORDEN.", + "SEIT EWIGKEITEN HAT NIEMAND MEHR MIT IHM GESPROCHEN.", + "ICH WÜRDE EUCH JA DORTHIN TELEPORTIEREN, ABER AUCH DAS KANN ICH NICHT.", + "KEINER DER DREI ANDEREN WEISEN HAT ES FÜR NOTWENDIG ERACHTET,", + "SEIN TOR ANZUSCHALTEN, SCHON SEIT LANGER ZEIT NICHT MEHR!" + ], + "sage-intro-sequence-d2": [ + "DER EINZIGE ANDERE WEG ZU FUSS NACH NORDEN FÜHRT DURCH DEN FEUER-CANYON,", + "ABER DER HEISSE BODEN SCHMILZT SOGAR PRECURSOR-METALL,", + "IHR KÖNNT DA NICHT EINFACH SO DURCHGEHEN.", + "ABER IHR KÖNNTET DURCHFLIEGEN! WENN IHR EINEN ZOOMER MIT HITZESCHUTZSCHILD HÄTTET.", + "ZUFÄLLIG ARBEITE ICH IM MOMENT GERADE AN SO EINER MASCHINE.", + "MIT NUR ZWANZIG ENERGIEZELLEN HÄTTE SIE GENUG ENERGIE,", + "UM DER HITZE DES CANYONS ZU WIDERSTEHEN. NICHT WAHR, PAPI?", + "JA, KEIRA, DAS KÖNNTE KLAPPEN. ABER WO SOLLEN DER JUNGE", + "UND DIE HALBE PORTION DA", + "ZWANZIG ENERGIEZELLEN HERBEKOMMEN?", + "VON DEN DORFBEWOHNERN!", + "DIE MEISTEN VON DENEN HABEN IRGENDWO EIN ODER ZWEI ENERGIEZELLEN RUMLIEGEN.", + "UND AUCH, WENN SIE SIE NICHT HERGEBEN WOLLEN,", + "MIT EIN PAAR NETTEN PRECURSOR-ORBS KANN MAN IHRE MEINUNG SCHON ÄNDERN.", + "UND BESTIMMT GIBT ES DRAUSSEN IN DER WILDNIS NOCH MEHR ENERGIEZELLEN,", + "DIE NUR AUF EIN PAAR MUTIGE ABENTEURER WARTEN.", + "NUN, EINEN MUTIGEN ABENTEURER HABEN WIR JA SCHON.", + "MUTIGE ABENTEURER?", + "IHR BEIDE WÜRDET OHNE ANLEITUNG NICHT MAL AUS DEM DORF RAUSFINDEN!", + "BEVOR IHR MIT IRGENDETWAS ANFANGT, SOLLTET IHR LIEBER DURCH DAS WARPTOR GEHEN", + "UND AM FELSGEYSIR EIN WENIG ÜBEN.", + "ÄHM, DA GIBT'S NICHT NOCH MEHR VON DIESEM DUNKLEN ECO-ZEUGS, ODER?", + "ICH WILL NICHT NOCHMAL REINFALLEN UND DANN SO AUSSEHEN WIE DU!", + "REIN DA, BEVOR ICH EUCH BEIDE IN UNKRAUT VERWANDLE!" + ], + "sage-intro-sequence-e": [ + "GUT GEMACHT, JUNGS, ABER DAS IST NOCH GAR NICHTS IM VERGLEICH ZU DEN ABENTEUERN,", + "DIE NOCH VOR EUCH LIEGEN.", + "ÄH, IST GAR KEIN PROBLEM. WIR SIND GEWAPPNET, WAS, JAK?", + "WIR WÜRDEN JA GERNE NOCH BLEIBEN UND QUATSCHEN, GRÜNER HÄUPTLING,", + "ABER ES JUCKT UNS SCHON, AUF ABENTEUER ZU GEHEN.", + "SCHÖN, SCHÖN. DANN STÜRZT EUCH INS ABENTEUER.", + "UND WENN IHR SCHON BEIM \"ABENTEUERN\" SEID, MACHT EUCH DOCH EIN WENIG NÜTZLICH!", + "MEINE VERFLIXTEN GRÜNEN ECO-SAMMLER SIND SCHON WIEDER VERSTOPFT.", + "GEHT ANS ANDERE ENDE DES STRANDES UND REINIGT SIE, JA?", + "FOLGT DEN LAMPEN, SIE FÜHREN EUCH GERADEWEGS DORTHIN.", + "UND JETZT, ALLE...", + "RAUS HIER!" + ], + "sage-introduction-misty-cannon": [ + "OH, IHR SEID'S, DIE GROSSEN BEZWINGER.", + "GUT, ICH HABE DA ETWAS ERNSTES MIT EUCH ZU BESPRECHEN.", + "ES SCHEINT, ALS SEIEN DIE LURKER AUF DER NEBELINSEL ENORM AKTIV.", + "VON MEINEM BEOBACHTUNGSTURM AUS KANN ICH ERKENNEN,", + "WIE SIE DIE PRECURSOR-ECO-STATION BOMBARDIEREN.", + "FALLS SIE SIE ÖFFNEN UND DAS DUNKLE ECO FREISETZEN, WERDEN WIR AM ENDE", + "NOCH SO HERUMLAUFEN WIE DIESE HÄSSLICHE KLEINE FLOHQUASTE HIER.", + "JAK, WIR MÜSSEN DEINE... TAUGLICHKEIT PRÜFEN.", + "BRING DEN FISCHER DAZU, DIR SEIN BOOT ZU LEIHEN UND FAHR ZUR NEBELINSEL.", + "DU MUSST AUF DIE SPITZE DER PRECURSOR-ECO-STATION", + "UND DIE VERMALEDEITE KANONE AUSSER GEFECHT SETZEN.", + "UND WAS... IST MIT MIR?", + "DU? DU KANNST MEINE FUSSBÖDEN WISCHEN, IN LETZTER ZEIT GLÄNZEN SIE NICHT MEHR SO SCHÖN." + ], + "sage-reminder-1-ecorocks": [ + "NA, IHR SEID MIR JA ZWEI TOLLE ABENTEURER!", + "SCHON ZURÜCK", + "UND HABT NOCH NICHT EINMAL MEINE BLOCKIERTEN ECO-ERNTER IN ORDNUNG GEBRACHT!", + "SIE SIND AM ANDEREN ENDE DES STRANDES, JUNGS.", + "JETZT...", + "MACHT ENDLICH!" + ], + "sage-reminder-1-generic": [ + "WAS MACHT IHR DENN HIER? IHR SOLLT ENERGIEZELLEN SAMMELN!", + "LASST MICH IN FRIEDEN, BIS IHR GENUG HABT!" + ], + "sage-reminder-1-misty-cannon": [ + "DAS BOMBARDMENT WIRD SCHLIMMER!", + "SUCH DEN FISCHER IM DSCHUNGEL, HOL DIR DIE ERLAUBNIS, SEIN BOOT ZU BENUTZEN", + "UND FAHR ZUR NEBELINSEL, UM ENDLICH DIE KANONE ZU STOPPEN.", + "UND DU, DAXTER. FANG AN, AUFZUWISCHEN. SIEHT JA SCHLIMM AUS HIER!" + ], + "sage-reminder-2-generic": [ + "IHR ZWEI VERSTEHT DEN ERNST DER LAGE WOHL IMMER NOCH NICHT.", + "HIER GEHT ES UM MEHR ALS NUR EINEN DUMMEN JUNGENSTREICH.", + "HIER GEHT UM DAS LEBEN, SO, WIE WIR ES KENNEN.", + "JETZT MACHT EUCH ENDLICH AUF UND STELLT EUCH EUREM SCHICKSAL." + ], + "sage-village3-introduction": [ + "AH! ICH FRAG' MICH JEDES MAL, OB ICH NOCH IN EINEM STÜCK AUS DIESEN DINGERN RAUSKOMME!", + "HEILIGE YAKOW! DAS LABOR DES ROTEN WEISEN SIEHT JA NOCH SCHLIMMER AUS ALS DAS DES BLAUEN!", + "TJA, SIEHT SO AUS, ALS HÄTTE HIER EIN KAMPF STATTGEFUNDEN.", + "(LACHT)", + "ICH WÜRDE ES NICHT GERADE EINEN \"KAMPF\" NENNEN, ODER, SCHWESTERHERZ?", + "GEWISS NICHT. DER ROTE WEISE HAT SO SCHNELL AUFGEGEBEN...", + "HAT KEINEN SPASS GEMACHT.", + "GOL? BIST DU DAS?", + "BIST JETZT WOHL VÖLLIG ÜBERGESCHNAPPT, WAS?", + "UND MAIA! HAB ICH DIR NICHT GESAGT, DAS DUNKLE ECO WÜRDE EUCH BEIDE VERÄNDERN?", + "ACH, NIE GLAUBT JEMAND DEM ALTEN SAMOS...", + "WAS HABT IHR BEIDEN MIT DEM BLAUEN UND DEM ROTEN WEISEN GEMACHT?", + "MACH' DIR KEINE SORGEN UM DEINE BUNTEN FREUNDE, DU ALTER NARR.", + "SIE SIND VÖLLIG SICHER IN UNSERER ZITADELLE. UNSERE EHRENGÄSTE.", + "SIE SIND SO LIEBENSWÜRDIG, UNS ZU HELFEN. BEI EINEM KLEINEN PROJEKT.", + "DU HATTEST UNRECHT, SAMOS. MAN KANN DAS DUNKLE ECO KONTROLLIEREN!", + "WIR HABEN SEINE GEHEIMNISSE GELÜFTET", + "UND KÖNNEN NUN DIE WELT NACH UNSEREN WÜNSCHEN NEU GESTALTEN.", + "DU KANNST DAS DUNKLE ECO NICHT EINFACH SO KONTROLLIEREN! SOGAR DIE PRECURSOR-", + "BIS JETZT MUSSTEN WIR UNS MIT DEM BISSCHEN ECO ZUFRIEDEN GEBEN,", + "DAS WIR AN DER ERDOBERFLÄCHE FINDEN KONNTEN.", + "ABER BALD HABEN WIR ZUGANG ZU DEN RIESIGEN LAGERN", + "VON DUNKLEM ECO TIEF UNTER DER ERDE.", + "NICHT DIE SILOS!", + "DOCH, DIE ECO-STATIONEN!", + "WIR WERDEN SIE ÖFFNEN UND DAS DUNKLE ECO DER GANZEN WELT WIRD UNS GEHÖREN!", + "ABER DAS IST UNMÖGLICH! NUR EIN PRECURSOR-ROBOTER-", + "ACH, REG' DICH NICHT SO AUF, SAMOS. MIT DIR HABEN WIR NOCH GROSSE PLÄNE.", + "(LACHT)", + "MOMENT MAL!", + "DAS WAR GOL?", + "DERSELBE GOL, DER MICH ZURÜCKVERWANDELN SOLL?", + "GOL IST DER KERL, DER UNS TÖTEN WILL?", + "ICH BIN ERLEDIGT.", + "WIR SIND VIELLEICHT ALLE ERLEDIGT.", + "WENN SIE DIE SILOS ÖFFNEN, WIRD DAS DUNKLE ECO ALLES VERDERBEN UND ZERSTÖREN,", + "WAS DAMIT IN BERÜHRUNG KOMMT!", + "WIR MÜSSEN EINFACH IHRE ZITADELLE ERREICHEN, UM SIE AUFZUHALTEN!", + "DER SCHNELLSTE WEG DORTHIN FÜHRT DURCH DAS LAVA-ROHR AM GRUND DIESES KRATERS.", + "MIT EIN PAAR WEITEREN ENERGIEZELLEN MÜSSTE EUCH DAS HITZESCHILD DES ZOOMERS", + "SICHER ÜBER DIE LAVA BRINGEN.", + "IN ORDNUNG, MEIN JUNGE. TU, WAS DU KANNST.", + "NIMM' DIE FLOHQUASTE MIT UND SAMMLE NOCH MEHR ENERGIEZELLEN." + ], + "sage-village3-introduction-dark-eco": [ + "ACH, DU HEILIGES ECO!", + "IN DEN SPINNENHÖHLEN SCHEINEN SICH EINE GANZE MENGE LURKER ZU BEFINDEN!", + "TOLL, HÖRT SICH JA RICHTIG GEMÜTLICH AN.", + "LASS MICH RATEN. ES GIBT SPINNEN IN DEN SPINNENHÖHLEN, RICHTIG?", + "NATÜRLICH GIBT ES SPINNEN IN SPINNENHÖHLEN!", + "ABER DAS IST EUER KLEINSTES PROBLEM!", + "DIE LURKER SIND HINTER KRISTALLEN AUS KONZENTRIERTEM DUNKLEN ECO HER.", + "IHR MÜSST DIE KRISTALLE ZERSTÖREN, BEVOR DIESE MONSTER SIE IN DIE FINGER BEKOMMEN!", + "NA LOS, JETZT!" + ], + "sage-village3-introduction-rams": [ + "ICH BIN FROH, DASS IHR ZWEI HIER SEID. ES GIBT LURKER-AKTIVITÄTEN IN DEN BERGEN.", + "SCHEINBAR HABEN SIE EINIGE EINGEFRORENE DUNKLE ECO-VORRÄTE IN DEN GLETSCHERN ENTDECKT,", + "DIE SIE JETZT ZU BERGEN VERSUCHEN.", + "WÄHREND IHR DA OBEN NACH ENERGIEZELLEN SUCHT, HALTET DOCH BITTE DIE LURKER AUF", + "UND GOL DAVON AB, NOCH MEHR DUNKLES ECO IN DIE FINGER ZU BEKOMMEN." + ], + "sage-village3-reminder-1-dark-eco": [ + "IHR MÜSST DIE DUNKLEN ECO-KRISTALLE IN DEN SPINNENHÖHLEN ZERSTÖREN!" + ], + "sage-village3-reminder-1-rams": [ + "WIR DÜRFEN NICHT ZULASSEN, DASS DIE LURKER DIE DUNKLEN ECO-KANISTER BEKOMMEN.", + "BEGEBT EUCH AUF DIESEN VERSCHNEITEN GIPFEL UND HALTET SIE AUF!" + ], + "sculptor-introduction": [ + "HEY... DU HAARIGER KLEINER KUMPEL!", + "OH... ICH DACHTE, DU WÄRST MEINE MUSE.", + "DEINE WAS?", + "HAST DU NOCH NIE EINE MUSE GESEHEN?", + "DAS IST EIN KLEINES LEUCHTENDES EICHHÖRNCHEN,", + "SO GROSS WIE DU, SEHR MUTIG UND IMMER GUT DRAUF!", + "OH, JETZT KAPIER ICH! WIE EIN KUMPELCHEN, HÄ?", + "ALSO, ES IST SO: OHNE MEINE MUSE KANN ICH NICHT BILDHAUERN.", + "ABER WENN SIE DA IST, SEHE ICH NUR SCHÖNHEIT IN ALLEN DINGEN, WISST IHR?", + "IM MOMENT KÖNNTE ICH MICH NICHT MAL AUS 'NER KISTE RAUSMEISSELN.", + "ICH GLAUBE, SIE IST ZUR NEBELINSEL GELAUFEN.", + "ACH, ICH HOFFE BLOSS, IHR GEHTS GUT.", + "EINE ENERGIEZELLE, WENN IHR SIE ZURÜCKBRINGT!", + "MOMENT MAL! WIR WERDEN AUF KEINEN FALL ZURÜCK ZUR NEBELINSEL GEHEN!", + "ODER DOCH?" + ], + "sculptor-reminder-1": [ + "OH, HEY, LEUTE! HABT IHR MEINE MUSE SCHON GEFUNDEN?" + ], + "sculptor-resolution": [ + "OH, MEINE MUSE! IHR HABT SIE GERETTET! OH, MANN, IHR SEID DIE GRÖSSTEN!", + "HIER, NEHMT DIESE ENERGIEZELLE,", + "ICH BRAUCHE SIE NICHT MEHR, MEINE INSPIRATION IST WIEDER DA!" + ], + "sidekick-human-intro-sequence-b": [ + "SUCHT WEITER NACH ARTEFAKTEN UND NACH ECO.", + "WENN DIE EINWOHNER PRECURSOR-GEGENSTÄNDE BESITZEN:", + "IHR WISST, WAS ZU TUN IST.", + "BESTRAFT JEDEN HART, DER DAS DORF VERLÄSST.", + "WIR WERDEN ZUR RECHTEN ZEIT ANGREIFEN." + ], + "sidekick-human-intro-sequence-c": [ + "WAS WOLLEN WIR ÜBERHAUPT HIER, JAK? MIR LÄUFT'S HIER KALT DEN RÜCKEN RUNTER!", + "AH!", + "BLÖDER PRECURSOR-SCHROTT!", + "UAH! WAS IST DAS FÜR DUNKLES ZEUG DA? SIEHT JA NICHT GERADE EINLADEND AUS.", + "DER WEISE PLAPPERT STÄNDIG ÜBER DIE PRECURSOR, DIE DAS ZEUG HIER ERBAUT HABEN.", + "\"WOHIN SIND SIE GEGANGEN? WARUM ERBAUTEN SIE DIESEN SCHROTT?\"", + "ICH MAG PRECURSOR-ORBS UND ENERGIEZELLEN GENAU SO WIE JEDER ANDERE,", + "ABER WENN DU MICH FRAGST, WAREN DAS SCHON ECHTE LOSER.", + "AH! WIE HAST DU DAS GEMACHT?", + "JAK, ICH GLAUB', ES GIBT ÄRGER!", + "MANN, WAR DAS HEISS.", + "WIR HÄTTEN NIE HERKOMMEN SOLLEN, HÄTTEST DU AUF MICH GEHÖRT, DANN...", + "WAS?", + "AAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. ALLES KLAR, MIR GEHT'S GUT...", + "AAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OH... MEIN KOPF TUT SO WEH.", + "NA, IST BESTIMMT KEIN WICHTIGES KÖRPERTEIL BEI DIR!", + "MACH' DICH LOCKER, HARTER BURSCHE!", + "JA, ICH WAR EINMAL EIN HARTER BURSCHE.", + "VIELLEICHT SOGAR DER HÄRTESTE.", + "FAST EIN JAHR LANG HAB' ICH DIESES DORF GANZ ALLEIN", + "GEGEN DIESE SCHEUSSLICHEN KREATUREN VERTEIDIGT!", + "DOCH DANN KAM DIESES SCHRECKLICHE MONSTER UND BOMBARDIERTE UNS MIT FELSBROCKEN.", + "MIT GLÄNZENDER RÜSTUNG KLETTERTE ICH TAPFER DEN HÜGEL HINAUF,", + "UM ES ZUM KAMPF AUFZUFORDERN!", + "ABER ES HAT MICH WINDELWEICH GEKLOPFT, WIE EIN YAKOW-STEAK.", + "DANN GREIF'S DOCH MAL MIT DEINEM GEJAMMER AN!", + "DAS IST ECHT TÖDLICH!", + "NACH MEINER LETZTEN BITTEREN NIEDERLAGE", + "HAT ES DEN DURCHGANG ZU SEINEM UNTERSCHLUPF", + "MIT EINEM 30-TONNEN-FELSBLOCK VERSPERRT,", + "SODASS MAN ES NUN NICHT MEHR ANGREIFEN KANN.", + "DESHALB ERFAND UNSER WEISER MANN, MEISTER DES BLAUEN ECOS UND GENIE DER MECHANIK,", + "EINE MASCHINE, UM DEN FELSBLOCK WEGZURÄUMEN!", + "DOCH BEVOR WIR SIE EINSCHALTEN KONNTEN, VERSCHWAND ER", + "UND NAHM LEIDER ALLE SEINE ENERGIEZELLEN MIT.", + "WENIGSTENS HAB' ICH GENUG PONTONS AUS DER BRÜCKE ENTFERNT,", + "SO KANN DAS MONSTER NICHT HIER HERUNTERKOMMEN UND MIR WEHTUN.", + "JA, GANZ, GANZ TOLL GEMACHT, MANN. ABER...", + "DU MUSST SIE, ÄH... WIEDER IN DIE BRÜCKE EINSETZEN, OKAY?", + "OH, NA KLAR. DA KANN ICH MIR JA GLEICH 'N STRICK NEHMEN!", + "(SEUFZT)", + "NA SCHÖN, OKAY.", + "BRINGT MIR 90 PRECURSOR-ORBS UND ICH GEBE DIE PONTONS WIEDER FREI.", + "ABER ICH KÄMPFE NICHT NOCH EIN MAL MIT DIESEM MONSTER!" + ], + "warrior-reminder-1": [ + "LASST EUCH RUHIG ZEIT BEIM BESORGEN DER PRECURSOR-ORBS.", + "ICH HABE NICHT VOR, DIE PONTON-BRÜCKE SO BALD ZU REPARIEREN." + ], + "warrior-resolution": [ + "OH.", + "DAS IST JA TOLL.", + "IHR HABT MIR DIE PRECURSOR-ORBS GEBRACHT.", + "NA SCHÖN.", + "ICH REPARIERE DIE BRÜCKE.", + "ABER MIT DIESEM MONSTER MÖCHTE ICH NICHTS MEHR ZU TUN HABEN!" + ], + "yellowsage-resolution": [ + "WER HÄTTE GEDACHT, DASS ICH MICH EINES TAGES", + "VON EINEM JUNGEN UND SEINER RATTE RETTEN LASSEN MÜSSTE!", + "AHHH, DIESE PEINLICHKEIT WERDE ICH GOL UND MAIA GANZ SICHER HEIMZAHLEN!", + "DANACH KÖNNEN WIR UNS JA UM DEN RATTENEINTOPF KÜMMERN..." + ] + }, + "hints": { + "ASSTLP02": [ + "HMM, ICH MUSS DEN HITZESCHILD HIER IN GANG KRIEGEN..." + ], + "ASSTLP03": [ + "WIR BRAUCHEN ENERGIEZELLEN, UM DEN HITZESCHILD ZU AKTIVIEREN..." + ], + "ASSTLP23": [ + "WIE HAT ER BLOSS DIESE SCHWEBEMASCHINE ZUM FUNKTIONIEREN GEBRACHT?" + ], + "ASSTLP24": [ + "OB UNS ALL DIESE ZELLEN AUCH GENUG ENERGIE LIEFERN WERDEN?" + ], + "ASSTLP30": [ + "HM, MAL SEHEN..." + ], + "ASSTLP31": [ + "HMM." + ], + "ASSTLP33": [ + "AHA!" + ], + "ASSTLP34": [ + "HMM... WAS HABEN GOL UND MAIA BLOSS VOR?" + ], + "ASSTLP35": [ + "HMM... WIR MÜSSEN UNBEDINGT ZUR PRECURSOR-STADT." + ], + "ASSTLP36": [ + "HMM... DER HITZESCHILD BRAUCHT NOCH MEHR ENERGIE, UM DER LAVA STANDZUHALTEN." + ], + "ASSTLP37": [ + "ACH... WIR MÜSSEN DIE ANDEREN WEISEN RETTEN!" + ], + "BIL-AM01": [ + "MM-HMM, ICH LIEBE DIESEN SCHLAMM." + ], + "BIL-AM02": [ + "VERDAMMTE SUMPFRATTE." + ], + "BIL-AM03": [ + "JETZT BRAUCHE ICH EINEN ORDENTLICHEN SCHLUCK VON MAMAS MEDIZIN." + ], + "BIL-AM04": [ + "JIPPIE!" + ], + "BIL-AM05": [ + "ICH BRAUCHE JETZT MEINE BRAUNE MEDIZIN." + ], + "BIL-AM06": [ + "ICH BRAUCH' WAS ZUM ABKÜHLEN." + ], + "BIL-AM07": [ + "VERDAMMTE HITZE... MICH JUCKT'S ÜBERALL." + ], + "BIL-AM08": [ + "VERDAMMT... VON DIESER HITZE KRIEG' ICH NOCH AUSSCHLAG." + ], + "BIL-AM1A": [ + "MM-HMM! ICH LIEBE DIESEN SCHLAMM!" + ], + "BIL-AM2A": [ + "VERDAMMTE SUMPFRATTE!" + ], + "BIL-AM2B": [ + "VERDAMMTE SUMPFRATTE!" + ], + "BIL-LO02": [ + "KOMM-KOMM-KOMM-KOMM!" + ], + "BIL-LO03": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "KOMM JETZT HER, KOMM!" + ], + "BIL-LO2B": [ + "KOMM! KOMM!" + ], + "BIL-TA01": [ + "ERSCHIESS SIE!" + ], + "BIL-TA02": [ + "GUTER SCHUSS!" + ], + "BIL-TA03": [ + "DA DRÜBEN!" + ], + "BIL-TA04": [ + "VERDAMMT!" + ], + "BIL-TA05": [ + "'NE RATTE HAT DAS FRESSEN!" + ], + "BIL-TA06": [ + "UND NOCH EINE..." + ], + "BIL-TA07": [ + "NUR NOCH EINE ÜBRIG..." + ], + "BIL-TA08": [ + "VOLLTREFFER." + ], + "BIL-TA1A": [ + "ERSCHIESS SIE!" + ], + "BIL-TA2A": [ + "GUTER SCHUSS!" + ], + "BIL-TA3A": [ + "DA DRÜBEN!" + ], + "BIL-TA4A": [ + "OH, VERDAMMT!" + ], + "BIL-TA4B": [ + "VERDAMMT!" + ], + "BIL-TA5A": [ + "'NE RATTE HAT DAS FRESSEN!" + ], + "BIR-AM01": [ + "SEID IHR SCHON BEIM EI?" + ], + "BIR-AM02": [ + "JA, DA! EIN STÜCKCHEN WEITER NOCH!" + ], + "BIR-AM03": [ + "GUT, UND JETZT SCHUBST ES, ABER SACHTE!" + ], + "BIR-AM04": [ + "OH, JE, DAS WAR ABER NICHT SACHTE!" + ], + "BIR-AM05": [ + "NA LOS, SCHUBST DAS EI VON DER KLIPPE!" + ], + "BIR-AM06": [ + "OH!" + ], + "BIR-AM07": [ + "HIER, VÖGELCHEN! HIER, VÖGELCHEN!" + ], + "BIR-AM08": [ + "HIER, MEIN VÖGELCHEN!" + ], + "BIR-AM09": [ + "SEID VORSICHTIG, DA OBEN IST'S GEFÄHRLICH!" + ], + "BIR-AM10": [ + "VORSICHTIG, GANZ RUHIG, JETZT!" + ], + "BIR-AM11": [ + "GUT GEMACHT! WIR TREFFEN UNS HIER UNTEN BEIM EI!" + ], + "BIR-AM12": [ + "DU MUSST EIN WAHRER TIERFREUND SEIN!" + ], + "BIR-AM13": [ + "SEHT IHR DA OBEN NOCH ANDERE VÖGEL?" + ], + "BIR-LO01": [ + "(KUSS) (PFEIFEN)" + ], + "BIR-LO02": [ + "OH, SO EIN HÜBSCHES DING!" + ], + "BIR-LO03": [ + "SIEH MAL AN, EIN MUCKY-MUCK." + ], + "BIR-am08": [ + "HIER, MEIN VÖGELCHEN..." + ], + "BLU-AM01": [ + "ETWAS HILFE WÄRE NICHT SCHLECHT!" + ], + "BLU-AM02": [ + "OH, DAS IST JA EIN SCHÖNES SCHLAMASSEL!" + ], + "BLU-AM03": [ + "OH, WAS FÜR EIN RÄTSEL." + ], + "CHI-AM01": [ + "OH, WAS FÜR EINE KATASTROPHE, EINE KATASTROPHE!" + ], + "CHI-AM02": [ + "JETZT WOLLEN SIE AUCH NOCH, DASS ICH IN DEN DSCHUNGEL GEHE - I-ICH!...", + "DA KÄMPFE ICH LIEBER MIT 'NEM WÜTENDEN FLUT-FLUT!" + ], + "CHI-AM03": [ + "...E-ERST GREIFT EIN M-MONSTER DAS BOOT DES FISCHERS AN U-UND JETZT - JETZT DAS...", + "WAS - W-WAS KANN DENN SONST NOCH SCHIEFGEHEN?" + ], + "CHI-AM04": [ + "ÄHM... I-ICH, ÄHM... ICH... ÄHM...", + "VIELLEICHT BESEITIGT EINE... Ä-ÄHM... STEUERERHÖHUNG DIESEN SCHLAMASSEL?" + ], + "CHI-AM05": [ + "PROBLEME... PROBLEME... PROBLEME!" + ], + "CHI-AM06": [ + "(SCHLUCHZT) JETZT WERDE ICH BESTIMMT NICHT WIEDERGEWÄHLT..." + ], + "CHI-AM07": [ + "(JAMMERT) WAS IST MIT DEM ENERGIESTRAHL DES DORFES GESCHEHEN?" + ], + "CHI-AM08": [ + "(JAMMERT) WARUM...?" + ], + "CHI-LO01": [ + "...WINDMÜHLE, MONSTER, STROM, WIEDERWAHLEN..." + ], + "CHI-LO02": [ + "...W-WAHLEN, MONSTER, WIEDERWAHLEN..." + ], + "EXP-AM01": [ + "ICH MUSS BALD ZU MEINER REISE AUFBRECHEN, ICH BRAUCHE PRECURSOR-ORBS!" + ], + "EXP-AM02": [ + "HM, MAL SEHEN, WO SOLL ICH ZUERST HIN?" + ], + "EXP-AM03": [ + "AH, ICH VERMISSE DIE LANDSTRASSE." + ], + "EXP-AM04": [ + "ES GIBT SO VIEL ZU SEHEN UND SO WENIG ZEIT DAFÜR." + ], + "EXP-AM05": [ + "HMPF, ZU MEINER ZEIT KONNTE MAN NOCH REISEN, OHNE VON MONSTERN ANGEGRIFFEN ZU WERDEN!" + ], + "EXP-LO02": [ + "ICH BRAUCHE MEHR PRECURSOR-ORBS." + ], + "EXP-LO1A": [ + "(MURMELT)" + ], + "FAR-AM01": [ + "(SCHNARCHT) HIER, BESSIE... HIER, BESSIE BESSIE... MEIN MÄDCHEN..." + ], + "FAR-AM02": [ + "MUSS DIE ERNTE EINBRINGEN, BEVOR DIE JUNEKÄFER SIE HOLEN..." + ], + "FAR-AM2A": [ + "MUSS DIE ERNTE EINBRINGEN, BEVOR DIE JUNEKÄFER SIE HOLEN..." + ], + "FAR-LO01": [ + "(SCHNARCHT)" + ], + "FAR-LO1A": [ + "(SCHNARCHT)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH... I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "DIE MONSTER, DIE'N STÜCK AUS'M BOOT RAUSGEBISSEN HABEN, WERDEN MICH NOCH RUINIEREN." + ], + "FIS-AM03": [ + "VERFLUCHTE MISTDINGER!", + "KOMMT IN'S KÖRBCHEN, BLÖDE FISCHE...", + "HE, HE, HE, HE, HE..." + ], + "FIS-AM04": [ + "TJA, ICH LIEB' DEN GERUCH VON FISCH AM MORGEN." + ], + "FIS-AM05": [ + "TJA, ALSO, JETZT KÖNNT' ICH 'N SALZFISCH AUF ROGGENBROT VERTRAGEN." + ], + "FIS-AM06": [ + "HMM, DAS WAR VIELLEICHT 'N RIESE, DER MIT DA ABGEHAUEN IS'..." + ], + "FIS-LO01": [ + "(MURMELT) SO WAS..." + ], + "FIS-LO03": [ + "(LACHT)" + ], + "FIS-LO04": [ + "BLÖDE FISCHE... WOLLEN EINFACH NICH' IN MEIN NETZ!" + ], + "FIS-LO05": [ + "(LACHT)" + ], + "FIS-TA01": [ + "NACH LINKS!" + ], + "FIS-TA02": [ + "NACH RECHTS!" + ], + "FIS-TA03": [ + "DA KOMMT'N GROSSER!" + ], + "FIS-TA04": [ + "DIR IS'N RIESEN KERL ERWISCHT!" + ], + "FIS-TA05": [ + "LASS SO EINEN NICHT NOCHMA' DURCH!" + ], + "FIS-TA06": [ + "RUHIG, JUNGE." + ], + "FIS-TA07": [ + "DEINE SEGEL HÄNGEN IM WIND, JUNGCHEN." + ], + "FIS-TA08": [ + "AH, ENTWISCHT!" + ], + "FIS-TA09": [ + "DU KÖNNTEST EIN GRÖSSERES NETZ BRAUCHEN." + ], + "FIS-TA10": [ + "WIEDER VORBEI!" + ], + "FIS-TA11": [ + "RUHIG HALTEN! HAST'S FAST GESCHAFFT!" + ], + "FIS-TA1A": [ + "LINKS!" + ], + "FIS-TA2A": [ + "RECHTS!" + ], + "GAM-AM01": [ + "HEY, EINE ZWANZIG-ZU-EINS CHANCE IST NICHT SO SCHLECHT!" + ], + "GAM-AM02": [ + "ACH, ES WAR 'NE SICHERE SACHE!" + ], + "GAM-AM03": [ + "HEHEHEHE... NÄCHSTES MAL WERD' ICH DEN JACKPOT KNACHEN!" + ], + "GAM-AM04": [ + "ACH, WENN ICH NUR EINEN ORB FÜR JEDE VERPASSTE CHANCE BEKOMMEN WÜRDE..." + ], + "GAM-AM05": [ + "NAJA, VIELLEICHT KOMMEN FÄSSER JA WIEDER IN MODE!" + ], + "GAM-AM06": [ + "OH, ICH BRAUCH' NE GLÜCKSSTRÄHNE." + ], + "GAM-AM07": [ + "AH, WIE STEHEN DIE WETTEN, DASS ICH MICH NICHT IN DIE BELAGERTE STADT TRAUE?" + ], + "GAM-AM08": [ + "ICH DACHTE, DAS WAR EIN GUTER TIPP!" + ], + "GAM-AM09": [ + "NEUER TAG, NEUE WETTE." + ], + "GAM-AM10": [ + "WETTEN, KEINER KANN'S MIT DIESEM MONSTER AUFNEHMEN?" + ], + "GAM-AM11": [ + "HAHA, ICH HOL' MIR MEIN GELD UND ZIEHE WEITER." + ], + "GAM-AM12": [ + "NAJA, MAN KANN NICHT IMMER GEWINNEN." + ], + "GAM-AM13": [ + "HEY, WARUM LACHT IHR? FINDET IHR DAS ETWA LUSTIG?" + ], + "GEO-AM01": [ + "HMM, INTERESSANTE SCHICHT..." + ], + "GEO-AM02": [ + "ARME KLEINE MAULWÜRFE..." + ], + "GEO-AM03": [ + "INTERESSANT..." + ], + "GEO-AM04": [ + "VIEL GLÜCK, JUNGS!" + ], + "GEO-AM05": [ + "GEMEINE LURKER..." + ], + "GEO-AM06": [ + "AUCH STEINE HABEN GEFÜHLE..." + ], + "GEO-AM07": [ + "HALTET DURCH, IHR KLEINEN!" + ], + "GEO-AM08": [ + "JETZT KANN ICH MICH WIEDER MEINER FORSCHUNG WIDMEN!" + ], + "GEO-LO01": [ + "ICH MUSS ZU MEINER FORSCHUNGSARBEIT ZURÜCK." + ], + "GEO-LO02": [ + "HMM, DIESER STEIN IST SEHR ALT..." + ], + "GOL-AM01": [ + "IHR GEBT EINFACH NICHT AUF, WAS?" + ], + "GOL-AM02": [ + "BALD GEHÖRT DAS DUNKLE ECO UNS!" + ], + "GOL-AM03": [ + "ERLEDIGT SIE!" + ], + "GOL-AM04": [ + "FEUER FREI!" + ], + "GOL-AM05": [ + "JAGT SIE IN DIE LUFT!" + ], + "GOL-AM06": [ + "WAS? DIE SCHON WIEDER?!" + ], + "GOL-AM07": [ + "ES IST ZU SPÄT!" + ], + "GOL-AM08": [ + "IHR GEHÖRT MIR!" + ], + "GOL-AM09": [ + "JETZT HABE ICH EUCH!" + ], + "GOL-AM10": [ + "HA, HA, HA, HA, HA!" + ], + "GOL-AM11": [ + "KEINE GNADE!" + ], + "GOL-AM12": [ + "NIMM DAS!" + ], + "GOL-AM13": [ + "NETTER VERSUCH!" + ], + "GOL-AM14": [ + "HALT STILL!" + ], + "GOL-AM15": [ + "ERBÄRMLICH!" + ], + "GOL-AM16": [ + "NEEEIN!" + ], + "GOL-AM18": [ + "WIR WERDEN DIE ECO-STATION GANZ ÖFFNEN UND EUCH ZWEI VERNICHTEN!" + ], + "GOL-AM19": [ + "HELLES ECO! ES EXISTIERT ALSO WIRKLICH!" + ], + "GOL-AM20": [ + "DAS LASSEN WIR UNS NICHT GEFALLEN!" + ], + "MAI-AM01": [ + "ERLEDIGE SIE BEIDE, EIN FÜR ALLE MAL!" + ], + "MAI-AM02": [ + "MACH SIE FERTIG!" + ], + "MAI-AM03": [ + "HA, HA, HA!" + ], + "MAI-AM04": [ + "ECO HILFT EUCH JETZT NICHT MEHR!" + ], + "MAI-AM05": [ + "TU DOCH WAS!" + ], + "MAI-AM06": [ + "AAAAH!" + ], + "MAI-AM07": [ + "NEEEEEIN!" + ], + "MAI-AM08": [ + "WIR WERDEN DIE ECO-STATION GANZ ÖFFNEN UND EUCH ZWEI VERNICHTEN!" + ], + "MAI-AM09": [ + "SIE DÜRFEN ES NICHT BEKOMMEN!" + ], + "MIN-LO01": [ + "BALD WERDE ICH REICH SEIN...", + "ÄH, DU MEINST, WIR WERDEN REICH SEIN.", + "JA, WIE AUCH IMMER." + ], + "MIN-LO03": [ + "GRAB, WILLARD, GRAB!", + "JA, DOCH, ABER WARUM GRÄBST DU DENN NICHT?", + "ICH, ÄH, MUSS DOCH DAS, ÄH, DENKEN ÜBERNEHMEN!" + ], + "MIN-LO04": [ + "ÄH, GORDY? KANN ICH DAS GRABEN MAL KURZ UNTERBRECHEN?", + "MANN, ICH BRECH' DIR GLEICH WAS! GRAB WEITER!" + ], + "MIN-LO05": [ + "OH, ICH BIN AM VERHUNGERN, GORDY!", + "DANN FRISS DEINEN VOGEL!" + ], + "MIN-LO06": [ + "ÄH, GORDY? ICH BRAUCH' 'NE SPITZERE HACKE!", + "WAS DU BRAUCHST, IST MEHR GRIPS!" + ], + "MSH-AM01": [ + "HAHA, ICH WERDE REICH SEIN!" + ], + "MSH-AM02": [ + "GRABE, GRABE, GRABE!" + ], + "MSH-AM03": [ + "WILLARD! DENK' NICHT, ARBEITE!" + ], + "MSH-AM04": [ + "(LACHT) ICH WERDE DER REICHSTE MANN DER WELT SEIN! (LACHT)" + ], + "MSH-AM05": [ + "OHH! SO EINEN RIESIGEN EDELSTEIN HAT NOCH NIEMAND GESEHEN! (LACHT)" + ], + "MSH-AM06": [ + "WOHLSTAND, ICH KOMME!" + ], + "MSH-AM07": [ + "MEINE EDELSTEINE! ALLES MEINE EDELSTEINE!" + ], + "MSH-AM09": [ + "ACH, WIE VIEL GELD ICH FÜR DIESES BABY BEKOMMEN WERDE! (LACHT)" + ], + "MSH-AM10": [ + "SIEHT AUS WIE EIN SELTENER CRYSTITE ZLARCONIA!" + ], + "MSH-AM11": [ + "NICHT SO SCHNELL, DIE GEHÖREN ALLE MIR! MIR, SAG' ICH!" + ], + "MSH-AM12": [ + "UND, WILLARD? WAS WIRST DU DENN MIT DEINEM VIERTEL - ÄH, DEINER HÄLFTE, ANFANGEN?" + ], + "MSH-AM1A": [ + "ICH WERDE REICH SEIN!" + ], + "MSH-AM2A": [ + "GRABE, GRABE, GRABE!" + ], + "MSH-AM3A": [ + "WILLARD, DENK' NICHT, ARBEITE!" + ], + "MTA-AM01": [ + "ÄH, SIND WIR BALD FERTIG?" + ], + "MTA-AM02": [ + "ÄH, MANN, KÖNNEN WIR MAL 'NE PAUSE MACHEN?" + ], + "MTA-AM03": [ + "JUNGE, HAB' ICH 'N HUNGER!" + ], + "MTA-AM04": [ + "(RIECHT) ÄH, ICH GLAUBE, ICH MUSS BIRDIES KÄFIG MAL WIEDER SAUBER MACHEN." + ], + "MTA-AM05": [ + "DAS IST ABER EIN SCHRECKLICH GROSSER EDELSTEIN!" + ], + "MTA-AM06": [ + "ÄHM... ICH WOLLTE SCHON IMMER HOLZFÄLLER WERDEN..." + ], + "MTA-AM07": [ + "WOW, GORDY HAT MIR DIE HÄLFTE VON ALLEM VERSPROCHEN, WAS ICH TRAGEN KANN!" + ], + "MTA-AM08": [ + "HAHA, BIRDIE IST MEIN BESTER FREUND!" + ], + "MTA-AM09": [ + "ICH LIEBE MEINEN KLEINEN BIRDIE!" + ], + "RED-AM01": [ + "IST DA IRGENDJEMAND?" + ], + "RED-AM02": [ + "TJA..." + ], + "RED-AM03": [ + "WAS HAT EUCH AUFGEHALTEN?" + ], + "SAGELP03": [ + "DIESE BEIDEN KÖNNTEN NOCH NICHT EINMAL IHRE EIGENEN OHREN FREIBEKOMMEN..." + ], + "SAGELP04": [ + "ER WIRD SEINEM ONKEL NIE DAS WASSER REICHEN KÖNNEN,", + "GANZ GLEICH, WAS DIE ANDEREN BEHAUPTEN." + ], + "SAGELP05": [ + "HALLO, BLAUER WEISER? HALLO? WO ZUM TEUFEL KANN ER NUR SEIN?!" + ], + "SAGELP06": [ + "ACH, DU MEINE GÜTE..." + ], + "SAGELP11": [ + "HALLO? IRGENDJEMAND, BITTE MELDEN!" + ], + "SAGELP20": [ + "HMM... HMM... HMM... HMM..." + ], + "SAGELP21": [ + "MAN MUSS DIESE LURKER AUFHALTEN." + ], + "SAGELP22": [ + "VERSTEHE..." + ], + "SAGELP23": [ + "NEIN..." + ], + "SAGELP24": [ + "WAS KANN IHM NUR ZUGESTOSSEN SEIN?" + ], + "SAGELP31": [ + "DAS IST GAR NICHT GUT." + ], + "SAGELP32": [ + "DUNKLE ECO-KRISTALLE?" + ], + "SAGELP33": [ + "MAIA UND GOL STECKEN BIS ÜBER BEIDE OHREN DRIN!" + ], + "SAGELP34": [ + "DIE KRÄFTE DES DUNKLEN ECOS LASSEN SICH NICHT KONTROLLIEREN!" + ], + "SAGELP35": [ + "DUNKLES ECO IN DEN GLETSCHERN?" + ], + "SAGELP36": [ + "ACH! DA SIND LURKER-TRUPPEN IN DEN BERGEN!" + ], + "SAGELP37": [ + "WAS HAT GOL NUR VOR...?" + ], + "SAGELP38": [ + "HAT ER VIELLEICHT...?" + ], + "SCU-AM01": [ + "ACH... ICH KANN ES EINFACH NICHT MEHR." + ], + "SCU-AM02": [ + "ACH, HÄTTE ICH DOCH BLOSS EINE INSPIRATION." + ], + "SCU-AM03": [ + "ICH BIN SO INSPIRIERT WIE... DIESER FELS." + ], + "SCU-AM04": [ + "ACH... WO IST BLOSS MEINE MUSE?" + ], + "SCU-AM05": [ + "ICH KANN SO NICHT ARBEITEN!" + ], + "SCU-AM06": [ + "OH, MANN... OB SIE WOHL JE ZU MIR ZURÜCKKOMMT?" + ], + "SCU-LO01": [ + "ACH..." + ], + "SKSP009F": [ + "SCHNAPP' DIR WELCHE! SCHNAPP' DIR WELCHE, HA, HA, HA!" + ], + "WAR-LO1A": [ + "(HEULT)" + ], + "WAR-LO1B": [ + "(HEULT)" + ], + "WAR-LO1C": [ + "(HEULT)", + "(HEULT) NEIN, NEIN, NEIN, NEIN..." + ], + "YEL-AM01": [ + "DIE ZEIT WIRD KNAPP!" + ], + "YEL-AM02": [ + "HEY! HOLT MICH HIER RAUS!" + ], + "YEL-AM03": [ + "WENN ICH HIER RAUSKOMME, DANN IST ABER JEMAND FÄLLIG!" + ], + "asstv100": [ + "OKAY, IHR HABT GENUG ENERGIEZELLEN, UM DIE STÄRKE DES HITZESCHILDES ZU ERHÖHEN.", + "FAHRT MIT DER HÖLZERNEN LORE DEN SCHACHT AM LAVA-GEYSIR HINUNTER.", + "ICH TREFFE EUCH AM EINGANG DES LAVA-ROHRS, DAMIT ICH DEN ZOOMER EINSTELLEN KANN. BEEILT EUCH!" + ], + "asstv101": [ + "HAHA, OKAY! IHR HABT GENUG ENERGIEZELLEN, UM DIE STÄRKE DES HITZESCHILDES ZU ERHÖHEN!", + "TREFFT EUCH AM VULKANKRATER WIEDER MIT MIR,", + "ICH WERDE AM LAVA-ROHR UNTEN AM SCHACHT BEIM LAVA-GEYSIR WARTEN.", + "BRINGT MIR DIE ENERGIEZELLEN!" + ], + "asstv102": [ + "BEEILT EUCH MIT DEN ENERGIEZELLEN!", + "ICH WARTE AM SCHACHT DER HÖLZERNEN LORE IN DER NÄHE DES LAVA-GEYSIRS." + ], + "asstv103": [ + "VERGESST NICHT, DAS TELEPORTTOR EINZUSCHALTEN, DAMIT WIR DURCH KÖNNEN.", + "IHR MÜSST INS LABOR DES ROTEN WEISEN", + "IM ZENTRUM DES VULKANKRATERS GEHEN, UM ES EINZUSCHALTEN.", + "WIR KÖNNEN NICHT DURCH, SOLANGE ES NICHT EINGESCHALTET IST." + ], + "asstv104": [ + "HEY, WIR SIND IMMER NOCH IN FELSDORF!", + "SCHALTET DAS TELEPORTTOR EIN!" + ], + "asstv105": [ + "WIR WOLLEN ZU EUCH IN DEN VULKANKRATER KOMMEN!", + "GEHT INS LABOR DES ROTEN WEISEN UND SCHALTET DAS TOR EIN!" + ], + "asstva73": [ + "HEY, JUNGS! NACH MEINEN BERECHNUNGEN BRAUCHT MAN 72 ENERGIEZELLEN, UM DEN HITZESCHILD", + "GEGEN DIE LAVA AUF DEM WEG ZU GOL UND MAIAS ZITADELLE ZU WAPPNEN." + ], + "asstva74": [ + "IHR HABT NICHT GENUG ENERGIEZELLEN, UM DURCH DIE LAVA ZU KOMMEN!", + "IHR KÖNNT NICHT ZU GOL UND MAIAS ZITADELLE GELANGEN, BIS IHR 72 ENERGIEZELLEN GESAMMELT HABT!" + ], + "asstvb02": [ + "WOW, HABT IHR DAS GESEHEN? AUF DER GANZEN WELT SIND BLAUE ECO-ÖFFNUNGEN AKTIVIERT WORDEN!", + "ICH HAB' DOCH GEWUSST, DASS ES EINE MÖGLICHKEIT GIBT, SIE AUFZUMACHEN.", + "ES MUSS NOCH ANDERE ORTE GEBEN,", + "VON DENEN AUS MAN AUCH DIE RESTLICHEN ECO-ÖFFNUNGEN AUFMACHEN KANN." + ], + "asstvb03": [ + "GUT! IHR HABT ALLE LURKER DARAN GEHINDERT, WEITER MINEN ABZUWERFEN!", + "SIE HABEN DIE GEWÄSSER UM UNSER DORF SCHON SEIT WOCHEN UNSICHER GEMACHT.", + "BRINGT EUREN ZOOMER ZURÜCK ZUM TRANS-PAD UND ICH TEELPORTIERE IHN WIEDER HIERHER!" + ], + "asstvb04": [ + "GUT, IHR HABT GENUG ENERGIEZELLEN GESAMMELT, UM MEINEN HITZESCHILD ZU AKTIVIEREN!", + "KLETTERT DIE KLIPPE HINTER DEM HAUS DES FARMERS HOCH", + "UND TREFFT MICH AM EINGANG ZUM FEUER-CANYON!", + "BRINGT DIE ENERGIEZELLEN MIT UND BEEILT EUCH!", + "MEIN VATER SAGT, ER HABE HIER WIEDER MEHR LURKER GESEHEN." + ], + "asstvb08": [ + "BEEILT EUCH MIT DEN ENERGIEZELLEN, ICH WARTE AM ANFANG DES FEUER-CANYONS,", + "OBEN AUF DER KLIPPE, HINTER DEM HAUS DES FARMERS!" + ], + "asstvb09": [ + "IHR HABT KEINE 20 ENERGIEZELLEN, UM MEINEN HITZESCHILD ZU AKTIVIEREN!", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GUT GEFLOGEN! DIESE LURKER SIND KEINE WIRKLICHEN GEGNER FÜR DEN ZOOMER!", + "JETZT HABEN WIR EINE ENERGIEZELLE MEHR!" + ], + "asstvb21": [ + "GUT GEMACHT! SEID IHR NICHT FROH, DASS IHR UNSERE KLEINE FLUT-FLUT-FREUNDIN GERETTET HABT?", + "SIE WIRD EUCH VIELLEICHT NOCH EINMAL BEHILFLICH SEIN KÖNNEN.", + "JETZT BRINGT SIE ZUM TRANS-PAD, DANN HOLE ICH SIE NACH HAUSE." + ], + "asstvb22": [ + "WOW! IHR HABT EIN PAAR DER UNTERWASSER-RUINEN AN DIE OBERFLÄCHE GEHOBEN!", + "WIE ES SCHEINT, KANN MAN MIT ECO MEHR MACHEN, ALS WIR BISHER WUSSTEN.", + "UND MIT DER KAMMER IST AUCH EINE ENERGIEZELLE HOCHGEKOMMEN.", + "KLETTERT RAUF UND HOLT SIE!" + ], + "asstvb23": [ + "TOLLE ARBEIT! DEN BEWOHNERN VON FELSDORF IST EIN RIESIGER STEIN VOM HERZEN GEFALLEN!", + "ABER ES BLEIBT LEIDER KEINE ZEIT ZUM FEIERN! FLIEGT MIT DEM ZOOMER DEN GEBERGSPASS HINAUF,", + "ABER SEID VORSICHTIG! DIE LURKER HABEN DEN GANZEN PASS VERMINT!", + "WENN IHR DEN VULKANKRATER ERREICHT,", + "MÜSST IHR UNBEDINGT IM LABOR DES ROTEN WEISEN DAS TELEPORTTOR AKTIVIEREN,", + "DAMIT VATER UND ICH ZU EUCH STOSSEN KÖNNEN." + ], + "asstvb24": [ + "OH, JE! DIESE LURKER SIND AUF DEM WEG ZU EINER SPRENGKAPSEL AM ENDE DES CANYONS!", + "WENN SIE DIE VOR EUCH ERREICHEN, SPRENGEN SIE DEN GANZEN PASS IN DIE LUFT!", + "IHR MÜSST VOR IHNEN DORT SEIN UND DIE SPRENGKAPSEL ZERSTÖREN ODER ALLES IST AUS!" + ], + "asstvb25": [ + "GUT GEMACHT! IHR WART VOR IHNEN BEI DER SPRENGKAPSEL!", + "DAS LABOR DES ROTEN WEISEN LIEGT GLEICH DA VORNE!", + "SCHALTET DAS TELEPORTTOR EIN, DAMIT WIR ZU EUCH KÖNNEN!" + ], + "asstvb28": [ + "HEY! VERGESST DEN WEISEN UND MICH NICHT!", + "IHR MÜSST DAS TELEPORTTOR EINSCHALTEN, SODASS WIR DURCHKOMMEN KÖNNEN!", + "ES BEFINDET SICH IM LABOR DES BLAUEN WEISEN, AM ENDE DES FEUER-CANYONS.", + "WENN IHR UNS NICHT DURCHKOMMEN LASST, KÖNNEN WIR EUCH AUCH NICHT HELFEN!" + ], + "asstvb29": [ + "HEY! WIR WARTEN IMMER NOCH!", + "SCHALTET ENDLICH DAS TELEPORTTOR EIN!" + ], + "asstvb30": [ + "HEY! WIR KÖNNEN NICHT DURCHKOMMEN, WENN DAS TELEPORTTOR NICHT EINGESCHALTET IST!" + ], + "asstvb40": [ + "DIESES GERÄT IST EIN KOMMUNIKATOR, DAMIT KÖNNEN MEIN VATER UND ICH", + "EUCH JEDERZEIT BEI EURER SUCHE RATSCHLÄGE GEBEN." + ], + "asstvb41": [ + "DIESE SCHWEBENDEN EIFÖRMIGEN DINGER SIND PRECURSOR-ORBS.", + "WENN IHR GENUG DAVON SAMMELT, GEBEN EUCH EIN PAAR DER DORFBEWOHNER", + "EINE ENERGIEZELLE DAFÜR." + ], + "asstvb42": [ + "DAS IST EINE ENERGIEZELLE, DAS WICHTIGSTE PRECURSOR-ARTEFAKT, DAS IHR FINDEN KÖNNT.", + "IHR MÜSST 20 DAVON SAMMELN, DAMIT ICH DEN HITZESCHILD", + "FÜR EUREN A-GRAV-ZOOMER AKTIVIEREN KANN." + ], + "asstvb44": [ + "HEY, IHR HABT EINE MEINER SPÄHFLIEGEN GEFUNDEN!", + "ICH HABE SIEBEN DAVON IN JEDES GEBIET ENTSANDT, UM NACH ENERGIEZELLEN ZU SUCHEN,", + "ABER DIE LURKER MÜSSEN SIE ALLE EINGEFANGEN HABEN." + ], + "asstvb45": [ + "WOW! DIESE LETZTE SPÄHFLIEGE HATTE EINE ENERGIEZELLE!", + "ICH WETTE, WENN IHR ALLE SIEBEN IN EINEM GEBIET FINDET,", + "BEKOMMT IHR BESTIMMT NOCH MEHR ENERGIEZELLEN." + ], + "asstvb46": [ + "SEID VORSICHTIG IM OZEAN, DIE GEWÄSSER WIMMELN NUR SO VOR LURKER-HAIEN", + "UND ICH HABE NOCH NIE ERLEBT, DASS JEMAND EINEN DAVON BESIEGT HAT.", + "HALTET EUCH VON IHNEN FERN, WENN EUCH EUER LEBEN LIEB IST!" + ], + "asstvb47": [ + "DENK DRAN, DAS IST EINE ENERGIEZELLE. IHR MÜSST SO VIELE SAMMELN WIE NUR MÖGLICH!" + ], + "asstvb48": [ + "DAS IST EINE BLAUE ECO-ÖFFNUNG!", + "HIER IST DAS BLAUE ECO VIEL KONZENTRIERTER ALS BEI DEN SCHWEBENDEN HAUFEN,", + "DESHALB BEKOMMST DU HIER EINE VOLLE LADUNG DAVON,", + "DIE DU FÜR DIE MAXIMALE ZEITDAUER NUTZEN KANNST." + ], + "asstvb71": [ + "IHR HABT NICHT GENUG ENERGIEZELLEN, UM DIE MASCHINE DES BLAUEN WEISEN ZU BETREIBEN.", + "WIR KÖNNEN DIESEN FELSBLOCK NICHT BEWEGEN, BIS IHR 45 ENERGIEZELLEN GESAMMELT HABT." + ], + "asstvb72": [ + "SOLANGE WIR NICHT WISSEN, WARUM DER BLAUE WEISE VERSCHWUNDEN IST,", + "MÜSST IHR 45 ENERGIEZELLEN SAMMELN, UM SEINE MASCHINE ANZUTREIBEN.", + "GEHT UND BESORGT SIE!" + ], + "asstvb75": [ + "DIESE GONDEL SCHEINT NICHT ZU FUNKTIONIEREN.", + "ICH WERDE MAL DARAN HERUMBASTELN UND VERSUCHEN, SIE WIEDER IN GANG ZU KRIEGEN." + ], + "asstvb76": [ + "ICH HABE DIE GONDEL WIEDER AKTIVIERT! SIE KANN EUCH INS SCHNEEGEBIRGE BRINGEN.", + "BENUTZT SIE, WANN IHR WOLLT." + ], + "sagevb01": [ + "IHR SCHEINT EUCH ENDLICH DAZU ENTSCHLOSSEN ZU HABEN,", + "MEINE ERNTER FREIZUSETZEN.", + "ICH WÜRDE EUCH JA GERNE GRATULIEREN, ABER IHR HABT SO VIEL ZU TUN,", + "DA WILL ICH EURE ZEIT NICHT VERSCHWENDEN.", + "ÜBRIGENS, FALLS EURE PLÄNE FEHLSCHLAGEN,", + "KÖNNTE DAXTER BESTIMMT JEDERZEIT IM DORF ANHEUERN UND SICH UM DAS RATTENPROBLEM KÜMMERN.", + "(LACHT)" + ], + "sagevb02": [ + "ICH MUSS ZUGEBEN, ICH BIN BEEINDRUCKT! IHR ZWEI HABT'S TATSÄCHLICH GESCHAFFT!", + "JETZT KÖNNEN DIE LURKER DIE PRECURSOR-ECO-STATION NICHT ÖFFNEN", + "UND DAMIT DIE WELT AUCH NICHT MIT DUNKLEM ECO ÜBERFLUTEN", + "UND NOCH NIE DAGEWESENE ZERSTÖRUNG ANRICHTEN.", + "...HÖR ENDLICH AUF, SO BLÖDE ZU GRINSEN, DAXTER! IHR ZWEI HABT NOCH VIEL ZU TUN!", + "ALSO LOS!" + ], + "sagevb03": [ + "IHR BEEIDRUCKT MICH IMMER MEHR!", + "ABER VIELLEICHT LIEGT DAS AUCH NUR AN MEINEN NIEDRIGEN ERWARTUNGEN!", + "OKAY, GENUG DER SCHMEICHELEI! WEITERMACHEN!" + ], + "sagevb04": [ + "GUT GEMACHT, JAK! DEIN ONKEL WÄRE STOLZ AUF DICH!", + "DAS WAR DER RIESIGE ARM EINES PRECURSOR-ROBOTERS.", + "ICH HABE NOCH NIE EINEN IN SOLCH GUTEM ZUSTAND GESEHEN.", + "ICH KANN MIR NICHT VORSTELLEN, WAS DIE LURKER DAMIT VORHATTEN,", + "ABER ES IST BESSER, DASS SIE IHN NICHT BEKOMMEN HABEN.", + "WENN DU SO WEITERMACHST...", + "ACH, NEIN. EIN HELD WIRST DU NIE WERDEN.", + "ABER GIB' NICHT AUF, DU MACHST DAS GANZ HERVORRAGEND!" + ], + "sagevb21": [ + "DIESE KLEINEN GRÜNEN ENERGIEBÄLLE AUF DEM BODEN SIND EINE ECO-ART.", + "HEBE 50 KLEINE ODER EINEN GROSSEN GRÜNEN ECO AUF, DANN WIRD DEINE GESUNDHEIT VERBESSERT." + ], + "sagevb22": [ + "DAS HIER IST BLAUES ECO, ES ENTHÄLT DIE BEWEGUNGSENERGIE.", + "MIT BLAUEM ECO KANNST DU SCHNELL RENNEN,", + "KISTEN AUFBRECHEN UND SOGAR EINIGE PRECURSOR-ARTEFAKTE AKTIVIEREN,", + "WENN DU IN IHRE NÄHE KOMMST." + ], + "sagevb23": [ + "SCHAU, WIE SICH MIT JEDEM AUFGEHOBENEN BLAUEN ECO-HAUFEN DIE ZEIT VERLÄNGERT,", + "IN DER DU ES BENUTZEN KANNST." + ], + "sagevb24": [ + "DAS IST EINE PRECURSOR-TÜR. SIE LÄSST SICH NUR ÖFFNEN,", + "WENN DU BLAUES ECO DURCH DEINEN KÖRPER LAUFEN LÄSST." + ], + "sagevb25": [ + "GUT GEMACHT, DAS BLAUE ECO HAT DIE TÜR GEÖFFNET.", + "MIT BLAUEM ECO KANNST DU SELBST DEN PRECURSOR-ARTEFAKTEN,", + "DIE SCHON SEIT JAHREN NICHT MEHR AKTIVIERT WORDEN SIND, ENERGIE EINHAUCHEN." + ], + "sagevb26": [ + "DURCH DEINE SCHUTZBRILLE KANNST DU DEINE FORTSCHRITTE IM SPIEL ANSEHEN." + ], + "sagevb27": [ + "WENN DU SPRINGST UND DANN IN DER LUFT GLEICH NOCHMAL SPRINGST,", + "KANNST DU AUF EINEN HÖHER GELEGENEN VORSPRUNG GELANGEN." + ], + "sagevb28": [ + "WENN DU VON FEINDEN UMZINGELT BIST, BENUTZE DIE ROTIER-TRET-METHODE." + ], + "sagevb29": [ + "DAS WAR'S NOCH NICHT! VERSUCH'S NOCHMAL!" + ], + "sagevb30": [ + "NA LOS, JAK! ROTIERE UND TRETE." + ], + "sagevb31": [ + "BENUTZE DIE ROTIER-TRET-METHODE FÜR EINEN RUNDUMSCHLAG." + ], + "sagevb32": [ + "BENUTZE BEI EINEM FRONTALANGRIFF EINEN BOXHIEB." + ], + "sagevb33": [ + "DAS IST DOCH KEIN BOXHIEB! JETZT ZEIG' UNS MAL, WIE DU RICHTIG BOXT!" + ], + "sagevb34": [ + "JAK! VERSUCH'S MIT EINEM BOXHIEB." + ], + "sagevb35": [ + "TOLL! MIT DEM BOXHIEB KANNST DU DICH SCHNELL DURCHKÄMPFEN, WENN'S BRENZLIG WIRD." + ], + "sagevb36": [ + "MANCHMAL MUSST DU MIT GRÖSSERER KRAFT ZUSCHLAGEN.", + "UM EINE DIESER KISTEN ZU ÖFFNEN, MUSST DU HOCH SPRINGEN", + "UND DANN MIT DEN HÄNDEN VORAN ABTAUCHEN." + ], + "sagevb37": [ + "MIT EIN BISSCHEN ÜBUNG KANNST DU AUCH VERSUCHEN, EINIGE DIESER BEWEGUNGEN ZU VERBINDEN." + ], + "sagevb38": [ + "DU KANNST NICHT ZURÜCK DURCH'S SPRUNGTOR,", + "BIS DU ALLE VIER ENERGIEZELLEN AUF DIESER INSEL GEFUNDEN HAST." + ], + "sagevb39": [ + "SUPER! DU HAST ALLE ENERGIEZELLEN AUF DER INSEL GEFUNDEN.", + "KOMM ZURÜCK ZUM SPRUNGTOR, DAMIT ICH DICH ZURÜCK INS LABOR BEFÖRDERN KANN! BEEIL DICH!" + ], + "sksp0001": [ + "HEY! DIE SÜSSE KEIRA-MAUS HATTE RECHT! HIER GIBT'S WIRKLICH TRANS-PADS!" + ], + "sksp0002": [ + "GLAUB' MIR, DIESE DUNKLEN ECO-BOXEN SIND ÜBERHAUPT NICHTS GUTES!" + ], + "sksp0003": [ + "ICH WETTE, WENN WIR ALLE VON DIESEN NIEDLICHEN SPÄHFLIEGEN IN EINEM LEVEL FINDEN,", + "IST BESTIMMT EINE DABEI MIT EINER ENERGIEZELLE!" + ], + "sksp0004": [ + "JAWOLL, EIN SCHATZ!" + ], + "sksp0005": [ + "SO HART SEHEN DIESE HOLZ- UND METALLKISTEN NUN AUCH NICHT AUS!", + "ICH WETTE, MIT EINEM TAUCHSPRUNG KRIEGT MAN SIE AUF!" + ], + "sksp0006": [ + "DIESE METALLKISTEN SIND JA DICKER ALS DER SCHÄDEL EINER YAKOW!", + "ABER ES MUSS DOCH WAS GEBEN, WOMIT MAN SIE AUFKRIEGT!" + ], + "sksp0007": [ + "NUR EIN WORT: ENERGIEZELLEN.", + "DIE MÜSSEN WIR FINDEN UND IM MOMENT SIND WIR DARIN GAR NICHT GUT!" + ], + "sksp0008": [ + "WIR BRAUCHEN ORBS. ORBS, JAK!", + "WIE SOLLEN WIR DENN JEMALS ENERGIEZELLEN KAUFEN, WENN WIR KEINE ORBS SAMMELN?!" + ], + "sksp0009": [ + "WAS FÜR EIN SELTSAMES DING! ICH WETTE, WIR KRIEGEN DAS AUF,", + "WENN DU DICH MIT DIESEM BLUBBERNDEN BLAUEN ECO-ZEUGS AUFLÄDST." + ], + "sksp0010": [ + "HEY! KOMM, WIR SEHEN UNS MAL DAS SPEEDBOOT VON DEM ALTEN FISCHKOPP AM DOCK AN!" + ], + "sksp0011": [ + "VIELLEICHT FRAGEN WIR MAL DEN FISCHER UNTEN AM DSCHUNGELFLUSS,", + "OB WIR UNS SEIN SPEEDBOOT AUSLEIHEN KÖNNEN, UM DAMIT RÜBER ZUR NEBELINSEL ZU ZISCHEN!" + ], + "sksp0013": [ + "HAST DU GESEHEN, WAS FÜR EIN RIESENSTÜCK DIESER LURKER-HAI", + "AUS DEM BOOT DES FISCHERS GEBISSEN HAT?", + "AM BESTEN, WIR HALTEN VIEL ABSTAND ZU DIESEN VIECHERN,", + "ICH GLAUBE NICHT, DASS WIR ES MIT SO EINEM HÖLLENTIER AUFNEHMEN KÖNNEN!" + ], + "sksp0014": [ + "WIR HABEN GENUG ORBS FÜR EINE ENERGIEZELLE ZUSAMMENGESCHNORRT.", + "KOMM, WIR GEHEN ZURÜCK UND TAUSCHEN SIE ENDLICH EIN!" + ], + "sksp0015": [ + "DAS MUSS EINS VON DEN PRECURSOR-ORAKELN SEIN, VON DENEN DER WEISE DAUERND ERZÄHLT!", + "HOFFENTLICH SIND DIE NICHT GENAU SO HÄSSLICH WIE ER!" + ], + "sksp0017": [ + "WOW, GUCK DIR BLOSS MAL DIESE IRRE SKULPTUR AUF DEN FELSEN DA DRÜBEN AN!" + ], + "sksp0018": [ + "WIR SOLLTEN DIESEM SCHWÄTZER VON EINEM BÜRGERMEISTER SAGEN,", + "DASS ER VERDAMMT TIEF IN UNSERER SCHULD STEHT,", + "WEIL WIR DEN ENERGIESTRAHL DES DORFES WIEDER ANGESCHLOSSEN HABEN!" + ], + "sksp0019": [ + "HEY, SEEMÖWEN! KOMM, WIR MACHEN UNS EINEN SPASS UND JAGEN SIE." + ], + "sksp0020": [ + "JA, HA, HA! KOMM, DAS MACHEN WIR NOCHMAL!" + ], + "sksp0021": [ + "DA SIND DIESE SEEMÖWEN SCHON WIEDER... SCHNAPPEN WIR SIE UNS!" + ], + "sksp0022": [ + "JA, HA, HA, HA, HA, HA, HA, HA, HA! JUHUHUU!" + ], + "sksp0023": [ + "WUHUU!" + ], + "sksp0024": [ + "JA, HA, HA! YEAH!" + ], + "sksp0025": [ + "WOW! SIE HABEN EINE LAWINE AUSGELÖST! KOMM, WIR SEHEN UNS DAS MAL AN!" + ], + "sksp0026": [ + "HEY! DIESER PELIKAN HAT SICH GERADE EINE ENERGIEZELLE GESCHNAPPT!", + "KOMM, WIR TRETEN IHM MAL ORDENTLICH IN DEN VOGELHINTERN!" + ], + "sksp0027": [ + "SCHNELL! WIR MÜSSEN DIE ENERGIEZELLE KRIEGEN, BEVOR DER PELIKAN SIE WIEDER ERWISCHT!" + ], + "sksp0028": [ + "TRITT DAS EI, HEHE, TRITT ES, TRITT ES!" + ], + "sksp0029": [ + "AH, VIELLEICHT SOLLTEN WIR MAL MIT DER VOGEL-BEOBACHTERIN REDEN,", + "UM ZU SEHEN, OB WIR KEIN RÜHREI AUS DEM FLUT-FLUT-EI GEMACHT HABEN!" + ], + "sksp0030": [ + "HEY, VERSUCH MAL, GEGEN DIE FELSEN ZU BOXEN, UM SIE BEISEITE ZU SCHIEBEN!" + ], + "sksp0031": [ + "UUH! KOMM, WIR JAGEN MIT DER KANONE ALLES IN DIE LUFT!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! TAUCH NACH DIESEN EIERN, JAK, TAUCH!" + ], + "sksp0035": [ + "SUPER, JETZT HABEN WIR HIER EINEN PRECURSOR-STARTER,", + "ABER DEINE ENERGIE IST NICHT VOLL AUFGELADEN MIT DIESEM BLAUEN ZEUG,", + "ALSO BRINGT UNS DAS ÜBERHAUPT NICHTS!" + ], + "sksp0037": [ + "DIESE TURMDINGSBUMSE, DIE IM GANZEN DSCHUNGEL VERTEILT SIND,", + "MÜSSEN DEN ECO-STRAHL WIEDER UMLENKEN.", + "KOMM, WIR BASTELN MAL DARAN HERUM!" + ], + "sksp0038": [ + "HMM, WENN DAS BLAUE ECO EINE BRÜCKE BAUEN KANN,", + "DANN WETTE ICH, DASS ES AUCH EINE TÜR ÖFFNEN KANN!", + "KOMM, WIR GEHEN ZURÜCK UND LADEN DICH WIEDER AUF!" + ], + "sksp0039": [ + "HEY, DA SIND KLEINE BLITZSPUREN AN DIESEN PFOSTEN", + "UND AUS DER ECO-ÖFFNUNG DA DRÜBEN KOMMEN BLITZE.", + "DENKST DU, WAS ICH DENKE?" + ], + "sksp0040": [ + "KOMM, WIR KLETTERN AUF DIESE MASCHINE UND ZERSTÖREN DEN SPIEGEL,", + "DER DEN PRECURSOR-STRAHL ABLENKT!" + ], + "sksp0041": [ + "WIR MÜSSEN AUF DIE SPITZE DIESES TURMES!" + ], + "sksp0043": [ + "VIELLEICHT SOLLTEN WIR MAL DEN FISCHER AUSFINDIG MACHEN.", + "SOVIEL ICH WEISS, SOLL ER AM UNTEREN FLUSS IM DSCHUNGEL FISCHEN!" + ], + "sksp0049": [ + "RICHTE DEN STRAHL AUS, INDEM DU DEN NÄCHSTEN TURM ANPEILST!" + ], + "sksp0050": [ + "ZERSTÖRE DEN SPIEGEL, JAK!" + ], + "sksp0051": [ + "SCHNAPP' DIR DIE KÄFER, JAK, SCHNAPP' DIR DIE KÄFER!" + ], + "sksp0052": [ + "LASS UNS ZUM NÄCHSTEN TURM GEHEN UND DORT AUCH DEN ECO-STRAHL WIEDER ANSCHLIESSEN!" + ], + "sksp0053": [ + "HEY! WIR KÖNNEN JA DEM STRAHL FOLGEN, DANN KOMMEN WIR AUTOMATISCH ZUM NÄCHSTEN TURM!" + ], + "sksp0054": [ + "WIR MÜSSEN DICH MIT DIESEM BLAUEN ZEUG AUFLADEN, UM DIE TÜR ZU ÖFFNEN!" + ], + "sksp0056": [ + "HEY! ICH SEHE DIE MUSE DES BILDHAUERS!" + ], + "sksp0059": [ + "HIER DRIN GEFÄLLT'S MIR GAR NICHT!", + "JETZT HALTEN WIR DICH ABER MAL AUS DEM ZEUG RAUS, OKAY?" + ], + "sksp0060": [ + "OH, HIER LÄUFT'S MIR KALT DEN RÜCKEN RUNTER!", + "UND GLAUB MIR, DAS IST EINE GANZ NEUE ERFAHRUNG,", + "WENN MAN FELL HAT!" + ], + "sksp0062": [ + "LASS UNS DIESE BALLONLURKER UMPFLÜGEN UND KLEINHOLZ AUS IHNEN MACHEN!" + ], + "sksp0063": [ + "AUS DEN LURKERN SOLLEN WIR KLEINHOLZ MACHEN, JAK, NICHT AUS DEN MINEN!", + "REGEL NUMMER EINS: HALT DICH IMMER VON DEN MINEN FERN!" + ], + "sksp0064": [ + "GUCK AUCH HINTER DICH!", + "WIR WISSEN DOCH NOCH, WAS DAS LETZTE MAL HIER DRINNEN PASSIERT IST!" + ], + "sksp0067": [ + "FALL JA NICHT IN DEN NEBEL UNTER UNS!", + "ICH GLAUB' NÄMLICH NICHT, DASS WIR ES DANN NOCH ZURÜCKSCHAFFEN!" + ], + "sksp0069": [ + "DAS IST EIN HINTERHALT, JAK! EIN HINTERHALT!" + ], + "sksp0070": [ + "MACH EINEN TAUCHSPRUNG AUF DIE WIPPE!" + ], + "sksp0071": [ + "HOL DAS ROTE ECO!" + ], + "sksp0072": [ + "ROTES ECO VERSTÄRKT DEINE ANGRIFFE!" + ], + "sksp0073": [ + "WIR BRAUCHEN BLAUES ECO, UM DAS HIER AUFZULADEN!" + ], + "sksp0076": [ + "JAK, WIR MÜSSEN EIN PAAR SPRUNGPLATTFORMEN BENUTZEN,", + "UM NICHT AUF DEN HEISSEN BODEN ZU KOMMEN!" + ], + "sksp0077": [ + "BALLONS GUT, GLÜHENDES HEISSES MAGMA SCHLECHT!" + ], + "sksp0078": [ + "FLIEG ÜBER DAS PRECURSOR-ZEUG, UM UNS ABZUKÜHLEN!" + ], + "sksp0079": [ + "AHH! ICH WERDE STERBEN! ICH KOMME, GROSSVATER!", + "DU MUSST DIESES DING AUF DIE ANDERE SEITE BRINGEN, BEVOR ES ÜBERHITZT!" + ], + "sksp0080": [ + "MIT DEM HÜPFDREHER KANNST DU ENGERE KURVEN FLIEGEN!" + ], + "sksp0081": [ + "AH! VIELLEICHT SOLLTE ICH LIEBER FLIEGEN!" + ], + "sksp0082": [ + "DU GIBST DIR MÜHE, DICH VON DIESEN DUNKLEN ECO-KISTEN FERNZUHALTEN, ODER?" + ], + "sksp0083": [ + "HUCH! MAL SEHEN, OB WIR DURCH DIESE LURKER AN HÖHE GEWINNEN!" + ], + "sksp0084": [ + "ZU NAHE, ZU NAHE!" + ], + "sksp0085": [ + "WOW! DIESES BABY WIRD VIEL ZU HEISS!" + ], + "sksp0086": [ + "IN EIN PAAR SEKUNDEN SIND WIR GEGRILLTES FLUT-FLUT!" + ], + "sksp0087": [ + "TRIFF DIE BALLONS, UM UNS ABZUKÜHLEN!" + ], + "sksp0088": [ + "DA KOMMT WIEDER EIN BALLON!" + ], + "sksp0089": [ + "HÄTTE ICH DOCH HEUTE BLOSS VERSCHLAFEN!" + ], + "sksp0090": [ + "DU HAST EINEN BALLON VERPASST!", + "WIR BRAUCHEN DIESE BALLONS, SONST WERDEN WIR GEBRATEN!" + ], + "sksp0091": [ + "DIESES BABY WIRD ZU HEISS!" + ], + "sksp0092": [ + "RIECHT'S HIER ETWA ANGEBRANNT?!" + ], + "sksp0093": [ + "ICH GLAUBE, MEIN SCHWANZ BRENNT!" + ], + "sksp0094": [ + "GLEICH EXPLODIERT ER!" + ], + "sksp0095": [ + "JUHUU! WIR HABEN'S GESCHAFFT!" + ], + "sksp0096": [ + "HIER GIBT'S AUCH SPÄHFLIEGEN!" + ], + "sksp009a": [ + "HAHA, DEM HABEN WIR'S GEZEIGT, WAS?" + ], + "sksp009b": [ + "JAWOLL, NOCH MEHR ORBS!" + ], + "sksp009c": [ + "TU MIR DEN GEFALLEN UND HALT DICH VON DIESEN DUNKLEN ECO-KISTEN FERN!" + ], + "sksp009d": [ + "JA, HA, HA, HA, HA, HA!" + ], + "sksp009e": [ + "WA-HUU!" + ], + "sksp009f": [ + "SCHNAPP DIR WELCHE, SCHNAPP DIR WELCHE! HA, HA, HA!" + ], + "sksp009g": [ + "DIREKT HINTER DIR, JAK!" + ], + "sksp009i": [ + "HABEN WIR JETZT ALLE SPÄHFLIEGEN IN DIESEM GEBIET GEFUNDEN?" + ], + "sksp009j": [ + "HEY! SIEHT GANZ SO AUS, ALS BEFINDEN SICH DIE SPÄHFLIEGEN IMMER IN ROTEN KISTEN!" + ], + "sksp009k": [ + "JAWOLL! DU HAST ALLE SPÄHFLIEGEN IN DIESEM GEBIET GEFUNDEN!" + ], + "sksp0109": [ + "WOW! WIR HABEN DIE REKORDZEIT GESCHLAGEN!" + ], + "sksp0110": [ + "ICH HAB'S DIR EINMAL GESAGT UND ICH SAG'S DIR NOCHMAL...", + "HALT DICH VON DEN DUNKLEN ECO-KISTEN FERN!" + ], + "sksp0111": [ + "KOMM, WIR TREIBEN WIEDER DIESE MAULWÜRFE WIEDER ZURÜCK UNTER DIE ERDE!" + ], + "sksp0112": [ + "JETZT HOLEN WIR UNS UNSERE ENERGIEZELLEN VON DER GEOLOGIN." + ], + "sksp0113": [ + "DAS MÜSSEN DIE INFIZIERTEN PFLANZEN SEIN, VON DENEN DER ALTE HOLZKOPF GEREDET HAT." + ], + "sksp0114": [ + "WIR MÜSSEN GRÜNES ECO BENUTZEN, UM DIESE PFLANZEN ZU HEILEN!" + ], + "sksp0115": [ + "JAK, FLIEG DURCH DIE GRÜNE ECO-ÖFFNUNG." + ], + "sksp0116": [ + "DA IST EINER VON DIESEN FLIEGENDEN LURKERN! VIELLEICHT HAT ER EINE ENERGIEZELLE!" + ], + "sksp0117": [ + "DAS IST DAS MAULWURFLOCH!" + ], + "sksp0118": [ + "LASS UNS JETZT ÜBER DIE INFIZIERTEN PFLANZEN FLIEGEN!" + ], + "sksp0119": [ + "EIN RING GESCHAFFT, ABER ES WARTEN NOCH JEDE MENGE AUF UNS!" + ], + "sksp0120": [ + "BEEIL DICH! DA IST DER NÄCHSTE RING!" + ], + "sksp0121": [ + "SCHNELL! DU MUSST DURCH ALLE RINGE FLIEGEN, BEVOR SIE ERLÖSCHEN!" + ], + "sksp0122": [ + "HEY! DAS GRASS BREMST UNS!" + ], + "sksp0123": [ + "SCHNELL! FOLGE DEM ROHR!" + ], + "sksp0124": [ + "ICH HABE EIN GANZ SCHLECHTES GEFÜHL BEI DER SACHE." + ], + "sksp0125": [ + "WIE ES SCHEINT, MÜSSEN DIESE DINGER MIT BLAUEM ECO AUFGELADEN WERDEN." + ], + "sksp0126": [ + "KOMM, WIR HOLEN UNS DIE ENERGIEZELLE VOM DACH DIESER KAMMER!" + ], + "sksp0127": [ + "TRITT DEN KLEINEN WICHT DA OBEN!" + ], + "sksp0128": [ + "JAK! RENN! DAS DUNKLE ECO STEIGT!" + ], + "sksp0129": [ + "AHH! DAS DUNKLE ECO KOMMT NÄHER!" + ], + "sksp0130": [ + "AH, ICH GLAUBE, WIR MÜSSEN DIESE PLATTFORMEN EINSCHALTEN ODER SO WAS." + ], + "sksp0131": [ + "HEY! ICH GLAUBE, DU KANNST EINEN TAUCHSPRUNG AUF DIESE KERLE MACHEN!" + ], + "sksp0133": [ + "ICH WETTE, DIESE DINGER KÖNNEN WIR ALLE AUF EINMAL AUFLADEN!" + ], + "sksp0134": [ + "WAS HÄLTST DU DAVON,", + "VIELLEICHT MAL EIN BISSCHEN VORSICHTIGER MIT DIESEN HEISSEN ROHREN ZU SEIN?" + ], + "sksp0135": [ + "DIESES WASSER SIEHT GEFÄHRLICH AUS, WENN ES DIE FARBE WECHSELT!" + ], + "sksp0136": [ + "DU MUSST AUS DEM WASSER RAUS, BEVOR ES DIE FARBE WECHSELT!" + ], + "sksp0137": [ + "BESTIMMT KÖNNEN WIR DIESE FELSBROCKEN ZERSCHIESSEN,", + "WENN WIR MIT GELBEM ECO AUFGELADEN SIND!" + ], + "sksp0138": [ + "WIR SOLLTEN DIESE GROSSEN FELSBROCKEN ZERSCHIESSEN,", + "AN DENEN DAS HALTESEIL FESTGEMACHT IST." + ], + "sksp0139": [ + "VIELLEICHT SOLLTEN WIR DIESEM SPINNER HELFEN, SEIN VIECH ZU FINDEN." + ], + "sksp0140": [ + "DAS FLUT-FLUT KANN LÄNGER GLEITEN, WENN ES IN DER LUFT NOCH MAL SPRINGT!" + ], + "sksp0141": [ + "BERÜHR' DIESEN HEISSEN SCHWARZEN TEER NICHT, ODER DU WIRST DIR WEHTUN!" + ], + "sksp0142": [ + "HIER KANNST DU SICHER DURCH'S WASSER WATEN." + ], + "sksp0143": [ + "AAH! BEFREI' DICH AUS DER ZUNGE!" + ], + "sksp0144": [ + "SCHIESS AUF DIE RATTENNESTER, DAMIT NICHT IMMER NOCH MEHR RATTEN DORT RAUSKOMMEN!" + ], + "sksp0145": [ + "WOW! DU KANNST FEUERBÄLLE ABSCHIESSEN, WENN DU MIT GELBEM ECO AUFGELADEN BIST!" + ], + "sksp0146": [ + "HEY! DAS IST GELBES ECO!" + ], + "sksp0147": [ + "AN DIESER STANGE DA DRÜBEN KANNST DU SCHWINGEN!" + ], + "sksp0148": [ + "PASS AUF, DIESE BROMBEERRANKE HAT HÖLLISCH VIELE DORNEN!" + ], + "sksp0149": [ + "HEY, SIEHT AUS WIE EINES VON DEN ZEPPELIN-HALTESEILEN!" + ], + "sksp0150": [ + "SEI VORSICHTIG, WENN DER FROSCH AUFGELADEN IST!" + ], + "sksp0151": [ + "LAUF WEG, JAK!" + ], + "sksp0152": [ + "PASS AUF, JAK! DAS IST EIN HINTERHALT!" + ], + "sksp0153": [ + "HEY, DAS MUSS DAS PRECURSOR-ARTEFAKT SEIN, HINTER DEM DIE LURKER HER SIND!", + "SIEHT AUS WIE EIN RIESIGER ROBOTER-ARM!" + ], + "sksp0154": [ + "DIESER SCHWARZE TEER SIEHT HEISS UND GEFÄHRLICH AUS!" + ], + "sksp0155": [ + "SCHIESS MIT DEM GELBEN-ECO-ZEUG AUF DIE FLEDERMÄUSE!" + ], + "sksp0156": [ + "VIELLEICHT KÖNNEN WIR UNS UNTER DEN FLEDERMÄUSEN DURCHDUCKEN!" + ], + "sksp0157": [ + "HAST DU DAS GESEHEN? NUR NOCH DREI HALTESEILE!" + ], + "sksp0158": [ + "WOW! NUR NOCH ZWEI HALTESEILE!" + ], + "sksp0159": [ + "DIESER ZEPPELIN WIRD KAUM NOCH GEHALTEN! KOMM, WIR SUCHEN DAS LETZTE HALTESEIL!" + ], + "sksp0160": [ + "HEY! HIER IST DAS FLUT-FLUT!" + ], + "sksp0161": [ + "ICH HASSE RATTEN! UND DABEI SEHE ICH FAST WIE EINE AUS." + ], + "sksp018a": [ + "DIESER FAULE FARMER SCHULDET UNS EINE ENERGIEZELLE!", + "MIT DEM WERDEN WIR JETZT MAL REDEN!" + ], + "sksp0300": [ + "WIR MÜSSEN VOR DEN LURKERN AM ENDE DES PASSES SEIN!" + ], + "sksp0301": [ + "KOMM JA NICHT AN DIESE SPRENGLADUNGEN!" + ], + "sksp0302": [ + "BLEIB VOR IHNEN, DANN HABEN WIR'S GESCHAFFT!" + ], + "sksp0303": [ + "SPRING AUF DAS BLAUE ECO, DANN ZISCHEN WIR LOS WIE DER WIND!" + ], + "sksp0304": [ + "HALT DICH VON DEN BÄUMEN FERN, JAK, SIE BREMSEN UNS!" + ], + "sksp0305": [ + "JE MEHR BLAUES ECO DU TRIFFST, UMSO SCHNELLER SIND WIR!" + ], + "sksp0306": [ + "PASS AUF DIE SPRENGLADUNGEN AUF!" + ], + "sksp0307": [ + "FALL NICHT IN DIE LÖCHER!" + ], + "sksp0308": [ + "VIELLEICHT SOLLTE ICH LIEBER FLIEGEN!" + ], + "sksp0309": [ + "DA IST EINER VON DEN LURKERN!" + ], + "sksp0310": [ + "SCHNAPP' SIE DIR, JAK!" + ], + "sksp0311": [ + "WIR HABEN EINEN ÜBERHOLT!" + ], + "sksp0312": [ + "AHH, EINER DER LURKER HAT UNS ÜBERHOLT!" + ], + "sksp0313": [ + "SIE HABEN EINEN RIESEN VORSPRUNG!" + ], + "sksp0314": [ + "JA, WIR FÜHREN!" + ], + "sksp0315": [ + "SCHNELLER, JAK, SCHNELLER!" + ], + "sksp0316": [ + "SPRINGEN, SPRINGEN!" + ], + "sksp0317": [ + "FESTHALTEN!" + ], + "sksp0318": [ + "JAAAAA!" + ], + "sksp0319": [ + "DAS WIRD EIN KOPF-AN-KOPF-RENNEN!" + ], + "sksp0320": [ + "SIE SIND VOR UNS AM DETONATOR!" + ], + "sksp0321": [ + "GESCHAFFT! WIR HABEN SIE DAVON ABGEHALTEN, DEN PASS ZU SPRENGEN!" + ], + "sksp0327": [ + "ICH GLAUBE, DAS WAR DER LETZTE DUNKLE ECO-KRISTALL!" + ], + "sksp0328": [ + "VIELLEICHT KANNST DU BESSER SCHIESSEN, WENN DU DURCH DEINE SCHUTZBRILLE ZIELST!" + ], + "sksp0329": [ + "OH, NEIN! NOCH MEHR DUNKLES ECO!" + ], + "sksp0330": [ + "ICH GLAUBE, WIR HABEN NICHT ALLE DUNKLEN ECO-KRISTALLE GEFUNDEN!" + ], + "sksp0331": [ + "SCHIESS AUF DIE LURKER, DIE AN DEN PFOSTEN NAGEN!" + ], + "sksp0332": [ + "PASS AUF, DASS DAS LICHT NICHT AUSGEHT!" + ], + "sksp0333": [ + "STOSS AN EINEN KRISTALL, DANN BEKOMMST DU LICHT!" + ], + "sksp0334": [ + "HAU AB! DIESER KRISTALL EXPLODIERT GLEICH!" + ], + "sksp0335": [ + "OH, JE, SIE HABEN EINEN PRECURSOR-ROBOTER GEFUNDEN!" + ], + "sksp0336": [ + "MACH' DIE EIER KAPUTT, BEVOR SIE SCHLÜPFEN!" + ], + "sksp0337": [ + "HIER DRIN IST'S RICHTIG UNHEIMLICH..." + ], + "sksp0338": [ + "SIEHT AUS, ALS GINGEN DIE SPINNENNETZE KAPUTT, WENN MAN ZWEI MAL DAGEGEN SPRINGT!" + ], + "sksp0339": [ + "ICH. HASSE. SPINNEN." + ], + "sksp0340": [ + "DA KOMMEN BABY-SPINNEN!" + ], + "sksp0341": [ + "ICH GLAUBE, WIR SIND HIER IN EINEM SPINNENNEST!" + ], + "sksp0342": [ + "PASS' AUF, NOCH MEHR SPINNEN!" + ], + "sksp0343": [ + "LOS, RAUS HIER!" + ], + "sksp0345": [ + "WIE KOMMEN WIR IN DIESES FORT REIN?" + ], + "sksp0346": [ + "VIELLEICHT KANN ROTES ECO DIESEN KERL BESIEGEN!" + ], + "sksp0347": [ + "WIR MÜSSEN EINEN ROLLSPRUNG MACHEN!" + ], + "sksp0348": [ + "WIR MÜSSEN UNBEDINGT DIESE ECO-ÖFFNUNG AUFBEKOMMEN!" + ], + "sksp0349": [ + "DAS DA UNTEN SIEHT AUS WIE EIN ECO-SCHALTER!" + ], + "sksp0350": [ + "SCHNAPP IHN DIR, WENN SEINE STACHELN DRIN SIND!" + ], + "sksp0351": [ + "DRÜCK' AUF DEN KNOPF!" + ], + "sksp0352": [ + "SCHNELL! BEVOR SIE WIEDER RUNTERFALLEN!" + ], + "sksp0359": [ + "DU MUSST ROTES ECO BENUTZEN!" + ], + "sksp0360": [ + "JAWOLL! WIR HABEN DIE VERSIEGELTEN GELBEN ECO-ÖFFNUNGEN AUFGEMACHT!" + ], + "sksp0362": [ + "SIEH MAL! EINE EINGEFRORENE ENERGIEZELLE!" + ], + "sksp0363": [ + "NUR EIN FLUT-FLUT KANN SO WEIT SPRINGEN!" + ], + "sksp0364": [ + "WIR MÜSSEN UNS BEEILEN, SONST WERDEN WIR GERÖSTET!" + ], + "sksp0365": [ + "SUCH' DIR EINEN PFAD AUS, IRGENDEINEN!" + ], + "sksp0366": [ + "HALT DICH ENTWEDER VON DEN MINEN FERN ODER SCHIESSE AUF SIE, JAK!" + ], + "sksp0367": [ + "SUCH DIR EINEN WEG DURCH DIESE DUNKLEN-ECO-FÄSSER!" + ], + "sksp0368": [ + "WEITER SO, TRIFF DIE KÜHLBALLONS!" + ], + "sksp0369": [ + "DAS WIRD LANGSAM ZU HEISS HIER!" + ], + "sksp0370": [ + "GLEICH EXPLODIERT ER!" + ], + "sksp0371": [ + "SCHNAPP DIR DAS BLAUE ECO, JAK!" + ], + "sksp0372": [ + "SCHIESS' DIR DEN WEG FREI!" + ], + "sksp0373": [ + "UUUH! WAS FÜR EIN FLUG!" + ], + "sksp0374": [ + "JA! JETZT WIRST DU GEGRILLT, SCHÄTZCHEN!" + ], + "sksp0375": [ + "SCHIESS AUF DEN ENERGIEBEREICH, UM DIE TÜR ZU ÖFFNEN!" + ], + "sksp0376": [ + "SCHIESS AUF DEN ENERGIEBEREICH, BEVOR WIR VERBRENNEN!" + ], + "sksp0378": [ + "DIE TÜR IST AUF, WEITER JETZT!" + ], + "sksp0379": [ + "WIR ZOOMEN!" + ], + "sksp0380": [ + "WIR SIND DURCH!" + ], + "sksp0381": [ + "ZERSTÖR' DEN GENERATOR, UM DEN WEISEN ZU BEFREIEN!" + ], + "sksp0382": [ + "HALT DICH AM RAND FEST!" + ], + "sksp0383": [ + "WIR HABEN GESELLSCHAFT, JAK. LAUTER LURKER!" + ], + "sksp0384": [ + "ZERSTÖRE DIESE GENERATOREN!" + ], + "sksp0385": [ + "DRÜCK' AUF DEN KNOPF!" + ], + "sksp0386": [ + "DIESER ROBOTER MACHT MIR ÜBERHAUPT KEINE ANGST!" + ], + "sksp0387": [ + "LASS UNS AUF DIESE PLATTFORMEN KLETTERN!" + ], + "sksp0388": [ + "VERPASS' DEN NÄCHSTEN STARTER NICHT!" + ], + "sksp0389": [ + "VORSICHT!" + ], + "sksp0390": [ + "WIR MÜSSEN ALLE WEISEN RETTEN!" + ], + "sksp0391": [ + "MEINST DU, GOL WIRD MICH JETZT NOCH ZURÜCKVERWANDELN?" + ], + "sksp0392": [ + "DAS IST ALSO GOLS UND MAIAS ZITADELLE. WIE GEMÜTLICH!" + ], + "sksp0393": [ + "LANDE AUF DEM NÄCHSTEN STARTER!" + ], + "sksp0394": [ + "SCHNAPP' DIR DAS GELBE ECO!" + ], + "sksp0395": [ + "SCHIESS AUF DEN ROBOTER, JAK!" + ], + "sksp0396": [ + "SCHIESS AUF SEINEN ARM!" + ], + "sksp0397": [ + "SCHIESS AUF SEINE WAFFE!" + ], + "sksp0398": [ + "SCHIESS AUF SEINEN KOPF!" + ], + "sksp0399": [ + "PASS AUF DIE EXPLOSION AUF!" + ], + "sksp0400": [ + "ER LÄDT AUF!" + ], + "sksp0401": [ + "SCHNAPP' DIR DAS BLAUE ECO!" + ], + "sksp0402": [ + "SCHNAPP' DIR DAS ROTE ECO!" + ], + "sksp0403": [ + "ICH HAB' EIN GAANZ SCHLECHTES GEFÜHL!" + ], + "sksp0404": [ + "BENUTZE DEN STARTER, SCHNELL!" + ], + "sksp0405": [ + "JETZT HAST DU DAS VIECH VERÄRGERT!" + ], + "sksp0406": [ + "WIR DÜRFEN DIESE KERLE NICHT BERÜHREN!" + ], + "sksp0407": [ + "BENUTZE DAS GELBE ECO!" + ], + "sksp0408": [ + "SCHIESS AUF DIE KERLE!" + ], + "sksp0409": [ + "SCHNAPP' DIR DAS LICHT-ECO, JAK!" + ], + "sksp0410": [ + "ER SIEHT WÜTEND AUS!" + ], + "sksp0411": [ + "SPRING, UM DEN EXPLOSIONEN ZU ENTGEHEN!" + ], + "sksp0412": [ + "JETZT NEHMEN WIR DIE SACHE IN DIE HAND!" + ], + "sksp0413": [ + "GUT GESCHOSSEN, PARTNER!" + ], + "sksp0414": [ + "DAS HAT GESESSEN!" + ], + "sksp0415": [ + "LOS GEHT'S!" + ], + "sksp0416": [ + "JA, DU HAST ES GESCHAFFT!" + ], + "sksp0417": [ + "SAGT \"AUF WIEDERSEHEN\", GOL UND MAIA!" + ], + "sksp0435": [ + "SCHLAG DIESE KNOCHEN WEG!" + ], + "sksp0443": [ + "SCHLAG DIESE PFOSTEN VON UNTEN HOCH!" + ], + "sksp0444": [ + "WIR WARTEN. HALLO?" + ], + "sksp0449": [ + "DRÜCKE DIE START-TASTE ZUM SPIELEN." + ], + "sksp0450": [ + "WILLST DU AUFHÖREN?" + ], + "sksp0451": [ + "DAS HATTE ICH AUCH NICHT ERWARTET." + ], + "sksp0452": [ + "OKAY, BIS SPÄTER DANN." + ], + "sksp0455": [ + "MAN, WER SIND DENN BLOSS DIESE GANZEN LEUTE?" + ], + "sksp0466": [ + "ICH WAR ECHT GUT. NICHT WAHR, MÄDELS?" + ], + "sksp0b42": [ + "JETZT LASS DOCH NICHT ALLE GELBEN FISCHE DURCH,", + "DAVON WIEGT JEDER FÜNF PFUND UND DAS IST GANZ SCHÖN VIEL, JAK!" + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "VOGEL-BEOBACHTERIN", + "BLUE SAGE": "BLAUER WEISE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISCHER", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GLÜCKSSPIELER", + "GEOLOGIST": "GEOLOGIN", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAKS ONKEL", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "BÜRGERMEISTER", + "MINER": "MINER", + "OLD MAN": "FRAU", + "ORACLE": "ORAKEL", + "RED SAGE": "ROTER WEISE", + "SAMOS": "SAMOS", + "SCULPTOR": "BILDHAUER", + "WARRIOR": "KRIEGER", + "WILLARD": "WILLARD", + "WOMAN": "ALTER MANN", + "YELLOW SAGE": "GELBER WEISE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_en-GB.json b/game/assets/jak1/subtitle/subtitle_lines_en-GB.json new file mode 100644 index 0000000000..aeb2439775 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_en-GB.json @@ -0,0 +1,217 @@ +{ + "cutscenes": { + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOUR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOUR, AND I'LL GIVE YOU A POWER CELL." + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTEFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTEFACTS.", + "THEY CAN HAVE THE ARTEFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTEFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTEFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLOURFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTEFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOUR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ] + }, + "hints": { + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTRE OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTEFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTEFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTEFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sksp009c": [ + "DO ME A FAVOUR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOUR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOUR!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTEFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_en-US.json b/game/assets/jak1/subtitle/subtitle_lines_en-US.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_en-US.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_es-ES.json b/game/assets/jak1/subtitle/subtitle_lines_es-ES.json new file mode 100644 index 0000000000..425ab82c1a --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_es-ES.json @@ -0,0 +1,2626 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "¡ESTUPENDO! ¡TENÉIS LAS 20 BATERÍAS NECESARIAS PARA ACTIVAR MI ESCUDO TÉRMICO!", + "AHORA, ¡CUIDADO!, EL ESCUDO SOLO PROTEGERA EL ZOOMER HASTA LOS 500 GRADOS,", + "ASÍ QUE MANTENEDLO FRESQUITO.", + "SI VOLÁIS SOBRE LAVA, SEGURO QUE SE CALIENTA RÁPIDAMENTE.", + "SI LLEGÁIS A 500 GRADOS, SE ACABÓ.", + "¡¿SE ACABÓ?! ¡¿IGUAL QUE ACABA UN CHUBASCO?!", + "EL DESFILADERO DEL FUEGO SE CALIENTA MUCHO, ASÍ QUE BUSCAD LA MANERA DE SALTAR", + " PARA EVITAR EL SUELO.", + "TAMBIÉN HE SOLTADO MUCHOS GLOBOS REFRIGERANTES PARA QUE PODÁIS BAJAR", + "RÁPIDAMENTE LA TEMPERATURA DEL ESCUDO.", + "¡AAH! CUANDO LO ATRAVESÉIS, ¡NO OS OLVIDÉIS ACTIVAR", + "LA PUERTA TELETRANSPORTADORA EN EL LABORATORIO DEL SABIO AZUL.", + "¡ASÍ PODREMOS TELETRANSPORTARNOS Y REUNIRNOS CON VOSOTROS.", + "¡BUENA SUERTE!" + ], + "assistant-introduction-blue-eco-switch": [ + "¡EEH, NENA! ¿QUÉ TE PARECE SI TE DOY UNA VUELTA EN ESTE ZOOMER ANTIGRAVITATORIO?", + "REGLA NÚMERO UNO: NO SALGO CON ANIMALES.", + "VAAAYA, PUES NO SABES LO QUE TE PIERDES, JIJIJIJI.", + "ESCUCHAD, SI QUIERES ESTAR OCUPADO CON ALGO, MI PADRE SIEMPRE HABLABA", + "DE UNA ANTIGUA TUBERÍA DE PRECURSOR ESCONDIDA PROFUNDAMENTE BAJO TIERRA.", + "ALGUNAS DE ESTAS TUBERÍAS ACABAN EN RESPIRADEROS POR LOS QUE SALE ECO,", + "Y ALGUNAS HAN SIDO SELLADAS PARA QUE EL ECO QUEDE ENCERRADO.", + "DEBE DE HABER UNA MANERA DE ABRIR LOS RESPIRADEROS SELLADOS.", + "HE SEGUIDO EL RASTRO DE LA TUBERÍA HASTA EL TEMPLO PROHIBIDO.", + "TAL VEZ DEBERÍAIS BUSCAR ALLÍ ALGÚN INTERRUPTOR." + ], + "assistant-introduction-race-bike": [ + "¡EH, NENA!, ¿EN QUÉ TRABAJAS?", + "¡CUIDADO CON ESO! ESTOY INTENTANDO AVERIGUAR CÓMO TRANSPORTAR EL ZOOMER", + "CON LOS TRANS-PAD QUE LOS PRECURSORS HAN DEJADO POR TODO EL MUNDO.", + "SI OS ENCONTRÁIS CON UNO DE ESOS TRANS-PAD, PODRÉ DEJAR LA UBICACIÓN", + "DE VUESTRO COMUNICADOR", + "Y ENVIAROS EL ZOOMER.", + "ESTAD ATENTOS POR SI ENCONTRÁIS UN TRANS-PAD AL EXPLORAR MISTY ISLAND", + "Y EN CUALQUIER OTRO SITIO." + ], + "assistant-lavatube-end-resolution": [ + "¡EH! ¿DÓNDE ESTÁ EL VIEJO, BAJITO, VERDE Y ARRUGADO?", + "¡ES ESPANTOSO! ¡MI PADRE HA DESAPARECIDO!", + "¡ES POSIBLE QUE GOL Y MAIA LO HAYAN RAPTADO A ÉL TAMBIÉN!", + "RELÁJATE, CIELO. TENGO TODO BAJO CONTROL.", + "¡¿BAJO CONTROL?! ¡LOS BATALLONES DE LURKERS SIGUEN MULTIPLICÁNDOSE!", + "¡HAN RAPTADO A LOS SABIOS!", + "¡GOL Y MAIA HAN JUNTADO SUFICIENTE ECO PARA LLEVAR A CABO SU ESPANTOSO PLAN!", + "Y PARA DETENERLOS, ¡TENDRÉIS QUE LUCHAR PARA ABRIROS PASO POR SU CIUDADELA!", + "AAMM...AM...SÍ...ESO...EJEM, LO...RESUME TODO.", + "¡TENÉIS QUE RESCATAR A MI PADRE ANTES DE QUE SEA DEMASIADO TARDE!", + "Y, ¡JAK!...TENED CUIDADO.", + "¡SÍ, SÍ! ¡LO...TENDREMOS!" + ], + "assistant-lavatube-start-resolution": [ + "¡JEJE! ¡MUY BIEN!", + "CON ESTAS BATERÍAS ADICIONALES, EL ESCUDO TÉRMICO DEBERÍA TENER ", + "LA SUFICIENTE ENERGÍA COMO PARA RESISTIR LA LAVA.", + "PERO EL ESCUDO TAMBIÉN TIENE SUS LÍMITES.", + "AHORA PUEDE RESISTIR HASTA 800 GRADOS DE TEMPERATURA, PERO NI UNO MÁS.", + "ASÍ QUE TENDRÉIS QUE VIGILAR EL INDICADOR.", + "NO QUIERO NI PENSAR QUÉ LE PASARÍA AL ZOOMER SI EL ESCUDO NO AGUANTA.", + "SÍ, EL CALOR...", + "¡¿QUÉ?! ¡¿EL ZOOMER?! ¡EHH! ¡¿Y NOSOTROS QUÉ?!", + "¿NO CREES QUE PODRÍAMOS ENCONTRAR UN CAMINO", + "¿MÁS SEGURO PARA LLEGAR A LA CIUDADELA DE GOL?", + "...ESCUCHAD. HE SOLTADO MÁS GLOBOS REFRIGERANTES EN EL CONDUCTO.", + "LOS PODÉIS USAR PARA MANTENER BAJA LA TEMPERATURA.", + "Y NO OLVIDÉIS ACTIVAR LA PUERTA TELETRANSPORTADORA", + "EN EL LABORATORIO DEL SABIO AMARILLO.", + "¡CONTAMOS CON VOSOTROS!" + ], + "assistant-reminder-1-blue-eco-switch": [ + "ESTOY SEGURA DE QUE SI MIRÁIS DENTRO DEL TEMPLO PRECURSOR PROHIBIDO", + "ENCONTRARÉIS LA MANERA DE ACTIVAR EL RESPIRADERO DE ECO AZUL", + "DE LA PLAYA DEL CENTINELA." + ], + "assistant-reminder-1-generic": [ + "¡EH, CHICOS! SEGUID REUNIENDO BATERÍAS.", + "SON FUNDAMENTALES PARA SEGUIR NUESTRA TRAVESÍA HACIA EL NORTE." + ], + "assistant-reminder-1-race-bike": [ + "HE AVERIGUADO CÓMO USAR LOS TRANS-PAD.", + "AHORA ID A MISTY ISLAND Y ENVIARÉ ALLÍ EL ZOOMER." + ], + "assistant-village2-introduction": [ + "¡WOOOOOW!", + "CREO QUE NUNCA ME VOY A ACOSTUMBRAR A LA SENSACIÓN", + "DE HORMIGUEO QUE PRODUCEN ESTOS CHISMES.", + "¡EHH!", + "PARECE QUE EL SABIO AZUL HA HECHO UNA FIESTA.", + "¡DIOS MÍO! ¡LA ALDEA DE PIEDRA ESTÁ QUE ARDE!", + "¡MEENUUDA FIESTA!", + "¡NO, NO! ¡ME REFIERO A QUE LA ALDEA ESTÁ SIENDO BOMBARDEADA CON PEÑASCOS LLAMEANTES!", + "¡OH! Y PARECE QUE EL SABIO AZUL TRABAJABA EN UNA MÁQUINA LEVITADORA PARA MOVERLOS.", + "SUPONIENDO QUE FUNCIONE, NECESITAREMOS BATERÍAS PARA ACTIVARLA.", + "CREO QUE VOSOTROS DOS VAIS A TENER QUE IR A BUSCAR MÁS.", + "ECHAREMOS UN VISTAZO A SUS NOTAS.", + "JAK, VE A VER CÓMO ESTÁN LOS ALDEANOS Y VUELVE PARA INFORMARME.", + "¡Y LLÉVATE A LA RATA CONTIGO!" + ], + "assistant-village2-introduction-flutflut": [ + "¿DE VUELTA YA, CHAVALES?", + "\"CHAAVAL\"?", + "¡EH, NENA, SOY UN EJEMPLAR ADULTO DE...!", + "EEMMM..", + "UN...SER PELUDO...", + "AH, ¿SABÉIS QUÉ? CON EL PERMISO DE NUESTRA ORNITÓLOGA,", + "HE PUESTO AL BEBÉ FLUT-FLUT UNA SILLA DE MONTAR.", + "PARECE SER QUE HAY UN TRANS-PAD PRECURSOR EN EL PANTANO CENAGOSO.", + "SI LO ENCONTRÁIS, OS ENVIARÉ EL FLUT-FLUT CON SU EQUIPO DE EQUITACIÓN.", + "SU SALTO LARGO OS VENDRÁ BIEN PARA CRUZAR LA BREA." + ], + "assistant-village2-introduction-robbers": [ + "¡EH, VOSOTROS DOS!", + "¡SÉ DÓNDE PODÉIS ENCONTRAR OTRA BATERÍA!", + "SEGÚN SUS NOTAS,", + "HACE UN PAR DE DÍAS, UNOS LURKERS VOLADORES LE ROBARON UNA AL SABIO AZUL,", + "LLEVÁNDOSELA A LA CUENCA DE PRECURSOR.", + "APUESTO A QUE PODÉIS ATRAPAR A ESOS LURKERS CON EL ZOOMER", + "HASTA DAR CON EL QUE TIENE LA BATERÍA.", + "ENCONTRARÉIS EL ZOOMER EN EL TRANS-PAD QUE HAY JUNTO A LA ENTRADA", + "DE LA CUENCA DE PRECURSOR." + ], + "assistant-village2-introduction-room": [ + "PARECE SER QUE LA ESTRUCTURA COSTERA DE PRECURSOR,", + "CONDUCE A UNA CIUDAD PERDIDA SUBMARINA.", + "EL SABIO AZUL ESTUVO INTENTANDO AVERIGUAR CÓMO SE PUEDE REFLOTAR UNA DE LAS CÁMARAS,", + "PERO...SIN ÉXITO.", + "¡DEBERÍAIS ECHAR UN VISTAZO!", + "MMMM...¿NO ESTÁN ESAS AGUAS", + "INFESTADAS DE TIBURONES LURKER?", + "¿POR QUÉ? ¿TIENES MIEDO?", + "¿YOOO? ¡DESDE LUEGO QUE NO!", + "¡SOLO ME PREOCUPABA POR JAK!", + "YA SABES...", + "LO GALLINA QUE PUEDE LLEGAR A SER...", + "BIEN, SI LLEGÁIS NADANDO HASTA EL ARRECIFE DE CORALES, DUDO QUE LOS TIBURONES OS MOLESTEN.", + "ODIAN LAS AGUAS POCO PROFUNDAS." + ], + "assistant-village2-reminder-1-flutflut": [ + "ESTOY SEGURA DE QUE EL FLUT-FLUT OS VENDRÁ BIEN EN EL PANTANO.", + "BUSCAD EL TRANS-PAD Y OS LO TELETRANSPORTARÉ." + ], + "assistant-village2-reminder-1-robbers": [ + "OS TELETRANSPORTARÉ EL ZOOMER CERCA DE LA CUENCA DE PRECURSOR,", + "PARA QUE PODÁIS PERSEGUIR A LOS LURKERS VOLADORES DE LOS QUE HABLÁBAMOS." + ], + "assistant-village2-reminder-1-room": [ + "¿HABÉIS NADADO HASTA LA CIUDAD PERDIDA DE PRECURSOR?", + "DEBERÍAIS INTENTAR REFLOTAR LA SALA QUE BUSCABA EL SABIO AZUL." + ], + "assistant-village2-resolution": [ + "¡¡BIEN!!", + "¡YA TENÉIS LAS BATERÍAS DE LA MÁQUINA!", + "TIENE QUE HABER BASTANTE ENERGÍA COMO PARA LEVANTAR EL PEÑASCO.", + "¡ALLÁ VAMOS!", + "AHORA, TENED CUIDADO AL ENFRENTAROS A ESE MONSTRUO LURKER DE ARRIBA.", + "¡ESPERAD!", + "EEMMM...", + "¡ME QUEDARÉ AQUÍ PARA...PROTEGER A KEIRA!", + "JAK, CREO QUE ESTÁS LISTO PARA ENFRENTARTE A ESE MONSTRUO SIN MÍ.", + "OH...ES MUY VALIENTE POR TU PARTE..." + ], + "assistant-village3-reminder": [ + "¡EH, CHICOS! SEGUID REUNIENDO BATERÍAS.", + "SON FUNDAMENTALES PARA SEGUIR NUESTRA TRAVESÍA HACIA EL NORTE." + ], + "billy-accept": [ + "¡¡BIEEN!! ESAS RATAS VOLVERÁN EN CUALQUIER MOMENTO.", + "DISPARAD A TODAS, QUE NO SE COMAN NI UN SOLO APERITIVO." + ], + "billy-introduction": [ + "¡HOLA, AMIGOS! ¿DISFRUTANDO DE MI PRECIOSO PANTANO? SOY EL DUEÑO DE ESTAS TIERRAS.", + "¡DE TODO LO QUE NO SE HUNDA EN EL BARRO, CLARO! JAAJIIJIJIJII", + "A JUZGAR POR EL OLOR, JURARÍA QUE TU BAÑERA ESTÁ HUNDIDA", + "EN EL BARRO DESDE HACE MUCHO.", + "¿QUÉ ES UNA BAÑERA? DA IGUAL...TENGO PROBLEMAS MÁS SERIOS...", + "PARECE QUE UNAS ALIMAÑAS LURKER ESTÁN MERODEANDO POR AHÍ,", + "¡AGARRANDO LO QUE PUEDEN CON SUS MUGRIENTAS GARRAS!", + "Y ASUSTANDO A MI HIPHOG, FARTHY.", + "LLEVA DESAPARECIDO NI SE SABE CUÁNTO.", + "HE ESTADO PONIENDO FUERA SU APERITIVO FAVORITO,", + "¡PERO ESAS RATAS DE PANTANO NO DEJAN DE ROBARLO!", + "SI PUDIÉSEIS MANTENER LEJOS A ESAS MOLESTAS CRIATURAS LO SUFICIENTE,", + "¡SÉ QUE FARTHY OLERÍA EL PAPEO Y VOLVERÍA!", + "¿ME AYUDARÉIS?" + ], + "billy-reject": [ + "BIEEN...SI CAMBIÁIS DE IDEA, ¡YA SABÉIS DONDE ENCONTRARME! (RISAS)" + ], + "billy-reminder-1": [ + "¡VAAAAYA! ¿HABÉIS VUELTO PARA ACABAR CON LAS RATAS?" + ], + "billy-resolution": [ + "¡NO ESTÁ NADA MAL! ¡TIENES BUENA PUNTERÍA! GRACIAS MIL POR LA AYUDA." + ], + "bird-lady-beach-resolution": [ + "¡OH, CIELOS! ESPERO QUE EL POBRECITO ESTÉ BIEN. TOMAD UNA BATERÍA POR VUESTRO VALOR.", + "¡MAMA!", + "¡MAMA!", + "¡OH, NO! ¡¡NO, NO, NO, NO, NOOO!!", + "MIRAD, ¿A QUE ES MONO? CREO QUE PIENSA QUE ERES SU MAMÁ.", + "¿¿MAMÁ?? ¡NO SOY TU MADRE! ¿VES PLUMAS POR ALGÚN LADO? ¿MMM?", + "OH, ¡AMOR A PRIMERA VISTA! BUENO...", + "ESCUCHAD, CHICOS, ME LLEVARÉ AL PUEBLO AL POLLUELO", + "Y TRATARÉ DE QUE EL SABIO SE OCUPE DE ÉL." + ], + "bird-lady-introduction": [ + "¡CIELO SANTO! ¡QUÉ PAJARITO MÁS ENFERMO!", + "USTED TAMPOCO TIENE MUY BUENA PINTA, SEÑORA.", + "OH, LO SIENTO. PENSÉ QUE ERAS UN RAIN FRAY DE VIENTRE NARANJA.", + "¿SABES? AYER VI COMO UNAS MALVADAS CRIATURAS", + "CAPTURABAN A UNA MADRE FLUT-FLUT CERCA DE LA PLAYA.", + "Y EN SU NIDO, EN LO ALTO DEL BARRANCO, SE HA QUEDADO UN POBRE HUEVO HUÉRFANO", + " AL QUE NO PUEDO LLEGAR. ¿PODRÍAIS SUBIR Y EMPUJARLO PARA QUE CAIGA", + "EN EL MONTÓN DE HENO QUE HE PUESTO DEBAJO?", + "SI ME HACÉIS ESTE FAVOR, OS RECOMPENSARÉ CON UNA BATERÍA." + ], + "bird-lady-reminder-1": [ + "OH, ¡HOLA DE NUEVO!", + "¿HABÉIS ENCONTRADO EL HUEVO AZUL QUE HAY EN EL BARRANCO?", + "¡EMPUJADLO POR EL BORDE Y OS DARÉ UNA BATERÍA!" + ], + "bird-lady-reminder-2": [ + "¿TODAVÍA REVOLOTEANDO POR AQUÍ? JAJAJAJA", + "¡SEGURO QUE ESE POBRE HUEVO DEL BARRANCO ESTÁ PASANDO UN FRÍO TERRIBLE!", + "¡ID A SALVARLO! EMPUJÁNDOLO POR EL BORDE...Y OS DARÉ UNA BATERÍA." + ], + "bluesage-resolution": [ + "¡BUEN TRABAJO, CHICOS! ¡SAMOS TENÍA RAZÓN SOBRE VOSOTROS!", + "¡POR TODOS LOS PRECURSOR!", + "¡NO DEBEMOS PERMITIR QUE ESA ABERRACIÓN MECÁNICA DESATE EL CAOS!", + "INTENTARÉ ACTIVAR EL ESCUDO CREANDO UN CONDUCTO ENERGÉTICO", + "ENTRE MÍ...Y EL ENORME PORTAL QUE HAY ABAJO.", + "AAAMM...SÍ. HAZLO. NOSOTROS...EMMMM...IREMOS A BUSCAR MÁS AYUDA...", + "¡¡TÍO RARO!!" + ], + "death-0181": [ + "NO VAYAS HACIA LA LUZ, JAK.", + "¡¡NO VAYAS HACIA LA LUZ!!" + ], + "death-0182": [ + "¡OYE, JAK! ¿PUEDO...", + "QUEDARME CON TU COLECCIÓN DE INSECTOS?" + ], + "death-0184": [ + "MIENTRAS ESTÁS AHÍ ABAJO, EMMMM...", + "MASAJÉAME LOS PIES." + ], + "death-0186": [ + "¡NO TEMAS, TE VENGARÉ!", + "¡ES BROMA!" + ], + "death-0187": [ + "BUEEENO...ESTO...", + "¡MEJOR TÚ QUE YO!" + ], + "death-0191": [ + "ESO TIENE PINTA DE HACER PUPA", + "¿PIDO REFUERZOS?" + ], + "death-0193": [ + "PUNTO UNO:", + "SEGUIR VIVO.", + "PUNTO DOS:", + "¡¡NI SE TE OCURRA VOLVER A HACER ESO DE NUEVO!!" + ], + "death-0195": [ + "¡ESTABA JUSTO DETRÁS DE TÍ, JAK!", + "SÍ...TE LO PROMETO..." + ], + "death-0197": [ + "¿MANIOBRA DE HEMLICH?", + "AAMMM...¿UNA CAMILLA?", + "¿UN CHICLE?" + ], + "death-0199": [ + "DIRÉ ALGO REALMENTE SENTIDO EN TU FUNERAL.", + "COMO...", + "¿Y AHORA CÓMO HAGO PARA TRANSFORMARME DE NUEVO?" + ], + "death-0202": [ + "DA LAS BUENAS NOCHES, JAK." + ], + "explorer-introduction": [ + "VAYA, ¡HOLA, CHAVAL! ME HAS PILLADO EN EL MOMENTO MÁS INOPORTUNO.", + "IBA A MARCHARME DE VIAJE AYER,", + "PERO ME HE QUEDADO ALGO ESCASO DE ESFERAS DE LOS PRECURSORES.", + "JURARÍA QUE TENÍA 90 ESFERAS,", + "PERO ME DA QUE TU AMIGUETE...YA SABES, LA SABANDIJA ESA...", + "ME LAS DEBE DE HABER QUITADO SOLO PARA DIVERTIRSE.", + "EN CUALQUIER CASO, ¿SERÍAS TAN AMABLE DE PRESTARLE", + "A TU QUERIDO TÍO 90 ESFERAS DE LOS PRECURSORES", + "PARA QUE PUEDA PONERSE EN CAMINO? A CAMBIO, TE DARÍA UNA BATERÍA." + ], + "explorer-reminder-1": [ + "¿QUÉ? ¿NO LAS TIENES TODAS?", + "PUES CON MENOS DE 90 ESFERAS DE LOS PRECURSORES,", + "NO PODRÉ IR A NINGÚN LADO, CHAVALÍN." + ], + "explorer-reminder-2": [ + "¡BUENO, VEAMOS! EL TRATO SON 90 ESFERAS DE LOS PRECURSORES POR UNA BATERÍA.", + "ME PARECE BASTANTE JUSTO." + ], + "explorer-resolution": [ + "VEO QUE LOS DOS HABÉIS VUELTO PARA HACER NEGOCIOS. ¡MUY BIEN!, ¡MUY BIEN!", + "EH...¿TENÉIS LA CANTIDAD DE ESFERAS DE LOS PRECURSORES ACORDADA?", + "ME HA COSTADO MUCHO CONSEGUIR ESTA BATERÍA. ¡USADLA BIEN! ¡HASTA LUEGO, CHAO, BYE BYE!" + ], + "farmer-introduction": [ + "TENGO QUE ORDEÑAR A LAS YAKOUS, TENGO QUE ORDENAR A LAS YAKOUS...", + "¡EH, ERES TÚ! AH...ESTABA DESCANSANDO UN POQUITO.", + "LLEVO TODO EL DÍA INTENTANDO ENCERRAR A ESAS IRASCIBLES YAKOUS.", + "UNAS EXTRAÑAS CRIATURAS INTENTARON ROBARLAS ANTES.", + "¿CREÉIS QUE PODRÉIS AYUDAR A ESTE VIEJO A METERLAS EN EL CORRAL?" + ], + "farmer-reminder-1": [ + "¡EH, EHH! ¡MIS YAKOUS ESTÁN TODAVÍA SUELTAS! ¿ME...LAS PODRÍAIS TRAER PRONTO?" + ], + "farmer-reminder-2": [ + "¡ESAS MALDITAS YAKOUS SIGUEN DEAMBULANDO LIBRES!", + "¿VAIS A METERLAS EN EL CORRAL DE UNA VEZ?" + ], + "farmer-resolution": [ + "¡EH!, ¡BIEN HECHO, CHAVAL! HAS CONSEGUIDO METER A ESAS PESADAS EN EL CORRAL.", + "¡YA PUEDO DORMIR TRANQUILO! TOMA ESTA BATERÍA POR MOLESTARTE." + ], + "finalbosscam-white-eco": [ + "¡ECO LUMINOSO! ¡¡EXISTE!!", + "¡¡NO DEJÉIS QUE LO COJAN!!" + ], + "fisher-accept": [ + "QUE LOS BUENOS PECES SON DE DOS TIPOS: LOS DE 1 KILO Y LOS DE 5.", + "QUE SI DEJÁIS ESCAPAR 20 KILOS DE PESCADO, ¡OS QUITARÉ LA RED!", + "¡EN ESTE RÍO HAY ANGUILAS VENENOSAS!", + "SI COGÉIS UNA, LA MUY DESGRACIADA CONTAMINARÁ A TODA LA CAPTURA...JEJEJEJEJE..." + ], + "fisher-introduction": [ + "¿QUÉ TIENES EN LA CESTA?", + "PUES...NADA.", + "¡ESOS MONSTRUOS QUE PATRULLAN EL OCÉANO ME HAN ROTO LAS REDES!", + "¡¡Y SE ESTÁN COMIENDO MIS CAPTURAS!!", + "INTENTE LO QUE INTENTE...NO HAY MANERA DE PESCAR UN SOLO PEZ EN ESTE RÍO.", + "¡UUUFFF! ¿NO SERÁ...TU ALIENTO?", + "¿CREÉIS QUE PODÉIS HACERLO MEJOR? ¡PUES INTENTAD COGER PECES CON UNA REDECITA!", + "OS DARÉ UNA BATERÍA SI CONSEGUÍS PESCAR 200 KILOS DE PESCADO.", + "Y LUEGO OS DEJARÉ A TÍ Y AL BOQUERÓN ESTE, USAR MI LANCHA PARA LLEGAR A ISLA DE MISTY.", + "¿ACEPTÁIS EL RETO?" + ], + "fisher-reject": [ + "BIEN, SI ALGUNA VEZ QUERÉIS CONSEGUIR LA BATERÍA...YA SABÉIS DÓNDE ESTOY." + ], + "fisher-reminder-1": [ + "QUERÉIS ENFRENTAROS AL RÍO, ¿VERDAD?" + ], + "fisher-resolution": [ + "¡LO CONSEGUISTEIS! ¡HABÉIS CONSEGUIDO 200 KILOS DE PESCADO!", + "¡NO ESTÁ MAL PARA UN PAR DE HARAGANES!", + "AQUÍ ESTÁ LA BATERÍA QUE OS PROMETÍ.", + "ADEMÁS PODÉIS USAR LA LANCHA AMARRADA EN EL PUERTO DE LA ALDEA", + "CUANDO QUERÁIS." + ], + "gambler-introduction-1": [ + "¡OH, NO! OTRO \"HÉROE\" NO.", + "PERDÍ MIS PANTALONES APOSTANDO PORQUE EL SUPUESTO HÉROE VENCERÍA", + "AL MONSTRUO DE AHÍ ARRIBA.", + "CREEDME, HAY QUE APOSTAR POR EL MONSTRUO.", + "ESTA APUESTA ME HA DEJADO HECHO POLVO.", + "TE PROPONGO...UNA COSA.", + "TRÁEME 90 ESFERAS DE LOS PRECURSORES PARA QUE PUEDA PONERME", + "EN MARCHA Y SALIR DE ESTE BARRIL", + "Y TE DARÉ UNA BATERÍA A CAMBIO.", + "Y SI TE ATREVES, TENGO OTRA APUESTA LISTA.", + "¡MI GRAN RETORNO!", + "SUPERA EL RECORD DE LA CARRERA DEL DESFILADERO DEL MUERTO,", + "EN LA CUENCA DE PRECURSOR. Y CONSEGUIRÉ UNA BUENA CANTIDAD.", + "A CAMBIO, TE DARÉ OTRA BATERÍA." + ], + "gambler-reminder-money": [ + "¡EH, NO TE OLVIDES DE LAS ESFERAS!", + "¡CON 90, TE DARÉ UNA! UNA BATERÍA, SE ENTIENDE." + ], + "gambler-reminder-race": [ + "Y BIEN, ¿A QUÉ ESPERAS, EH?", + "¡AQUÍ DENTRO EMPIEZA A PICARME TODO!", + "SUPERA EL TIEMPO DEL DESFILADERO DEL MUERTO", + "Y LOS DOS SALDREMOS GANANDO." + ], + "gambler-resolution-money": [ + "JEJEJEJEEE, ¡SÍ, SEÑOOR!", + "¡CON ESTAS ESFERAS PODRÉ SALIR DE ESTE MALDITO BARRIL!", + "¡TOMA LA BATERÍA PROMETIDA!" + ], + "gambler-resolution-race": [ + "VAYA, ¡BIEN HECHO, CHICO! ¡SABÍA QUE ESE RECORD CAERÍA!", + "TÚ Y YO LLEGAREMOS LEJOS. TEN LA BATERÍA, QUE YO IRÉ A RECOGER MI DINERO." + ], + "geologist-introduction": [ + "VOSOTROS DOS PARECÉIS DOS TIPOS CAPACES.", + "TENGO EN MARCHA UN PROYECTO DE INVESTIGACIÓN,", + "Y A LO MEJOR ME PODÉIS AYUDAR.", + "EHH, QUE TENEMOS UNA MISIÓN QUE CUMPLIR.", + "SOMOS NOSOTROS QUIENES TE PEDIMOS AYUDA.", + "PUES A LO MEJOR NOS PODEMOS AYUDAR.", + "DURANTE AÑOS, HE ESTADO ESTUDIANDO LOS HÁBITOS DE EXCAVACIÓN", + "DE LAS TOPO-ARDILLAS EN LA CUENCA DE PRECURSOR.", + "¡PERO AHORA ESOS MALDITOS LURKERS HAN HECHO", + "QUE ELLAS SALGAN ASUSTADAS A LA SUPERFICIE!", + "Y COMO SON CIEGAS, NO PUEDEN ENCONTRAR EL CAMINO DE VUELTA.", + "SI LAS REUNÍS Y LAS GUIÁIS DE VUELTA A SUS TÚNELES,", + "LES SALVARÍAIS LA VIDA.", + "OS DOY UNA BATERÍA SI LO CONSEGUÍS.", + "SI...NOS IMPORTAN LAS TOPO-ARDILLAS...", + "¡...PERO A CAMBIO DE 2 BATERÍAS!", + "BUEN INTENTO. PERO OS DARÍA OTRA BATERÍA SI ME CONSEGUÍS", + "90 ESFERAS DE LOS PRECURSORES PARA COMPRAR EQUIPO DE INVESTIGACIÓN.", + "¿QUÉ OS PARECE?" + ], + "geologist-reminder-moles": [ + "¿HABÉIS DEVUELTO A ESAS TOPO-ARDILLAS A SUS CUEVAS?", + "¡DAROS PRISA! ¡LA LUZ DIRECTA DEL SOL NO ES BUENA PARA ELLAS!" + ], + "geologist-reminder-money": [ + "¡NECESITO ESAS ESFERAS PARA CONTINUAR MI INVESTIGACIÓN!" + ], + "geologist-resolution-moles": [ + "¡GRACIAS POR SALVAR A LAS TOPO-ARDILLAS! ES UN DETALLE POR VUESTRA PARTE.", + "AQUÍ TENÉIS UNA BATERÍA. ESPERO QUE OS SIRVA.", + "AHORA, ¡VOLVERÉ A MI INVESTIGACIÓN!" + ], + "geologist-resolution-money": [ + "¡VAYA, TENÉIS LAS ESFERAS!", + "AQUÍ ESTÁ LA BATERÍA QUE ACORDAMOS." + ], + "green-sagecage-daxter-sacrifice": [ + "¡¡SANTO ECO!! ¡¡ESO ME PODRÍA DEVOLVER MI ASPECTO!!", + "MMMMM...Y TAMBIÉN...DETENER AL ROBOT.", + "MMMMM...VAYA...¿SEGUIR PELUDO...? ¡SALVAR EL MUNDO...!", + "VEAAAMOS, VAAALE ¡MUY BIEN! ¡SALVAREMOS EL MUNDO!", + "¡PERO RAPIDITO! ANTES DE QUE CAMBIE DE IDEA ¿EH? (RISAS)" + ], + "green-sagecage-introduction": [ + "¡YA ERA HORA DE QUE DIÉRAIS SEÑALES DE VIDA!", + "TAMBIÉN ESTAMOS ENCANTADOS DE VERTE. ¿AHORA...TE DEDICAS A FREGAR SUELOS?", + "NO HAY TIEMPO PARA BROMITAS, DAXTER. GOL Y MAIA NOS RAPTARON.", + "PARA ARREBATARNOS NUESTRAS FUERZAS Y ALIMENTAR A SU TERRORÍFICA MÁQUINA.", + "PARECE SER QUE HAN COMBINADO LOS RESTOS ÚTILES DE UN ROBOT PRECURSOR", + "CON ARTEFACTOS RECOGIDOS POR AQUÍ Y ALLÁ.", + "Y HAN AÑADIDO UNOS CUANTOS TOQUES DIABÓLICOS DE SU COSECHA,", + "CREANDO LA ÚNICA COSA CAPAZ DE ABRIR LOS SILOS DE ECO OSCURO.", + "SI LOGRÁIS LIBERARNOS A LOS CUATRO, USAREMOS NUESTROS PODERES COMBINADOS", + "PARA ROMPER EL ESCUDO DE FUERZA QUE RODEA AL ROBOT,", + "ANTES DE QUE LO USEN PARA DESTRUIR EL MUNDO." + ], + "green-sagecage-outro-beat-boss-a": [ + "¡¡HAZ ALGO!!", + "¡¡NOOOOOOOO!!" + ], + "green-sagecage-outro-beat-boss-b": [ + "BIEN, PARECE QUE HE SIDO DEMASIADO DURO CON VOSOTROS.", + "¡SÍ QUE TENÉIS MADERA DE HÉROES!", + "PERO DAXTER...¡AHORA NO PODEMOS CAMBIARTE!", + "NO TE PREOCUPES POR MÍ, NENA.", + "YA SABES QUE...LAS GRANDES ESENCIAS...VIENEN EN FRASCOS PEQUEÑOS.", + "JAK, ¡TIENES UN DON INCREÍBLE PARA CANALIZAR EL ECO!", + "SAMOS, ¡NO TE HABÍAS EQUIVOCADO SOBRE ÉL DESPUÉS DE TODO!", + "Y KEIRA, SIN TU AYUDA E INGENIO, NADA DE ESTO HABRÍA SIDO POSIBLE.", + "(RISAS) TAL VEZ TENGAMOS ENTRE NOSOTROS A OTRO SABIO,", + "AHORA QUE GOL Y MAIA NO ESTÁN...", + "SÍ, GOL Y MAIA...ES PROBABLE QUE EL ECO OSCURO LOS HAYA DESTRUÍDO.", + "ES PROBABLE...", + "¡BAAH! ¿QUÉ MÁS DA? ¡QUE VENGAN Y LOS DERROTAREMOS DE NUEVO! ¿VERDAD, JAK?", + "EEMMMMM...¿JAK?", + "¡GUAAAU! ¡UN POCO DE HIELO PARA ESTE!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "¡SANTO ECO! ¿QUÉ SERÁ ESO?", + "¡GUAAU! ¡ES UNA ANTIGUA PUERTA PRECURSOR!", + "PARECE QUE SOLO SE ABRE LLENANDO LOS 100 AGUJEROS...DE BATERÍAS.", + "¡EJEEEM! SOMOS HÉROES, ¿RECUERDAS? ¡YA TENEMOS 100 BATERÍAS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "¡SANTO ECO! ¿QUÉ SERÁ ESO?", + "¡GUAAU! ¡ES UNA ANTIGUA PUERTA PRECURSOR!", + "PARECE QUE SOLO SE ABRE LLENANDO LOS 100 AGUJEROS...DE BATERÍAS.", + "¡VAAAYA! ¡ALLÁ VAAMOS OTRA VEEEEZ!" + ], + "green-sagecage-outro-big-finish": [ + "¡GUAAAU! ¿QUÉ ES?", + "ES...TAN BONITO...", + "¡POR TODOS LOS PRECURSOR!" + ], + "green-sagecage-outro-preboss": [ + "HAS LLEGADO DEMASIADO TARDE, SAMOS.", + "CUANDO POSEA INFINITO ECO OSCURO, TENDRÉ LA LLAVE DE LA CREACIÓN.", + "¡¡ES UNA LOCURA!! ¡AL LIBERAR TODO ESE ECO OSCURO DESTRUIRÉIS ABSOLUTAMENTE TODO!", + "¡FIJAOS EN LO QUE OS HA HECHO A VOSOTROS!", + "NOS HA DADO UNA BELLEZA QUE TU INTELECTO NO LLEGA A COMPRENDER.", + "¿BELLEZA...? ¿OS...HABÉIS MIRADO AL ESPEJO ÚLTIMAMENTE?", + "ESPERA A QUE ABRAMOS LOS SILOS, CHIQUITÍN. AÑORARÁS EL ASPECTO QUE TIENES AHORA.", + "Y PENSAR QUE HABÉIS LLEGADO HASTA AQUÍ BUSCANDO MI AYUDA...", + "¡¡TONTOS!! ¡¡DISFRUTAD DE LA REMODELACIÓN DEL MUNDO EN PRIMERA FILA!!", + "¡JAK! ¡SUBE EN EL ASCENSOR Y DETÉN A ESE ROBOT!" + ], + "green-sagecage-resolution": [ + "¡BUEN TRABAJO, MUCHACHOS! AHORA SÍ QUE SOIS UNOS HÉROES.", + "COMBINARÉ MI PODER DE ECO VERDE CON LOS DE LOS OTROS TRES SABIOS", + "Y JUNTOS ABRIREMOS EL ESCUDO QUE RODEA AL ROBOT PRECURSOR.", + "¡SÍ, SÍ! PARECE UN BUEN COMIENZO.", + "Y...¿QUÉ VAIS A HACER CON EL ROBOT, DESPUÉS DE HABER ABIERTO EL ESCUDO?", + "NADA, DAXTER. NOSOTROS TENEMOS QUE MANTENER EL ESCUDO ABIERTO.", + "TENDRÉIS QUE AVERIGUAR LA FORMA DE DESTRUIR AL ROBOT.", + "OHH...GENIAL...ME TOCA AYUDAR AL TIPO QUE ME CONVIRTIÓ EN UNA BOLA DE PELOS", + "¡A DESTRUIR A LA ÚNICA PERSONA QUE PUEDE DEVOLVERME MI FORMA!", + "¡PRIMERO, SALVAD EL MUNDO!", + "LUEGO TRATAREMOS DE CONVENCER A GOL PARA QUE AYUDE A DAXTER." + ], + "mayor-introduction": [ + "¡¡NO!! (MURMURA) ¡NO ME DIGAS QUE VOSOTROS DOS TAMBIÉN TENÉIS PROBLEMAS!", + "PRIMERO LAS APARICIONES DE MONSTRUOS CERCA DE LA ALDEA, ¡Y AHORA ESTO!", + "¿VEIS ESOS ENGRANAJES AHÍ ARRIBA, CHICOS? ¿LOS VEIS? ¿VEIS LO PARADOS QUE ESTÁN?", + "¡ESO SIGNIFICA QUE NUESTRA ALDEA NO TIENE ELECTRICIDAD!", + "¡EL RAYO ECO QUE PROVIENE DEL TEMPLO DE LA SELVA SE HA INTERRUMPIDO!", + "Y LA VERDAD, A TODO EL MUNDO LE DA MIEDO. ID A VER QUÉ ES LO QUE HA PASADO.", + "¿HAS PAGADO LA FACTURA?", + "¡AJÁ! JOOOJOOJAJAAAA, QUÉ GRACIOSO...", + "MIRAD, SI ARREGLÁIS EL RAYO ECO, OS DARÉ...UNA BATERÍA.", + "¡AH, AHH, AHH, OTRA COSA!", + "SI POR CASUALIDAD OS INTERESA HACER UNA CONTRIBUCIÓN A MI CAMPAÑA DE REELECCIÓN,", + "TAL VEZ CONSIDERE EL DAROS OTRA BATERÍA.", + "LA CONTRIBUCIÓN MÍNIMA ES DE UNAS...MODESTAS...", + "90 ESFERAS." + ], + "mayor-reminder-beams": [ + "¿YA HABÉIS VUELTO? ¡¿Y SIN ARREGLAR EL RAYO ECO?!", + "(LLANTO) ¡VUESTRA ALDEA OS NECESITA, CHICOS!" + ], + "mayor-reminder-donation": [ + "¿HABÉIS VENIDO A HACER UNA DONACIÓN A MI CAMPAÑA...?", + "CON 90 ESFERAS DE LOS PRECURSORES OS LLEVÁIS UNA BATERÍA, CHICOS." + ], + "mayor-resolution-beams": [ + "JAAAAJAJAJAJA,", + "¡QUÉ VISTA TAN MARAVILLOSA! OS LO AGRADEZCO,", + "Y TODA LA ALDEA ME LO AGRADECERÁ A MÍ.", + "¡EH, CHICOS!", + "¡HABÉIS DEVUELTO LA ELECTRICIDAD A LA ALDEA Y GARANTIZADO MI REELECCIÓN!", + "Y POR ELLO, AMIGOS MÍOS, OS DOY...¡UNA BATERÍA!" + ], + "mayor-resolution-donation": [ + "ASÍ QUE...QUERÉIS REALIZAR UNA CONTRIBUCIÓN, ¡BIEN! SERÁ DE BUEN TAMAÑO, ESPERO.", + "¡GUAAAAAAU, SIII...! AAMM...ES UNA CONTRIBUCIÓN HERMOSA.", + "BUENO, EMMM...ESPERO QUE ESTA BATERÍA SEA UNA BUENA MUESTRA DE MI GRATITUD." + ], + "minershort-introduction-gnawers": [ + "¿POR QUÉ NO OS PONÉIS A HACER ALGO ÚTIL?", + "LOS LURKERS HAN ESTADO EXCAVANDO EN LAS CUEVAS OSCURAS POR ALLÍ.", + "PARECE QUE BUSCAN ARTEFACTOS DE LOS PRECURSORES.", + "EN LO QUE A MÍ RESPECTA, SE PUEDEN QUEDAR CON LOS QUE QUIERAN.", + "¡EN LO QUE A NOSOTROS RESPECTA!", + "WILLARD, DALE DE COMER A TU PÁJARO.", + "A MÍ SOLO ME PREOCUPAN LAS PIEDRAS PRECIOSAS.", + "PERO NO VOY A PODER CONSEGUIRLAS DE LA CUEVA PORQUE CUANDO ACABEN,", + "TODO SE VA A DERRUMBAR.", + "SI ACABÁIS CON LOS LURKERS QUE ROEN LAS VIGAS DE SUJECIÓN,", + "TAL VEZ SALVÉIS LA CUEVA.", + "AHORA, ¡LARGÁOS!" + ], + "minershort-introduction-orbs": [ + "¡EH, GORDY! MIRA, CREO QUE TENEMOS VISITA.", + "¿TÚ CREES, WILLARD? ¡HOLA, FORASTEROS! ¿DE PASO?", + "NOSOTROS TAMBIÉN. BUENO, TENEMOS QUE IRNOS. AQUÍ NO HAY NADA QUE VER.", + "EHH...CREÍ QUE HABÍAS DICHO QUE ESTO ERA UNA PIEDRA PRECIOSA DE VALOR INCAL-", + "¡¡WILLARD!!", + "LA VERDAD ES QUE...BUSCAMOS BATERÍAS.", + "TENEMOS 4. EHH...¿LAS QUERÉIS?", + "LO QUE EL CEREBRO DE CHORLITO QUIERE DECIR ES QUE...", + "TAL VEZ TENGAMOS UNAS CUANTAS BATERÍAS", + "Y...QUE TAL QUERAMOS VENDER CADA UNA POR...", + "90 ESFERAS.", + "ESA HISTORIA ME SUENA...", + "EH, GENIOS. ¿CÓMO PENSÁIS SACAR ESA PIEDRA PRECIOSA TAN GOORDA DE AQUÍ?", + "PUES BIEN, LISTILLO, NOS QUEDAN 12 AÑOS MÁS DE EXCAVACIÓN PARA AVERIGUARLO.", + "EHH...GORDY, ¿NO TARDARÍAMOS MENOS SI TÚ TAMBIÉN CAVASES?" + ], + "minershort-introduction-switch": [ + "PSST, ¡CHICOOS! EHH...", + "BIRDIE Y YO ESTÁBAMOS EXPLORANDO UNA CUEVA QUE OS GUSTARÍA.", + "ESTABA LLENA DE UN BONITO METAL NARANJA,", + "Y MUY BIEN ESCONDIDA TRAS UNOS ÁRBOLES EN LAS MONTAÑAS NEVADAS.", + "¡SE LO DIJE A GORDY, PERO ÉL SE PUSO A CHILLARME POR NO CAVAR!", + "¡¿POR QUÉ NO ESTÁS CAVANDO?!", + "¡LO SIENTO!" + ], + "minershort-reminder-1-gnawers": [ + "¿PODRÍAIS OCUPAROS YA DE LOS LURKERS QUE ROEN LAS VIGAS DE SUJECIÓN DE LA CUEVA OSCURA?", + "¡ESAS VIGAS NO VAN A DURAR MUCHO!" + ], + "minershort-reminder-1-orbs": [ + "NO OLVIDÉIS EL TRATO. TRAEDNOS 100 ESFERAS.", + "¡DIJISTE 90!", + "¡¡WILLARD!!", + "VALE. 90 ESFERAS POR UNA BATERÍA." + ], + "minershort-reminder-1-switch": [ + "¿HABÉIS ENCONTRADO LA CUEVA TRAS LOS ÁRBOLES DE LAS MONTAÑAS NEVADAS?", + "CREO QUE ME VOY A IR PARA ALLÁ EN SEGUIDA PARA ESCONDERME DE GORDY,", + "QUE NO PARA DE GRITARME.", + "¡¡WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "EHH...¿GORDY?", + "¡90 ESFERAS POR UNA BATERÍA, WILLARD!" + ], + "minershort-resolution-1-orbs": [ + "OH, AQUÍ TENÉIS UNA BATERÍA", + "A CAMBIO DE LAS ESFERAS." + ], + "minershort-resolution-2-orbs": [ + "¡UH! ¡OOH! EHH...¡ESTA VEZ LO HE PILLADO!", + "¡AQUÍ TENÉIS UNA...!", + "EHH...¡UNA...!", + "¡UNA BATERÍA!", + "SÍ, SÍ...LO QUE HA DICHO ÉL.", + "SE ACABÓ. NOS HABÉIS LIMPIADO.", + "¡NO HAY MÁS BATERÍAS!" + ], + "oracle-intro-1": [ + "¿QUIÉN DESPIERTA AL ORÁCULO?", + "¡ESPERA!, UNO DE LOS DOS LLEVA LA LUZ DENTRO.", + "HE ESTADO AGUARDANDO EL RETORNO DEL HÉROE VERDADERO DESDE HACE MILENIOS.", + "TREAEDME 120 ESFERAS DE PRECURSOR POR CADA BATERÍA QUE ALBERGO." + ], + "oracle-intro-2": [ + "GUARDÁOS DE LA LUZ OSCURA, QUE HA SESGADO EL DESTINO DE UNO DE LOS DOS.", + "TRAEDME 120 ESFERAS DE PRECURSOR, POR CADA BATERÍA QUE ALBERGO." + ], + "oracle-intro-3": [ + "BUSCAD LA LUZ PURA, YA QUE EN SU LLAMA RESIDEN LAS RESPUESTAS.", + "TENDRÉIS MIS BATERÍAS A CAMBIO DE 120 ESFERAS DE PRECURSOR POR CADA UNA." + ], + "oracle-left-eye-1": [ + "HABÉIS DEMOSTRADO SER HONESTOS. HE AQUÍ UNA BATERÍA." + ], + "oracle-left-eye-2": [ + "POR VUESTRO SACRIFICIO, UNA BATERÍA OS DOY." + ], + "oracle-left-eye-3": [ + "A CAMBIO DE VUESTRO DENUEDO, HE AQUÍ UNA BATERÍA." + ], + "oracle-reminder-1": [ + "TRAEDME 120 ESFERAS DE PRECURSOR, Y OS DARÉ UNA BATERÍA." + ], + "oracle-reminder-2": [ + "OBSEQUIADME CON 120 ESFERAS DE PRECURSOR, Y CON UNA BATERÍA OS RECOMPENSARÉ." + ], + "oracle-reminder-3": [ + "DEBERÉIS TRAERME 120 ESFERAS DE PRECURSOR POR CADA BATERÍA QUE ALBERGO." + ], + "oracle-right-eye-1": [ + "TOMAD UNA BATERÍA A CAMBIO DE VUESTRO REGALO." + ], + "oracle-right-eye-2": [ + "HE AQUÍ OTRA BATERÍA POR VUESTROS ESFUERZOS." + ], + "oracle-right-eye-3": [ + "HABÉIS CONSEGUIDO OTRA BATERÍA." + ], + "redsage-resolution": [ + "(RISAS) POR FIN VENÍS A RESCATARME.", + "¿SABÉIS CUÁNTO TIEMPO LLEVO AQUÍ? ¿POR QUÉ HABÉIS TARDADO TANTO? (RISAS)", + "¿CÓMO OS LLAMÁIS?", + "¡SOY DAXTER! ÉL ES JAK, VIENE CONMIGO.", + "BUEN TRABAJO, DAXTER. ERES TOOODO UN HÉROE.", + "TENÉIS QUE EVITAR QUE GOL ACTIVE EL ROBOT.", + "OS AYUDARÉ A ABRIR EL ESCUDO CON MI PODER DE ECO." + ], + "sage-bluehut-introduction-crop-dusting": [ + "BIEN, LA SITUACIÓN ESTÁ MÁS NEGRA QUE EL SOBACO DE UN GRILLO.", + "ANTES DE SU...DESAPARICIÓN, EL SABIO AZUL REGISTRÓ MUCHOS PROBLEMAS,", + "EN TODAS LAS ZONAS CIRCUNDANTES.", + "ME PARECE PARTICULARMENTE INTERESANTE LA INFECCIÓN CON ECO OSCURO", + "DE ALGUNAS PLANTAS INOCENTES DE LA CUENCA DE PRECURSOR.", + "KEIRA TELETRANSPORTARÁ VUESTRO ZOOMER AL TRANS-PAD MÁS CERCANO.", + "USADLO PARA LLEGAR A UN RESPIRADERO DE ECO VERDE, Y LUEGO TRANSPORTAD EL ECO VERDE...", + "A LAS PLANTAS DAÑADAS.", + "¡CON ESO LAS CURARÉIS!", + "SI OS DEJÁIS ALGUNA SIN CURAR, ESTA INFECTARÁ LENTAMENTE A LAS SANAS.", + "Y, DAXTER...", + "¡EMPIEZA A LIMPIAR ESTE SITIO!", + "¡NO TE DEJES LAS ESQUINAS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "ESPERO QUE OS HAYÁIS PREPARADO BOCADILLOS, PORQUE ESTO EMPIEZA AHORA.", + "DE ACUERDO CON LAS NOTAS DEL SABIO AZUL,", + "EL PANTANO AL OTRO LADO DE LA BAHÍA, ESTÁ INFESTADO DE LURKERS.", + "PARECE SER QUE PLANEAN USAR UN DIRIGIBLE", + "PARA SACAR UN ARTEFACTO PRECURSOR DEL CIENO.", + "VAIS A TENER QUE IR ALLÍ A ROMPER LAS AMARRAS.", + "¿QUIÉN SABE LO QUE QUERRÁN HACER CON EL ARTEFACTO?", + "PERO AL IGUAL QUE EL ALIENTO DEL AMIGO NARANJA, ESTE NO PUEDE SER NADA BUENO." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "¡MIS OJOS ME DEBEN DE ESTAR ENGAÑANDO!", + "PORQUE SÉ QUE VOSOTROS DOS ESTÁIS EN LA CUENCA DE PRECURSOR,", + "SALVANDO A LAS PLANTAS INFECTADAS CON ECO OSCURO." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "¡¿POR QUÉ HABÉIS VUELTO YA?!", + "DESDE EL BALCÓN PUEDO VER", + "QUE EL ZEPELÍN LURKER SIGUE FLOTANDO SOBRE EL PANTANO.", + "ES OBVIO QUE NO HABÉIS CUMPLIDO LA MISIÓN.", + "¡EN MARCHA!" + ], + "sage-intro-sequence-a": [ + "ME HE PASADO LA VIDA BUSCANDO RESPUESTAS QUE MI PADRE", + "Y SUS ANTEPASADOS NO PUDIERON ENCONTRAR.", + "¿QUIÉNES ERAN LOS PRECURSOR?", + "¿POR QUÉ CREARON LOS ENORMES MONOLITOS QUE ENSUCIAN NUESTRO PLANETA?", + "¿CÓMO PUDIERON DOMINAR EL ECO? LA ENERGÍA VITAL DEL MUNDO.", + "¿Y POR QUÉ SE DESVANECIERON?", + "HE PREGUNTADO A LAS PLANTAS PERO ELLAS NO LO RECUERDAN.", + "LAS PLANTAS SE LO HAN PREGUNTADO A LAS PIEDRAS, PERO ELLAS TAMPOCO SE ACUERDAN.", + "NI SIQUIERA LAS PIEDRAS SE ACUERDAN...", + "CADA HUESO DE MI CUERPO ME DICE QUE LAS RESPUESTAN DESCANSAN.", + "EN LOS HOMBROS DE UN JOVEN.", + "INCONSCIENTE DE SU DESTINO, A QUIEN NO LE INTERESA AVERIGUAR LA VERDAD,", + "Y QUE RECHAZA MI GUÍA!", + "¿Y POR QUÉ IBA ÉL A ESCUCHAR AL VIEJO SAMOS EL SABIO DE TODAS FORMAS?", + "TAN SOLO SOY EL MAESTRO DEL ECO VERDE, UNO DE LOS HOMBRES MÁS SABIOS DEL PLANETA.", + "ASÍ QUE PARECE QUE LA RESPUESTA NO ESTRIBA EN UNA CUIDADOSA INVESTIGACIÓN", + "NI EN SENSATAS DELIBERACIONES, NO.", + "COMO EN MUCHOS MISTERIOS DEL DESTINO", + "COMIENZA CON UN PEQUEÑO ACTO DE DESOBEDIENCIA.", + "¡EH, JAK! EL AMIGUETE VERDE NOS DIJO QUE NO VINIÉSEMOS POR AQUÍ." + ], + "sage-intro-sequence-d1": [ + "¿PERO QUÉ DEMONIOS QUERÉIS VOSOTROS DOS?", + "E- E- E- E- EEEESTÁBAMOS- MMMM- MMMM-", + "¡NO SIGAS! EN LUGAR DE SEGUIR MI CONSEJO, FUISTEIS A TRASTEAR AL ÚNICO SITIO", + "EN EL QUE OS DIJE QUE NO ENTRARAIS: ¡LA ISLA DE MISTY!", + "¡BUENO SÍ! Y-", + "Y TÚ, DAXTER, AL FINAL TE DISTE UN BAÑO, QUE TE HACÍA FALTA,", + "PERO EN UNA BAÑERA REBOSANTE DE ECO OSCURO.", + "MIRA ABUELETE, ¿VAS A SEGUIR REZONGANDO, O ME VAS A AYUDAR A SALIR DE ESTE LÍO?", + "¡VOY A SEGUIR REZONGANDO! PORQUE EN MI DOCTA OPINIÓN, ESTE CAMBIO ES MÁS BIEN UNA MEJORA.", + "AUNQUE QUISIERA NO PODRÍA AYUDARTE.", + "¿¡QUÉ!?", + "SOLO HAY UNA PERSONA QUE HA ESTUDIADO EL TEMA DEL ECO OSCURO EL TIEMPO NECESARIO", + "COMO PARA PODER DEVOLVERTE A TU ESTADO ANTERIOR:", + "GOL ACHERON, EL SABIO.", + "PERO VIVE LEJOS EN EL NORTE. MUY LEJOS EN EL NORTE. HACE AÑOS QUE NADIE HA HABLADO CON ÉL.", + "OS TELETRANSPORTARÍA ALLÍ, PERO TAMPOCO PUEDO HACERLO.", + "NINGUNO DE LOS TRES SABIOS QUE GUARDAN LAS OTRAS PUERTAS", + "HA VISTO ADECUADO ACTIVAR SU LADO DESDE HACE TIEMPO." + ], + "sage-intro-sequence-d2": [ + "LA OTRA ÚNICA MANERA DE IR AL NORTE ES ATRAVESANDO EL DESFILADERO DEL FUEGO", + "PERO SU SUELO VOLCÁNICO ES TAN CALIENTE QUE FUNDE EL METAL.", + "NO PODÉIS CAMINAR ENCIMA.", + "PERO PODRÍAIS VOLAR ENCIMA, SI TUVIESEIS UN ZOOMER CON ESCUDO TÉRMICO.", + "DA LA CASUALIDAD DE QUE ESTOY TRABAJANDO EN ESO AHORA MISMO.", + "SOLO NECESITO 20 BATERÍAS QUE LE DEN LA ENERGÍA", + "PARA RESISTIR EL CALOR DEL DESFILADERO. ¿VERDAD, PAPÁ?", + "SÍ, KEIRA, PODRÍA FUNCIONAR. ¿PERO DE DÓNDE VAN A SACAR UN CHICO", + "Y UN BICHO", + "20 BATERÍAS?", + "DE LOS ALDEANOS. LA MAYORÍA TIENE UNA BATERÍA O DOS GUARDADAS EN ALGUNA PARTE.", + "Y SI NO QUIEREN DÁROSLAS POR LAS BUENAS", + "SOBORNADLES CON UNAS CUANTAS ESFERAS DE PRECURSOR. Y YA VERÉIS CÓMO OS LAS DAN.", + "Y ESTOY SEGURA DE QUE HABRÁ MÁS POR ESAS TIERRAS SALVAJES", + "ESPERANDO A QUE LAS ENCUENTRE UN BRAVO AVENTURERO.", + "POR LO MENOS TENEMOS AL BRAVO AVENTURERO.", + "¿BRAVO AVENTURERO?", + "¡VOSOTROS DOS NO PODRÍAIS ENCONTRAR LA SALIDA DE LA ALDEA SIN ENTRENAMIENTO!", + "ANTES DE NADA, ATRAVESAD LA PUERTA TRANSPORTADORA", + "Y PRACTICAD UN POCO EN LA ROCA DE GEYSER.", + "AAAMMMM, ¿NO IREMOS A ENCONTRAR MÁS ECO OSCURO DE ESE, VERDAD?", + "PORQUE NO ME GUSTARÍA CAERME DE NUEVO DENTRO Y ¡CONVERTIRME EN TÍ!", + "¡METEOS AHÍ ANTES DE QUE OS CONVIERTA EN ALFALFA!" + ], + "sage-intro-sequence-e": [ + "BUEN ENTRENAMIENTO, CHICOS,", + "PERO ESO NO ES NADA COMPARADO CON LOS DESAFÍOS QUE OS AGUARDAN.", + "BUEEENO, NO HAY PROBLEEEMA. SABEMOS MOVERNOS, ¿EH, JAK?", + "NOS ENCANTARÍA QUEDARNOS A CHARLAR, PERO, ARDEMOS EN DESEOS DE EMPRENDER AVENTURAS.", + "BIEN, BIEN. PUES A LA \"AVENTURA\" ENTONCES..", + "Y DURANTE ESAS \"AVENTURAS,\" PODRÍAIS HACER ALGO ÚTIL.", + "MIS MALDITOS RECOLECTORES DE ECO VERDE ESTÁN ATASCADOS DE NUEVO.", + "ID AL EXTREMO DE LA PLAYA Y DESBLOQUEADLOS, ¿DE ACUERDO?", + "SEGUID LAS LUCES. OS LLEVARÁN ALLÍ.", + "AHORA, LOS DOS...", + "¡¡FUEEEEERA DE AQUÍ!!" + ], + "sage-introduction-misty-cannon": [ + "OH, SON LOS CONQUISTADORES.", + "BIEN, QUERÍA HABLAR CON VOSOTROS DOS DE COSAS SERIAS.", + "PARECE SER QUE HAY CIERTA ACTIVIDAD LURKER EN MISTY ISLAND.", + "PUEDO VER CÓMO BOMBARDEAN EL SILO PRECURSOR DESDE MI OBSERVATORIO.", + "SI LOS LURKERS LO ABREN Y LIBERAN EL ECO OSCURO, PODRÍAMOS ACABAR TODOS", + "CON EL ASPECTO RIDÍCULO DE ESTE MOLESTO ESPÉCIMEN.", + "JAK, ES EL MOMENTO DE QUE DEMUESTRES LO QUE VALES.", + "CONSIGUE QUE EL PESCADOR TE DEJE SU BARCO PARA IR A MISTY ISLAND", + "SUBE A LA CIMA DEL SILO DE PRECURSOR Y ACABA CON ESE CAÑÓN.", + "Y...¿QUÉ HAY DE MÍ?", + "¿TÚ? ¿POR QUÉ NO FRIEGAS EL SUELO? PARECE HABER PERDIDO BRILLO ÚLTIMAMENTE." + ], + "sage-reminder-1-ecorocks": [ + "MENUDOS \"AVENTUREROS VALIENTES\" QUE SOIS.", + "YA HABÉIS VUELTO Y NO HABÉIS DESBLOQUEADO MIS COSECHADORES DE ECO.", + "ESTÁN EN EL EXTREMO DE LA PLAYA, CHICOS.", + "AHORA...", + "¡EN MARCHA!" + ], + "sage-reminder-1-generic": [ + "¿QUÉ HACÉIS LOS DOS AQUÍ? ¡TENÉIS QUE IR A CONSEGUIR BATERÍAS!", + "HASTA QUE LAS CONSIGÁIS...¡DEJAZME EN PAZ!" + ], + "sage-reminder-1-misty-cannon": [ + "MENUDOS \"AVENTUREROS VALIENTES\" QUE SOIS.", + "YA HABÉIS VUELTO Y NO HABÉIS DESBLOQUEADO MIS COSECHADORES DE ECO.", + "ESTÁN EN EL EXTREMO DE LA PLAYA, CHICOS.", + "AHORA...", + "¡EN MARCHA!" + ], + "sage-reminder-2-generic": [ + "NO ACABÁIS DE ENTENDER LA GRAVEDAD DE LA SITUACIÓN.", + "LA COSA NO SE QUEDA EN LA TRANSFORMACIÓN DE UN CHAVAL EN BICHO PELUDO.", + "ESTO CONCIERNE A LA VIDA TAL Y COMO LA CONOCEMOS.", + "AHORA MARCHÁOS Y COMPLETAD VUESTRA TAREA." + ], + "sage-village3-introduction": [ + "¡WAAOHH! ¡SIEMPRE ME PREGUNTO SI ME DEJARÉ ÓRGANOS VITALES EN ESAS COSAS!", + "¡SANTO CIELO!", + "¡EL LABORATORIO DEL SABIO ROJO TIENE MUCHA PEOR PINTA QUE EL DEL SABIO AZUL!", + "BUENO, SE DIRÍA QUE AQUÍ HA HABIDO UNA PELEA.", + "JAJAJAJAJA", + "YO NO LO LLEGARÍA A LLAMAR \"PELEA\". ¿VERDAD, HERMANITA?", + "LA VERDAD ES QUE NO. EL SABIO ROJO SE RINDIÓ FÁCILMENTE.", + "QUÉ POCA DIVERSIÓN.", + "¡GOL! ¿ERES TÚ?", + "HAS SALIDO POR FÍN DE LAS PROFUNDIDADES, ¿EH?", + "¡Y, MAIA! ¡TE DIJE QUE EL ECO OSCURO OS AFECTARÍA A LOS DOS!", + "NADIE HACE CASO DEL VIEJO SAMOS...", + "¿QUÉ HABÉIS HECHO CON LOS SABIOS ROJO Y AZUL?", + "NO TE PREOCUPES POR TUS COLORIDOS AMIGOS, VEJETE", + "ESTÁN DIVINAMENTE EN NUESTRA CIUDADELA. SON NUESTROS INVITADOS.", + "HAN ACCEDIDO AMABLEMENTE...A AYUDARNOS EN UN PEQUEÑO PROYECTO.", + "ESTABAS EQUIVOCADO, SAMOS. EL ECO OSCURO SE PUEDE CONTROLAR.", + "HEMOS APRENDIDO SUS SECRETOS, Y AHORA PODEMOS REHACER EL MUNDO A NUESTRO GUSTO.", + "¡NO PODÉIS DOMINAR EL ECO OSCURO! ¡NI SIQUERA LOS PRECURSORー", + "HASTA AHORA, NOS HEMOS ARREGLADO CON EL POCO ECO QUE HABÍA EN LA SUPERFICIE.", + "PERO PRONTO PODREMOS ACCEDER A LAS ENORMES RESERVAS DE ECO OSCURO,", + "OCULTAS BAJO TIERRA.", + "¿LOS SILOS...?", + "¡SÍ! ¡LOS SILOS!", + "VAMOS A ABRIRLOS, ¡Y TODO EL ECO OSCURO SERÁ NUESTRO!", + "¡¡PERO ESO ES IMPOSIBLE!! SOLO UN BRAZO PRECURSORー", + "OH, NO TE PREOCUPES TANTO, SAMOS. TENEMOS GRANDES PLANES PARA TÍ.", + "(DESVANECIENDOSE) ¡JAJAJAJAJAJAJAJAJAJA!", + "¡¡UN MOMENTO!!", + "¡¿ESE ERA GOL?!", + "¡¿EL GOL QUE SE SUPONE QUE TIENE QUE DEVOLVERME A MI FORMA ORIGINAL?!", + "¡¿GOL ES EL TÍO QUE TRATA DE MATARNOS?!", + "¡ESTOY CONDENADO!", + "PUEDE QUE TODOS ESTEMOS CONDENADOS.", + "SI ABREN LOS SILOS, ¡EL ECO OSCURO DEFORMARÁ Y DESTRUIRÁ TODO LO QUE TOQUE!", + "¡TENEMOS QUE LLEGAR HASTA SU CIUDADELA PARA DETERNERLOS!", + "EL CAMINO MÁS RÁPIDO ES A TRAVÉS DEL CONDUCTO DE LAVA EN EL FONDO DE ESTE CRÁTER.", + "CON UNAS CUANTAS BATERÍAS MÁS Y EL ESCUDO TÉRMICO DEL ZOOMER, PODRÉIS ATRAVESAR LA LAVA.", + "MUY BIEN, CHAVAL. SABES LO QUE HAY QUE HACER.", + "COGE EL SACO DE PULGAS Y CONSIGUE MÁS BATERÍAS." + ], + "sage-village3-introduction-dark-eco": [ + "¡POR TODO EL ECO DEL MUNDO!", + "¡PARECE QUE HAY GRAN CANTIDAD DE LURKERS EN LAS CUEVAS ARAÑA!", + "ESTUPENDO. SUENA COMO UN SITIO PARADISÍACO.", + "DEJA QUE ADIVINE. EN LAS CUEVAS ARAÑA...¡HAY ARAÑAS! ¡¿VERDAD?!", + "¡PUES CLARO QUE HAY ARAÑAS EN LAS CUEVAS ARAÑA!", + "¡PERO ESE ES EL MENOR DE VUESTROS PROBLEMAS!", + "LOS LURKERS ESTÁN BUSCANDO CRISTALES DE ECO OSCURO CONCENTRADO.", + "¡TENÉIS QUE DESTRUIR LOS CRISTALES ANTES DE QUE ESOS MONSTRUOS LES ECHEN LA ZARPA!", + "¡APRESURÁOS!" + ], + "sage-village3-introduction-rams": [ + "ME ALEGRO DE QUE AMBOS ESTÉIS AQUÍ. HAY PRESENCIA LURKER EN LAS MONTAÑAS.", + "PARECE QUE HAN DESCUBIERTO DEPÓSITOS DE ECO OSCURO,", + "CONGELADO EN LOS GLACIARES, Y ESTÁN TRATANDO DE EXTRAERLOS.", + "MIENTRAS ESTÉIS ALLÍ ARRIBA BUSCANDO BATERÍAS, DETENED A ESOS LURKERS,", + "Y EVITAD QUE GOL CONSIGA MÁS ECO OSCURO." + ], + "sage-village3-reminder-1-dark-eco": [ + "¡TENÉIS QUE DESTRUIR LOS CRISTALES DE ECO OSCURO EN LAS CUEVAS ARAÑA!" + ], + "sage-village3-reminder-1-rams": [ + "NO PODEMOS DEJAR QUE LOS LURKERS SE HAGAN CON LOS BOTES DE ECO OSCURO.", + "¡SUBID A LOS PICOS NEVADOS Y DETENEDLOS!" + ], + "sculptor-introduction": [ + "EH...¡PEQUEÑÍN PELUDO!", + "OHH...POR UN MOMENTO, PENSÉ QUE ERAS MI MUSA.", + "¿¿TU QUÉ??", + "¿NUNCA HABÍAIS VISTO A UNA MUSA?", + "ES UNA PEQUEÑA ARDILLA RESPLANDECIENTE DE TU TAMAÑO, LLENA DE VITALIDAD,", + "¡Y LOCA COMO UNA REGADERA!", + "AAAH, ¡LO PILLO! COMO UN...¡COMPAÑERO DE AVENTURAS!", + "EN REALIDAD...SIN MI MUSA...NO PUEDO ESCULPIR.", + "CON ELLA CERCA...VEO LA BELLEZA DE TODO, ¿SABÉIS?", + "AHORA MISMO NO PODRÍA HACER NI UN AGUJERO CON EL CINCEL...", + "CREO QUE ELLA HA HUÍDO A ISLA DE MISTY.", + "OHH...ESPERO QUE ESTÉ BIEN.", + "¡OS DARÉ UNA BATERÍA SI ME LA TRAÉIS!", + "¡ESPERA UN SEGUNDO! NO...VAMOS A...¡¡VOLVER A LA ISLA DE NIEBLA!!", + "¿VERDAD...?" + ], + "sculptor-reminder-1": [ + "OHH...¡EH, AMIGOS! ¿HABÉIS ENCONTRADO A MI MUSA?" + ], + "sculptor-resolution": [ + "¡¡OH, MI MUSA!! ¡¡LA HABÉIS SALVADO!! ¡OH, SOIS LOS MEJORES!", + "BIEN, TOMAD ESTA BATERÍA. YA NO LA NECESITO, AHORA QUE ME HA VUELTO LA INSPIRACIÓN." + ], + "sidekick-human-intro-sequence-b": [ + "SEGUID BUSCANDO ARTEFACTOS Y ECO.", + "SI LA GENTE DEL LUGAR TIENE OBJETOS DE PRECURSOR, YA SABÉIS QUÉ HACER.", + "OCUPAOS BIEN DE AQUELLOS QUE SE DESPISTEN FUERA DE LA ALDEA.", + "ATACAREMOS EN SU MOMENTO." + ], + "sidekick-human-intro-sequence-c": [ + "PERO ¿QUÉ HACEMOS AQUÍ, JAK? ¡ESTE SITIO ME ASUSTA!", + "EEH?", + "OH...¡MALDITA PORQUERÍA PRECURSOR!", + "¡AAY! ¿QUÉ ES ESO OSCURO QUE REZUMA? NO PARECE MUY AMISTOSO.", + "EL SABIO SE PASA EL DÍA REFUNFUÑANDO SOBRE", + "LOS PRECURSOR QUE CONSTRUYERON ESTE SITIO.", + "\"¿A DÓNDE SE FUERON? ¿POR QUÉ CONSTRUYERON ESTA PORQUERÍA?\"", + "ME GUSTAN LAS ESFERAS DE PRECURSOR Y LAS BATERÍAS TANTO COMO A CUALQUIERA", + "PERO, SI TE DIGO LA VERDAD, DEBIERON DE SER UNOS PRINGAOS.", + "¡VAAYA! ¿CÓMO HAS HECHO ESO?", + "JAK, CREO QUE TENEMOS PROBLEMAS.", + "¡SOCORROOOO!", + "¡CHICO, ESO HA DOLIDO!.", + "TE DIJE QUE NO TENÍAMOS QUE HABER VENIDO, ¿HABÍAS OÍDO...", + "¿¿QUÉ??", + "AAAAAAAAHHHHHHHH!!", + "¡VAALE!, VALE. ESTOY BIEN, ¿ESTOY BIEN?", + "AAAAAAAAAAAAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH...¡CÓMO ME DUELE LA CABEZA!", + "DUDO QUE ESE SEA UN ÓRGANO VITAL EN TU CASO.", + "MENUDO TIPO DURO...", + "PUES SÍ. EN SU DÍA YO ERA UN TIPO DURO.", + "QUIZÁ EL MÁS DURO.", + "DURANTE CASI UN AÑO DEFENDÍ SOLITO ESTA ALDEA DE AQUELLAS HORRIBLES CRIATURAS.", + "DESPUÉS LLEGÓ AQUEL MONSTRUO ESPANTOSO Y EMPEZÓ A TIRAR PEÑASCOS.", + "ASÍ QUE...LENO DE VALOR, Y ENFUNDADO EN MI BRILLANTE ARMADURA...", + "¡SUBÍ LA COLINA PARA ENFRENTARME A ÉL!", + "PERO ME MACHACÓ COMO QUIEN ABLANDA UN FILETE DE YAKOW.", + "¿INTENTASTE ATACARLE CON TUS MELODRAMAS?", + "¡PORQUE A MÍ ME ESTÁS MATANDO!", + "TRAS DERROTARME DE AQUELLA MANERA,", + "SELLÓ EL CORREDOR A SU GUARIDA CON UNA ROCA DE 30 TONELADAS,", + "EVITANDO ASÍ QUE ALGUIEN LE DESAFIASE DE NUEVO.", + "ASÍ QUE, NUESTRO SABIO, UN MAESTRO DEL ECO AZUL,", + "Y UN GENIO MECÁNICO, DISEÑARON UNA MÁQUINA", + "CAPAZ DE QUITAR LA ROCA DE EN MEDIO.", + "PERO, ¡AY DE MÍ! DESAPARECIÓ ANTES DE QUE PUDIÉSEMOS ENCENDERLA.", + "Y SE LLEVÓ TODAS SUS BATERÍAS CON ÉL.", + "AL MENOS, HE PODIDO QUITAR LOS SUFICIENTES FLOTADORES A NUESTRO PUENTE", + "PARA EVITAR QUE EL MONSTRUO BAJE AQUÍ A HACERME DAÑO.", + "SÍ...BUU BUU, BUEN TRABAJO, TIPO DURO, PERO...", + "VAMOS A NECESITAR QUE...EJEM...LOS QUITES Y...TODO ESO.", + "¡SÍ, CLARO! ¡Y FIRMAR MI SENTENCIA DE MUERTE!", + "(SUSPIRA)", + "MUY BIEN...DE ACUERDO.", + "TRAEDME 90 ESFERAS DE LOS PRECURSORES Y SOLTARÉ LOS FLOTADORES.", + "¡PERO NO ME ENFRENTARÉ A ESE MONSTRUO DE NUEVO!" + ], + "warrior-reminder-1": [ + "¡PODÉIS TARDAR TODO LO QUE QUERÁIS EN TRAERME LAS ESFERAS DE LOS PRECURSORES!", + "NO ES QUE TENGA MUCHA PRISA POR ARREGLAR EL PUENTE." + ], + "warrior-resolution": [ + "MARAVILLOSO...", + "ME HABÉIS TRAIDO LAS ESFERAS DE LOS PRECURSORES...", + "MUY BIEN.", + "ARREGLARÉ EL PUENTE.", + "¡PERO NO ME PIDÁIS QUE ME ENFRENTE A ESA CRIATURA OTRA VEZ!" + ], + "yellowsage-resolution": [ + "¿QUIÉN HABRÍA DICHO QUE VIVIRÍA PARA VER", + "CÓMO ME RESCATAN UN CHICO Y SU COMADREJA?", + "MMMMM...VOY A DAR A GOL Y A MAIA SU MERECIDO POR PASAR ESTE BOCHORNO.", + "Y DESPUÉS, VEREMOS SI...COCINAMOS UN ESTOFADO DE...COMADREJA." + ] + }, + "hints": { + "ASSTLP02": [ + "TENGO QUE ARREGLAR ESTE ESCUDO TÉRMICO..." + ], + "ASSTLP03": [ + "NECESITAMOS BATERÍAS PARA ALIMENTAR EL ESCUDO TÉRMICO..." + ], + "ASSTLP04": [ + "¿DÓNDE ESTÁ MI LLAVE?" + ], + "ASSTLP05": [ + "EL DESFILADERO DEL FUEGO ESTÁ TAN CALIENTE..." + ], + "ASSTLP23": [ + "¿CÓMO HABRÁ CONSEGUIDO QUE FUNCIONE EL LEVITADOR?" + ], + "ASSTLP24": [ + "¿TENDREMOS...ENERGÍA SUFICIENTE CON LAS BATERÍAS...?" + ], + "ASSTLP31": [ + "MM." + ], + "ASSTLP32": [ + "DIOS MÍO..." + ], + "ASSTLP33": [ + "¡AH-JÁ!" + ], + "ASSTLP34": [ + "MMM...¿QUÉ SE PROPONEN GOL Y MAIA?" + ], + "ASSTLP35": [ + "MMM... TENEMOS QUE LLEGAR A LA CIUDAD DE PRECURSOR..." + ], + "ASSTLP36": [ + "MM. EL ESCUDO TÉRMICO VA A NECESITAR TODAVÍA MÁS ENERGÍA PARA RESISTIR LA LAVA." + ], + "ASSTLP37": [ + "OHH...TENEMOS QUE SALVAR A LOS DEMÁS SABIOS..." + ], + "BIL-AM01": [ + "¡CÓMO ME GUSTA EL BARRO!" + ], + "BIL-AM02": [ + "MALDITAS RATAS DE PANTANO..." + ], + "BIL-AM03": [ + "NECESITO UN BUEN TRAGO DE LA MEDICINA DE MAMÁ." + ], + "BIL-AM04": [ + "VAYA, VAYA..." + ], + "BIL-AM05": [ + "NECESITO UN BUEN TRAGO DE CAZALLA." + ], + "BIL-AM06": [ + "NECESITO UN BUEN REFRIGERIO." + ], + "BIL-AM07": [ + "¡'DITA SEA! ¡ESTE CALOR ME ESTÁ MATANDO!" + ], + "BIL-AM08": [ + "¡'DITA SEA...ME ESTOY ASANDO COMO UN POLLO!" + ], + "BIL-AM1A": [ + "¡MMMMM, MMM! ¡CÓMO ME GUSTA EL BARRO!" + ], + "BIL-AM2A": [ + "¡MALDITAS RATAS DE PANTANO!" + ], + "BIL-AM2B": [ + "¡¡MALDITAS RATAS DE PANTANO!!" + ], + "BIL-LO01": [ + "¡¡FAAAAAAAAAAAAAARTHYYYY!!" + ], + "BIL-LO02": [ + "¡VEEN, BONITO, BONITO, BONITOOOO!" + ], + "BIL-LO03": [ + "¡SUI, SUI, SOO-EE!" + ], + "BIL-LO1A": [ + "¡FAAARTHY!" + ], + "BIL-LO2A": [ + "¡VEEN, VEN, VEN, VEN, VEN, VEN, VEEN!" + ], + "BIL-LO2B": [ + "¡BONITOO! ¡VEEN!" + ], + "BIL-TA01": [ + "¡MATADLAS!" + ], + "BIL-TA02": [ + "¡BUEN DISPARO!" + ], + "BIL-TA03": [ + "¡POR AHÍ!" + ], + "BIL-TA04": [ + "'DITA SEA..." + ], + "BIL-TA05": [ + "¡TIENEN UN APERITIVO!" + ], + "BIL-TA08": [ + "¡LO TIENEN!" + ], + "BIL-TA09": [ + "¡¡YIIIII-HAAAAA!!" + ], + "BIL-TA1A": [ + "¡MATADLA!" + ], + "BIL-TA2A": [ + "¡BUEN DISPARO!" + ], + "BIL-TA3A": [ + "POR AHÍ." + ], + "BIL-TA4A": [ + "¡'DITA SEA!" + ], + "BIL-TA4B": [ + "¡'DITA SEA!" + ], + "BIL-TA5A": [ + "¡TIENEN UN APERITIVO!" + ], + "BIR-AM01": [ + "¿ESTÁIS YA CERCA DEL HUEVO?" + ], + "BIR-AM02": [ + "¡ESO ES, UN POCO MÁS!" + ], + "BIR-AM03": [ + "ESTUPENDO. AHORA EMPUJADLO SUAVEMENTE" + ], + "BIR-AM04": [ + "¡DIOS MÍO! ¡HE DICHO SUAVEMENTE!" + ], + "BIR-AM05": [ + "¡VAMOS, EMPUJAD EL HUEVO POR EL BARRANCO!" + ], + "BIR-AM06": [ + "OOOOHH!" + ], + "BIR-AM07": [ + "¡AQUÍ, PAJARITO! ¡AQUÍ, PAJARITO! ¡PÍO, PÍO!" + ], + "BIR-AM08": [ + "AQUÍ, PAJARITO." + ], + "BIR-AM09": [ + "¡CUIDADO! ¡AHÍ ARRIBA PARECE PELIGROSO!" + ], + "BIR-AM10": [ + "¡CUIDADO! ¡POCO A POCO!" + ], + "BIR-AM11": [ + "¡BUEN TRABAJO! AHORA VENID AQUÍ, AL LADO DEL HUEVO." + ], + "BIR-AM12": [ + "DEBES DE SER TODO UN AMANTE DE LOS ANIMALES." + ], + "BIR-AM13": [ + "¿HAY MÁS PÁJAROS POR AHÍ ARRIBA?" + ], + "BIR-LO01": [ + "(SILBIDO)" + ], + "BIR-LO02": [ + "¡OH, MIRA!, ESE ES PRECIOSO." + ], + "BIR-LO03": [ + "¡OH, MIRA! UN MUCKY-MUCK." + ], + "BIR-am08": [ + "AQUÍ, PAJARITO." + ], + "BLU-AM01": [ + "¡NO ME VENDRÍA MAL UN POCO DE AYUDA!" + ], + "BLU-AM02": [ + "MENUDO DESASTRE TENEMOS AQUÍ." + ], + "BLU-AM03": [ + "VAYA, ESTO ES TODO UN ENIGMA." + ], + "CHI-AM01": [ + "OH...¡ESTO ES UNA CATÁSTROFE! ¡UN ABSOLUTO DESASTRE!" + ], + "CHI-AM02": [ + "QUIEREN QUE VAYA A LA SELVA...¡¡YO!!", + "¡ANTES DESPLUMARÍA A UN FLUT-FLUT RABIOSO!" + ], + "CHI-AM03": [ + "¡...PRIMERO UN MONSTRUO ATACA EL BARCO DEL PESCADOR!", + "...Y...Y...Y...AHORA....¡AHORA ESTO! ¡¿QUÉ MÁS PUEDE IR MAL?!" + ], + "CHI-AM04": [ + "OHHH...TAL VEZ...DEBA...EHHH...TAL VEZ DEBERÍA SUBIR LOS IMPUESTOS...", + "PARA EHHH...¡COSTEAR ESTE DESASTRE!" + ], + "CHI-AM05": [ + "PROBLEMAS, ¡TODO SON...PROBLEMAS! ¡OOHHH...PROBLEMAS!" + ], + "CHI-AM06": [ + "(LLANTO) ¡AHORA VA A SER IMPOSIBLE QUE ME REELIJAN!" + ], + "CHI-AM07": [ + "(LLANTO) ¿QUÉ HA PASADO CON EL RAYO ENERGÉTICO DE LA ALDEA?" + ], + "CHI-AM08": [ + "(LLANTO) OHH...¿¿POR QUÉ?? OOOAAHHH ¿¿¿POR QUÉ???(LLANTO)" + ], + "CHI-LO01": [ + "(LLANTO)...MOLINO, MONSTRUOS, ELECTRICIDAD, REELECCIÓN..." + ], + "CHI-LO02": [ + "(LLANTO)...CUESTAS, MONSTRUOS, REELECCIÓN..." + ], + "EXP-AM01": [ + "TENGO QUE IRME DE VIAJE PRONTO. NECESITO ESFERAS DE LOS PRECURSORES." + ], + "EXP-AM02": [ + "VEAMOS...¿A DÓNDE VOY PRIMERO? MMM..." + ], + "EXP-AM03": [ + "OH...¡CÓMO ECHO DE MENOS VIAJAR!" + ], + "EXP-AM04": [ + "TANTOS LUGARES POR VER Y TAN POCO TIEMPO." + ], + "EXP-AM05": [ + "EN MIS TIEMPOS, UNO PODÍA RECORRER EL MUNDO SIN QUE LE ASALTASEN MONSTRUOS." + ], + "EXP-LO02": [ + "NECESITO MÁS ESFERAS DE LOS PRECURSORES." + ], + "EXP-LO1A": [ + "(MURMURA)" + ], + "FAR-AM01": [ + "(RONQUIDOS)" + ], + "FAR-AM02": [ + "(RONQUIDOS) (BALBUCEO)" + ], + "FAR-AM2A": [ + "(BALBUCEO)...TENGO QUE RECOGER LA COSECHA", + "ANTES DE QUE SE LA COMAN LOS BICHOS DE JUNE...(RONQUIDOS)" + ], + "FAR-LO01": [ + "(RONQUIDOS)" + ], + "FAR-LO1A": [ + "(RONQUIDOS)" + ], + "FIS-AM01": [ + "GRRRRRR...MALDITOS PECES...¡NUNCA ATRAPARÉ A NINGUNO!" + ], + "FIS-AM02": [ + "ESOS MONSTRUOS QUE ATACARON...¡ME VAN A ARRUINAR!" + ], + "FIS-AM03": [ + "¡¡MALDITOS SINVERGÜENZAS!!", + "VENGA, PECES DEL DEMONIO, A MI CESTA...", + "JE JE JE JE JE..." + ], + "FIS-AM04": [ + "AAAH...ME ENCANTA EL OLOR DEL PESCADO POR LA MAÑANA." + ], + "FIS-AM05": [ + "MMMMM...ME APETECEN UNOS RICOS PESCADITOS FRITOS..." + ], + "FIS-AM06": [ + "AAAAH...ME ACUERDO DEL GRANDOTE QUE SE ME ESCAPÓ..." + ], + "FIS-LO01": [ + "¡GRRRRRR!" + ], + "FIS-LO03": [ + "¡¡JAJAJAJAJAJAJAJAJAJAJA!!" + ], + "FIS-LO04": [ + "MALDITOS PECES...¡NUNCA SE DEJAN ATRAPAR!" + ], + "FIS-LO05": [ + "¡JAJAJAJAJAJAJAJAJA! ¡JAJAJAAAA!" + ], + "FIS-TA01": [ + "¡A LA IZQUIERDA!" + ], + "FIS-TA02": [ + "¡A LA DERECHA!" + ], + "FIS-TA03": [ + "¡AQUÍ LLEGA UNO GRANDOTE!" + ], + "FIS-TA04": [ + "¡SE OS HA ESCAPADO UNO ENORME!" + ], + "FIS-TA05": [ + "¡QUE NO SE OS ESCAPE OTRO!" + ], + "FIS-TA06": [ + "¡FIRME, CHAVAL!" + ], + "FIS-TA07": [ + "¡TUS VELAS SE DOBLAN POR EL VIENTO, CHAVAL!" + ], + "FIS-TA08": [ + "¡GRRRR...SE ESCAPÓ!" + ], + "FIS-TA09": [ + "NO OS VENDRÍA MAL UNA RED MÁS GRANDE..." + ], + "FIS-TA10": [ + "¡SE ESCAPÓ DE NUEVO!" + ], + "FIS-TA11": [ + "¡MANTENTE AHÍ! CASI LO HAS CONSEGUIDO..." + ], + "FIS-TA1A": [ + "¡IZQUIERDA!" + ], + "FIS-TA2A": [ + "¡DERECHA!" + ], + "GAM-AM01": [ + "¡EH, 20 CONTRA 1 NO ESTÁ TAN MAL!" + ], + "GAM-AM02": [ + "¡SÍ, ERA UNA APUESTA SEGURA!" + ], + "GAM-AM03": [ + "JEJEJEJE...¡LA PRÓXIMA VEZ ME VA A TOCAR EL GORDO!" + ], + "GAM-AM04": [ + "¡BAH! SI ME DIESEN UNA ESFERA POR CADA OPORTUNIDAD PERDIDA..." + ], + "GAM-AM05": [ + "¡EH, SE PODÍAN PONER DE MODA LOS BARRILES!" + ], + "GAM-AM06": [ + "EN FIN...NECESITO ESTAR EN RACHA..." + ], + "GAM-AM07": [ + "¡VAYA! ¿QUÉ PROBABILIDAD HAY DE QUE LAS RANAS CRÍEN PELO?" + ], + "GAM-AM08": [ + "¡CREÍA QUE ME HABÍAN DADO UN BUEN SOPLO!" + ], + "GAM-AM09": [ + "DÍA NUEVO, APUESTA NUEVA." + ], + "GAM-AM10": [ + "ME JUEGO LO QUE SEA A QUE NADIE PUEDE DERROTAR AL MONSTRUO." + ], + "GAM-AM11": [ + "¡UOH! ¡DEBERÍA HACER CAJA Y LARGARME!" + ], + "GAM-AM12": [ + "UNAS VECES SE GANA, OTRAS SE PIERDE." + ], + "GAM-AM13": [ + "EH, ¿DE QUÉ TE RÍES? ¿TE HAGO GRACIA?" + ], + "GEO-AM01": [ + "MMMM, ¡QUÉ ESTRATO MÁS INTERESANTE!" + ], + "GEO-AM02": [ + "POBRES TOPO ARDILLITAS..." + ], + "GEO-AM03": [ + "INTERESANTE..." + ], + "GEO-AM04": [ + "¡BUENA SUERTE, CHICOS!" + ], + "GEO-AM05": [ + "¡MALDITOS LURKERS...!" + ], + "GEO-AM06": [ + "LAS ROCAS TAMBIÉN TIENEN SENTIMIENTOS." + ], + "GEO-AM07": [ + "¡AGUANTAD, PEQUEÑINAS!" + ], + "GEO-AM08": [ + "AHORA PUEDO VOLVER A MI INVESTIGACIÓN." + ], + "GEO-LO01": [ + "TENGO QUE VOLVER A MI INVESTIGACIÓN." + ], + "GEO-LO02": [ + "MMMM, ESTA PIEDRA ES MUY ANTIGUA..." + ], + "GOL-AM01": [ + "NO PENSÁIS RENDIROS, ¿VERDAD?" + ], + "GOL-AM02": [ + "¡EL ECO OSCURO PRONTO SERÁ NUESTRO!" + ], + "GOL-AM03": [ + "¡ACABAD CON ELLOS!" + ], + "GOL-AM04": [ + "¡FUEEEGOO!" + ], + "GOL-AM05": [ + "¡PULVERIZADLOOS!" + ], + "GOL-AM06": [ + "¿QUÉ...? ¡¿OTRA VEZ ELLOS!?" + ], + "GOL-AM07": [ + "¡ES DEMASIADO TARDE!" + ], + "GOL-AM08": [ + "¡SOIS MÍOS!" + ], + "GOL-AM09": [ + "¡YA OS TENGO!" + ], + "GOL-AM10": [ + "(RISAS)" + ], + "GOL-AM11": [ + "¡SIN PIEDAD!" + ], + "GOL-AM12": [ + "¡TOMA YA!" + ], + "GOL-AM13": [ + "¡BUEN INTENTO!" + ], + "GOL-AM14": [ + "¡QUIETECIITOOS!" + ], + "GOL-AM15": [ + "¡QUÉ PATÉTICO!" + ], + "GOL-AM16": [ + "¡NOOOOOOO!" + ], + "GOL-AM17": [ + "¡AAAHHH!" + ], + "GOL-AM18": [ + "¡ABRIREMOS EL SILO DEL TODO Y OS DESTRUIREMOS A LOS DOS!" + ], + "GOL-AM19": [ + "¡ECO LUMINOSO! ¡¡EXISTE!!" + ], + "GOL-AM20": [ + "¡NO VAMOS A ACEPTARLO!" + ], + "MAI-AM01": [ + "¡ACABAD CON ELLOS DE UNA VEZ!" + ], + "MAI-AM02": [ + "¡LIQUIDADLOS!" + ], + "MAI-AM03": [ + "(RISAS)" + ], + "MAI-AM04": [ + "¡EL ECO YA NO OS PROTEGERÁ!" + ], + "MAI-AM05": [ + "¡HACED ALGO!" + ], + "MAI-AM06": [ + "¡AAAHHH!" + ], + "MAI-AM07": [ + "¡NOOOOOOOOOOOOOO!" + ], + "MAI-AM08": [ + "¡ABRIREMOS EL SILO DEL TODO Y OS DESTRUIREMOS A LOS DOS!" + ], + "MAI-AM09": [ + "¡¡NO DEJÉIS QUE LO COJAN!!" + ], + "MIN-LO01": [ + "UN DÍA DE ESTOS SERÉ RICO...", + "QUERRÁS DECIR...¡SEREMOS RICOS!", + "SÍ, CLARO..." + ], + "MIN-LO03": [ + "¡CAVA, WILLARD, CAVA!", + "SÍ, PERO...¡¿POR QUÉ NO CAVAS?!", + "¡PORQUE YO SOY EL CEREBRO DEL GRUPO!" + ], + "MIN-LO04": [ + "EMM, ¿GORDY? ¿PUEDO PARAR UN POCO?", + "AYY...YO SÍ QUE TE VOY A PARAR DE UN GOLPE ¡¡CAVA!!" + ], + "MIN-LO05": [ + "¡TENGO MUCHA HAMBRE, GORDY!", + "¡CÓMETE A TU PAJARO!" + ], + "MIN-LO06": [ + "EMM, GORDY, ¡NECESITO UN PICO MÁS AGUDO!", + "¡LO QUE NECESITAS ES SER MÁS AGUDO!" + ], + "MSH-AM01": [ + "(RÍE) ¡VOY A SER RICO!" + ], + "MSH-AM02": [ + "¡¡CAVA, CAVA, CAVA!!" + ], + "MSH-AM03": [ + "¡WILLARD! ¡TRABAJA MÁS, LISTILLO!" + ], + "MSH-AM04": [ + "(RÍE) ¡SERÉ EL HOMBRE MÁS RICO DEL MUNDO! (RÍE)" + ], + "MSH-AM05": [ + "¡OOHHH! ES LA PIEDRA MÁS GRANDE QUE JAMÁS SE HAYA VISTO! (RÍE)" + ], + "MSH-AM06": [ + "VIDA OPULENTA, ¡ESPÉRAME!" + ], + "MSH-AM07": [ + "¡MIS PIEDRAS! ¡TODAS MIS PIEDRAS!" + ], + "MSH-AM09": [ + "(RÍE) ¡NO PUEDO ESPERAR A VENDER ESTA PRECIOSIDAD! (RÍE)" + ], + "MSH-AM10": [ + "¡ESTO PARECE UNA RARA CRYSTY SELORCONIA! (RÍE)" + ], + "MSH-AM11": [ + "¡ESPERA UN MINUTO! ¡SON TODAS MÍAS! ¡MÍAS, SÍ!" + ], + "MSH-AM12": [ + "Y...WILLARD, ¿QUÉ VAS A HACER CON LA CUARTA PARTE QUE TE CORRESPONDE?" + ], + "MSH-AM1A": [ + "¡VOY A SER RICO!" + ], + "MSH-AM2A": [ + "¡CAVA, CAVA, CAVA!" + ], + "MSH-AM3A": [ + "¡TRABAJA MÁS, LISTILLO!" + ], + "MTA-AM01": [ + "EMM, ¿HEMOS TERMINADO YA?" + ], + "MTA-AM02": [ + "EHH...VAYA...¿PODEMOS DESCANSAR UN POCO?" + ], + "MTA-AM03": [ + "OHH, ¡TENGO HAMBRE!" + ], + "MTA-AM04": [ + "EMM...CREO QUE HAY QUE LIMPIAR LA JAULA DE BIRDIE..." + ], + "MTA-AM05": [ + "¡QUÉ PIEDRA MÁS GRANDOOTAAA!" + ], + "MTA-AM06": [ + "EMM...¡SIEMPRE QUISE SER...EHH...LEÑADOR!" + ], + "MTA-AM07": [ + "EH, ¡GORDY PROMETIÓ DARME LA MITAD DE LO QUE PUDIESE LLEVAR ENCIMA!" + ], + "MTA-AM08": [ + "EH...JEJEJE...¡BIRDIE ES MI MEJOR AMIGO!" + ], + "MTA-AM09": [ + "¡ME ENCANTA MI PAJARITO!" + ], + "RED-AM01": [ + "¿HAY ALGUIEN AHÍ?" + ], + "RED-AM02": [ + "BIEN..." + ], + "RED-AM03": [ + "¿POR QUÉ HABÉIS TARDADO?" + ], + "SAGELP03": [ + "ESTOS DOS NO SON CAPACES NI DE DESBLOQUEARSE LA NARIZ..." + ], + "SAGELP04": [ + "NUNCA SERÁ COMO SU TÍO...", + "NO ME IMPORTA LO QUE DIGAN LOS DEMÁS." + ], + "SAGELP05": [ + "HOLA, ¿SABIO AZUL? ¡HOLA! ¿DÓNDE DIANTRE ESTARÁ...?" + ], + "SAGELP06": [ + "VAYA, VAYA, VAYA..." + ], + "SAGELP11": [ + "¿HAY ALGUIEN? ¡QUIEN SEA! ¡RESPONDED!" + ], + "SAGELP20": [ + "MMMMM...MMMMM..." + ], + "SAGELP21": [ + "HAY QUE DETENER A LOS LURKERS." + ], + "SAGELP22": [ + "YA VEO..." + ], + "SAGELP23": [ + "¿NO...?" + ], + "SAGELP24": [ + "¿QUÉ LE PUEDE HABER PASADO?" + ], + "SAGELP31": [ + "ESTO NO ESTÁ BIEN." + ], + "SAGELP32": [ + "¿CRISTALES DE ECO OSCURO?" + ], + "SAGELP33": [ + "¡MAIA Y GOL HAN PERDIDO LA CABEZA!" + ], + "SAGELP34": [ + "RNN, ¡LOS PODERES DEL ECO OSCURO NO SE PUEDEN CONTROLAR!" + ], + "SAGELP35": [ + "¿ECO OSCURO EN LOS GLACIARES?" + ], + "SAGELP36": [ + "¡AH! ¡HAY TROPAS LURKER EN LAS MONTAÑAS!" + ], + "SAGELP37": [ + "¿QUÉ PLANEA GOL...?" + ], + "SAGELP38": [ + "¿ES POSIBLE QUE HAYA...?" + ], + "SCU-AM01": [ + "OH...YA NO ME SALE NADA." + ], + "SCU-AM02": [ + "OH...OJALÁ ESTUVIESE INSPIRADO." + ], + "SCU-AM03": [ + "ESTOY TAN INSPIRADO COMO...ESTA PIEDRA." + ], + "SCU-AM04": [ + "OH...¿DÓNDE ESTARÁ MI MUSA?" + ], + "SCU-AM05": [ + "¡ASÍ NO PUEDO TRABAJAR!" + ], + "SCU-AM06": [ + "OH DIOS MÍO...¿CUÁNDO VOLVERÁ CONMIGO?" + ], + "SCU-LO01": [ + "OH...NO..." + ], + "SKSP009F": [ + "¡TOMA!, ¡TOMA! JAJAJAJA!" + ], + "WAR-LO1A": [ + "(LLANTOS)" + ], + "WAR-LO1B": [ + "(LLANTOS)" + ], + "WAR-LO1C": [ + "(LLANTOS)" + ], + "YEL-AM01": [ + "¡EL TIEMPO SE AGOTA!" + ], + "YEL-AM02": [ + "¡EEH! ¡¡SACADME DE AQUÍ!!" + ], + "YEL-AM03": [ + "CUANDO SALGA DE AQUÍ ¡¡ALGUIEN SE VA A ENTERAR!!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE, SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv103": [ + "NO OLVIDÉIS ACTIVAR LA PUERTA TELETRANSPORTADORA PARA QUE PODAMOS PASAR.", + "PARA HACERLO, TENÉIS QUE ENTRAR EN EL LABORATORIO DEL SABIO ROJO", + "EN EL CENTRO DEL CRÁTER VOLCÁNICO.", + "NO PODREMOS PASAR HASTA QUE ESTÉ OTRA VEZ ACTIVADA." + ], + "asstv104": [ + "¡EH! ¡TODAVÍA ESTAMOS EN LA ALDEA DE PIEDRA!", + "¡ENCENDED LA PUERTA TELETRANSPORTADORA!" + ], + "asstv105": [ + "QUEREMOS REUNIRNOS CON VOSOTROS EN EL CRÁTER VOLCÁNICO.", + "ENTRAD EN EL LABORATORIO DEL SABIO ROJO Y ACTIVAD LA PUERTA." + ], + "asstva73": [ + "¡CHICOS! SEGÚN MIS CÁLCULOS, NOS HARÁN FALTA 72 BATERÍAS PARA QUE EL ESCUDO TÉRMICO", + "AGUANTE LA LAVA DE CAMINO A LA CIUDADELA DE GOL Y MAIA." + ], + "asstva74": [ + "NO TENÉIS SUFICIENTES BATERÍAS PARA ATRAVESAR LA LAVA.", + "NO PODRÉIS LLEGAR A LA CIUDADELA DE GOL Y MAIA,", + "HASTA QUE NO HAYÁIS CONSEGUIDO LAS 72 BATERÍAS." + ], + "asstvb02": [ + "¡GUAU!, ¿HABÉIS VISTO ESO? ¡LOS RESPIRADEROS DE ECO AZUL", + "DEBEN DE HABERSE ACTIVADO EN TODO EL MUNDO!", + "SABÍA QUE HABÍA ALGUNA MANERA DE HACERLO.", + "DEBE DE HABER OTROS SITIOS EN LOS QUE ACTIVAR LOS DEMÁS RESPIRADEROS DE ECO." + ], + "asstvb03": [ + "¡BIEN! ¡HABÉIS DETENIDO A LOS LURKERS MINADORES!", + "DURANTE SEMANAS HAN SIDO UNA PESADILLA EN LAS AGUAS QUE RODEAN A NUESTRA ALDEA.", + "TRAED EL ZOOMER DE VUELTA AL TRANS-PAD Y OS TELETRANSPORTARÉ DE VUELTA." + ], + "asstvb04": [ + "BIEN, ¡HABÉIS REUNIDO LAS SUFICIENTES BATERÍAS PARA ACTIVAR MI ESCUDO TÉRMICO!", + "ESCALAD EL ACANTILADO TRAS LA CASA DEL GRANJERO PARA REUNIROS CONMIGO", + "EN LA ENTRADA DEL DESFILADERO DEL FUEGO.", + "TRAED LAS BATERÍAS, ¡Y DAOS PRISA! ¡MI PADRE DICE QUE HA VISTO A MÁS LURKERS RONDANDO!" + ], + "asstvb08": [ + "DAOS PRISA CON LAS BATERÍAS. OS ESPERO AL PRINCIPIO DEL DESFILADERO DEL FUEGO", + "SUBIENDO EL ACANTILADO QUE HAY TRAS LA CASA DEL GRANJERO." + ], + "asstvb09": [ + "NO TENÉIS LAS 20 BATERÍAS NECESARIAS PARA ACTIVAR MI ESCUDO TÉRMICO.", + "NO PODÉIS CRUZAR EL DESFILADERO DEL FUEGO HASTA QUE NO TENGÁIS LAS QUE HACEN FALTA." + ], + "asstvb20": [ + "¡ASÍ SE VUELA! ¡LOS LURKERS NO HAN PODIDO HACER NADA ANTE EL ZOOMER!", + "¡HEMOS CONSEGUIDO OTRA BATERÍA MÁS!" + ], + "asstvb21": [ + "¡BUEN TRABAJO! ¿NO OS ALEGRÁIS DE HABER SALVADO AL PEQUEÑO FLUT-FLUT?", + "A LO MEJOR OS RESULTA ÚTIL DE NUEVO.", + "AHORA VOLVED AL TRANS-PAD Y LO TRAERÉ A CASA." + ], + "asstvb22": [ + "¡GUAAU! ¡HABÉIS SACADO A LA SUPERFICIE PARTE DE LAS RUINAS SUMERGIDAS!", + "PARECE QUE PODÉIS USAR EL ECO DE UNA MANERA NUNCA VISTA ANTES.", + "HAY UNA BATERÍA QUE HA SALIDO A FLOTE CON LA SALA. ¡SUBÍOS Y COGEDLA!" + ], + "asstvb23": [ + "¡BUEN TRABAJO! LAS GENTES DE LA ALDEA DE PIEDRA RESPIRAN ALIVIADAS.", + "¡PERO NO HAY TIEMPO PARA CELEBRACIONES!", + "RECORRED CON EL ZOOMER EL PASO ENTRE LAS MONTAÑAS.", + "¡CUIDADO, PARECE QUE LOS LURKERS HAN COLOCADO EXPLOSIVOS POR TODO EL PASO!", + "CUANDO LLEGUÉIS AL CRÁTER VOLCÁNICO, ACUDID AL LABORATORIO DEL SABIO ROJO,", + "Y ACTIVAD LA PUERTA TELETRANSPORTADORA", + "PARA QUE MI PADRE Y YO PODAMOS REUNIRNOS CON VOSOTROS." + ], + "asstvb24": [ + "¡DIOS MÍO! LOS LURKERS PROBABLEMENTE SE DIRIGEN A UN DETONADOR", + "QUE HAY AL FINAL DEL DESFILADERO.", + "SI LLEGAN ANTES QUE VOSOTROS, ¡VOLARÁN TODO EL PASO!", + "TENÉIS QUE ADELANTAROS Y DESTRUIR EL DETONADOR, ¡O TODO SE HABRÁ ACABADO!" + ], + "asstvb25": [ + "¡BUEN TRABAJO! HABÉIS LLEGADO AL DETONADOR ANTES QUE ELLOS.", + "EL LABORATORIO DEL SABIO ROJO ESTÁ JUSTO DELANTE.", + "ACTIVAD LA PUERTA TELETRANSPORTADORA PARA QUE PODAMOS REUNIRNOS." + ], + "asstvb28": [ + "¡EH! ¡NO OS OLVIDÉIS DEL SABIO Y DE MÍ!", + "TENÉIS QUE ACTIVAR LA PUERTA TELETRANSPORTADORA PARA QUE PASEMOS.", + "ESTÁ EN EL LABORATORIO DEL SABIO AZUL, AL FINAL DEL DESFILADERO DEL FUEGO.", + "¡SI NO NOS DEJÁIS PASAR, NO PODREMOS AYUDAROS!" + ], + "asstvb29": [ + "¡EH! ¡SEGUIMOS ESPERANDO!", + "¡ACTIVAD LA PUERTA TELETRANSPORTADORA!" + ], + "asstvb30": [ + "¡EH! ¡NO PODREMOS IR HASTA ALLÍ HASTA QUE NO HAYÁIS ACTIVADO", + "LA PUERTA TELETRANSPORTADORA!" + ], + "asstvb40": [ + "ESTE APARATO ES UN COMUNICADOR. CON ÉL, MI PADRE Y YO", + "PODREMOS ACONSEJAROS EN CUALQUIER MOMENTO DURANTE VUESTRA AVENTURA." + ], + "asstvb41": [ + "ESTAS COSAS CON FORMA DE HUEVO QUE FLOTAN SON ESFERAS DE PRECURSOR.", + "SI RECOGÉIS LAS SUFICIENTES, ALGUNOS DE LOS ALDEANOS OS DARÁN", + "A CAMBIO UNA BATERÍA." + ], + "asstvb42": [ + "ESTO ES UNA BATERÍA, EL ARTEFACTO PRECURSOR MÁS IMPORTANTE QUE PODÉIS ENCONTRAR.", + "TENÉIS QUE RECOGER 20 COMO ESTAS, Y ASÍ PODRÍA HACER QUE FUNCIONE EL ESCUDO TÉRMICO", + "DE VUESTRO ZOOMER ANTI-GRAVITATORIO." + ], + "asstvb44": [ + "¡EHH! ¡HABÉIS ENCONTRADO UNA DE MIS MOSCAS EXPLORADORAS!", + "ENVÍE 7 A CADA ZONA PARA QUE BUSCARAN BATERÍAS,", + "PERO LOS LURKERS DEBEN DE HABERLAS CAPTURADO A TODAS-" + ], + "asstvb45": [ + "¡VAYA! ¡ESA ÚLTIMA MOSCA EXPLORADORA TENÍA UNA BATERÍA!", + "SEGURO QUE SI REUNÍS LAS 7 DE CADA ZONA PODRÉIS ENCONTRAR MÁS BATERÍAS TODAVÍA." + ], + "asstvb46": [ + "¡TENED CUIDADO EN EL OCÉANO! ¡LAS AGUAS ESTÁN ATESTADAS DE TIBURONES LURKER!", + "¡Y JAMÁS HE VISTO A NADIE QUE LOGRE DERROTAR A UNO!", + "¡MANTENÉOS ALEJADOS DE ELLOS SI SABÉIS LO QUE OS CONVIENE!" + ], + "asstvb47": [ + "RECORDAD, ESO ES UNA BATERÍA. TENÉIS QUE RECOGER EL MAYOR NÚMERO DE ELLAS POSIBLE." + ], + "asstvb48": [ + "ESO ES UN RESPIRADERO DE ECO AZUL.", + "AL ESTAR MÁS CONCENTRADO QUE EN LOS RACIMOS FLOTANTES,", + "ESTE RESPIRADERO OS PROPORCIONARÁ UNA CARGA COMPLETA DE ECO AZUL,", + "QUE PODRÉIS UTILIZAR DURANTE EL MÁXIMO DE TIEMPO." + ], + "asstvb71": [ + "NO TENÉIS SUFICIENTES BATERÍAS COMO PARA HACER FUNCIONAR LA MÁQUINA DEL SABIO AZUL.", + "NO PODREMOS LEVANTAR ESA ROCA HASTA QUE NO RECOJÁIS 45 BATERÍAS." + ], + "asstvb72": [ + "HASTA QUE DESCUBRAMOS POR QUÉ DESAPARECIÓ EL SABIO AZUL,", + "TENDRÉIS QUE RECOGER 45 BATERÍAS PARA ALIMENTAR SU MÁQUINA.", + "¡CONSEGUIDLAS!" + ], + "asstvb75": [ + "PARECE QUE ESTA GÓNDOLA NO FUNCIONA BIEN.", + "TRATARÉ DE REPARARLA PARA QUE VUELVA A FUNCIONAR." + ], + "asstvb76": [ + "HE REACTIVADO LA GÓNDOLA. OS LLEVARÉ A LA MONTAÑA NEVADA.", + "USADLA SIEMPRE QUE QUERÁIS." + ], + "sagevb01": [ + "BIEN, VEO QUE OS HABÉIS DECIDIDO FINALMENTE A DEBLOQUEAR MIS COSECHADORES.", + "OS FELICITARÍA, PERO TENÉIS TANTO POR HACER, QUE NOS HARÉ PERDER EL TIEMPO.", + "POR CIERTO, SI LAS COSAS NO FUNCIONAN,", + "DAXTER SIEMPRE PODRÍA CONSEGUIR UN TRABAJO", + "CONTROLANDO LA POBLACIÓN DE RATAS DE LA ALDEA.", + "JAJAJAJAJAJAJA." + ], + "sagevb02": [ + "TENGO QUE ADMITIRLO, ¡ESTOY IMPRESIONADO! ¡NO LA HABÉIS PICIADO!", + "AHORA QUE LOS LURKERS NO PUEDEN ABRIR EL SILO,", + "TAMPOCO PUEDEN INUNDAR EL MUNDO DE ECO OSCURO", + "Y CAUSAR UN CAOS INCALCULABLE.", + "¡BORRA ESA RIDÍCULA SONRISA DE TU CARA, DAXTER! ¡LOS DOS TENÉIS MUCHO QUE HACER!", + "¡MANOS A LA OBRA!" + ], + "sagevb03": [ + "EMPEZÁIS A IMPRESIONARME. PERO TAL VEZ SEA PORQUE ESPERABA POCO DE VOSOTROS.", + "VALE, VUESTRO MOMENTO DE GLORIA HA TERMINADO. ¡A SEGUIR TRABAJANDO!" + ], + "sagevb04": [ + "¡BUEN TRABAJO, JAK! TU TÍO ESTARÍA ORGULLOSO.", + "ESO ERA EL BRAZO GIGANTE DE UN ROBOT PRECURSOR.", + "¡NUNCA HABÍA VISTO UNO EN TAN BUEN ESTADO!", + "NI ME IMAGINO PARA QUÉ LO QUERRÍAN LOS LURKERS. LO ÚNICO SEGURO ES QUE PARA NADA BUENO.", + "SI SIGUES HACIÉNDOLO ASÍ...NAAH, SIGUES SIENDO UN APRENDIZ DE \"HÉROE\".", + "PERO SIGUE INTENTÁNDOLO. ES ENTERNECEDOR." + ], + "sagevb21": [ + "ESAS BOLITAS VERDES DE ENERGÍA DEL SUELO SON UNA CLASE DE ECO.", + "RECOGE 50 BOLITAS VERDES DE ECO O UNA GRANDE Y VERDE Y AUMENTARÁS TU NIVEL DE SALUD." + ], + "sagevb22": [ + "ESO ES ECO AZUL, QUE CONTIENE LA ENERGÍA DEL MOVIMIENTO.", + "EL ECO AZUL TE PERMITIRÁ CORRER MÁS RÁPIDO, ROMPER CAJAS,", + "E INCLUSO ACTIVAR ALGUNOS ARTEFACTOS", + "PRECURSOR CUANDO TE ACERQUES." + ], + "sagevb23": [ + "FÍJATE COMO CADA RACIMO DE ECO AZUL QUE RECOGES,", + "HACE QUE AUMENTE EL TIEMPO DURANTE EL QUE PUEDES UTILIZAR SU PODER." + ], + "sagevb24": [ + "ESTA ES UNA PUERTA PRECURSOR. SOLO PODRÁS ABRIRLA SI TE APROXIMAS A ELLA", + "MIENTRAS EMITES CON TU CUERPO ECO AZUL." + ], + "sagevb25": [ + "¡BUEN TRABAJO! EL ECO AZUL HA HECHO QUE LA PUERTA SE ABRA. CON EL ECO AZUL, PODRÁS INSUFLAR", + "ENERGÍA EN TODO TIPO DE ARTEFACTOS PRECURSOR,", + "QUE HAN ESTADO INACTIVOS DURANTE AÑOS." + ], + "sagevb26": [ + "UTILIZA LAS GAFAS PARA VER TUS AVANCES A LO LARGO DE LA AVENTURA." + ], + "sagevb27": [ + "PUEDES SALTAR UNA VEZ, Y CUANDO ESTÉS EN EL AIRE, HACERLO DE NUEVO PARA LLEGAR", + "A LOS SALIENTES QUE ESTÉN MÁS ALTOS." + ], + "sagevb28": [ + "CUANDO ESTÉS RODEADO DE ENEMIGOS, USA LA PATADA GIRATORIA." + ], + "sagevb29": [ + "¡ESO NO ES UNA PATADA GIRATORIA! ¡OTRA VEZ!" + ], + "sagevb30": [ + "¡VAMOS, JAK! ¡DA UNA PATADA GIRATORIA!" + ], + "sagevb31": [ + "¡BUEN TRABAJO! USA LA PATADA GIRATORIA CUANDO QUIERAS ATACAR A TODO LO QUE TE RODEA." + ], + "sagevb32": [ + "PARA LLEVAR A CABO UN ATAQUE EN MOVIMIENTO EN LÍNEA RECTA,", + "USA EL PUÑO PARA DAR UN PUÑETAZO." + ], + "sagevb33": [ + "¡ESO NO ES UN PUÑETAZO! ¡DA AHORA UN PUÑETAZO DE VERDAD!" + ], + "sagevb34": [ + "¡JAK! ¡DA UN PUÑETAZO!" + ], + "sagevb35": [ + "¡BIEN HECHO! UTILIZA EL PUÑETAZO PARA REDUCIR RÁPIDAMENTE", + "LA DISTANCIA EN UNA SITUACIÓN DIFÍCIL." + ], + "sagevb36": [ + "A VECES QUERRÁS GOLPEAR LAS COSAS CON MÁS FUERZA.", + "PARA ROMPER UNA DE ESAS CAJAS TENDRÁS QUE SALTAR EN EL AIRE", + "Y CAER EN PICADO SOBRE ELLA, ¡PERO CON LAS MANOS POR DELANTE!" + ], + "sagevb37": [ + "CUANDO COJAS MÁS CONFIANZA EN TÍ MISMO,", + "TRATA DE PONER EN PRÁCTICA ALGUNOS DE TUS MOVIMIENTOS COMBINADOS." + ], + "sagevb38": [ + "NO PODRÉIS REGRESAR A TRAVÉS DE LA PUERTA TRANSPORTADORA,", + "HASTA QUE NO HAYÁIS ENCONTRADO LAS 4 BATERÍAS DE ESTA ISLA." + ], + "sagevb39": [ + "¡ESTUPENDO! ¡HABÉIS ENCONTRADO TODAS LAS BATERÍAS DE LA ISLA!", + "REGRESAD POR LA PUERTA TRANSPORTADORA,", + "Y ASÍ PODRÉ LLEVAROS DE VUELTA AL LABORATORIO. ¡RÁPIDO!" + ], + "sksp0001": [ + "¡EH! ESE BOMBÓN DE KEIRA TENÍA RAZÓN. ¡AQUÍ HAY TRANS-PADS!" + ], + "sksp0002": [ + "¡CRÉEME, ESAS CAJAS DE ECO OSCURO TIENEN MUUUUUUY MALA PINTA!" + ], + "sksp0003": [ + "SEGURO QUE SI ENCONTRAMOS A TODAS ESAS CONDENADAS MOSCAS EXPLORADORAS DE CADA NIVEL", + "AL MENOS UNO TENDRÁ UNA BATERÍA!" + ], + "sksp0004": [ + "¡SÍ SEÑOR, UN TESORO!" + ], + "sksp0005": [ + "¡SEGURO QUE CAJAS DE MADERA Y METAL NO SON TAN RESISTENTES!", + "VERÁS COMO SE ROMPEN SI SALTAS EN PICADO ENCIMA." + ], + "sksp0006": [ + "ESAS CAJAS DE METAL SON MÁS GRUESAS QUE EL CRANEO DE UNA YAKOW.", + "PERO DEBE DE HABER UNA FORMA DE ABRIRLAS." + ], + "sksp0007": [ + "DOS PALABRAS: LAS BATERÍAS. HAY QUE ENCONTRARLAS.", + "Y PARA ESO HAY QUE BUSCARLAS BIEN DE UNA VEZ." + ], + "sksp0008": [ + "NECESITAMOS ESFERAS, ¡EEEESFERAS, JAK!", + "¡¿CÓMO VAMOS A COMPRAR BATERÍAS SI NO REUNIMOS ESFERAS?!" + ], + "sksp0009": [ + "¡QUÉ ASPECTO MÁS EXTRAÑO TIENE! SEGURO QUE LO PODEMOS ABRIR", + "SI LE APLICAS UN POCO...DEL ECO AZUL ESE." + ], + "sksp0010": [ + "¡EH! VAMOS A ECHAR UN VISTAZO A LA SUPER LANCHA DEL LOBO DE MAR EN EL PUERTO." + ], + "sksp0011": [ + "DEBERÍAMOS PEDIRLE PRESTADA SU LANCHA AL PESCADOR DEL RÍO DE LA SELVA", + "PARA IR A TODA PRISA A LA ISLA DE MISTY!" + ], + "sksp0013": [ + "¿HAS VISTO EL PEDAZO DE BOCADO QUE LE PEGÓ UN TIBURÓN LURKER AL BARCO DEL PESCADOR?", + "¡MÁS NOS VALE ESTAR BIEN LEJITOS DE ELLOS!", + "NO CREO QUE NOS PODAMOS ENFRENTAR A ALGO TAN TREMENDO." + ], + "sksp0014": [ + "HEMOS REUNIDO LAS ESFERAS SUFICIENTES PARA UNA BATERÍA.", + "¡VAYAMOS A HACER EL TRUEQUE!" + ], + "sksp0015": [ + "ESTO DEBE DE SER EL ORÁCULO DE PRECURSOR DEL QUE SIEMPRE HABLA EL SABIO.", + "¡ESPERABA QUE NO FUESE TAN FEO EN PERSONA!" + ], + "sksp0017": [ + "¡GUAU! ¡ECHA UN VISTAZO A LA ESCULTURA TAN HORTERA QUE HAY EN AQUELLAS ROCAS!" + ], + "sksp0018": [ + "¡DEBERÍAMOS DECIRLE AL CHARLATÁN DEL ALCALDE QUE NOS DEBE UNA", + "POR CONECTARLE EL RAYO ENERGÉTICO DE LA ALDEA!" + ], + "sksp0019": [ + "¡EH, GAVIOTAS! VAMOS A ESPANTARLAS PARA DIVERTIRNOS." + ], + "sksp0020": [ + "¡YUUJUJUUUUY! ¡VENGA, OTRA VEZ!" + ], + "sksp0022": [ + "¡YUUUUUJUUUU JAJAJAJAAA YUUJUJUJUYY!" + ], + "sksp0023": [ + "¡WUUUUU!" + ], + "sksp0024": [ + "¡YAAAAHJAAAJAJAA, ¡¡SÍ!!" + ], + "sksp0025": [ + "¡GUAU! ¡HAN CAUSADO UNA AVALANCHA! ¡VAMOS A VERLA!" + ], + "sksp0026": [ + "¡EH, ESE PELÍCANO NOS HA BIRLADO UNA BATERÍA!", + "VAMOS A DARLE SU MERECIDO." + ], + "sksp0027": [ + "¡DEPRISA! ¡TENEMOS QUE LLEGAR A LA BATERÍA ANTES DE QUE EL PELÍCANO SE LA LLEVE DE NUEVO!" + ], + "sksp0028": [ + "¡DALE UNA PATADA! JIJIJIJIJI ¡¡DÁSELA!!" + ], + "sksp0029": [ + "EMMM, DEBERÍAMOS HABLAR CON LA ORNITÓLOGA", + "Y VER SI EL HUEVO DE FLUT-FLUT HA ACABADO REVUELTO." + ], + "sksp0030": [ + "¡EH, PRUEBA A GOLPEAR LAS PIEDRAS PARA VER SI LAS QUITAS DE EN MEDIO!" + ], + "sksp0031": [ + "¡OOH, VAMOS A USAR EL CAÑÓN PARA VOLAR COSAS POR LOS AIRES!" + ], + "sksp0034": [ + "¡AUUUUUUU, AH AH AH AAAAAAAH! ¡BUCEA Y COGE LOS HUEVOS, JAK, BUCEA!" + ], + "sksp0035": [ + "VALE, TENEMOS UN LANZADOR DE PRECURSOR AQUÍ.", + "PERO COMO NO LE HAS APLICADO ENERGÍA AZUL, ¡NO NOS SERVIRÁ DE NADA!" + ], + "sksp0037": [ + "ESA ESPECIE DE TORRES QUE HAY POR TODA LA SELVA DEBEN DE...REDIRIGIR EL RAYO ECO.", + "¡VAMOS A TRASTEAR CON ELLAS!" + ], + "sksp0038": [ + "MMMM, SI EL ECO AZUL PUEDE CONSTRUIR UN PUENTE, ¡SEGURO QUE TAMBIÉN ABRE PUERTAS!", + "¡VOLVAMOS PARA QUE PUEDAS REPOSTAR!" + ], + "sksp0039": [ + "¡EH!, HAY SEÑALES CON RELÁMPAGOS EN ESTOS POSTES.", + "Y DE ESE RESPIRADERO SALE UN RELAMPAGUEO.", + "¿PIENSAS LO MISMO QUE YO?" + ], + "sksp0040": [ + "¡SUBÁMONOS A ESA MÁQUINA PARA ROMPER EL ESPEJO QUE DESVÍA EL RAYO DE PRECURSOR!" + ], + "sksp0041": [ + "¡TENEMOS QUE SUBIR A LA CIMA DE ESA TORRE!" + ], + "sksp0043": [ + "TAL VEZ DEBERÍAMOS IR A VER AL PESCADOR.", + "HE OÍDO QUE SUELE PESCAR EN EL RÍO DE LA SELVA." + ], + "sksp0049": [ + "¡ALINEA EL RAYO APUNTÁNDOLE A LA TORRE SIGUIENTE!" + ], + "sksp0050": [ + "¡ROMPE EL ESPEJO, JAK!" + ], + "sksp0051": [ + "¡ATRAPA A LOS BICHOS, JAK! ¡ATRÁPALOS!" + ], + "sksp0052": [ + "¡VAYAMOS A LA SIGUIENTE TORRE A RECONECTAR EL RAYO!" + ], + "sksp0053": [ + "¡EH! PARA ENCONTRAR LA SIGUIENTE TORRE PODEMOS SEGUIR EL RAYO." + ], + "sksp0054": [ + "TENEMOS QUE RECARGARTE DE COSA AZUL PARA QUE PUEDAS ABRIR ESTO." + ], + "sksp0056": [ + "¡EEH, VEO A LA MUSA DEL ESCULTOR!" + ], + "sksp0059": [ + "¡ESTE SITIO ME DA ESCALOFRÍOS! ¡NO TE ACERQUES A ESO QUE REZUMA! ¿VALE?" + ], + "sksp0060": [ + "¡UUUUY! ¡ESTE SITIO ME DA ESCALOFRÍOS! Y CRÉEME, ES TODA UNA EXPERIENCIA", + "CUANDO ESTÁS RECUBIERTO DE PELO." + ], + "sksp0062": [ + "¡VAMOS A ACABAR CON ESOS LURKERS GLOBO! ¡NO DEJEMOS NI UNO!" + ], + "sksp0063": [ + "HE DICHO QUE ATAQUEMOS A LOS LURKERS, JAK. ¡NO LAS MINAS!", + "REGLA NÚMERO UNO: ¡EVITA SIEMPRE LAS MINAS!" + ], + "sksp0064": [ + "¡VIGILA TU ESPALDA! QUE NO SE NOS OLVIDE LO QUE PASÓ AQUÍ LA ÚLTIMA VEZ." + ], + "sksp0067": [ + "¡NO TE CAIGAS EN LA NEBLINA QUE HAY DEBAJO! NO CREO QUE PODAMOS SALIR DE ELLA." + ], + "sksp0069": [ + "ES UNA EMBOSCADA, JAK ¡ES UNA EMBOSCADA!" + ], + "sksp0070": [ + "SALTA, Y LUEGO CAE EN PICADO SOBRE EL BALANCÍN." + ], + "sksp0071": [ + "¡CONSIGUE EL ECO ROJO!" + ], + "sksp0072": [ + "EL ECO ROJO FORTALECE TUS ATAQUES." + ], + "sksp0073": [ + "NECESITAMOS ECO AZUL PARA RECARGAR ESTO." + ], + "sksp0076": [ + "¡JAK, SALTA PARA MANTENERNOS LEJOS DE LA LAVA!" + ], + "sksp0077": [ + "LOS GLOBOS SON BUENOS, ¡LA LAVA ARDIENTE ES MALA!" + ], + "sksp0078": [ + "SÚBETE AL CHISME PRECURSOR PARA QUE SIGAMOS FRESQUITOS." + ], + "sksp0079": [ + "¡AAAAYYY, ME VOY A MORIIIIIR! ¡SOY UN BICHEJO FIAMBREE!", + "¡TIENES QUE LLEGAR AL OTRO LADO ANTES DE QUE ESTE CHISME SE CALIENTE DEMASIADO!" + ], + "sksp0080": [ + "¡TIRA BRINCANDO, PARA DAR CURVAS MÁS CERRADAS!" + ], + "sksp0081": [ + "¡AAAAAAYY! ¡DEBERÍA CONDUCIR YO!" + ], + "sksp0082": [ + "¿TÁS INTENTANDO ESQUIVAR LAS CAJAS DE ECO OSCURO, VERDAD?" + ], + "sksp0083": [ + "¡OOH, A VER SI PODEMOS PONER DISTANCIA ENTRE ESOS LURKERS Y NOSOTROS!" + ], + "sksp0084": [ + "¡MUY CERCA! ¡MUUUUUUUY CERCA!" + ], + "sksp0085": [ + "¡GUAU! ¡ESTE CHISME SE ESTÁ CALENTANDO DEMASIADO!" + ], + "sksp0086": [ + "¡UNOS SEGUNDOS MÁS Y ESTAREMOS MÁS FRITOS QUE UN HUEVO DE FLUT-FLUT!" + ], + "sksp0087": [ + "¡CHOCA CONTRA LOS GLOBOS, PARA REFRIGERARNOS!" + ], + "sksp0088": [ + "¡AHÍ VIENE OTRO GLOBO!" + ], + "sksp0089": [ + "¡OJALÁ NO HUBIESE SONADO EL DESPERTADOR ESTA MAÑANA!" + ], + "sksp0090": [ + "¡SE TE HA ESCAPADO UN GLOBO! ¡LOS NECESITAMOS PARA NO ACABAR ESTOFADOS!" + ], + "sksp0091": [ + "¡ESTE BÓLIDO SE ESTÁ CALENTANDO DEMASIADO!" + ], + "sksp0092": [ + "¿NO HUELES A QUEMADO?" + ], + "sksp0093": [ + "¡CREO QUE TENGO LA COLA ARDIENDOO!" + ], + "sksp0094": [ + "¡ESTO VA A ESTALLAR!" + ], + "sksp0095": [ + "¡YUUUJUUUUU! ¡LO CONSEGUIMOS!" + ], + "sksp0096": [ + "¡AQUÍ TAMBIÉN HAY MOSCAS EXPLORADORAS!" + ], + "sksp009a": [ + "¡JAJAJAJA! ¡LE HEMOS DADO UNA BUENA LECCIÓN!" + ], + "sksp009b": [ + "¡MUY BIEN, MÁS ESFERAS!" + ], + "sksp009c": [ + "¡HAZME UN FAVOR Y ALÉJATE DE ESAS CAJAS DE ECO OSCURO!" + ], + "sksp009d": [ + "YUUUUUUJUJUJUJUJUUYY!" + ], + "sksp009e": [ + "WUUUUUUUUU!" + ], + "sksp009f": [ + "¡TOMA!, ¡TOMA! JAJAJAJA!" + ], + "sksp009g": [ + "¡DETRÁS DE TÍ, JAK!" + ], + "sksp009i": [ + "¿HEMOS ENCONTRADO TODAS LAS MOSCAS EXPLORADORAS DE ESTA ZONA?" + ], + "sksp009j": [ + "¡EH! PARECE SER QUE LAS MOSCAS EXPLORADORAS SIEMPRE ESTÁN EN CAJAS ROJAS." + ], + "sksp009k": [ + "¡MUY BIEN! ¡HAS ENCONTRADO TODAS LAS MOSCAS EXPLORADORAS DE ESTA ZONA!" + ], + "sksp0109": [ + "¡GUAAU! ¡HEMOS SUPERADO EL RECORD!" + ], + "sksp0110": [ + "LO DIJE ANTES Y LO VUELVO A REPETIR...", + "¡EVITA LAS CAJAS DE ECO OSCURO!" + ], + "sksp0112": [ + "VAMOS A POR LA BATERÍA QUE NOS DEBE LA GEÓLOGA." + ], + "sksp0113": [ + "ESAS DEBEN DE SER LAS PLANTAS INFECTADAS DE LAS QUE HABLABA EL ABUELETE." + ], + "sksp0114": [ + "TENEMOS QUE USAR EL ECO VERDE PARA CURAR A LAS PLANTAS." + ], + "sksp0116": [ + "¡AHÍ ESTÁ UNO DE ESOS LURKERS VOLADORES! A LO MEJOR TIENE UNA BATERÍA..." + ], + "sksp0119": [ + "UN ANILLO MENOS, ¡PERO QUEDAN UN MONTÓN!" + ], + "sksp0120": [ + "¡DEPRISA! ¡AHÍ ESTÁ EL ANILLO SIGUIENTE!" + ], + "sksp0121": [ + "¡RÁPIDO! ¡TIENES QUE ATRAVESAR LOS ANILLOS ANTES DE QUE SE VAYAN APAGANDO!" + ], + "sksp0123": [ + "¡DEPRISA! ¡SIGUE ESE CONDUCTO!" + ], + "sksp0124": [ + "ESTO ME DA MALA ESPINA..." + ], + "sksp0125": [ + "PARECE QUE ESOS CHISMES NECESITAN UNA DOSIS DE ECO AZUL." + ], + "sksp0127": [ + "¡DALE UNA PATADA AL TIPEJO DE ARRIBA!" + ], + "sksp0128": [ + "JAK...¡¡CORRE!! ¡¡EL ECO OSCURO ESTÁ SUBIENDO!!" + ], + "sksp0130": [ + "UHH, CREO QUE TENEMOS QUE ACTIVAR TODAS ESAS PLATAFORMAS..." + ], + "sksp0131": [ + "¡EH! ¡SEGURO QUE PUEDES SALTAR EN PICADO SOBRE ESOS TIPEJOS!" + ], + "sksp0133": [ + "¡SEGURO QUE PODEMOS RECARGAR A LA VEZ TODOS ESOS CHISMES!" + ], + "sksp0134": [ + "¿QUÉ TAL SI TIENES CUIDADO CON LAS TUBERÍAS CALIENTES?" + ], + "sksp0138": [ + "DEBERÍAMOS DISPARAR A ESAS ROCAS ENORMES QUE RETIENEN EL AMARRE." + ], + "sksp0143": [ + "¡UAGGHH! ¡HAZ ALGO CON LA LENGUA QUE ME AGARRA!" + ], + "sksp0144": [ + "DISPARA A LOS NIDOS DE LAS RATAS PARA QUE NO SALGAN MÁS." + ], + "sksp0145": [ + "¡GUAAU! ¡CUANDO TIENES ECO AMARILLO PUEDES DISPARAR BOLAS DE FUEGO!" + ], + "sksp0151": [ + "¡CORRE, JAK!" + ], + "sksp0152": [ + "¡CUIDADO, JAK! ¡ES UNA EMBOSCADA!" + ], + "sksp0156": [ + "¡AGÁCHATE PARA ESQUIVAR A LOS MURCIÉLAGOS!" + ], + "sksp0157": [ + "¿HAS VISTO ESO? ¡SOLO QUEDAN 3 AMARRES MÁS!" + ], + "sksp0158": [ + "¡GUUAU! ¡SOLO 2 AMARRES MÁS!" + ], + "sksp0159": [ + "EL DIRIGIBLE ESTÁ A PUNTO DE SOLTARSE. ¡BUSQUEMOS EL ÚLTIMO!" + ], + "sksp0160": [ + "¡EH! ¡AHÍ ESTÁ EL FLUT-FLUT!" + ], + "sksp018a": [ + "¡EL GANDUL DEL GRANJERO NOS DEBE UNA BATERÍA!", + "¡HABLEMOS CON ÉL!" + ], + "sksp0321": [ + "¡LO CONSEGUIMOS! ¡HEMOS EVITADO QUE VUELEN EL PASO!" + ], + "sksp0327": [ + "¡CREO QUE ESE ERA EL ÚLTIMO CRISTAL DE ECO OSCURO!" + ], + "sksp0328": [ + "TAL VEZ DISPARES MEJOR SI APUNTAS CON LAS ¡¡GAFAS!!" + ], + "sksp0329": [ + "¡OH, NO! ¡MÁS ECO OSCURO!" + ], + "sksp0330": [ + "CREO QUE NO HEMOS ACABADO CON TODOS LOS CRISTALES DE ECO OSCURO." + ], + "sksp0331": [ + "¡DISPARA A LOS LURKERS! ¡QUE SE COMEN LAS PÉRTIGAS!" + ], + "sksp0332": [ + "¡NO DEJES QUE SE APAGUEN LAS LUCES!" + ], + "sksp0333": [ + "ALCANZA UN CRISTAL PARA QUE ESTO SE ILUMINE." + ], + "sksp0334": [ + "¡CORRE! ¡¡ESE CRISTAL VA A EXPLOTAR!!" + ], + "sksp0335": [ + "EH, HAN ENCONTRADO UN ROBOT PRECURSOR." + ], + "sksp0336": [ + "¡REVIENTA LOS HUEVOS ANTES DE QUE SE ABRAN!" + ], + "sksp0337": [ + "ESTO ME DA MIEDO..." + ], + "sksp0338": [ + "PARECE QUE LAS TELARAÑAS SE ROMPEN DESPUÉS DE DOS REBOTES." + ], + "sksp0339": [ + "ODIO LAS ARAÑAS..." + ], + "sksp0340": [ + "¡VIENEN ARAÑAS RECIÉN NACIDAS!" + ], + "sksp0341": [ + "¡CREO QUE ESTAMOS EN UN NIDO DE ARAÑAS!" + ], + "sksp0342": [ + "¡CUIDADO! ¡MÁS ARAÑAS!" + ], + "sksp0343": [ + "¡¡¡VAMONOS DE AQUIIIIIIIII!!!" + ], + "sksp0345": [ + "¿CÓMO VAMOS A ENTRAR EN ESTE FUERTE?" + ], + "sksp0346": [ + "A LO MEJOR PUEDES VENCER A ESTE TIPO CON ECO ROJO." + ], + "sksp0347": [ + "¡TENEMOS QUE SALTAR RODANDO!" + ], + "sksp0348": [ + "TENEMOS QUE ENCONTRAR LA MANERA DE ABRIR ESTE RESPIRADERO." + ], + "sksp0349": [ + "¡AHÍ PARECE QUE HAY UN INTERRUPTOR DE ECO!" + ], + "sksp0350": [ + "¡ATÁCALO DONDE TIENE LAS PÚAS!" + ], + "sksp0351": [ + "¡PULSA EL BOTÓN!" + ], + "sksp0352": [ + "¡DEPRISA! ¡ANTES DE QUE VUELVAN A CAER!" + ], + "sksp0359": [ + "¡TIENES QUE USAR EL ECO ROJO!" + ], + "sksp0360": [ + "¡MUY BIEN! ¡HEMOS ACTIVADO LOS RESPIRADEROS DE ECO AMARILLO TAPONADOS!" + ], + "sksp0362": [ + "¡MIRA! ¡UNA BATERÍA HELADA!" + ], + "sksp0363": [ + "SOLO UN FLUT-FLUT PODRÍA SALTAR TAN LEJOS." + ], + "sksp0364": [ + "O NOS DAMOS PRISA, O ESTAMOS PERDIDOS." + ], + "sksp0365": [ + "ESCOGE UN CAMINO, ¡CUALQUIERA!" + ], + "sksp0366": [ + "¡DISPARA A LAS MINAS, O ESQUÍVALAS, JAK!" + ], + "sksp0367": [ + "ABRETE A PASO A TRAVÉS DE LOS BARRILES DE ECO OSCURO." + ], + "sksp0368": [ + "NO DEJES DE CHOCAR CONTRA LOS GLOBOS REFRIGERANTES." + ], + "sksp0369": [ + "¡NOS ESTAMOS SOBRECALENTANDO!" + ], + "sksp0370": [ + "¡ESTO VA A EXPLOTAR!" + ], + "sksp0371": [ + "¡DIRÍGETE AL ECO AZUL, JAK!" + ], + "sksp0372": [ + "DISPARA PARA ABRIRTE PASO." + ], + "sksp0373": [ + "¡YUUUJUUU! ¡VAYA VIAJE!" + ], + "sksp0374": [ + "¡SÍ! ¡ASÍ SE GIRA, SÍ SEÑOR!" + ], + "sksp0375": [ + "DISPARA A LAS ESPERAS ENERGÉTICAS PARA ABRIR LA PUERTA." + ], + "sksp0376": [ + "¡DISPARA A LAS ESFERAS ENERGÉTICAS ANTES DE QUE NOS QUEMEMOS!" + ], + "sksp0378": [ + "LA PUERTA ESTÁ ABIERTA, ¡VÁMONOS!" + ], + "sksp0379": [ + "¡EEEEEEEN MARCHAAAA!" + ], + "sksp0380": [ + "¡LO HEMOS CONSEGUIDO!" + ], + "sksp0381": [ + "¡ROMPE EL GENERADOR PARA LIBERAR AL SABIO!" + ], + "sksp0382": [ + "¡AGUANTA EN EL BORDE!" + ], + "sksp0383": [ + "TENEMOS COMPAÑÍA, JAK. ¡MONTONES DE LURKERS!" + ], + "sksp0384": [ + "¡DESTRUYE LOS GENERADORES!" + ], + "sksp0385": [ + "¡PULSA EL BOTÓN!" + ], + "sksp0386": [ + "¡ESE ROBOT NO ME DA MIEDO!" + ], + "sksp0387": [ + "¡SUBAMOS A ESAS PLATAFORMAS!" + ], + "sksp0388": [ + "¡QUE NO SE TE ESCAPE EL PRÓXIMO LANZADOOOOOR!" + ], + "sksp0389": [ + "¡CUIDADO!" + ], + "sksp0390": [ + "TENEMOS QUE RESCATAR A TODOS LOS SABIOS." + ], + "sksp0391": [ + "¿TÚ CREES QUE GOL ME DEVOLVERÁ MI ASPECTO?" + ], + "sksp0392": [ + "ASÍ QUE ESTA ES LA CIUDADELA DE GOL Y MAIA. ¡QUÉ MOOONA!" + ], + "sksp0393": [ + "¡ATERRIZA EN EL PRÓXIMO LANZADOR!" + ], + "sksp0394": [ + "¡ATRAPA EL ECO AMARILLO!" + ], + "sksp0395": [ + "¡DISPARA AL ROBOT, JAK!" + ], + "sksp0396": [ + "¡DISPÁRALE AL BRAZO!" + ], + "sksp0397": [ + "¡DISPARA A SU ARMA!" + ], + "sksp0398": [ + "¡DISPÁRALE A LA CABEZA!" + ], + "sksp0399": [ + "¡CUIDADO CON LA EXPLOSIÓN!" + ], + "sksp0400": [ + "¡SE ESTÁ RECARGANDO!" + ], + "sksp0401": [ + "¡RECOGE ECO AZUL!" + ], + "sksp0402": [ + "¡RECOGE ECO ROJO!" + ], + "sksp0403": [ + "¡ESTO ME DA MUY MAAAALA ESPINA!" + ], + "sksp0404": [ + "USA EL LANZADOR, ¡DEPRISA!" + ], + "sksp0405": [ + "¡AHORA SÍ QUE HAS ENFADADO AL ANIMAL!" + ], + "sksp0406": [ + "¡NO PODEMOS TOCAR A ESTOS TIPOS!" + ], + "sksp0407": [ + "¡USA EL ECO AMARILLO!" + ], + "sksp0408": [ + "¡DISPARA A ESTOS TIPOS!" + ], + "sksp0409": [ + "¡RECOGE EL ECO CLARO, JAK!" + ], + "sksp0410": [ + "PARECE MUY ENFADADO." + ], + "sksp0411": [ + "¡SALTA PARA EVITAR LAS EXPLOSIONES!" + ], + "sksp0412": [ + "¡AHORA MANDAMOS NOSOTROS!" + ], + "sksp0413": [ + "¡BUENA PUNTERÍA, SOCIO!" + ], + "sksp0414": [ + "¡ESO LES HA DOLIDO!" + ], + "sksp0415": [ + "¡AQUÍ VIENE!" + ], + "sksp0416": [ + "¡SII! ¡LO HAS CONSEGUIDO!" + ], + "sksp0417": [ + "GOL Y MAIA, ¡SE ACABÓ LO QUE ES BUENO!" + ], + "sksp0435": [ + "DERRIBA ESOS HUESOS." + ], + "sksp0443": [ + "¡GOLPEA ESAS PÉRTIGAS DESDE ABAJO!" + ], + "sksp0444": [ + "ESTAMOS ESPERANDO. ¿HOLA...?" + ], + "sksp0449": [ + "PULSA EL BOTÓN \"START\" PARA JUGAR." + ], + "sksp0450": [ + "¿QUIERES DEJAR DE JUGAR?" + ], + "sksp0451": [ + "YA DECÍA YO." + ], + "sksp0452": [ + "MUY BIEN, HASTA LUEGO." + ], + "sksp0455": [ + "TÍO, ¿QUIÉNES SON TODOS ESTOS?" + ], + "sksp0466": [ + "LO HE HECHO DE MIEDO ¿VERDAD, CHICAS?" + ], + "sksp0b42": [ + "QUE NO SE TE ESCAPEN MÁS PECES AMARILLOS. ¡CADA UNO DE ELLOS PESA 5 KILOS!", + "Y ESO ES UN MONTÓN, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "MUJER PÁJARO", + "BLUE SAGE": "SABIO AZUL", + "DAXTER": "DAXTER", + "FARMER": "GRANJERO", + "FISHERMAN": "PESCADOR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "JUGADOR", + "GEOLOGIST": "GEÓLOGA", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "EXPLORADOR", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "MUJER", + "ORACLE": "ORÁCULO", + "RED SAGE": "SABIO ROJO", + "SAMOS": "SAMOS", + "SCULPTOR": "ESCULTOR", + "WARRIOR": "GUERRERO", + "WILLARD": "WILLARD", + "WOMAN": "ANCIANO", + "YELLOW SAGE": "SABIO AMARILLO" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_fi-FI.json b/game/assets/jak1/subtitle/subtitle_lines_fi-FI.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_fi-FI.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_fr-FR.json b/game/assets/jak1/subtitle/subtitle_lines_fr-FR.json new file mode 100644 index 0000000000..bdb33bcb9f --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_fr-FR.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "SUPER, VOUS AVEZ LES 20 PILES NÉCESSAIRES À MON BOUCLIER THERMIQUE !", + "ATTENTION, LE BOUCLIER NE PROTÈGE LE ZOOMER QUE", + "JUSQU'À 500 DEGRÉS. ALORS VEILLEZ À NE PAS LES ATTEINDRE !", + "IL SE RÉCHAUFFERA TRÈS VITE SI VOUS SURVOLEZ LA LAVE.", + "ET SI VOUS ATTEIGNEZ 500 DEGRÉS, CE SERA FINI !", + "FINI ?! COMME DU MÉTAL TOUT FONDU ET BRÛLANT ?!", + "LE CANYON DE FEU EST TRÈS CHAUD, ALORS ESSAYEZ", + "DE FAIRE DES SAUTS POUR ÉVITER LE SOL BRÛLANT.", + "J'AI AUSSI RELÂCHÉ DES BALLONS BLEUS DE REFROIDISSEMENT", + "QUE VOUS POUVEZ UTILISER POUR RAFRAÎCHIR LE BOUCLIER.", + "ET QUAND VOUS AUREZ TRAVERSÉ, N'OUBLIEZ PAS D'ACTIVER", + "LA PORTE DE TÉLÉPORTATION DANS LE LABO DU SAGE BLEU.", + "AINSI NOUS POURRONS NOUS TÉLÉPORTER JUSQU'À VOUS.", + "BONNE CHANCE !" + ], + "assistant-introduction-blue-eco-switch": [ + "HÉ POUPÉE ! ET SI ON ALLAIT FAIRE UN TOUR DE ZOOMER ANTI-GRAV ?", + "RÈGLE NUMERO 1: JE NE SORS PAS AVEC LES ANIMAUX.", + "AH... TU NE SAIS PAS CE QUE TU MANQUES.", + "ÉCOUTEZ, SI VOUS CHERCHEZ QUELQUE CHOSE À FAIRE, MON PÈRE M'A TOUJOURS PARLÉ", + "D'UN ANCIEN OLÉODUC PRÉCURSOR ENFOUI SOUS TERRE.", + "CERTAINS DE CES TUYAUX SE TERMINENT EN ORIFICE, D'OÙ L'ÉCO S'ÉCOULE.", + "QUELQUES UNS ONT ÉTÉ BOUCHÉS ET DEPUIS L'ÉCO EST BLOQUÉE.", + "IL DOIT Y AVOIR UN MOYEN DE LES OUVRIR.", + "J'AI DÉCOUVERT UNE PARTIE DE L'OLÉODUC AU TEMPLE INTERDIT.", + "ESSAYEZ D'Y TROUVER UNE SORTE D'INTERRUPTEUR." + ], + "assistant-introduction-race-bike": [ + "SALUT POUPÉE ! QU'EST-CE QUE TU FAIS ?", + "FAIS ATTENTION À ÇA !", + "J'ESSAYE DE TROUVER UN MOYEN POUR TRANSPORTER LE ZOOMER GRACE", + "AUX TRANS-PADS QUE LES PRÉCURSORS ONT LAISSÉ PARTOUT DANS LE MONDE.", + "SI JAMAIS VOUS EN TROUVEZ UN, JE PEUX LOCALISER LE COMMUNICATEUR", + "ET VOUS ENVOYER LE ZOOMER.", + "ESSAYEZ DE TROUVER UN TRANS-PAD SUR L'ÎLE DE LA BRUME.", + "ET AILLEURS AUSSI !" + ], + "assistant-lavatube-end-resolution": [ + "HÉ ! MAIS OÙ IL EST PASSÉ LE PETIT VIEUX TOUT VERT ?", + "C'EST TERRIBLE, PÈRE A DISPARU !", + "JE CROIS BIEN QUE GOL ET MAIA L'ONT KIDNAPPÉ LUI AUSSI.", + "DU CALME MA BELLE, JE CONTRÔLE LA SITUATION.", + "TU CONTRÔLES ?!", + "LES ARMÉES LURKERS CONTINUENT DE SE DÉPLOYER,", + "LES SAGES ONT ÉTÉ KIDNAPPÉS,", + "GOL ET MAIA ONT RASSEMBLÉ ASSEZ D'ÉCO POUR METTRE LEUR TERRIBLE PLAN À EXÉCUTION", + "ET POUR LES ARRÊTER, IL VA FALLOIR QUE VOUS PARVENIEZ À LEUR CITADELLE !", + "OUAIS... C'EST- C'EST À PEU PRÈS ÇA.", + "IL FAUT QUE VOUS SAUVIEZ MON PÈRE AVANT QU'IL NE SOIT TROP TARD !", + "ET JAK,", + "SOIS PRUDENT.", + "OUAIS, \"NOUS\" LE SERONS !" + ], + "assistant-lavatube-start-resolution": [ + "AH AH ! TRÈS BIEN !", + "AVEC CES PILES D'ÉNERGIE SUPPLÉMENTAIRES", + "JE PEUX ALIMENTER LE BOUCLIER THERMIQUE POUR QU'IL RÉSISTE À TOUTE CETTE LAVE !", + "MAIS LE BOUCLIER À SES LIMITES.", + "IL RÉSISTERA À DES TEMPÉRATURES PROCHES DE 800 DEGRÉS, MAIS PAS PLUS !", + "ALORS SURVEILLE LA JAUGE !", + "JE N'OSE PAS IMAGINER CE QUE CAUSERAIT DE TELLES TEMPÉRATURES À TON ZOOMER", + "SI TU N'AVAIS PLUS DE BOUCLIER !", + "OUAIS, C'EST CHAUD LÀ...", + "QUOI ?! LE ZOOMER ? ET NOUS ALORS ?!", + "IL N'Y AURAIT PAS UN AUTRE CHEMIN POUR ALLER À LA CITADELLE DE GOL ?", + "ÉCOUTEZ, J'AI LÂCHÉ D'AUTRES BALLONS DE REFROIDISSEMENT DANS LE CANAL.", + "POUR QUE VOUS FASSIEZ BAISSER LA TEMPÉRATURE.", + "N'OUBLIEZ PAS D'ACTIVER LA PORTE DE TÉLÉPORTATION DANS LE LABO DU SAGE JAUNE.", + "NOUS COMPTONS SUR VOUS !" + ], + "assistant-reminder-1-blue-eco-switch": [ + "JE SUIS SÛRE QUE SI VOUS REGARDEZ DANS LE TEMPLE PRÉCURSOR INTERDIT", + "VOUS TROUVEREZ UN MOYEN D'ACTIVER", + "L'ÉCO BLEUE BLOQUÉE SUR LA PLAGE DE LA SENTINELLE." + ], + "assistant-reminder-1-generic": [ + "HÉ, LES GARS ! CONTINUEZ À RÉCUPÉRER DES PILES D'ÉNERGIE !", + "GRÂCE À ELLES, VOUS IREZ DANS LE NORD !" + ], + "assistant-reminder-1-race-bike": [ + "J'AI FINALEMENT RÉUSSI À UTILISER LES TRANS-PADS !", + "MAINTENANT, ALLEZ SUR L'ÎLE DE LA BRUME ET JE VOUS ENVERRAIS LE ZOOMER !" + ], + "assistant-village2-introduction": [ + "OUAH !", + "JE CROIS QUE JE NE M'HABITUERAI JAMAIS À", + "CETTE ESPÈCE DE CHATOUILLEMENT DU TÉLÉPORTEUR.", + "HÉ !", + "ON DIRAIT QUE LE SAGE À FAIT UNE FÊTE !", + "OH ! LÀ-BAS ! LE VILLAGE DES PIERRES EST EN FLAMMES !", + "OH, ÇA C'EST UNE SACRÉE FÊTE !", + "NON, NON !", + "LE VILLAGE DES PIERRES SE FAIT BOMBARDER DE ROCHERS ENFLAMMÉS ! ", + "ET ON DIRAIT QUE LE SAGE BLEU TRAVAILLAIT SUR", + "UNE MACHINE À LÉVITATION POUR LES DÉPLACER.", + "EN SUPPOSANT QUE CELA FONCTIONNE IL VA NOUS", + "FALLOIR DES PILES D'ÉNERGIE POUR L'ALIMENTER.", + "JE PENSE QU'IL VA FALLOIR QUE VOUS EN TROUVIEZ PLUS.", + "NOUS FERIONS BIEN DE REGARDER SES NOTES.", + "JAK, VA VOIR LES VILLAGEOIS ET REVIENS NOUS DIRE CE QU'IL SE PASSE.", + "ET EMMÈNE LA BOULE DE POILS !" + ], + "assistant-village2-introduction-flutflut": [ + "DE RETOUR, LES GARÇONS ?", + "\"GARÇONS\" ?", + "HÉ POUPÉE, JE SUIS UN GRAND-", + "EUH...", + "UN GRAND... TRUC POILU.", + "OH ! DEVINEZ QUOI. AVEC LA PERMISSION DE LA DAME AUX OISEAUX", + "J'AI ÉQUIPÉ LE BÉBÉ FLUT-FLUT D'UNE SELLE !", + "IL SEMBLE QU'IL Y AIT UN TRANS-PAD PRÉCURSOR DANS LE MARÉCAGE.", + "SI VOUS LE TROUVEZ, JE VOUS ENVERRAI LE FLUT-FLUT AVEC TOUT SON ÉQUIPEMENT.", + "IL FAIT DE GRANDS BONDS. CELA POURRAIT VOUS ÊTRE UTILE POUR TRAVERSER LE GOUDRON." + ], + "assistant-village2-introduction-robbers": [ + "HÉ, VOUS DEUX !", + "JE SAIS OÙ VOUS POUVEZ TROUVER UNE AUTRE PILE D'ÉNERGIE !", + "SELON CES NOTES,", + "DES LURKERS VOLANTS SONT VENUS IL Y A QUELQUES JOURS POUR EN VOLER", + "UNE AU SAGE BLEU ET SE SONT ENVOLÉS DANS LE BASSIN PRÉCURSOR.", + "VOUS POURRIEZ TRAQUER CES LURKERS AVEC VOTRE ZOOMER", + "JUSQU'À TROUVER CELUI QUI A LA PILE D'ÉNERGIE !", + "VOUS TROUVEREZ LE ZOOMER SUR LE TRANS-PAD À L'ENTRÉE DU BASSIN PRÉCURSOR." + ], + "assistant-village2-introduction-room": [ + "APPAREMMENT, LA STRUCTURE PRÉCURSOR CÔTIÈRE MÈNE À UNE CITÉ PERDUE SOUS-MARINE.", + "LE SAGE BLEU A ESSAYÉ DE TROUVER UN MOYEN POUR", + "FAIRE REMONTER UNE DES SALLES À LA SURFACE.", + "MAIS IL N'Y EST JAMAIS PARVENU.", + "VOUS DEVRIEZ ALLER VOIR ÇA !", + "EUH... ÇA NE GROUILLERAIT PAS", + "DE REQUINS LURKERS DANS CES EAUX ?", + "POURQUOI ? TU AS PEUR ?", + "MOI ?! BIEN SÛR QUE NON !", + "C'ÉTAIT JUSTE POUR JAK", + "V-VOUS EUH...", + "VOUS SAVEZ COMME IL PEUT ÊTRE CHOCHOTTE.", + "BIEN, SI VOUS NAGEZ AU-DESSUS DU RÉCIF DE CORAIL", + "LES REQUINS LURKERS NE VOUS EMBÊTERONT PAS.", + "ILS N'AIMENT PAS LES BAS-FONDS." + ], + "assistant-village2-reminder-1-flutflut": [ + "JE SUIS SÛRE QUE LE FLUT-FLUT VOUS SERA UTILE DANS LE MARÉCAGE.", + "TROUVEZ LE TRANS-PAD ET JE VOUS L'ENVERRAI." + ], + "assistant-village2-reminder-1-robbers": [ + "JE VAIS TÉLÉPORTER VOTRE ZOOMER AU BASSIN PRÉCURSOR", + "POUR QUE VOUS PUISSIEZ CHASSER CES LURKERS VOLANTS DONT NOUS AVONS PARLÉ." + ], + "assistant-village2-reminder-1-room": [ + "VOUS AVEZ NAGÉ JUSQU'À LA CITÉ PRÉCURSOR PERDUE ?", + "VOUS DEVEZ ESSAYER DE FAIRE REMONTER LA SALLE QUE LE SAGE BLEU CHERCHE." + ], + "assistant-village2-resolution": [ + "SUPER, VOUS AVEZ LES PILES POUR LA MACHINE !", + "ELLE DEVRAIT FOURNIR ASSEZ DE PUISSANCE POUR SOULEVER CE ROCHER.", + "NOUS Y VOILÀ !", + "ATTENTION EN COMBATTANT CE MONSTRE LURKER AU SOMMET !", + "ATTENDS ! EUH...", + "JE VAIS RESTER ICI ET PROTÉGER KEIRA.", + "JAK, JE CROIS QUE TU PEUX T'OCCUPER DE CE MONSTRE SANS MOI.", + "OH ! C'EST TELLEMENT HÉROÏQUE DE TA PART." + ], + "assistant-village3-reminder": [ + "HÉ, LES GARS ! CONTINUEZ À RÉCUPÉRER DES PILES D'ÉNERGIE.", + "GRÂCE À ELLES, VOUS IREZ DANS LE NORD." + ], + "billy-accept": [ + "BIEN ! LES RATS VONT BIENTÔT REVENIR.", + "DESCENDEZ-LES TOUS ET EMPÊCHEZ-LES DE MANGER AU MOINS UN DES PLATS." + ], + "billy-introduction": [ + "SALUT VOUS ! IL VOUS PLAIT MON MARÉCAGE ?", + "C'EST À MOI TOUT ÇA !", + "TOUT CE QUI NE S'ENFONCE PAS DANS LA VASE !", + "À L'ODEUR, VOTRE BAIGNOIRE A DÛ S'ENFONCER DANS LA VASE DEPUIS DES LUSTRES !", + "C'EST QUOI UNE BAIGNOIRE ?", + "EN TOUT CAS J'AI D'AUTRES PROBLÈMES POUR L'INSTANT.", + "ON DIRAIT QUE DES VERMINES DE LURKERS SONT DANS LE COIN", + "ET POSENT LEURS SALES PETITES PATTES SUR TOUT CE QUI BOUGE !", + "ÇA EFFRAYE MON HIP-HOG, FARTHY.", + "ÇA FAIT DES LUSTRES QU'IL N'EST PAS REVENU.", + "JE LUI AI PRÉPARÉ SON PLAT PRÉFÉRÉ", + "MAIS CES SALES RATS N'ARRÊTENT PAS DE TOUT VOLER !", + "SI VOUS POUVEZ ÉLOIGNER CES SALES PETITES BÊTES ASSEZ LONGTEMPS", + "JE SAIS QUE FARTHY SENTIRA SA BOUFFE ET REVIENDRA !", + "VOUS ALLEZ M'AIDER, HEIN ?" + ], + "billy-reject": [ + "BON, SI VOUS CHANGEZ D'AVIS", + "VOUS SAVEZ OÙ ME TROUVER, HEIN ?", + "HA HA HA HA HA." + ], + "billy-reminder-1": [ + "AH ! VOUS ÊTES REVENUS POUR LES RATS ?" + ], + "billy-resolution": [ + "CES SALES RATS... ILS SONT VRAIMENT RAPIDES", + "PAS VRAI ? ON REMET ÇA ?" + ], + "bird-lady-beach-resolution": [ + "MON DIEU, J'ESPÈRE QUE LE PETIT VA BIEN.", + "VOUS MÉRITEZ CETTE PILE D'ÉNERGIE.", + "MAMAN ?", + "MAMAN !", + "OH NON ! NON, NON, NON, NON !", + "OH. COMME C'EST MIGNON. IL CROIT VOIR SA MAMAN.", + "SA MAMAN ? JE NE SUIS PAS TA MÈRE !", + "TU VOIS DES PLUMES LÀ ?", + "C'EST LE COUP DE FOUDRE.", + "ÉCOUTEZ MES GARÇONS, JE VAIS EMMENER CE PETIT POUSSIN AU VILLAGE", + "ET M'ARRANGER AVEC LE SAGE POUR EN PRENDRE SOIN." + ], + "bird-lady-introduction": [ + "CE PETIT OISEAU A L'AIR BIEN MALADE !", + "HUH ! VOUS N'AVEZ PAS L'AIR TRÈS EN FORME NON PLUS !", + "OH, DÉSOLÉE !", + "JE VOUS AI PRIS POUR UN RING-FRING ORANGE TACHETÉ.", + "VOUS SAVEZ, HIER J'AI VU", + "D'HORRIBLES CRÉATURES CAPTURER UNE MÈRE FLUT-FLUT VERS LA PLAGE", + "MAINTENANT IL Y A CE PAUVRE PETIT OEUF ORPHELIN", + "EN HAUT DE LA FALAISE !", + "ET JE NE PEUX PAS L'ATTEINDRE !", + "SI VOUS POUVIEZ GRIMPER LÀ-HAUT POUR LE POUSSER.", + "J'AI MIS UN TAS DE PAILLE EN BAS POUR LE RATTRAPER.", + "RENDEZ SERVICE À UNE VIEILLE DAME, VOUS AUREZ UNE PILE D'ÉNERGIE." + ], + "bird-lady-reminder-1": [ + "OH, VOUS REVOILÀ !", + "AVEZ-VOUS TROUVÉ L'OEUF BLEU SUR LA FALAISE ?", + "FAITES LE TOMBER ET JE VOUS DONNERAI UNE PILE D'ÉNERGIE." + ], + "bird-lady-reminder-2": [ + "ALORS LES GARÇONS, VOUS ÊTES ENCORE LÀ ?", + "JE SUIS SÛRE QUE CE PAUVRE PETIT OEUF BLEU", + "A BIEN FROID SUR LA FALAISE.", + "POUSSEZ LE DANS LE VIDE POUR LE SAUVER", + "ET JE VOUS DONNERAI UNE PILE D'ÉNERGIE." + ], + "bluesage-resolution": [ + "BIEN JOUÉ LES AMIS !", + "LE VIEUX SAMOS VOUS AVAIT BIEN JUGÉ !", + "DES GRANDS TAS DE MÉTAL PRÉCURSOR !", + "ON NE PEUT PAS LAISSER CETTE INSIDIEUSE CRÉATION MÉCANIQUE TOUT RAVAGER !", + "JE VAIS TENTER DE FAIRE RÉAGIR LE CHAMP DU BOUCLIER", + "EN PROVOQUANT UN FLUX ÉNERGÉTIQUE", + "ENTRE LE GRAND PORTAIL ET MOI-MÊME !", + "EUH... OUAIS. ON FAIT COMME ÇA. EUH... PENDANT CE TEMPS-LÀ, ON VA CHERCHER DE L'AIDE.", + "COMPLÈTEMENT FÊLÉ CE TYPE !" + ], + "death-0181": [ + "NE VA PAS VERS LA LUMIÈRE, JAK ! NE VA PAS VERS LA LUMIÈRE !" + ], + "death-0182": [ + "HÉ, JAK ! EST-CE QUE JE P-", + "PEUX AVOIR TA COLLECTION D'INSECTES ?" + ], + "death-0184": [ + "TANT QUE TU ES PAR TERRE.", + "TU POURRAIS ME MASSER LES PIEDS ?" + ], + "death-0186": [ + "NE T'INQUIETE PAS ! JE TE VENGERAI !", + "... DANS TES RÊVES." + ], + "death-0187": [ + "EH BIEN !", + "JE PRÉFÈRE QUE CE SOIT TOI, QUE MOI." + ], + "death-0191": [ + "ÇA A DÛ FAIRE MAL ÇA.", + "IL FAUT QUE J'APPELLE DU RENFORT ?" + ], + "death-0193": [ + "PRIMO: RESTER EN VIE !", + "SECONDO:", + "ESSAYER DE NE PLUS JAMAIS REFAIRE UN TRUC COMME ÇA !" + ], + "death-0195": [ + "J'ÉTAIS JUSTE DERRIÈRE TOI, JAK !", + "AH SI ! SI, J'Y ÉTAIS." + ], + "death-0197": [ + "PANSEMENTS ! EUH... BRANCARD !", + "POUAH... CHEWING-GUM ?" + ], + "death-0199": [ + "JE DIRAI UN TRUC DÉCHIRANT À L'ENTERREMENT, DU GENRE:", + "\"MAIS COMMENT EST-CE QUE JE VAIS REDEVENIR NORMAL MAINTENANT ?!\"" + ], + "death-0202": [ + "DIS \"BONNE NUIT\" JAK !" + ], + "explorer-introduction": [ + "AH, BIEN LE BONJOUR MON GARÇON !", + "TA VISITE NE TOMBE PAS VRAIMENT AU BON MOMENT.", + "J'ALLAIS PARTIR POUR L'UNE DE MES EXPLORATIONS HIER,", + "QUAND J'AI RÉALISÉ QUE J'ÉTAIS À COURT D'ORBES PRÉCURSORS.", + "J'AURAIS POURTANT JURÉ QUE J'EN AVAIS 90.", + "MAIS JE CROIS QUE TON JEUNE AMI", + "TU SAIS, L'ESPÈCE DE SALE PETITE VERMINE TEIGNEUSE", + "LES A PROBABLEMENT CHAPARDÉES POUR S'AMUSER.", + "BREF, PASSONS. PRÊTERAIS-TU 90 ORBES PRÉCURSORS", + "À TON CHER ONCLE ? POUR QU'IL PUISSE SE REMETTRE EN ROUTE.", + "JE T'OFFRIRAIS UNE PILE D'ÉNERGIE EN ÉCHANGE." + ], + "explorer-reminder-1": [ + "QUOI ? TU N'AS PAS TOUT LÀ ?", + "OH... AVEC MOINS DE 90 ORBES PRÉCURSORS", + "JE N'AI AUCUNE CHANCE DE PARTIR MON GARÇON." + ], + "explorer-reminder-2": [ + "VOYONS VOIR. C'EST 90 ORBES PRÉCURSORS POUR UNE PILE D'ÉNERGIE !", + "C'EST UN MARCHÉ HONNÊTE, NON ?" + ], + "explorer-resolution": [ + "JE VOIS QUE VOUS REVENEZ POUR L'ÉCHANGE.", + "BIEN, BIEN, TRÈS TRÈS BIEN !", + "VOUS AVEZ LE NOMBRE D'ORBES PRÉCURSORS PRÉVUES ?", + "FAITES BON USAGE DE CETTE PILE D'ÉNERGIE BIEN MÉRITÉE !", + "TCHAO ! SALUT ! BYE-BYE !" + ], + "farmer-introduction": [ + "IL FAUT TRAIRE CES YAKOWS ! IL FAUT TRAIRE CES YAKOWS !", + "OH, C'EST TOI ! JE REPOSAIS JUSTE MES VIEUX OS.", + "J'AI ESSAYÉ DE FAIRE RENTRER CES VACHES", + "TOUTE LA JOURNÉE DANS LEUR ENCLOS.", + "DE DRÔLES DE CRÉATURES ONT TENTÉES DE ME LES VOLER.", + "TU POURRAIS AIDER UN VIEIL HOMME EN LES RAMENANT DANS LEUR ENCLOS ?" + ], + "farmer-reminder-1": [ + "HÉ ! MES YAKOWS SONT TOUJOURS EN LIBERTÉ !", + "TU NE PEUX PAS ESSAYER DE ME LES RAMENER ?" + ], + "farmer-reminder-2": [ + "CES FICHUS YAKOWS SE BALADENT ENCORE !", + "TU ME LES RAMÈNES DANS L'ENCLOS OU QUOI ?" + ], + "farmer-resolution": [ + "AH ! BIEN JOUÉ P'TIT GARS !", + "TU AS RÉUSSI À RAMENER CES SACS À PUCES.", + "JE VAIS DORMIR TRANQUILLE.", + "PRENDS CETTE PILE D'ÉNERGIE POUR TES EFFORTS." + ], + "finalbosscam-white-eco": [ + "DE L'ÉCO DE LUMIÈRE ! ÇA EXISTE !", + "IL NE FAUT PAS QU'ILS S'EN EMPARENT !" + ], + "fisher-accept": [ + "IL Y A DEUX TYPES DE POISSONS À PRENDRE:", + "CEUX D'1KG ET CEUX DE 5KG.", + "SI TU LAISSES PASSER 20KG DE BONS POISSONS,", + "JE TE REPRENDS MON FILET !", + "IL Y A DES ANGUILLES TOXIQUES DANS CES EAUX.", + "SI TU ATTRAPES UNE DE CES SALES BESTIOLES,", + "ELLE EMPOISONNERA TOUTES TES PRISES !" + ], + "fisher-introduction": [ + "IL Y A QUOI DANS VOTRE PANIER ?", + "RIEN D'INTÉRESSANT.", + "CES MONSTRES DE L'OCÉAN ONT DÉVORÉ MON MATÉRIEL DE PÊCHE !", + "ET DEPUIS ILS AVALENT MES PRISES !", + "J'AI TOUT ESSAYÉ MAIS-", + "MAIS JE N'ATTRAPE PLUS RIEN DANS CETTE FICHUE RIVIÈRE...", + "OUH... VOTRE HALEINE SÛREMENT !", + "TU CROIS QUE TU PEUX FAIRE MIEUX ?", + "ESSAYE DE PÊCHER AVEC CE P'TIT FILET !", + "JE TE DONNE UNE PILE D'ÉNERGIE", + "SI TU RAMASSES 200KG DE BESTIOLES !", + "ET VOUS LAISSE À TOI ET TA CREVETTE,", + "MON BATEAU POUR ALLER À L'ÎLE DE LA BRUME.", + "ALORS, TU VEUX TENTER TA CHANCE ?" + ], + "fisher-reject": [ + "EH BIEN ! SI TU VEUX UNE PILE D'ÉNERGIE UN DE CES QUATRE,", + "TU SAIS OÙ ME TROUVER." + ], + "fisher-reminder-1": [ + "ALORS, ON VA AFFRONTER LA RIVIÈRE ?" + ], + "fisher-resolution": [ + "TU L'AS FAIT ! TU AS PRIS 200KG DE POISSON !", + "PAS TROP MAL, POUR DES MARINS D'EAU DOUCE.", + "VOILÀ LA PILE D'ÉNERGIE PROMISE", + "ET TU PEUX PRENDRE MON BATEAU AU BORD DU VILLAGE", + "QUAND TU VOUDRAS." + ], + "fishermans-boat-ride-to-village1-alt": [ + "CES DEUX-LÀ POURRAIENT NOUS CAUSER DES PROBLÈMES.", + "NE T'INQUIÈTE PAS. JE VAIS ENVOYER MON ARMÉE DE LURKERS POUR LES AFFRONTER.", + "ASSURE-TOI QU'ILS NE S'APPROCHENT DE NOS OPÉRATIONS DANS LE NORD.", + "JE DOUTE QU'ILS ARRIVENT AUSSI LOIN.", + "AUQUEL CAS, UNE SURPRISE LES ATTEND AU VILLAGE DES PIERRES.", + "ALORS... TU VAS LAISSER KLAWW SORTIR DE SA CAGE ?", + "JE PENSE QUE ÇA VAUT LE COUP D'ESSAYER.", + "EN EFFET." + ], + "gambler-introduction-1": [ + "OH, NON ! PAS UN AUTRE \"HÉROS\"...", + "J'AI PERDU MA CULOTTE LORS D'UN COMBAT", + "D'UN PSEUDO HÉROS CONTRE LE MONSTRE.", + "CROYEZ-MOI, IL FAUT MISER SUR LE MONSTRE.", + "CE PARI M'A COMPLÈTEMENT RUINÉ !", + "MAIS J'AI UNE PROPOSITION:", + "APPORTEZ-MOI 90 ORBES POUR QUE JE PUISSE ME REFAIRE ET SORTIR DE CE TONNEAU", + "EN ÉCHANGE D'UNE PILE D'ÉNERGIE.", + "ET SI ÇA VOUS TENTE, JE VOUS PROPOSE UN AUTRE PARI.", + "SI VOUS BATTEZ LE RECORD DE LA COURSE DU DÉFILÉ DU DÉFUNT DANS LE BASSIN PRÉCURSOR,", + "À MOI LE GROS LOT !", + "CE QUI VOUS VAUDRA UNE NOUVELLE PILE D'ÉNERGIE !" + ], + "gambler-reminder-money": [ + "HÉ, N'OUBLIEZ PAS LES ORBES QU'IL ME FAUT !", + "90 CONTRE UNE. UNE PILE D'ÉNERGIE, J'ENTENDS !" + ], + "gambler-reminder-race": [ + "BON, QU'EST-CE QUE VOUS ATTENDEZ LÀ ?", + "ÇA COMMENCE À GRATTER !", + "BATTEZ LE RECORD DU DÉFILÉ DU DÉFUNT", + "ET À NOUS LA VICTOIRE !" + ], + "gambler-resolution-money": [ + "HÉ HÉ HÉ ! OH, OUI !", + "CES ORBES VONT ENFIN M'AIDER À SORTIR DE CE TONNEAU.", + "VOILÀ LA PILE D'ÉNERGIE PROMISE !" + ], + "gambler-resolution-race": [ + "OH, BIEN JOUÉ PETIT ! JE SAVAIS QU'ON POUVAIT GAGNER.", + "NOUS IRONS LOIN TOUS LES DEUX !", + "VOILÀ TA PILE D'ÉNERGIE ET MOI JE VAIS ENCAISSER." + ], + "geologist-introduction": [ + "VOUS M'AVEZ L'AIR VRAIMENT TRÈS DOUÉS TOUS LES DEUX !", + "JE FAIS UNE ÉTUDE SCIENTIFIQUE ET VOUS POURRIEZ PEUT-ÊTRE M'AIDER.", + "HÉ, C'EST NOTRE AVENTURE !", + "C'EST NOUS QUI AVONS BESOIN DE VOTRE AIDE !", + "ALORS NOUS POUVONS NOUS ENTRAIDER !", + "J'ÉTUDIE LE COMPORTEMENT DES TAUPES ÉCLAIRS", + "DANS LE BASSIN PRÉCURSOR PRÈS DE NOTRE VILLAGE.", + "MAIS CES HORRIBLES LURKERS ONT EFFRAYÉ LES TAUPES QUI SONT REMONTÉES.", + "ET COMME ELLES SONT AVEUGLES, ELLES N'ARRIVENT PAS À RETOURNER SOUS TERRE.", + "SI VOUS PARVENEZ À LES RAMENER VERS LEURS GALERIES,", + "VOUS LEUR SAUVEREZ SÛREMENT LA VIE.", + "UNE PILE D'ÉNERGIE VOUS CONVAINCRA SANS DOUTE.", + "OUAIS, LES TAUPES ÉCLAIRS... ON S'EN OCCUPE", + "MAIS CONTRE DEUX PILES D'ÉNERGIE !", + "BIEN TENTÉ, MAIS VOUS AUREZ DROIT À UNE AUTRE PILE D'ÉNERGIE", + "SI VOUS ME TROUVEZ 90 ORBES PRÉCURSORS POUR MON ÉQUIPEMENT DE RECHERCHE.", + "C'EST D'ACCORD ?" + ], + "geologist-reminder-moles": [ + "AVEZ-VOUS RAMENÉ LES TAUPES ÉCLAIRS SOUS TERRE ?", + "DÉPÊCHEZ-VOUS, LA LUMIÈRE DU SOLEIL LEUR FAIT DU MAL !" + ], + "geologist-reminder-money": [ + "J'AI BESOIN DE CES ORBES POUR POUVOIR POURSUIVRE MES RECHERCHES." + ], + "geologist-resolution-moles": [ + "MERCI D'AVOIR SAUVÉ CES TAUPES, C'EST TRÈS GENTIL DE VOTRE PART !", + "VOILÀ UNE PILE D'ÉNERGIE POUR VOUS.", + "JE VAIS POUVOIR POURSUIVRE MES RECHERCHES." + ], + "geologist-resolution-money": [ + "OH, VOUS AVEZ LES ORBES !", + "VOILÀ LA PILE D'ÉNERGIE COMME PROMIS." + ], + "green-sagecage-daxter-sacrifice": [ + "L'ÉCO DE LUMIÈRE, ÇA POURRAIT ME RETRANSFORMER !", + "OU BIEN, ÇA POURRAIT ARRÊTER CE ROBOT.", + "RESTER POILU, SAUVER LE MONDE. QUEL DILEMME.", + "BON D'ACCORD, ON SAUVE LE MONDE.", + "MAIS VITE ALORS ! AVANT QUE JE CHANGE D'AVIS." + ], + "green-sagecage-introduction": [ + "VOUS VOUS ÊTES ENFIN DÉCIDÉ À VENIR !", + "C'EST UN VRAI PLAISIR !", + "ALORS C'EST VOUS QUI PASSEZ LA SERPILLIÈRE MAINTENANT ?", + "PAS LE TEMPS DE PLAISANTER DAXTER ! GOL ET MAIA NOUS ONT KIDNAPPÉS", + "POUR ATTÉNUER NOTRE ÉNERGIE ET ALIMENTER LEUR ABOMINABLE MACHINE !", + "ILS ONT COMBINÉ LES RESTES FONCTIONNELS D'UN ROBOT PRÉCURSOR", + "AVEC DES OBJETS RÉCUPÉRÉS DANS TOUT LE PAYS.", + "PUIS ILS ONT AJOUTÉ QUELQUES DIABLERIES DE LEUR CRU POUR CRÉER", + "LA SEULE CHOSE CAPABLE D'OUVRIR LES SILOS D'ÉCO NOIRE.", + "SI VOUS NOUS LIBÉREZ TOUS LES QUATRE, NOUS ASSOCIERONS NOS POUVOIRS", + "POUR DÉTRUIRE LE CHAMP DE FORCE DU ROBOT", + "AVANT QU'ILS NE S'EN SERVENT POUR DÉTRUIRE LE MONDE." + ], + "green-sagecage-outro-beat-boss-a": [ + "FAIS QUELQUE CHOSE !", + "NOOOOOOOON !" + ], + "green-sagecage-outro-beat-boss-b": [ + "EH BIEN ! ON DIRAIT QUE J'AI ÉTÉ UN PEU DUR AVEC VOUS.", + "VOUS ÊTES DE LA CRÈME DE HÉROS !", + "MAIS DAXTER, ON NE VA PLUS POUVOIR TE TRANSFORMER !", + "NE T'INQUIÈTE PAS CHÉRIE.", + "TU SAIS CE QU'ON DIT:", + "\"CE N'EST PAS LA TAILLE QUI COMPTE\". N'EST-CE PAS ?", + "JAK, TU POSSÈDES UN TALENT INCROYABLE POUR CANALISER L'ÉCO !", + "SAMOS, IL SEMBLERAIT QUE C'EST TOI QUI AVAIS RAISON APRÈS TOUT !", + "ET KEIRA, JE DOIS DIRE QUE SANS TON AIDE ET TON INGÉNIOSITÉ,", + "RIEN DE TOUT CELA N'AURAIT ÉTÉ POSSIBLE.", + "PEUT-ÊTRE AVONS-NOUS TROUVÉ UN AUTRE SAGE", + "MAINTENANT QUE GOL ET MAIA SONT PERDUS.", + "OUI, GOL ET MAIA... L'ÉCO NOIRE LES A PROBABLEMENT DÉTRUITS.", + "PROBABLEMENT...", + "QUELLE IMPORTANCE ? RAMENEZ-LES, ON LEUR FERA LEUR AFFAIRE ! PAS VRAI JAK ?", + "J'AI DIT, PAS VRAI JAK ?", + "CALME TES ARDEURS, MON POTE !" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "PAR LES YAKOWS ! QU'EST-CE QUE ÇA PEUT BIEN ÊTRE ?", + "OUAH ! C'EST UNE ANCIENNE PORTE PRÉCURSOR !", + "ON DIRAIT QU'ELLE NE S'OUVRIRA QUE", + "LORSQUE LES 100 TROUS SERONT REMPLIS DE PILES D'ÉNERGIE.", + "ON EST DES HÉROS N'OUBLIE PAS ! NOUS AVONS 100 PILES D'ÉNERGIE !" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "PAR LES YAKOWS ! QU'EST-CE QUE ÇA PEUT BIEN ÊTRE ?", + "OUAH ! C'EST UNE ANCIENNE PORTE PRÉCURSOR !", + "ON DIRAIT QU'ELLE NE S'OUVRIRA QUE", + "LORSQUE LES 100 TROUS SERONT REMPLIS DE PILES D'ÉNERGIE.", + "OH NON ! C'EST REPARTI..." + ], + "green-sagecage-outro-big-finish": [ + "OUAH ! QU'EST-CE QUE C'EST ?", + "C'EST MAGNIFIQUE !", + "PAR LES PRÉCURSORS..." + ], + "green-sagecage-outro-preboss": [ + "TU ARRIVES TROP TARD, SAMOS.", + "UNE FOIS QUE JE POSSÉDERAI DE L'ÉCO NOIRE EN ABONDANCE,", + "JE DÉTIENDRAI LA CLÉ MÊME DE LA CRÉATION !", + "C'EST DE LA FOLIE !", + "SI TU RELÂCHES AUTANT D'ÉCO NOIRE, TU DÉTRUIRAS TOUT !", + "IL N'Y A QU'À VOIR CE QU'ELLE T'A FAIT !", + "ELLE NOUS A DONNÉ UNE BEAUTÉ QUI DÉPASSE TA COMPRÉHENSION !", + "\"BEAUTÉ\" ? VOUS VOUS ÊTES REGARDÉS DANS UN MIROIR RÉCEMMENT ?", + "ATTENDS QUE NOUS AYONS OUVERT LES SILOS, MON PETIT.", + "TU CROIS VRAIMENT QU'ÊTRE PETIT ET POILU EST GRAVE ?", + "QUAND JE PENSE QUE VOUS AVEZ FAIT TOUT CE TRAJET POUR MON AIDE.", + "IMBÉCILES !", + "PROFITEZ DE VOS PLACES PRIVILÉGIÉES POUR ASSISTER À LA RECRÉATION DU MONDE !", + "JAK ! PRENDS L'ASCENSEUR ET ARRÊTE CE ROBOT !" + ], + "green-sagecage-resolution": [ + "BIEN JOUÉ MES GARÇONS !", + "VOUS ÊTES DE VRAIS HÉROS DÉSORMAIS !", + "JE VAIS ASSOCIER MON POUVOIR D'ÉCO VERTE AVEC CELUI DES 3 AUTRES SAGES", + "ET ENSEMBLE NOUS OUVRIRONS LE BOUCLIER QUI ENTOURE LE ROBOT PRÉCURSOR.", + "OUAIS, ÇA ME SEMBLE UN BON DÉBUT", + "ET UNE FOIS LE BOUCLIER OUVERT, QU'EST-CE QUE VOUS ALLEZ FAIRE DU ROBOT ?", + "MAIS, RIEN DAXTER ! NOUS DEVRONS GARDER LE BOUCLIER OUVERT", + "ET CE SERA À VOUS DE VOUS DÉBROUILLER POUR DÉTRUIRE LE ROBOT !", + "OH, GÉNIAL... JE VAIS POUVOIR AIDER LE TYPE QUI M'A CHANGÉ", + "EN BOULE DE POILS ET DÉTRUIRE LA SEULE PERSONNE QUI PUISSE M'AIDER !", + "SAUVE D'ABORD LE MONDE !", + "PUIS ON ESSAIERA DE CONVAINCRE GOL D'AIDER DAXTER." + ], + "mayor-introduction": [ + "OH, NON. JE NE VEUX PLUS ENTENDRE PARLER DE PROBLÈMES...", + "DÉJÀ QU'IL PARAIT QU'IL Y A DES MONSTRES PRÈS DU VILLAGE ET PUIS", + "VOUS VOYEZ CES ENGRENAGES LÀ-HAUT ? ILS NE BOUGENT PAS, N'EST-CE PAS ?", + "PARCE QUE NOTRE VILLAGE N'A PAS D'ÉNERGIE !", + "LE FAISCEAU ÉCO DU TEMPLE DE LA JUNGLE NE FONCTIONNE PLUS !", + "TOUT LE MONDE A BIEN TROP PEUR POUR ALLER VOIR CE QU'IL S'EST PASSÉ.", + "LA FACTURE A ÉTÉ PAYÉE ?", + "COMMENT ? HO-HO-HO- QUEL COMIQUE !", + "MAIS BON, SI VOUS RÉPAREZ LE FAISCEAU JE VOUS DONNE, UNE PILE D'ÉNERGIE !", + "OH ET AUTRE CHOSE,", + "SI JAMAIS VOUS AVIEZ L'INTENTION DE", + "CONTRIBUER AU FINANCEMENT DE MA NOUVELLE CAMPAGNE.", + "JE POURRAIS BIEN ME SÉPARER D'UNE AUTRE PILE D'ÉNERGIE.", + "LA CONTRIBUTION MINIMUM EST DE SEULEMENT", + "90 ORBES PRÉCURSORS." + ], + "mayor-reminder-beams": [ + "DÉJÀ DE RETOUR ? SANS AVOIR RÉPARÉ LES FAISCEAUX ÉCO ?", + "MAIS ENFIN ! VOTRE VILLAGE COMPTE SUR VOUS !" + ], + "mayor-reminder-donation": [ + "VOUS ÊTES VENUS POUR FINANCER MA CAMPAGNE ?", + "90 ORBES PRÉCURSORS, ÇA FAIT UNE PILE D'ÉNERGIE !" + ], + "mayor-resolution-beams": [ + "QUELLE VISION MERVEILLEUSE ! OH- GRAND MERCI !", + "ET TOUT LE VILLAGE VA ME REMERCIER !", + "VOUS AVEZ RAMENÉ L'ÉNERGIE AU VILLAGE ET ASSURÉ MA RÉÉLECTION.", + "ET POUR ÇA MON GARÇON, VOICI UNE PILE D'ÉNERGIE." + ], + "mayor-resolution-donation": [ + "VOUS AVEZ L'INTENTION DE FAIRE UN DON ?", + "IL EST CONSÉQUENT J'ESPÈRE !", + "OH ! C'EST UN DON CONSÉQUENT EN EFFET !", + "EH BIEN ! J'ESPÈRE QUE CETTE", + "PILE D'ÉNERGIE VOUS DÉDOMMAGERA ÉQUITABLEMENT." + ], + "minershort-introduction-gnawers": [ + "POURQUOI VOUS NE VOUS RENDEZ PAS UTILE ?", + "DES LURKERS SONT EN TRAIN DE CREUSER LES GROTTES NOIRES LÀ-BAS.", + "ON DIRAIT QU'ILS CHERCHENT DES OBJETS PRÉCURSORS.", + "EN TOUT CAS EN CE QUI ME CONCERNE, ILS PEUVENT TOUT PRENDRE.", + "EN CE QUI NOUS CONCERNE !", + "WILLARD, OUBLIE-MOI...", + "TOUT CE QUE JE VEUX, CE SONT LES GEMMES !", + "MAIS JE DOUTE POUVOIR RÉCUPÉRER CELLE DE LA GROTTE", + "PARCE QUE LORSQU'ILS AURONT FINI, TOUT VA S'EFFONDRER !", + "SI TU ÉLIMINES LES LURKERS QUI RONGENT LES POUTRES,", + "TU POURRAS SAUVER LA GROTTE POUR MOI.", + "ALLEZ FILE !" + ], + "minershort-introduction-orbs": [ + "HÉ GORDY, JE CROIS QU'ON A DE LA VISITE !", + "TU CROIS WILLARD ?", + "BIEN LE BONJOUR ! EN BALADE ? BAH, NOUS AUSSI !", + "BON, ON NE VA PAS TRAINER, HEIN ! IL N'Y A RIEN À VOIR ICI !", + "EUH... TU AS DIT QUE C'ÉTAIT UNE GEMME TRÈS PRÉCIEUSE ET QUI-", + "WILLARD !", + "EN FAIT, NOUS VOULONS DES PILES D'ÉNERGIE, PAS DES GEMMES.", + "ON EN A QUATRE ICI, EUH... VOUS LES VOULEZ ?", + "CE QUE CETTE TÊTE D'OISEAU VEUT DIRE,", + "C'EST QU'IL SE POURRAIT QU'ON AIT QUELQUES PILES D'ÉNERGIE ET QUE", + "NOUS POURRIONS LES ÉCHANGER CONTRE...", + "90 ORBES PIÈCE.", + "J'AI DÉJÀ ENTENDU ÇA QUELQUE PART.", + "COMMENT DEUX GÉNIES COMME VOUS VONT-ILS SORTIR CETTE GROSSE GEMME DE LÀ ?", + "ET BIEN PETIT FUTÉ, IL NOUS RESTE DOUZE ANS À PIOCHER AVANT DE LE SAVOIR.", + "OH... GORDY, ÇA N'IRAIT PAS PLUS VITE SI TU PIOCHAIS AUSSI ?" + ], + "minershort-introduction-switch": [ + "PSSST... LES GARS ! EUH...", + "BIRDIE ET MOI ON A EXPLORÉ UNE GROTTE QUI VOUS PLAIRAIT !", + "ELLE EST REMPLIE D'UN JOLI MÉTAL ORANGE ET BIEN CACHÉE", + "DERRIÈRE DES ARBRES DANS LES MONTAGNES ENNEIGÉES !", + "JE L'AI DIT À GORDY, MAIS IL M'A JUSTE DISPUTÉ POUR QUE JE PIOCHE...", + "POURQUOI TU NE PIOCHES PAS ?!", + "EUH... J'Y VAIS !" + ], + "minershort-reminder-1-gnawers": [ + "DÉPÊCHE-TOI UN PEU DE NOUS DÉBARRASSER DE CES LURKERS", + "QUI RONGENT LES POUTRES DE LA GROTTE !", + "ELLES NE VONT PAS TENIR LONGTEMPS SINON !" + ], + "minershort-reminder-1-orbs": [ + "ET N'OUBLIEZ PAS, RAMENEZ-NOUS 100 ORBES.", + "TU AS DIT 90 !", + "WILLARD !", + "D'ACCORD. 90 ORBES POUR UNE PILE D'ÉNERGIE." + ], + "minershort-reminder-1-switch": [ + "VOUS AVEZ TROUVÉ LA GROTTE DERRIÈRE LES ARBRES,", + "DANS LES MONTAGNES ENNEIGÉES ?", + "JE CROIS QUE JE VAIS ALLER ME CACHER LÀ-BAS.", + "PARCE QUE GORDY EST ENCORE EN TRAIN DE ME DISPUTER.", + "WILLARD !" + ], + "minershort-reminder-2-orbs": [ + "EUH... MAIS GORDY.", + "90 ORBES POUR UNE PILE D'ÉNERGIE, WILLARD !" + ], + "minershort-resolution-1-orbs": [ + "AH, NOUS Y VOILÀ !", + "VOICI UNE PILE D'ÉNERGIE POUR VOS ORBES." + ], + "minershort-resolution-2-orbs": [ + "OH- OH- ÇA Y EST, JE L'AI. EUH...", + "VOILÀ UNE...", + "EUH... VOILÀ UNE-", + "PILE D'ÉNERGIE !", + "OUAIS, OUAIS... COMME IL A DIT QUOI.", + "ÇA Y EST, VOUS NOUS AVEZ DÉPOUILLÉ !", + "PLUS ! DE ! PILES D'ÉNERGIE !" + ], + "oracle-intro-1": [ + "QUI RÉVEILLE L'ORACLE ?", + "ATTENDEZ ! L'UN D'ENTRE VOUS DÉTIENT LA LUMIÈRE.", + "DEPUIS L'ÉTERNITÉ J'ATTENDS LE RETOUR DU VÉRITABLE HÉROS.", + "PRÉSENTEZ-MOI 120 ORBES PRÉCURSORS", + "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS." + ], + "oracle-intro-2": [ + "ATTENTION À LA LUMIÈRE NOIRE !", + "ELLE A AFFECTÉ LE DESTIN DE L'UN DE VOUS DEUX.", + "APPORTEZ-MOI 120 ORBES PRÉCURSORS", + "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS." + ], + "oracle-intro-3": [ + "CHERCHEZ LA LUMIÈRE PURE, CAR EN SA FLAMME RÉSIDE LA RÉPONSE !", + "VOUS POURREZ OBTENIR MES PILES D'ÉNERGIE", + "EN M'APPORTANT 120 ORBES PRÉCURSORS POUR CHACUNE." + ], + "oracle-left-eye-1": [ + "VOUS AVEZ FAIT VOS PREUVES. VOICI UNE PILE D'ÉNERGIE." + ], + "oracle-left-eye-2": [ + "POUR VOTRE SACRIFICE, JE VOUS OFFRE UNE PILE D'ÉNERGIE." + ], + "oracle-left-eye-3": [ + "POUR VOS EFFORTS, UNE PILE D'ÉNERGIE SERA VOTRE RÉCOMPENSE." + ], + "oracle-reminder-1": [ + "APPORTEZ-MOI 120 ORBES PRÉCURSORS", + "ET JE VOUS ACCORDERAI UNE PILE D'ÉNERGIE." + ], + "oracle-reminder-2": [ + "PRÉSENTEZ-MOI 120 ORBES PRÉCURSORS", + "ET VOUS RECEVREZ UNE PILE D'ÉNERGIE EN RÉCOMPENSE." + ], + "oracle-reminder-3": [ + "VOUS DEVREZ M'APPORTER 120 ORBES PRÉCURSORS", + "POUR CHAQUE PILES D'ÉNERGIE QUE JE CONTIENS." + ], + "oracle-right-eye-1": [ + "EN RÉCOMPENSE, VOICI UNE PILE D'ÉNERGIE." + ], + "oracle-right-eye-2": [ + "VOICI UNE AUTRE PILE D'ÉNERGIE POUR VOTRE QUÊTE." + ], + "oracle-right-eye-3": [ + "VOUS AVEZ OBTENU UNE AUTRE PILE D'ÉNERGIE." + ], + "redsage-resolution": [ + "VOUS VENEZ ENFIN À MON SECOURS !", + "VOUS SAVEZ DEPUIS COMBIEN DE TEMPS JE SUIS LÀ-DEDANS ?", + "QU'EST-CE QUI VOUS A PRIS SI LONGTEMPS ?", + "COMMENT VOUS APPELEZ-VOUS ?", + "JE SUIS DAXTER ! ET LUI C'EST JAK, IL M'ACCOMPAGNE.", + "BIEN JOUÉ DAXTER, TU ES UN VRAI HÉROS !", + "IL FAUT QUE VOUS EMPÊCHIEZ GOL DE LANCER LE ROBOT.", + "JE VAIS UTILISER MON POUVOIR POUR OUVRIR LE CHAMP DU BOUCLIER." + ], + "sage-bluehut-introduction-crop-dusting": [ + "LA SITUATION EMPESTE PLUS QUE L'HALEINE D'UN LURKER !", + "AVANT SA DISPARITION, LE SAGE BLEU A SIGNALÉ", + "DES TROUBLES IMPORTANTS DANS TOUS LES ENVIRONS.", + "JE M'INTÉRESSE EN PARTICULIER AUX PAUVRES PLANTES", + "DU BASSIN PRÉCURSOR QUI ONT ÉTÉ INFECTÉES PAR L'ÉCO NOIRE.", + "KEIRA VA DÉPLACER TON ZOOMER ANTI-GRAV JUSQU'AU TÉLÉPORTEUR LE PLUS PROCHE.", + "UTILISE LE ZOOMER POUR ATTEINDRE UN ORIFICE D'ÉCO VERTE", + "ET RAMÈNES-EN JUSQU'AUX PLANTES.", + "CELA DEVRAIT LES GUÉRIR !", + "NE MANQUE PAS UNE SEULE PLANTE, OU CELLES", + "QUI SONT INFECTÉES CONTAMINERONT LES AUTRES.", + "ET DAXTER...", + "ATTAQUE LE MÉNAGE !", + "ET N'OUBLIE PAS LES COINS !" + ], + "sage-bluehut-introduction-prec-arm": [ + "J'ESPÈRE QUE VOUS ÊTES BIEN ÉQUIPÉS", + "PARCE QUE ÇA NE FAIT QUE COMMENCER !", + "D'APRÈS LES NOTES DU SAGE BLEU", + "LES LURKERS ONT ENVAHIS LE MARÉCAGE DE L'AUTRE CÔTÉ DE LA BAIE.", + "APPAREMMENT, ILS VEULENT UTILISER UN DIRIGEABLE", + "POUR EXTRAIRE UN IMPORTANT OBJET PRÉCURSOR DE LA BOUE.", + "VOUS DEVEZ Y ALLER POUR DÉTACHER LEURS CORDES.", + "QUI SAIT CE QU'ILS VEULENT FAIRE DE CET OBJET...", + "MAIS C'EST COMME L'HALEINE DE CE TRUC ORANGE LÀ !", + "ÇA NE SENT PAS BON DU TOUT !" + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "JE DOIS AVOIR LA BERLUE !", + "PUISQUE JE SAIS QUE VOUS ÊTES TOUS LES DEUX DANS LE BASSIN PRÉCURSOR", + "EN TRAIN DE SAUVER LES PLANTES INFECTÉES PAR L'ÉCO NOIRE." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "COMMENT SE FAIT-IL QUE VOUS SOYEZ DÉJÀ RENTRÉS ?", + "JE VOIS DU BALCON QUE LE DIRIGEABLE", + "LURKER FLOTTE TOUJOURS AU-DESSUS DU MARÉCAGE !", + "VOUS N'AVEZ APPAREMMENT PAS TERMINÉ VOTRE MISSION.", + "ALLEZ ACTION !" + ], + "sage-intro-sequence-a": [ + "J'AI PASSÉ MA VIE À CHERCHER LES RÉPONSES QUE MON PÈRE", + "ET SES ANCÊTRES NE SONT PAS PARVENUS À TROUVER.", + "QUI ÉTAIENT LES PRÉCURSORS ?", + "POURQUOI ONT-ILS CRÉÉ CES IMMENSES MONOLITHES QUI JONCHENT NOTRE PLANÈTE ?", + "COMMENT ONT-ILS MAITRISÉ L'ÉCO ? L'ÉNERGIE VITALE DU MONDE.", + "QUEL ÉTAIT LEUR BUT ? ET POURQUOI ONT-ILS DISPARU ?", + "J'AI DEMANDÉ AUX PLANTES, MAIS ELLES NE S'EN SOUVIENNENT PAS.", + "LES PLANTES ONT DEMANDÉ AUX PIERRES MAIS LES PIERRES NE S'EN SOUVIENNENT PAS", + "MÊME LES PIERRES NE S'EN SOUVIENNENT PAS...", + "TOUT EN MOI ME DIT QUE LES RÉPONSES", + "REPOSENT SUR LES ÉPAULES D'UN JEUNE GARÇON", + "QUI SE DÉSINTÉRESSE DE SA DESTINÉE, DE LA RECHERCHE DE LA VÉRITÉ", + "ET QUI REJETTE MES CONSEILS !", + "D'AILLEURS, POURQUOI VOUDRAIT-IL ÉCOUTER LE VIEUX SAMOS LE SAGE ?", + "JE NE SUIS QUE LE MAÎTRE DE L'ÉCO VERTE", + "ET L'UN DES HOMMES LES PLUS SAGES DE LA PLANÈTE !", + "IL SEMBLERAIT DONC QUE LA RÉPONSE NE SERA PAS", + "TROUVÉE À FORCE DE RECHERCHE OU DE RÉFLEXION.", + "NON. AUSSI ÉTONNANT QUE CELA PARAISSE,", + "TOUT COMMENCE PAR UN ACTE DE DÉSOBÉISSANCE.", + "HÉ ! EUH... JAK, LE P'TIT VIEUX TOUT VERT NOUS A DIT DE NE PAS VENIR ICI !" + ], + "sage-intro-sequence-d1": [ + "SACREVERT ! QUE VOULEZ-VOUS TOUT LES DEUX ?", + "NOUS- ON A- IL Y AVAIT- AVAIT-", + "LAISSEZ-MOI DEVINER, PLUTÔT QUE DE SUIVRE MES CONSEILS", + "VOUS ÊTES ALLÉS PATAUGER AU SEUL ENDROIT OÙ JE VOUS AVAIS DIT DE NE PAS ALLER:", + "L'ÎLE DE LA BRUME !", + "C'EST ÇA ! ET PUIS APRÈS-", + "ET DAXTER, TU AS FINALEMENT PRIS LE BAIN QU'IL TE FALLAIT", + "MAIS DANS UNE BAIGNOIRE PLEINE D'ÉCO NOIRE.", + "ÉCOUTEZ MON VIEUX ! VOUS ALLEZ CONTINUER À RADOTER", + "OU EST-CE QUE VOUS ALLEZ ME SORTIR DE CE BAZAR ?!", + "JE VAIS CONTINUER À RADOTER ! PARCE QUE SELON MON POINT DE VUE PROFESSIONNEL", + "TOUT CHANGEMENT EST UNE AMÉLIORATION !", + "DE PLUS... MÊME SI JE LE VOULAIS, JE NE POURRAIS PAS T'AIDER.", + "QUOI !?", + "IL N'Y A QU'UNE SEULE PERSONNE QUI AIT ÉTUDIÉ L'ÉCO NOIRE ASSEZ LONGTEMPS", + "POUR AVOIR UNE CHANCE DE TE RENDRE TA FORME ORIGINALE", + "GOL ACHERON, LE SAGE.", + "MAIS IL VIT DANS LE NORD. LOIN, LOIN TOUT AU NORD.", + "PERSONNE NE LUI A PARLÉ DEPUIS DES LUSTRES.", + "JE TE TÉLÉPORTERAI BIEN LÀ-BAS MAIS JE NE PEUX PAS FAIRE ÇA NON PLUS.", + "PUISQUE AUCUN DES 3 SAGES CHARGÉS DES PORTES DE TÉLÉPORTATION", + "N'A JUGÉ BON DE LES ACTIVER DEPUIS LONGTEMPS." + ], + "sage-intro-sequence-d2": [ + "LE SEUL AUTRE CHEMIN VERS LE NORD PASSE PAR LE CANYON DE FEU MAIS", + "SON SOL VOLCANIQUE BRÛLANT FERAIT FONDRE DU MÉTAL PRÉCURSOR.", + "IMPOSSIBLE DE LE TRAVERSER À PIED !", + "MAIS VOUS POURRIEZ LE SURVOLER SI VOUS AVIEZ UN ZOOMER AVEC UN BOUCLIER THERMIQUE !", + "JUSTEMENT, JE TRAVAILLE ACTUELLEMENT SUR UN TEL ÉQUIPEMENT !", + "IL ME FAUT JUSTE 20 PILES D'ÉNERGIE POUR L'ALIMENTER ET", + "POUR QU'IL RÉSISTE À LA CHALEUR DU CANYON. N'EST-CE PAS PAPA ?", + "OUI, KEIRA. CELA POURRAIT MARCHER.", + "MAIS OÙ UN GARÇON ET DEMI VA TROUVER 20 PILES D'ÉNERGIE ?", + "AUPRÈS DES VILLAGEOIS. LA PLUPART POSSÈDENT", + "UNE OU DEUX PILES D'ÉNERGIE CACHÉES QUELQUE PART.", + "ET MÊME S'ILS NE VEULENT PAS LES DONNER, IL SUFFIRA DE LEUR", + "GRAISSER LA PATTE AVEC QUELQUES ORBES PRÉCURSORS POUR LES CONVAINCRE.", + "ET JE SUIS SÛRE QU'IL Y EN A QUELQUES UNES DE PLUS DANS LA NATURE", + "QUI N'ATTENDENT QUE DE BRAVES AVENTURIERS.", + "EH BIEN ! ON A LE BRAVE AVENTURIER AU MOINS.", + "\"BRAVE AVENTURIER\" ?", + "VOUS NE POURRIEZ MÊME PAS SORTIR DU VILLAGE SANS ENTRAINEMENT !", + "AVANT DE FAIRE QUOIQUE CE SOIT, ENTREZ DANS LE TÉLÉPORTEUR POUR ALLER", + "VOUS ENTRAINER AU ROCHER DU GEYSER !", + "EUH... IL N'Y AURA PAS DE CETTE SALETÉ D'ÉCO NOIRE J'ESPÈRE.", + "PARCE QUE JE N'AIMERAIS PAS Y RETOMBER ET FINIR COMME VOUS !", + "RENTREZ LÀ-DEDANS AVANT QUE JE NE VOUS CHANGE EN FOUGÈRE !" + ], + "sage-intro-sequence-e": [ + "BON ENTRAINEMENT MES GARÇONS !", + "MAIS CE N'EST RIEN COMPARÉ À CE QUI VOUS ATTEND.", + "AH, C'ÉTAIT TROP FACILE ! ON MAÎTRISE HEIN, JAK ?", + "ON AIMERAIT BIEN RESTER PAPOTER GRAND VERT", + "MAIS ÇA NOUS DÉMANGE DE PARTIR À L'AVENTURE.", + "BIEN, BIEN ! PARTEZ À \"L'AVENTURE\" ALORS !", + "ET AU COURS DE VOTRE AVENTURE, POURQUOI NE VOUS RENDRIEZ-VOUS PAS UTILE ?", + "MES FICHUS COLLECTEURS D'ÉCO VERTE SONT ENCORE BOUCHÉS.", + "ALLEZ TOUT AU BOUT DE LA PLAGE ET ESSAYEZ DE LES DÉBLOQUER !", + "SUIVEZ BIEN LES LAMPES POUR VOUS Y RENDRE.", + "ET MAINTENANT, VOUS TOUS...", + "DÉBARRASSEZ-MOI LE PLANCHER !" + ], + "sage-introduction-misty-cannon": [ + "TIENS, VOILA LES DEUX AVENTURIERS !", + "BIEN, JE VOULAIS VOUS PARLER DE QUELQUE CHOSE DE SÉRIEUX.", + "IL SEMBLERAIT QUE LES LURKERS SOIT TRÈS ACTIFS SUR L'ÎLE DE LA BRUME.", + "JE PEUX LES VOIR BOMBARDER LE SILO PRÉCURSOR DEPUIS MA TOUR DE GUET.", + "SI LES LURKERS L'OUVRE ET LIBÈRE L'ÉCO NOIRE NOUS RISQUONS DE TOUS FINIR", + "AVEC LE MÊME AIR RIDICULE QUE CET HORRIPILANT PETIT SPÉCIMEN.", + "JAK, IL EST TEMPS DE PROUVER TA VALEUR !", + "OBTIENT DU PÊCHEUR QU'IL TE PRÊTE SON BATEAU JUSQU'À L'ÎLE DE LA BRUME,", + "MONTE SUR LE SILO PRÉCURSOR ET ÉLIMINE CE CANON.", + "ET MOI JE FAIS QUOI ALORS ?", + "TOI ? TU DEVRAIS PASSER LA SERPILLÈRE TIENS ! LE SOL MANQUE UN PEU D'ÉCLAT JE TROUVE." + ], + "sage-reminder-1-ecorocks": [ + "QUELS \"BRAVES AVENTURIERS\" VOUS FAITES...", + "DÉJÀ DE RETOUR ? ET SANS AVOIR DÉGAGÉ MES MOISSONNEUSES ÉCO BLOQUÉES", + "ILS SONT AU BOUT DE LA PLAGE, MES GARÇONS.", + "MAINTENANT...", + "BOUGEZ-VOUS !" + ], + "sage-reminder-1-generic": [ + "QU'EST-CE QUE VOUS FAITES LÀ ?", + "VOUS DEVEZ RÉCUPÉRER DES PILES D'ÉNERGIE !", + "LAISSEZ-MOI TRANQUILLE", + "TANT QUE VOUS NE LES AVEZ PAS !" + ], + "sage-reminder-1-misty-cannon": [ + "LE BOMBARDEMENT EMPIRE !", + "TROUVE LE PÊCHEUR DANS LA JUNGLE, OBTIENT LA PERMISSION D'UTILISER SON BATEAU", + "ET REND TOI À L'ÎLE DE LA BRUME POUR ARRÊTER LE CANON.", + "ET TOI DAXTER, PASSE LA SERPILLÈRE ! TU NE VOIS PAS CE BAZAR ICI ?!" + ], + "sage-reminder-2-generic": [ + "VOUS NE COMPRENEZ PAS LA GRAVITÉ DE LA SITUATION...", + "ÇA NE SE LIMITE PAS À L'HISTOIRE D'UN GARÇON QUI A PERDU LA BOULE.", + "IL S'AGIT DE LA VIE ELLE MÊME !", + "MAINTENANT, FILEZ ET ACCOMPLISSEZ VOTRE DESTIN !" + ], + "sage-village3-introduction": [ + "OUAH !", + "EH BIEN, J'AI TOUJOURS L'IMPRESSION DE LAISSER UN MORCEAU DANS CES TRUCS-LÀ !", + "PAR LES YAKOWS !", + "LE LABO DU SAGE ROUGE A L'AIR EN PIRE ÉTAT QUE CELUI DU SAGE BLEU !", + "EH BIEN ! ON DIRAIT QU'IL Y A EU DE LA BAGARRE ICI !", + "HA HA HA HA HA !", + "JE N'APPELLERAI PAS ÇA UNE \"BAGARRE\"", + "N'EST-CE PAS ? MA CHÈRE SOEUR ?", + "CERTAINEMENT PAS ! LE SAGE ROUGE NE S'EST PAS BEAUCOUP DÉBATTU.", + "CE N'ÉTAIT MÊME PAS DRÔLE...", + "GOL ? C'EST TOI ?!", + "TU AS FINI PAR PERDRE LA BOULE, HEIN ?", + "ET MAIA, JE T'AVAIS DIT QUE L'ÉCO NOIRE FINIRAIT PAR VOUS ATTEINDRE !", + "PERSONNE N'ÉCOUTE JAMAIS LE VIEUX SAMOS...", + "QU'EST-CE QUE VOUS AVEZ FAIT DES SAGES BLEU ET ROUGE ?", + "NE T'INQUIÈTE PAS DU SORT DE TES AMIS COLORÉS, VIEUX FOU.", + "ILS SONT EN SÉCURITÉ DANS NOTRE CITADELLE, CE SONT NOS INVITÉS SPÉCIAUX.", + "ILS ONT GENTIMENT ACCEPTÉ DE NOUS AIDER DANS NOTRE MODESTE ENTREPRISE.", + "TU AVAIS TORT SAMOS ! L'ÉCO NOIRE PEUT ÊTRE CONTRÔLÉE.", + "NOUS AVONS APPRIS SES SECRETS ET MAINTENANT", + "NOUS POUVONS FAÇONNER LE MONDE À NOTRE GRÉ.", + "VOUS NE POUVEZ PAS CONTRÔLER L'ÉCO NOIRE ! MÊME LES PRÉCURSORS-", + "JUSQU'À PRÉSENT, NOUS NOUS SOMMES DÉBROUILLÉS", + "AVEC LE PEU D'ÉCO DISPONIBLE EN SURFACE.", + "MAIS BIENTÔT, NOUS POURRONS ACCÉDER", + "À DES STOCKS D'ÉCO NOIRE ENFOUIS SOUS TERRE.", + "PAS LES SILOS !", + "SI ! LES SILOS !", + "ILS SERONT OUVERTS ET TOUTE L'ÉCO NOIRE DU MONDE NOUS APPARTIENDRA !", + "MAIS C'EST IMPOSSIBLE ! SEUL UN ROBOT PRÉCURSOR-", + "OH, N'AI PAS L'AIR SI EMBÊTÉ, SAMOS.", + "NOUS AVONS DE GRANDS PROJETS POUR TOI.", + "AH HA HA HA HA HA HA !", + "ATTENDS UNE MINUTE !", + "C'ÉTAIT GOL ?", + "LE MÊME \"GOL\" QUI DOIT ME RÉTABLIR ?", + "GOL EST LE TYPE QUI ESSAIE DE NOUS TUER ?!", + "JE SUIS MAUDIT...", + "NOUS SOMMES SANS DOUTE TOUS MAUDITS !", + "S'ILS OUVRENT LES SILOS, L'ÉCO NOIRE SE", + "LIBÉRERA ET DÉTRUIRA TOUT CE QU'ELLE TOUCHE !", + "NOUS DEVONS NOUS RENDRE À LA CITADELLE POUR LES ARRÊTER !", + "LE MEILLEUR MOYEN EST DE PASSER PAR LE CANAL LAVIQUE AU FOND DE CE CRATÈRE.", + "ENCORE QUELQUES PILES D'ÉNERGIE ET LE BOUCLIER THERMIQUE DU ZOOMER", + "POURRA TE PERMETTRE DE TRAVERSER LA LAVE !", + "TRÈS BIEN MON GARÇON, TU SAIS QUOI FAIRE !", + "EMBARQUE LE SAC À PUCES ET RASSEMBLEZ PLUS DE PILES D'ÉNERGIE !" + ], + "sage-village3-introduction-dark-eco": [ + "TONNERRE D'ÉCO !", + "IL SEMBLE QU'IL Y AIT UNE FORTE PRÉSENCE LURKER DANS LES GROTTES AUX ARAIGNÉES.", + "GÉNIAL... ÇA DOIT ÊTRE UN ENDROIT TRÈS SYMPA ÇA !", + "LAISSEZ-MOI DEVINER, IL Y A DES ARAIGNÉES DANS VOTRE GROTTE AUX ARAIGNÉES ? NON ?", + "BIEN SÛR QU'IL Y A DES ARAIGNÉES DANS LES GROTTES AUX ARAIGNÉES !", + "MAIS C'EST LE MOINDRE DE VOS SOUCIS !", + "LES LURKERS CHERCHENT DES CRISTAUX D'ÉCO NOIRE CONCENTRÉS.", + "ET IL FAUT ABSOLUMENT LES DÉTRUIRE AVANT", + "QUE CES MONSTRES NE METTENT LA MAIN DESSUS !", + "MAINTENANT, FONCEZ !" + ], + "sage-village3-introduction-rams": [ + "JE SUIS CONTENT QUE VOUS SOYEZ LÀ !", + "IL Y A DES MOUVEMENTS LURKERS DANS LES MONTAGNES.", + "APPAREMMENT, ILS ESSAIENT D'EXTRAIRE DES STOCKS D'ÉCO NOIRE CONGELÉS DES GLACIERS.", + "PENDANT QUE VOUS SEREZ LÀ-HAUT EN TRAIN DE CHERCHER DES PILES D'ÉNERGIE,", + "STOPPEZ CES LURKERS ET EMPÊCHEZ CETTE ÉCO NOIRE DE TOMBER AUX MAINS DE GOL." + ], + "sage-village3-reminder-1-dark-eco": [ + "DÉTRUISEZ LES CRISTAUX D'ÉCO NOIRE DANS LES GROTTES AUX ARAIGNÉES !" + ], + "sage-village3-reminder-1-rams": [ + "ON NE PEUT PAS LAISSER LES LURKERS METTRE LA MAIN SUR LES BOÎTES D'ÉCO NOIRE !", + "MONTEZ SUR CES PICS ENNEIGÉS ET STOPPEZ-LES !" + ], + "sculptor-introduction": [ + "HÉ ! PETITE BOULE DE POILS ?!", + "OH, J'AI CRU UN INSTANT QUE C'ÉTAIT MA MUSE...", + "VOTRE QUOI ?", + "VOUS N'AVEZ JAMAIS VU UNE MUSE DE PRÈS ?", + "C'EST UN PETIT ÉCUREUIL DE VOTRE TAILLE", + "TOUT BRILLANT, PLEIN DE FOLIE !", + "OH, JE VOIS ! COMME UN ACOLYTE.", + "TOUJOURS EST-IL QUE, SANS MA MUSE JE NE PEUX PAS SCULPTER.", + "MAIS QUAND ELLE EST LÀ, JE VOIS LA BEAUTÉ PARTOUT !", + "MAIS LÀ, JE NE POURRAIS MÊME PAS TAILLER UN CUBE...", + "JE CROIS QU'ELLE EST PARTIE SUR L'ÎLE DE LA BRUME.", + "J'ESPÈRE QU'ELLE VA BIEN.", + "SI VOUS ME LA RAMENEZ JE VOUS OFFRE UNE PILE D'ÉNERGIE !", + "ATTENDEZ ! NOUS NE RETOURNONS PAS SUR L'ÎLE DE LA BRUME !", + "PAS VRAI ?" + ], + "sculptor-reminder-1": [ + "AH, MES AMIS ! VOUS N'AVEZ PAS TROUVÉ MA MUSE ?" + ], + "sculptor-resolution": [ + "MA MUSE ! SAINE ET SAUVE !", + "VOUS ÊTES VRAIMENT TRÈS FORTS !", + "TENEZ C'EST UNE PILE D'ÉNERGIE.", + "ELLE NE ME SERT PLUS CAR J'AI RETROUVÉ MON INSPIRATION." + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE DE CHERCHER LES OBJETS ET L'ÉCO,", + "SI LES GENS DU COIN POSSÈDENT DES OBJETS PRÉCURSORS, TU SAIS QUOI FAIRE !", + "OCCUPE-TOI SÉRIEUSEMENT DE QUICONQUE S'ÉLOIGNERAIT DU VILLAGE !", + "NOUS L'ATTAQUERONS EN TEMPS UTILE !" + ], + "sidekick-human-intro-sequence-c": [ + "QU'EST-CE QU'ON FICHE ICI, JAK ? CET ENDROIT ME FAIT FLIPPER !", + "HEIN ?", + "SALETÉ DE TRUC PRÉCURSOR...", + "QU'EST-CE QUE C'EST QUE CETTE VASE NOIRE ? ÇA NE M'A PAS L'AIR TRÈS SYMPATHIQUE.", + "LE SAGE RADOTE TOUJOURS À PROPOS DES PRÉCURSORS QUI ONT CONSTRUIT CET ENDROIT", + "\"OÙ SONT-ILS ? POURQUOI ONT-ILS CONSTRUIT CETTE SALETÉ ?\"", + "JE N'AI RIEN CONTRE LES ORBES PRÉCURSORS ET LES PILES D'ÉNERGIE", + "MAIS À MON HUMBLE AVIS, C'ÉTAIT VRAIMENT DES GROS NULS.", + "OUAH ! COMMENT T'AS FAIT ÇA ?", + "JAK ! JE CROIS QU'ON VA AVOIR DES ENNUIS !", + "BAH, ÇA PIQUE !", + "JE T'AVAIS DIT QU'ON AURAIT PAS DU VENIR, SI TU M'AVAIS ÉCOUTÉ-", + "QUOI ?", + "AHHHHHHHHH !", + "C'EST BON, C'EST BON. ÇA VA, ÇA VA...", + "AHHHHHHHHHHHHHHHHHHHHH !" + ], + "warrior-introduction": [ + "OH, MA PAUVRE TÊTE...", + "CE N'EST PAS L'UN DE VOS ORGANES VITAUX !", + "ALLONS, DU NERF SOLDAT !", + "POUR SÛR, J'ÉTAIS FORT DANS LE TEMPS", + "SÛREMENT LE PLUS FORT DE TOUS MÊME !", + "TOUT SEUL J'AI DÉFENDU CE VILLAGE CONTRE", + "CES AFFREUSES CRÉATURES PENDANT PRESQUE UNE ANNÉE !", + "ET PUIS CE MONSTRE HORRIBLE EST ARRIVÉ ET IL NOUS A BOMBARDÉ !", + "ALORS, PLEIN D'ARDEUR ET DE COURAGE,", + "JE SUIS MONTÉ SUR LA COLLINE POUR L'AFFRONTER !", + "MAIS IL M'A APLATI COMME VULGAIRE STEAK DE YAKOW...", + "VOUS AVEZ DÉJÀ ESSAYÉ DE L'ATTAQUER AVEC VOS TIRADES ?", + "PARCE QUE MOI ÇA ME TUE !", + "APRÈS MA DERNIÈRE DÉFAITE,", + "IL A BLOQUÉ LA VOIE MENANT À SON REPÈRE AVEC UN BLOC DE 30 TONNES.", + "DEPUIS, PLUS PERSONNE NE PEUT ALLER LE DÉFIER.", + "ALORS NOTRE SAGE MAÎTRE EN ÉCO BLEUE ET MÉCANICIEN DE GÉNIE", + "A CONÇU UNE MACHINE CAPABLE DE DÉGAGER CE BLOC DU PASSAGE !", + "MAIS HÉLAS, IL A DISPARU AVANT QUE NOUS AYONS PU L'ESSAYER.", + "EN EMMENANT TOUTES SES PILES D'ÉNERGIE AVEC LUI.", + "J'AI QUAND MÊME RÉUSSI À RETIRER ASSEZ DE PASSERELLES DE NOTRE PONT POUR EMPÊCHER", + "LE MONSTRE DE VENIR ICI ME FAIRE DU MAL.", + "OUAIS, BIEN JOUÉ SOLDAT ! MAIS, EUH...", + "IL VA FALLOIR QUE VOUS REMETTIEZ EN PLACE TOUT ÇA !", + "BIEN SÛR... ET CAUSER MA PERTE ?", + "(SOUPIR)", + "BON, D'ACCORD...", + "AMENEZ-MOI 90 ORBES ET JE REMETTRAI LES PASSERELLES...", + "MAIS JE REFUSE DE ME BATTRE CONTRE CE MONSTRE À NOUVEAU !" + ], + "warrior-reminder-1": [ + "PRENEZ TOUT VOTRE TEMPS POUR ME RAMENER LES ORBES PRÉCURSORS.", + "JE NE SUIS PAS DU TOUT PRESSÉ DE RÉPARER LE PONT." + ], + "warrior-resolution": [ + "OH !", + "FANTASTIQUE...", + "VOUS M'AMENEZ LES ORBES PRÉCURSORS.", + "D'ACCORD.", + "JE VAIS RÉPARER LE PONT.", + "MAIS JE NE VEUX PLUS JAMAIS AVOIR AFFAIRE À CETTE CRÉATURE !" + ], + "yellowsage-resolution": [ + "JE N'AURAIS JAMAIS CRU VIVRE ASSEZ LONGTEMPS", + "POUR ÊTRE SAUVÉ PAR UN GAMIN FLANQUÉ D'UN RAGONDIN !", + "JE VAIS FAIRE PAYER CET AFFRONT À GOL ET MAIA TRÈS CHER.", + "ÇA C'EST SÛR !", + "ET PUIS APRÈS ON S'ESSAIERA À LA SOUPE DE RAGONDIN." + ] + }, + "hints": { + "ASSTLP02": [ + "JE DOIS FAIRE MARCHER CE BOUCLIER THERMIQUE !" + ], + "ASSTLP03": [ + "IL NOUS FAUT DES PILES D'ÉNERGIE POUR ALIMENTER LE BOUCLIER THERMIQUE !" + ], + "ASSTLP04": [ + "OÙ EST MA CLÉ ?" + ], + "ASSTLP05": [ + "LE CANYON DE FEU EST BIEN TROP CHAUD." + ], + "ASSTLP23": [ + "ALORS COMMENT FAISAIT-IL MARCHER CE LÉVITATEUR ?" + ], + "ASSTLP24": [ + "MÊME AVEC DES PILES D'ÉNERGIE,", + "AURONS-NOUS ASSEZ DE PUISSANCE ?" + ], + "ASSTLP30": [ + "HM, VOYONS VOIR..." + ], + "ASSTLP32": [ + "OH, NON..." + ], + "ASSTLP33": [ + "AH-HA !" + ], + "ASSTLP34": [ + "QU'EST-CE QUE GOL ET MAIA PRÉPARENT ?" + ], + "ASSTLP35": [ + "HM... IL FAUT QUE NOUS ALLIONS À LA CITÉ PRÉCURSOR !" + ], + "ASSTLP36": [ + "HM... LE BOUCLIER THERMIQUE A BESOIN", + "D'ÊTRE PLUS PUISSANT POUR RÉSISTER À LA LAVE !" + ], + "ASSTLP37": [ + "HM... IL FAUT QUE NOUS SAUVIONS LES AUTRES SAGES !" + ], + "BIL-AM01": [ + "MOI J'ADORE LA VASE !" + ], + "BIL-AM02": [ + "SALETÉ DE RATS !" + ], + "BIL-AM03": [ + "J'AI BESOIN D'UN BON COUP DE FORTIFIANT !" + ], + "BIL-AM04": [ + "GLADIOLA !" + ], + "BIL-AM05": [ + "J'AI BIEN BESOIN D'UN REMONTANT !" + ], + "BIL-AM06": [ + "HÉ, IL FAUT BIEN REFROIDIR LA MACHINE !" + ], + "BIL-AM07": [ + "CETTE CHALEUR ME TAPE SUR LE SYSTÈME..." + ], + "BIL-AM08": [ + "GRR... CETTE CHALEUR ME DONNE DES BOUTONS." + ], + "BIL-AM1A": [ + "MM-MM ! J'ADORE LA VASE." + ], + "BIL-AM2A": [ + "SALETÉ DE RATS !" + ], + "BIL-AM2B": [ + "SALETÉ DE RATS !" + ], + "BIL-LO01": [ + "FARTHY !" + ], + "BIL-LO02": [ + "PETIT, PETIT, PETIT. PETIT !" + ], + "BIL-LO03": [ + "FARTHY !" + ], + "BIL-LO1A": [ + "FARTHY !" + ], + "BIL-LO2A": [ + "PE-PE-PETIT !" + ], + "BIL-LO2B": [ + "PETIT ? PETIT ?!" + ], + "BIL-TA01": [ + "CHOPE-LES !" + ], + "BIL-TA02": [ + "BIEN VU !" + ], + "BIL-TA03": [ + "PAR LÀ-BAS !" + ], + "BIL-TA04": [ + "HÉ, NON." + ], + "BIL-TA05": [ + "LE RAT L'A PRIS." + ], + "BIL-TA06": [ + "ET UN AUTRE !" + ], + "BIL-TA07": [ + "IL N'Y EN A PLUS QU'UN." + ], + "BIL-TA08": [ + "ON L'A EU !" + ], + "BIL-TA09": [ + "YAAHOOO !" + ], + "BIL-TA1A": [ + "CHOPE-LES !" + ], + "BIL-TA2A": [ + "BIEN VU !" + ], + "BIL-TA3A": [ + "PAR LÀ-BAS !" + ], + "BIL-TA4A": [ + "HÉ, NON." + ], + "BIL-TA4B": [ + "HÉ, NON !" + ], + "BIL-TA5A": [ + "LE RAT L'A PRIS !" + ], + "BIR-AM01": [ + "VOUS APPROCHEZ DE L'OEUF ?" + ], + "BIR-AM02": [ + "C'EST ÇA, JUSTE UN PEU PLUS LOIN !" + ], + "BIR-AM03": [ + "BIEN ! POUSSEZ MAINTENANT, DOUCEMENT !" + ], + "BIR-AM04": [ + "OULA- CE N'ÉTAIS PAS TRÈS DOUX." + ], + "BIR-AM05": [ + "ALLEZ, POUSSEZ L'OEUF DANS LE VIDE." + ], + "BIR-AM06": [ + "OH !" + ], + "BIR-AM07": [ + "ICI, PETIT, PETIT, ICI PETIT, PETIT." + ], + "BIR-AM08": [ + "ICI, PETIT, PETIT." + ], + "BIR-AM09": [ + "SOYEZ PRUDENTS, ÇA M'A L'AIR DANGEREUX !" + ], + "BIR-AM10": [ + "TOUT DOUX. TOUT DOUCEMENT !" + ], + "BIR-AM11": [ + "TRÈS BIEN, ON SE RETROUVE PRÈS DE L'OEUF !" + ], + "BIR-AM12": [ + "OH, VOUS ÊTES VRAIMENT L'AMI DES BÊTES !" + ], + "BIR-AM13": [ + "EST-CE QUE VOUS VOYEZ D'AUTRES OISEAUX LÀ-HAUT ?" + ], + "BIR-LO01": [ + "(SIFFLE)" + ], + "BIR-LO02": [ + "OH, QU'EST-CE QU'IL EST MIGNON." + ], + "BIR-LO03": [ + "OH, REGARDEZ UN MUCKY-MUCK !" + ], + "BIR-am08": [ + "ICI. PETIT, PETIT !" + ], + "BLU-AM01": [ + "J'AIMERAIS BIEN UN PEU D'AIDE !" + ], + "BLU-AM02": [ + "OH, MAIS QUELLE HISTOIRE..." + ], + "BLU-AM03": [ + "OH, C'EST UN VÉRITABLE MYSTÈRE !" + ], + "CHI-AM01": [ + "C'EST UNE VRAIE CATASTROPHE, UNE VRAIE CATASTROPHE VOUS DIS-JE !" + ], + "CHI-AM02": [ + "ILS VEULENT QUE JE ME RENDE DANS LA JUNGLE...", + "PLUTÔT COMBATTRE UN FLUT-FLUT ENRAGÉ !" + ], + "CHI-AM03": [ + "UN MONSTRE A ATTAQUÉ LE BATEAU DU PÊCHEUR.", + "ET MAINTENANT ÇA...", + "QUE PEUT-IL-", + "QUE PEUT-IL ENCORE ARRIVER ?" + ], + "CHI-AM04": [ + "POURQUOI NE PAS AUGMENTER LES IMPÔTS ?", + "POUR- POUR- POUR- PAYER TOUT ÇA." + ], + "CHI-AM05": [ + "DES PROBLÈMES... TOUJOURS DES PROBLÈMES ET ENCORE DES PROBLÈMES..." + ], + "CHI-AM06": [ + "(PLEURS) JE NE SERAIS- JE NE SERAIS PLUS JAMAIS RÉÉLU..." + ], + "CHI-AM07": [ + "OH... MAIS QU'EST-IL ARRIVÉ AU FAISCEAU D'ÉNERGIE DU VILLAGE ?" + ], + "CHI-AM08": [ + "POURQUOI- ? QUI SUIS-JE- ? OÙ VAIS-JE ET QUAND SUIS-JE ? (PLEURS)" + ], + "CHI-LO01": [ + "MOULIN, MONSTRES, ÉNERGIE, RÉÉLECTION..." + ], + "CHI-LO02": [ + "SCRUTIN, MONSTRES, HM-, RÉÉLECTION." + ], + "EXP-AM01": [ + "JE DOIS BIENTÔT PARTIR EN EXCURSION", + "J'AI BESOIN D'ORBES PRÉCURSORS !" + ], + "EXP-AM02": [ + "VOYONS, PAR OÙ VAIS-JE COMMENCER ?" + ], + "EXP-AM03": [ + "OH ! J'AI ENVIE DE VOIR DU PAYS !" + ], + "EXP-AM04": [ + "IL Y A TANT DE CHOSES À VOIR ET SI PEU DE TEMPS." + ], + "EXP-AM05": [ + "DE MON TEMPS ON POUVAIT VOYAGER", + "SANS SE FAIRE ATTAQUER PAR DES MONSTRES." + ], + "EXP-LO02": [ + "IL ME FAUT PLUS D'ORBES PRÉCURSORS." + ], + "EXP-LO1A": [ + "(MARMONNE)" + ], + "FAR-AM01": [ + "(RONFLEMENTS) VIENS LÀ, BESSIE. VIENS LÀ MA BESSIE.", + "C'EST UNE BONNE FILLE ÇA." + ], + "FAR-AM02": [ + "(MURMURES)" + ], + "FAR-AM2A": [ + "(MURMURES)" + ], + "FAR-LO01": [ + "(RONFLEMENTS)" + ], + "FAR-LO1A": [ + "(RONFLEMENTS)" + ], + "FIS-AM01": [ + "GRR, FICHUS POISSONS...", + "J'EN ATTRAPE JAMAIS UN SEUL !" + ], + "FIS-AM02": [ + "CES MONSTRES MANGEURS DE BATEAUX VONT ME RUINER..." + ], + "FIS-AM03": [ + "ALLEZ POISCAILLE !", + "DANS MES FILETS LES PETITS, ALLEZ.", + "HÉ HÉ HÉ HÉ HÉ !" + ], + "FIS-AM04": [ + "OH ! J'ADORE L'ODEUR DU POISSON LE MATIN." + ], + "FIS-AM05": [ + "HMMM- JE ME FERAIS BIEN QUELQUES ANCHOIS PANÉES." + ], + "FIS-AM06": [ + "J'EN AVAIS ATTRAPÉ UN GROS COMME ÇA." + ], + "FIS-LO01": [ + "GRR !" + ], + "FIS-LO03": [ + "HA HA HA HA HA HA !" + ], + "FIS-LO04": [ + "FICHUS POISSONS ! JAMAIS RIEN DANS MON FILET." + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HA !" + ], + "FIS-TA01": [ + "À GAUCHE !" + ], + "FIS-TA02": [ + "À TA DROITE !" + ], + "FIS-TA03": [ + "EN VOILÀ UN GROS !" + ], + "FIS-TA04": [ + "T'AS MANQUÉ UNE BELLE PRISE LÀ !" + ], + "FIS-TA05": [ + "FAUT PAS MANQUER CELUI-LÀ !" + ], + "FIS-TA06": [ + "BIEN PETIT." + ], + "FIS-TA07": [ + "IL FAUT SOUQUER FERME, MON GARÇON." + ], + "FIS-TA08": [ + "GRR, MANQUÉ..." + ], + "FIS-TA09": [ + "IL TE FAUDRAIT UN PLUS GRAND FILET." + ], + "FIS-TA10": [ + "ENCORE MANQUÉ !" + ], + "FIS-TA11": [ + "C'EST BON ! TU Y ES PRESQUE." + ], + "FIS-TA1A": [ + "GAUCHE !" + ], + "FIS-TA2A": [ + "DROITE !" + ], + "GAM-AM01": [ + "VINGT CONTRE UN C'EST PAS SI MAL !" + ], + "GAM-AM02": [ + "OH, C'ÉTAIT POURTANT SI SÛR !" + ], + "GAM-AM03": [ + "HÉ HÉ HÉ ! JE VAIS BIENTÔT TOUCHER LE GROS LOT !" + ], + "GAM-AM04": [ + "HÉ, LES TONNEAUX REVIENNENT À LA MODE !" + ], + "GAM-AM05": [ + "J'AI BESOIN D'UN COUP DE CHANCE !" + ], + "GAM-AM06": [ + "OH... J'AI BESOIN D'UN COUP DE CHANCE." + ], + "GAM-AM07": [ + "QUELLES SONT LES PROBABILITÉS D'ATTERRIR DANS UNE VILLE ATTAQUÉE ?" + ], + "GAM-AM08": [ + "JE CROYAIS AVOIR UN BON TUYAU." + ], + "GAM-AM09": [ + "HÉ OUI ! À CHAQUE JOUR SON PARI !" + ], + "GAM-AM10": [ + "JE PARIE QUE PERSONNE NE PEUT BATTRE CE MONSTRE !" + ], + "GAM-AM11": [ + "JE DEVRAIS ENCAISSER ET FILER." + ], + "GAM-AM12": [ + "ON NE PEUT PAS TOUJOURS GAGNER." + ], + "GAM-AM13": [ + "HÉ ! POURQUOI TU RIGOLES ? JE TE FAIS RIRE ?" + ], + "GEO-AM01": [ + "HMM, QUELLE STRATE INTÉRESSANTE." + ], + "GEO-AM02": [ + "PAUVRES PETITES TAUPES..." + ], + "GEO-AM03": [ + "INTÉRESSANT." + ], + "GEO-AM04": [ + "BONNE CHANCE LES GARS !" + ], + "GEO-AM05": [ + "FICHUS LURKERS..." + ], + "GEO-AM06": [ + "LES PIERRES SONT SENSIBLES." + ], + "GEO-AM07": [ + "ACCROCHEZ-VOUS MES PETITES." + ], + "GEO-AM08": [ + "JE VAIS POUVOIR CONTINUER MES RECHERCHES." + ], + "GEO-LO01": [ + "IL FAUT QUE JE CONTINUE MES RECHERCHES." + ], + "GEO-LO02": [ + "HMM, CETTE PIERRE EST TRÈS VIEILLE." + ], + "GOL-AM01": [ + "VOUS N'ABANDONNEZ JAMAIS, OU QUOI ?!" + ], + "GOL-AM02": [ + "BIENTÔT L'ÉCO NOIRE NOUS APPARTIENDRA !" + ], + "GOL-AM03": [ + "ACHÈVE-LES !" + ], + "GOL-AM04": [ + "FEU !" + ], + "GOL-AM05": [ + "EXPLOSE-LES !" + ], + "GOL-AM06": [ + "QUOI ?! ENCORE EUX !" + ], + "GOL-AM07": [ + "C'EST TROP TARD !" + ], + "GOL-AM08": [ + "VOUS ÊTES À MOI !" + ], + "GOL-AM09": [ + "JE VOUS TIENS MAINTENANT !" + ], + "GOL-AM10": [ + "HA HA HA HA HA !" + ], + "GOL-AM11": [ + "PAS DE PITIÉ !" + ], + "GOL-AM12": [ + "PRENEZ ÇA !" + ], + "GOL-AM13": [ + "BIEN ESSAYÉ !" + ], + "GOL-AM14": [ + "NE BOUGEZ PLUS !" + ], + "GOL-AM15": [ + "LAMENTABLE..." + ], + "GOL-AM16": [ + "NOOON !" + ], + "GOL-AM17": [ + "AHHH !" + ], + "GOL-AM18": [ + "NOUS ALLONS OUVRIR LE SILO ET VOUS RÉDUIRE EN MIETTES !" + ], + "GOL-AM19": [ + "DE L'ÉCO DE LUMIÈRE ! ÇA EXISTE !" + ], + "GOL-AM20": [ + "NOUS N'ALLONS PAS NOUS LAISSER FAIRE !" + ], + "MAI-AM01": [ + "ÉLIMINE-LES UNE BONNE FOIS POUR TOUTES !" + ], + "MAI-AM02": [ + "DÉBARRASSE-TOI D'EUX !" + ], + "MAI-AM03": [ + "HA HA HA !" + ], + "MAI-AM04": [ + "L'ÉCO NE VOUS PROTÉGERA PLUS !" + ], + "MAI-AM05": [ + "FAIS QUELQUE CHOSE !" + ], + "MAI-AM06": [ + "AHHH !" + ], + "MAI-AM07": [ + "NOOOOON !" + ], + "MAI-AM08": [ + "NOUS ALLONS OUVRIR LE SILO ET VOUS RÉDUIRE EN MIETTES !" + ], + "MAI-AM09": [ + "IL NE FAUT PAS QU'ILS S'EN EMPARENT !" + ], + "MIN-LO01": [ + "UN DE CES JOURS, JE SERAIS RICHE !", + "TU VEUX DIRE \"NOUS SERONS RICHES\" ?", + "OUAIS. COMME TU DIS !" + ], + "MIN-LO03": [ + "PIOCHE ! WILLARD ! PIOCHE !", + "OUI... ET TOI TU NE PIOCHES PAS ?!", + "JE NE PEUX PAS, JE RÉFLÉCHIS MOI !" + ], + "MIN-LO04": [ + "EUH, GORDY... JE PEUX FAIRE UNE PAUSE ?", + "OH, SI TU FAIS UNE PAUSE JE N'AIDE PAS. ALLEZ PIOCHE !" + ], + "MIN-LO05": [ + "JE MEURS DE FAIM, GORDY !", + "MANGE TON OISEAU !" + ], + "MIN-LO06": [ + "EUH, GORDY. MA PIOCHE N'EST PAS ASSEZ POINTUE.", + "C'EST TOI QUI N'ES PAS ASSEZ POINTU !" + ], + "MSH-AM01": [ + "HA HA HA ! JE VAIS ÊTRE RICHE." + ], + "MSH-AM02": [ + "PIOCHE ! PIOCHE ! PIOCHE !" + ], + "MSH-AM03": [ + "WILLARD ! LE TRAVAIL C'EST LA SANTÉ !" + ], + "MSH-AM04": [ + "AH-HAH, JE VAIS ÊTRE L'HOMME LE PLUS RICHE DU MONDE !" + ], + "MSH-AM05": [ + "OH ! PERSONNE N'A JAMAIS VU UNE GEMME DE CETTE TAILLE !" + ], + "MSH-AM06": [ + "AHHH ! À MOI LA BELLE VIE !" + ], + "MSH-AM07": [ + "MES GEMMES ! TOUTES MES GEMMES !" + ], + "MSH-AM09": [ + "VIVEMENT QUE JE FASSE RENTRER DES GROS SOUS !" + ], + "MSH-AM10": [ + "ON DIRAIT UNE CRITISE LORCONIA PRÉCIEUSE !" + ], + "MSH-AM11": [ + "ATTEND UNE MINUTE ! ELLES SONT À MOI ! TOUTES À MOI !" + ], + "MSH-AM12": [ + "ALORS, WILLARD. QU'EST-CE QUE TU VAS FAIRE AVEC", + "TON QUART, DE MOITIÉ ?" + ], + "MSH-AM1A": [ + "JE VAIS ÊTRE RICHE !" + ], + "MSH-AM2A": [ + "PIOCHE, PIOCHE, PIOCHE !" + ], + "MSH-AM3A": [ + "LE TRAVAIL, C'EST LA SANTÉ !" + ], + "MTA-AM01": [ + "EUH... ON A BIENTÔT FINI ?" + ], + "MTA-AM02": [ + "EUH... MINCE. ON PEUT FAIRE UNE PAUSE ?" + ], + "MTA-AM03": [ + "TIENS, J'AI FAIM." + ], + "MTA-AM04": [ + "OH... JE DOIS NETTOYER LA CAGE DE BIRDIE." + ], + "MTA-AM05": [ + "CETTE GEMME EST HORRIBLEMENT GROSSE !" + ], + "MTA-AM06": [ + "EUH... J'AI TOUJOURS VOULU... ÊTRE BÛCHERON." + ], + "MTA-AM07": [ + "GORDY M'A PROMIS LA MOITIÉ DE TOUT CE QUE JE POURRAIS PORTER." + ], + "MTA-AM08": [ + "HÉ HÉ ! BIRDIE EST MON MEILLEUR AMI." + ], + "MTA-AM09": [ + "J'ADORE MON PETIT BIRDIE." + ], + "RED-AM01": [ + "IL Y A QUELQU'UN ?" + ], + "RED-AM02": [ + "ET BIEN..." + ], + "RED-AM03": [ + "QU'EST-CE QUE VOUS FAISIEZ ?" + ], + "SAGELP03": [ + "CE SONT CES DEUX LA QUI DÉBLOQUENT !" + ], + "SAGELP04": [ + "IL NE SERA JAMAIS COMME SON ONCLE.", + "PEU IMPORTE CE QUE DISENT LES GENS !" + ], + "SAGELP05": [ + "ALLÔ ? SAGE BLEU ? ALLÔ ?", + "OÙ EST-IL PASSÉ, SACREBLEU ?" + ], + "SAGELP06": [ + "EH BIEN, EH BIEN !" + ], + "SAGELP11": [ + "ALLÔ ? IL Y A QUELQU'UN ? RÉPONDEZ !" + ], + "SAGELP21": [ + "LES LURKERS DOIVENT ÊTRE ARRÊTÉS !" + ], + "SAGELP22": [ + "JE VOIS..." + ], + "SAGELP23": [ + "NON..." + ], + "SAGELP24": [ + "QU'A-T-IL BIEN PU LUI ARRIVER ?" + ], + "SAGELP31": [ + "C'EST PAS BON ÇA..." + ], + "SAGELP32": [ + "DES CRISTAUX D'ÉCO NOIRE ?" + ], + "SAGELP33": [ + "MAIA ET GOL ONT VRAIMENT PERDU LA TÊTE !" + ], + "SAGELP34": [ + "HM. LA PUISSANCE DE L'ÉCO NOIRE NE PEUT PAS ÊTRE CONTRÔLÉE !" + ], + "SAGELP35": [ + "DE L'ÉCO NOIRE DANS LES GLACIERS ?!" + ], + "SAGELP36": [ + "AH ! IL Y A DES TROUPES LURKERS DANS LES MONTAGNES !" + ], + "SAGELP37": [ + "QU'EST-CE QUE GOL PRÉPARE ?" + ], + "SAGELP38": [ + "AURAIT-IL VRAIMENT..." + ], + "SCU-AM01": [ + "AH... JE N'Y ARRIVE PLUS DU TOUT." + ], + "SCU-AM02": [ + "AH... SI SEULEMENT J'ÉTAIS INSPIRÉ." + ], + "SCU-AM03": [ + "JE SUIS AUSSI INSPIRÉ QUE CETTE PIERRE." + ], + "SCU-AM04": [ + "AH... OÙ EST MA MUSE ?" + ], + "SCU-AM05": [ + "AH-LA-LA... JE N'Y ARRIVE PAS." + ], + "SCU-AM06": [ + "OH NON... EST-CE QU'ELLE REVIENDRA UN JOUR ?" + ], + "SCU-LO01": [ + "(SOUPIR)" + ], + "SKSP009F": [ + "PRENDS ÇA ! PRENDS ÇA ! HA HA HA !" + ], + "WAR-LO1A": [ + "(PLEURS)" + ], + "WAR-LO1B": [ + "(PLEURS)" + ], + "WAR-LO1C": [ + "(PLEURS)", + "(PLEURS)" + ], + "YEL-AM01": [ + "LE TEMPS PRESSE !" + ], + "YEL-AM02": [ + "HÉ, SORTEZ-MOI DE LÀ !" + ], + "YEL-AM03": [ + "QUAND JE VAIS SORTIR D'ICI ÇA VA FAIRE MAL !" + ], + "asstv100": [ + "VOUS AVEZ ASSEZ DE PILES POUR AUGMENTER LA PUISSANCE DU BOUCLIER THERMIQUE.", + "UTILISEZ LE WAGONNET POUR DESCENDRE LE PUITS SITUÉ PRÈS DU GEYSER DE LAVE.", + "JE VOUS RETROUVERAI À L'ENTRÉE DU CANAL LAVIQUE", + "POUR MODIFIER LE ZOOMER, FAITES VITE !" + ], + "asstv101": [ + "HA HA ! BON, VOUS AVEZ ASSEZ DE PILES POUR AUGMENTER", + "LA PUISSANCE DU BOUCLIER THERMIQUE.", + "RETROUVEZ-MOI DANS LE CRATÈRE VOLCANIQUE.", + "JE SERAI À CÔTÉ DU CANAL LAVIQUE AU FOND DU PUITS, PRÈS DU GEYSER DE LAVE.", + "AMENEZ-MOI LES PILES D'ÉNERGIE !" + ], + "asstv102": [ + "DÉPÊCHEZ-VOUS AVEC CES PILES D'ÉNERGIE !", + "J'ATTENDRAI À CÔTÉ DU WAGONNET, DANS LE PUITS SITUÉ PRÈS DU GEYSER DE LAVE." + ], + "asstv103": [ + "N'OUBLIEZ PAS D'ACTIVER LA PORTE DE TÉLÉPORTATION POUR NOUS LAISSER PASSER.", + "IL FAUT QUE VOUS ALLIEZ AU LABO DU SAGE ROUGE AU CENTRE DU CRATÈRE POUR L'ALLUMER.", + "NOUS NE POUVONS PAS PASSER TANT QU'ELLE N'EST PAS ACTIVÉE." + ], + "asstv104": [ + "HÉ, NOUS SOMMES TOUJOURS AU VILLAGE DES PIERRES !", + "ACTIVEZ LA PORTE DE TÉLÉPORTATION !" + ], + "asstv105": [ + "NOUS VOULONS VOUS REJOINDRE AU CRATÈRE VOLCANIQUE", + "ALLEZ AU LABO DU SAGE ROUGE ET ACTIVEZ LA PORTE !" + ], + "asstva73": [ + "HÉ, LES GARS ! D'APRÈS MES CALCULS, IL VA FALLOIR", + "72 PILES D'ÉNERGIE POUR QUE LE BOUCLIER THERMIQUE", + "RÉSISTE À LA LAVE SITUÉE VERS LA CITADELLE DE GOL ET MAIA." + ], + "asstva74": [ + "VOUS N'AVEZ PAS ASSEZ DE PILES D'ÉNERGIE POUR TRAVERSER CETTE LAVE !", + "VOUS NE POURREZ PAS VOUS RENDRE À LA CITADELLE DE GOL ET MAIA ", + "TANT QUE VOUS N'AUREZ PAS 72 PILES D'ÉNERGIE !" + ], + "asstvb02": [ + "OUAH ! VOUS AVEZ VU ÇA ?", + "LES ORIFICES D'ÉCO BLEUE ONT ÉTÉ ACTIVÉS DANS LE MONDE ENTIER !", + "JE SAVAIS QU'IL EXISTAIT UN MOYEN.", + "IL DOIT AUSSI IL Y AVOIR DES ENDROITS POUR ACTIVER LES AUTRES ORIFICES D'ÉCO." + ], + "asstvb03": [ + "BIEN, VOUS AVEZ ARRÊTÉ TOUT LES LURKERS POSEURS DE MINES !", + "ILS MENAÇAIENT LES EAUX PROCHES NOTRE VILLAGE DEPUIS DES SEMAINES.", + "RAMENEZ LE ZOOMER AU TRANS-PAD ET JE LE TÉLÉPORTERAI !" + ], + "asstvb04": [ + "VOUS AVEZ ASSEZ DE PILES D'ÉNERGIE POUR ALIMENTER MON BOUCLIER THERMIQUE.", + "RETROUVEZ-MOI AU CANYON DE FEU", + "SUR LA FALAISE DERRIÈRE LA MAISON DU FERMIER.", + "AMENEZ LES PILES D'ÉNERGIE ET DÉPÊCHEZ-VOUS !", + "MON PÈRE A VU DE NOUVEAUX LURKERS !" + ], + "asstvb08": [ + "APPORTEZ VITE LES PILES D'ÉNERGIE !", + "J'ATTENDRAIS À L'ENTRÉE DU CANYON DE FEU", + "AU SOMMET DE LA FALAISE, DERRIÈRE LA MAISON DU FERMIER." + ], + "asstvb09": [ + "VOUS N'AVEZ PAS 20 PILES D'ÉNERGIE POUR ALIMENTER MON BOUCLIER THERMIQUE", + "VOUS NE POUVEZ PAS TRAVERSER LE CANYON DE FEU S'IL VOUS EN MANQUE !" + ], + "asstvb20": [ + "BIEN JOUÉ, CES LURKERS NE FONT PAS LE POIDS FACE À VOTRE ZOOMER !", + "C'EST UNE PILE D'ÉNERGIE DE PLUS." + ], + "asstvb21": [ + "BIEN JOUÉ ! VOUS N'ÊTES PAS CONTENTS D'AVOIR SAUVÉ NOTRE PETIT AMI FLUT-FLUT ?", + "IL POURRAIT ENCORE S'AVÉRER UTILE.", + "MAINTENANT, RETOURNEZ AU TRANS-PAD ET JE LE RAMÈNERAI À LA MAISON." + ], + "asstvb22": [ + "VOUS AVEZ FAIT REMONTER UNE PARTIE DES RUINES SUBMERGÉES !", + "IL SEMBLERAIT QUE L'ON PUISSE UTILISER L'ÉCO DE FAÇON ENCORE INCONNUE.", + "UNE PILE D'ÉNERGIE EST REMONTÉE AVEC LA SALLE.", + "MONTEZ DESSUS POUR LA RÉCUPÉRER !" + ], + "asstvb23": [ + "BIEN JOUÉ ! LES GENS DU VILLAGE DES PIERRES SONT SOULAGÉS.", + "MAIS NOUS N'AVONS PAS LE TEMPS DE FÊTER ÇA.", + "UTILISEZ LE ZOOMER POUR TRAVERSER LE COL DE LA MONTAGNE.", + "ATTENTION, ON DIRAIT QUE LES LURKERS ONT PIÉGÉ LE COL AVEC DES EXPLOSIFS !", + "QUAND VOUS ATTEINDREZ LE CRATÈRE VOLCANIQUE,", + "ARRÊTEZ-VOUS AU LABO DU SAGE ROUGE ET ACTIVEZ LA PORTE ", + "DE TÉLÉPORTATION POUR QUE PÈRE ET MOI PUISSIONS VOUS REJOINDRE." + ], + "asstvb24": [ + "OH LA LA ! CES LURKERS DOIVENT ÊTRE EN ROUTE VERS LE DÉTONATEUR AU BOUT DU CANYON !", + "S'ILS L'ATTEIGNENT AVANT VOUS, ILS DÉTRUIRONT TOUT LE COL !", + "DOUBLEZ LES ET DÉTRUISEZ LE DÉTONATEUR", + "OU TOUT SERA FINI !" + ], + "asstvb25": [ + "BIEN JOUÉ, VOUS AVEZ ATTEINT LE DÉTONATEUR AVANT EUX !", + "LE LABO DU SAGE ROUGE EST JUSTE DEVANT.", + "ALLEZ ACTIVER LA PORTE DE TÉLÉPORTATION POUR QUE NOUS VOUS REJOIGNIONS." + ], + "asstvb28": [ + "HÉ, NE NOUS OUBLIEZ PAS !", + "IL FAUT QUE VOUS ACTIVIEZ LA PORTE DE TÉLÉPORTATION POUR NOUS LAISSER PASSER", + "C'EST DANS LE LABO DU SAGE BLEU, AU BOUT DU CANYON DE FEU.", + "SI NOUS NE PASSONS PAS, NOUS NE POURRONS PAS VOUS AIDER." + ], + "asstvb29": [ + "HÉ, NOUS ATTENDONS TOUJOURS !", + "ACTIVEZ LA PORTE DE TÉLÉPORTATION !" + ], + "asstvb30": [ + "HÉ ! ON NE PEUT PAS PASSER TANT QUE", + "LA PORTE DE TÉLÉPORTATION N'EST PAS ACTIVÉE !" + ], + "asstvb40": [ + "CET APPAREIL EST UN COMMUNICATEUR. AVEC LUI MON PÈRE ET MOI", + "POUVONS VOUS DONNER DES CONSEILS À TOUT MOMENT PENDANT VOTRE QUÊTE." + ], + "asstvb41": [ + "CES SORTES D'OEUFS FLOTTANTS SONT DES ORBES PRÉCURSORS.", + "RAMASSEZ-EN ASSEZ ET CERTAINS VILLAGEOIS VOUS DONNERONS", + "UNE PILE D'ÉNERGIE EN ÉCHANGE !" + ], + "asstvb42": [ + "CECI EST UNE PILE D'ÉNERGIE !", + "L'OBJET PRÉCURSOR LE PLUS IMPORTANT QUE VOUS PUISSIEZ TROUVER.", + "IL VOUS EN FAUT 20 POUR QUE J'ACTIVE", + "LE BOUCLIER THERMIQUE DE VOTRE ZOOMER ANTI-GRAV." + ], + "asstvb44": [ + "HÉ, VOUS AVEZ TROUVÉ UNE DE MES MÉCAMOUCHES !", + "J'EN AI ENVOYÉ 7 DANS CHAQUE ZONES POUR TROUVER DES PILES D'ÉNERGIE", + "MAIS LES LURKERS ONT DÛ LES CAPTURER." + ], + "asstvb45": [ + "OUAH, CETTE DERNIÈRE MÉCAMOUCHE AVAIT UNE PILE D'ÉNERGIE !", + "SI VOUS LES RAMASSEZ TOUTES LES 7 JE SUIS SÛRE", + "QUE VOUS TROUVEREZ ENCORE PLUS DE PILES D'ÉNERGIE !" + ], + "asstvb46": [ + "FAITES ATTENTION SUR L'OCÉAN, LES EAUX REGORGENT", + "DE REQUINS LURKERS ET JE N'AI JAMAIS VU PERSONNE EN BATTRE UN.", + "NE LES APPROCHEZ PAS SI VOUS TENEZ À LA VIE !" + ], + "asstvb47": [ + "SOUVENEZ-VOUS, CECI EST UNE PILE D'ÉNERGIE.", + "IL FAUT QUE VOUS EN RAMASSIEZ AUTANT QUE POSSIBLE." + ], + "asstvb48": [ + "C'EST UN ORIFICE D'ÉCO BLEUE, PLUS CONCENTRÉ QUE LES GROUPES FLOTTANTS.", + "CET ENDROIT VOUS DONNERA UNE PLEINE CHARGE D'ÉCO BLEUE POUR UNE DURÉE MAXIMALE !" + ], + "asstvb71": [ + "VOUS N'AVEZ PAS ASSEZ DE PILES D'ÉNERGIE POUR ALIMENTER LA MACHINE DU SAGE BLEU.", + "ON NE POURRA PAS SOULEVER CE ROCHER TANT QUE VOUS N'AUREZ PAS 45 PILES D'ÉNERGIE." + ], + "asstvb72": [ + "EN ATTENDANT DE SAVOIR POURQUOI LE SAGE BLEU A DISPARU", + "IL FAUT QUE VOUS RAMASSIEZ 45 PILES D'ÉNERGIE", + "POUR ALIMENTER CETTE MACHINE. NE TRAINEZ PAS !" + ], + "asstvb75": [ + "CE TÉLÉPHÉRIQUE N'A PAS L'AIR DE FONCTIONNER", + "JE VAIS LE BRICOLER POUR LE REMETTRE EN MARCHE." + ], + "asstvb76": [ + "J'AI RÉACTIVÉ LE TÉLÉPHÉRIQUE ! IL POURRA VOUS EMMENER À LA MONTAGNE ENNEIGÉE.", + "UTILISEZ LE QUAND VOUS VOULEZ !" + ], + "sagevb01": [ + "EH BIEN ! JE VOIS QUE VOUS AVEZ FINALEMENT DÉCIDÉ DE DÉBLOQUER MES COLLECTEURS.", + "JE VOUS FÉLICITERAIS BIEN", + "MAIS JE NE PEUX PAS VOUS FAIRE PERDRE DE TEMPS.", + "AU FAIT, SI ÇA NE MARCHE PAS", + "DAXTER POURRA TOUJOURS TRAVAILLER COMME DÉRATISEUR AU VILLAGE.", + "HA HA HA HA HA." + ], + "sagevb02": [ + "JE DOIS L'ADMETTRE, JE SUIS IMPRESSIONNÉ.", + "VOUS VOUS EN ÊTES TRÈS BIEN TIRÉS !", + "DÉSORMAIS, LES LURKERS NE PEUVENT PLUS OUVRIR CE SILO", + "POUR ENVAHIR LE MONDE D'ÉCO NOIRE ET CAUSER SA DESTRUCTION.", + "CE N'EST PAS LA PEINE DE SOURIRE BÊTEMENT DAXTER !", + "VOUS AVEZ ENCORE BEAUCOUP À FAIRE !", + "ALLEZ, ACTION !" + ], + "sagevb03": [ + "C'EST QUE VOUS M'IMPRESSIONNEZ !", + "MAIS C'EST SÛREMENT PARCE QUE JE NE M'ATTENDAIS PAS À ÇA DE VOUS.", + "BON, VOTRE HEURE DE GLOIRE EST PASSÉE.", + "PASSONS À AUTRE CHOSE." + ], + "sagevb04": [ + "BIEN JOUÉ, JAK ! TON ONCLE SERAIT FIER DE TOI !", + "C'ÉTAIT LE BRAS GÉANT D'UN ROBOT PRÉCURSOR.", + "JE N'EN AI JAMAIS VU EN AUSSI BON ÉTAT.", + "JE NE SAIS PAS CE QUE LES LURKERS AVAIENT L'INTENTION D'EN FAIRE,", + "MAIS SÛREMENT PAS QUELQUE CHOSE DE BON.", + "SI TU CONTINUES COMME ÇA-", + "NON... TU N'ES PAS ENCORE UN HÉROS !", + "MAIS, PERSISTE. ÇA VIENT !" + ], + "sagevb21": [ + "CES PETITES BOULES VERTES D'ÉNERGIE SUR LE SOL SONT UNE SORTE D'ÉCO.", + "RAMASSE 50 PETITES ÉCOS VERTES OU 1 GRANDE POUR AUGMENTER TA SANTÉ." + ], + "sagevb22": [ + "CECI EST L'ÉCO BLEUE, ELLE CONTIENT L'ÉNERGIE DE MOUVEMENT.", + "L'ÉCO BLEUE TE PERMET DE COURIR VITE, DE CASSER LES BOÎTES ET MÊME", + "D'ACTIVER CERTAINS OBJETS PRÉCURSORS QUAND TU T'EN APPROCHES." + ], + "sagevb23": [ + "REMARQUE QUE CHAQUE GROUPE D'ÉCO BLEUE QUE TU RAMASSES", + "AUGMENTE LA DURÉE DE SES POUVOIRS." + ], + "sagevb24": [ + "C'EST UNE PORTE PRÉCURSOR.", + "ELLE PEUT SEULEMENT ÊTRE OUVERTE EN L'APPROCHANT", + "TOUT EN CANALISANT DE L'ÉCO BLEUE DANS TON CORPS." + ], + "sagevb25": [ + "BIEN JOUÉ ! L'ÉCO BLEUE A PERMIS À LA PORTE DE S'OUVRIR.", + "AVEC L'ÉCO BLEUE, TU PEUX INSUFFLER DE L'ÉNERGIE À TOUTE SORTE", + "D'OBJETS PRÉCURSORS QUI DORMENT DEPUIS DES ANNÉES." + ], + "sagevb26": [ + "UTILISE TES LUNETTES POUR VOIR TA PROGRESSION PENDANT L'AVENTURE." + ], + "sagevb27": [ + "TU PEUX SAUTER UNE FOIS,", + "PUIS SAUTER ENCORE UNE FOIS EN L'AIR POUR ALLER PLUS HAUT !" + ], + "sagevb28": [ + "QUAND TU ES ENTOURÉ D'ENNEMIS, UTILISE TON COUP DE PIED EN ROTATION." + ], + "sagevb29": [ + "CE N'EST PAS UN COUP DE PIED EN ROTATION ÇA. ESSAYE ENCORE !" + ], + "sagevb30": [ + "ALLEZ JAK, DONNE UN COUP DE PIED EN ROTATION !" + ], + "sagevb31": [ + "BIEN JOUÉ ! UTILISE LE COUP DE PIED POUR EFFECTUER UNE ATTAQUE TOUT AUTOUR DE TOI" + ], + "sagevb32": [ + "POUR UNE ATTAQUE EN MOUVEMENT ET EN LIGNE DROITE UTILISE TON COUP DE POING." + ], + "sagevb33": [ + "CE N'EST PAS UN COUP DE POING. ALLEZ, DONNE UN COUP DE POING !" + ], + "sagevb34": [ + "JAK, DONNE UN COUP DE POING !" + ], + "sagevb35": [ + "BIEN JOUÉ ! UTILISE LE COUP DE POING POUR FONCER ET ATTAQUER RAPIDEMENT." + ], + "sagevb36": [ + "PARFOIS, TU VOUDRAS FRAPPER AVEC PLUS DE FORCE", + "POUR BRISER L'UNE DE CES BOÎTES", + "TU DOIS SAUTER EN L'AIR PUIS PLONGER DESSUS, LES MAINS EN AVANT." + ], + "sagevb37": [ + "QUAND TU AURAS PRIS CONFIANCE, TENTE DE COMBINER TES ATTAQUES." + ], + "sagevb38": [ + "TU NE PEUX PAS REVENIR PAR LE TÉLÉPORTEUR", + "TANT QUE TU N'AS PAS TROUVÉ LES 4 PILES D'ÉNERGIE DE CETTE ÎLE." + ], + "sagevb39": [ + "EXCELLENT, TU AS TROUVÉ TOUTES LES PILES D'ÉNERGIE DE L'ÎLE !", + "REVIENS AU TÉLÉPORTEUR, POUR QUE JE PUISSE TE RAMENER AU LABO. DÉPÊCHE-TOI !" + ], + "sksp0001": [ + "LA MIGNONNE PETITE KEIRA AVAIT RAISON, IL Y A DES TRANS-PADS ICI !" + ], + "sksp0002": [ + "CROIS-MOI, CES BOÎTES D'ÉCO NOIRE NE PRÉSAGENT RIEN DE BON !" + ], + "sksp0003": [ + "SI ON TROUVE CES FICHUS MÉCAMOUCHES À CHAQUE NIVEAUX", + "IL Y EN AURA BIEN UNE QUI AURA UNE PILE D'ÉNERGIE !" + ], + "sksp0004": [ + "SUPER ! UN TRÉSOR !" + ], + "sksp0005": [ + "CES BOÎTES DE BOIS ET DE MÉTAL NE SONT PAS SI SOLIDES.", + "ELLES SE BRISERONT SI TU SAUTES EN PIQUÉ DESSUS !" + ], + "sksp0006": [ + "CES BOÎTES DE MÉTAL SONT PLUS DURE QU'UN CRÂNE DE YAKOW !", + "MAIS ON DOIT POUVOIR LES OUVRIR AVEC QUELQUE CHOSE." + ], + "sksp0007": [ + "2 MOTS: PILES D'ÉNERGIE", + "IL FAUT EN TROUVER ET ON N'EST PAS TRÈS BIEN PARTI !" + ], + "sksp0008": [ + "IL NOUS FAUT DES ORBES POUR ACHETER DES PILES D'ÉNERGIE." + ], + "sksp0009": [ + "ÇA C'EST BIZARRE !", + "JE SUIS SÛR QUE ÇA PEUT S'OUVRIR AVEC TON SUPER-BIDULE D'ÉCO BLEUE." + ], + "sksp0010": [ + "HÉ ! ALLONS AU PORT VOIR LE BATEAU DE MÉROU QUI FOUETTE !" + ], + "sksp0011": [ + "ON DEVRAIT DEMANDER AU PÊCHEUR DE LA RIVIÈRE DE LA JUNGLE", + "SI ON PEUT PRENDRE SON BATEAU POUR FOOOOONCER À L'ÎLE DE LA BRUME !" + ], + "sksp0013": [ + "TU AS VU LA TAILLE DE LA MÂCHOIRE DU REQUIN LURKER SUR LE BATEAU DU PÊCHEUR ?", + "ON FERAIT MIEUX DE NE PAS S'EN APPROCHER", + "JE NE CROIS PAS QUE NOUS SOYONS DE TAILLE À NOUS Y FROTTER !" + ], + "sksp0014": [ + "ON A RÉCUPÉRÉ ASSEZ D'ORBES POUR LES ÉCHANGER CONTRE UNE PILE D'ÉNERGIE.", + "REVENONS FAIRE LE TROC !" + ], + "sksp0015": [ + "ÇA DOIT ÊTRE UN ORACLE PRÉCURSOR DONT LE SAGE PARLE TOUJOURS.", + "J'ESPÈRE POUR EUX QU'ILS N'ÉTAIENT PAS AUSSI LAIDS !" + ], + "sksp0017": [ + "OUAH !", + "REGARDE UN PEU CETTE SCULPTURE SUR LES ROCHERS LÀ-BAS !" + ], + "sksp0018": [ + "ON DEVRAIT ALLER DIRE À CE MOULIN À PAROLE DE MAIRE QU'ON LUI A", + "RENDU SERVICE EN CONNECTANT LES FAISCEAUX D'ÉNERGIE DU VILLAGE !" + ], + "sksp0019": [ + "HÉ, DES MOUETTES ! ALLONS LES CHASSER POUR VOIR !" + ], + "sksp0020": [ + "HA HA HA ! ALLEZ, ON RECOMMENCE !" + ], + "sksp0021": [ + "VOILÀ ENCORE LES MOUETTES ! À L'ATTAQUE !" + ], + "sksp0022": [ + "HA HA HA HA HA ! WOO HO HO !" + ], + "sksp0023": [ + "WOOHOO !" + ], + "sksp0024": [ + "YEAH HA HA ! OUAIS !" + ], + "sksp0025": [ + "OUAH ! ÇA A PROVOQUÉ UNE AVALANCHE, ALLONS VOIR ÇA !" + ], + "sksp0026": [ + "HÉ, CE PÉLICAN VIENT DE PIQUER UNE PILE D'ÉNERGIE !", + "ALLONS LUI BOTTER LES FESSES !" + ], + "sksp0027": [ + "VITE ! IL FAUT QUE NOUS ATTEIGNONS LA PILE D'ÉNERGIE", + "AVANT QUE LE PÉLICAN NE L'AVALE À NOUVEAU !" + ], + "sksp0028": [ + "DONNE UN COUP DE PIED DANS L'OEUF. TAPE LE, TAPE LE !" + ], + "sksp0029": [ + "ON DEVRAIT PEUT-ÊTRE PARLER À LA DAME AUX OISEAUX", + "POUR VOIR SI ON A ÉCRABOUILLÉ L'OEUF DE FLUT-FLUT." + ], + "sksp0030": [ + "HÉ, ESSAYE DE DONNER UN COUP DE POING POUR DÉGAGER LES ROCHERS !" + ], + "sksp0031": [ + "OH ! UTILISONS LE CANON POUR FAIRE EXPLOSER DES TRUCS !" + ], + "sksp0034": [ + "PLONGE VERS CES OEUFS, PLONGE !" + ], + "sksp0035": [ + "OUAIS, ON A UN PROPULSEUR PRÉCURSOR PAR-ICI MAIS TU N'AS PAS LE TRUC BLEU !", + "ALORS ÇA NE VA PAS NOUS AIDER !" + ], + "sksp0037": [ + "CES ESPÈCES DE TOURS DANS LA JUNGLE DOIVENT REDIRIGER LE FAISCEAU ÉCO", + "ALLONS LES TRAFICOTER !" + ], + "sksp0038": [ + "HMM, SI L'ÉCO BLEUE PEUT CONSTRUIRE UN PONT", + "ALORS JE SUIS SÛR QUE ÇA PEUT OUVRIR UNE PORTE ET TE REQUINQUER !" + ], + "sksp0039": [ + "HÉ, IL Y A DES PETITES TRACES D'ÉCLAIR SUR CES POTEAUX", + "ET IL Y A DES ÉCLAIRS QUI SORTENT DE CET ORIFICE LÀ-BAS.", + "EST-CE QUE TU PENSES CE QUE JE PENSE ?" + ], + "sksp0040": [ + "MONTONS SUR CETTE MACHINE ET BRISONS LE MIROIR QUI DÉVIE LE FAISCEAU PRÉCURSOR !" + ], + "sksp0041": [ + "IL FAUT QU'ON MONTE SUR CETTE TOUR !" + ], + "sksp0043": [ + "IL FAUDRAIT PEUT-ÊTRE DÉNICHER LE PÊCHEUR.", + "J'AI ENTENDU DIRE QU'IL PÈCHE DANS LA JUNGLE, VERS LE BAS DE LA RIVIÈRE !" + ], + "sksp0049": [ + "ALIGNE LE FAISCEAU EN LE POINTANT VERS LA TOUR SUIVANTE !" + ], + "sksp0050": [ + "BRISE LE MIROIR, JAK !" + ], + "sksp0051": [ + "OCCUPE-TOI DES BESTIOLES JAK ! DES BESTIOLES !" + ], + "sksp0052": [ + "ALLONS À LA TOUR SUIVANTE POUR RECONNECTER LE FAISCEAU LÀ-BAS !" + ], + "sksp0053": [ + "HÉ, ON PEUT SUIVRE LE FAISCEAU POUR TROUVER LA TOUR SUIVANTE !" + ], + "sksp0054": [ + "IL FAUT QUE TU TE RECHARGES AVEC CE TRUC BLEU POUR OUVRIR ÇA !" + ], + "sksp0056": [ + "HÉ, JE VOIS LA MUSE DU SCULPTEUR !" + ], + "sksp0059": [ + "CET ENDROIT ME FICHE LA TROUILLE !", + "ESSAYE DE NE PAS TOMBER LÀ-DEDANS, D'ACCORD ?" + ], + "sksp0060": [ + "CET ENDROIT ME DONNE LA CHAIR DE POULE !", + "ET CROIS-MOI, C'EST UNE SACRÉE EXPÉRIENCE", + "QUAND TU ES RECOUVERT DE POILS !" + ], + "sksp0062": [ + "FONÇONS SUR CES BALLONS LURKERS POUR LES ÉCLATER !" + ], + "sksp0063": [ + "J'AI DIT: \"ÉCLATER LES LURKERS\", JAK. PAS LES MINES !", + "RÈGLE NUMÉRO 1: ÉVITER LES MINES !" + ], + "sksp0064": [ + "FAIS ATTENTION !", + "TU TE SOUVIENS DE CE QU'IL S'EST PASSÉ ICI LA DERNIÈRE FOIS !" + ], + "sksp0067": [ + "NE TOMBE PAS DANS LA BRUME EN-DESSOUS !", + "ON NE S'EN SORTIRAIT JAMAIS !" + ], + "sksp0069": [ + "C'EST UNE EMBUSCADE, JAK ! C'EST UNE EMBUSCADE !" + ], + "sksp0070": [ + "SAUTE ET PLONGE SUR LA BALANÇOIRE" + ], + "sksp0071": [ + "PRENDS L'ÉCO ROUGE !" + ], + "sksp0072": [ + "L'ÉCO ROUGE REND TES ATTAQUES PLUS PUISSANTES !" + ], + "sksp0073": [ + "ON A BESOIN D'ÉCO POUR CHARGER ÇA !" + ], + "sksp0077": [ + "LES BALLONS C'EST BON ! LE MAGMA C'EST PAS BON !" + ], + "sksp0078": [ + "PASSE SUR LES TRUCS PRÉCURSORS POUR NOUS RAFRAÎCHIR." + ], + "sksp0079": [ + "AHHH JE VAIS MOURIR ! J'ALLAIS ÊTRE GRAND-PÈRE...", + "IL FAUT QUE TU AMÈNES CE MACHIN DE L'AUTRE CÔTÉ AVANT LA SURCHAUFFE !" + ], + "sksp0080": [ + "UTILISE LE VIRAGE-SAUTÉ POUR MIEUX TOURNER !" + ], + "sksp0081": [ + "AHH ! JE DEVRAIS PEUT-ÊTRE CONDUIRE !" + ], + "sksp0082": [ + "TU ESSAYES VRAIMENT D'ÉVITER CES BOÎTES D'ÉCO NOIRE, PAS VRAI ?" + ], + "sksp0083": [ + "ESSAYONS DE PRENDRE DE L'ALTITUDE AVEC CES LURKERS." + ], + "sksp0084": [ + "TROP PRÈS ! TROP PRÈS !" + ], + "sksp0085": [ + "CET ENGIN DEVIENT TROP CHAUD !" + ], + "sksp0086": [ + "ENCORE QUELQUES SECONDES ET ON VA FINIR EN FLUT-FLUT GRILLÉ !" + ], + "sksp0087": [ + "TOUCHE CES BALLONS POUR REFROIDIR !" + ], + "sksp0088": [ + "VOILÀ UN AUTRE BALLON !" + ], + "sksp0089": [ + "J'AURAIS DÛ FAIRE LA GRASSE MATINÉE..." + ], + "sksp0090": [ + "TU AS MANQUÉ UN BALLON ! IL NOUS FAUT CEUX-LÀ OU ON EST CUIT !" + ], + "sksp0091": [ + "CETTE BÉCANE COMMENCE À CHAUFFER !" + ], + "sksp0092": [ + "IL N'Y A PAS COMME UNE ODEUR DE BRULÉ ?" + ], + "sksp0093": [ + "JE CROIS QUE MA QUEUE EST EN FEU !" + ], + "sksp0094": [ + "ÇA VA EXPLOSER !" + ], + "sksp0095": [ + "WAOUH ! ON A RÉUSSI !" + ], + "sksp0096": [ + "IL Y A DES MÉCAMOUCHES ICI AUSSI !" + ], + "sksp009a": [ + "HA HA ! ON LUI A MONTRÉ DE QUOI ON EST FAIT." + ], + "sksp009b": [ + "SUPER ! ENCORE DES ORBES !" + ], + "sksp009c": [ + "FAIT MOI PLAISIR, ÉVITE CES BOÎTES D'ÉCO NOIRE !" + ], + "sksp009d": [ + "YEAH-HA-HA-HA !" + ], + "sksp009e": [ + "WA-OUH !" + ], + "sksp009f": [ + "PRENDS ÇA, PRENDS ÇA ! HA HA HA !" + ], + "sksp009g": [ + "JUSTE DERRIÈRE TOI, JAK !" + ], + "sksp009i": [ + "EST-CE QU'ON A TROUVÉ TOUTES LES MÉCAMOUCHES DANS CETTE ZONE ?" + ], + "sksp009j": [ + "HÉ, ON DIRAIT QUE LES MÉCAMOUCHES SONT TOUJOURS DANS DES BOÎTES ROUGES !" + ], + "sksp009k": [ + "BIEN JOUÉ, TU AS TROUVÉ TOUTES LES MÉCAMOUCHES DE CETTE ZONE !" + ], + "sksp0109": [ + "WOO ! ON A BATTU LE TEMPS RECORD !" + ], + "sksp0110": [ + "JE L'AI DÉJÀ DIT ET JE VAIS ME RÉPÉTER,", + "ÉVITE LES BOÎTES D'ÉCO NOIRE !" + ], + "sksp0111": [ + "CHASSONS CES TAUPES DANS LEUR TROU !" + ], + "sksp0112": [ + "ALLONS CHERCHER NOTRE PILE D'ÉNERGIE CHEZ LA GÉOLOGUE." + ], + "sksp0113": [ + "ÇA DOIT ÊTRE LES PLANTES INFECTÉES DONT LE PETIT VIEUX PARLAIT." + ], + "sksp0114": [ + "NOUS DEVONS UTILISER L'ÉCO VERTE POUR GUÉRIR LES PLANTES." + ], + "sksp0115": [ + "JAK, PASSE DANS L'ORIFICE D'ÉCO VERTE !" + ], + "sksp0116": [ + "C'EST UN DE CES LURKERS VOLANT !", + "IL A PEUT-ÊTRE UNE PILE D'ÉNERGIE !" + ], + "sksp0117": [ + "VOILÀ LE TROU DES TAUPES !" + ], + "sksp0118": [ + "PASSONS AU-DESSUS DES PLANTES INFECTÉES MAINTENANT !" + ], + "sksp0119": [ + "UN DE MOINS, MAIS IL EN RESTE ENCORE PAS MAL." + ], + "sksp0120": [ + "DÉPÊCHE-TOI ! VOILÀ LE SUIVANT !" + ], + "sksp0121": [ + "VITE ! TU DOIS PASSER DANS CHAQUE ANNEAUX AVANT QU'ILS NE S'ÉTEIGNENT." + ], + "sksp0122": [ + "HÉ ! CETTE HERBE NOUS RALENTIT..." + ], + "sksp0123": [ + "VITE ! SUIS CE TUBE !" + ], + "sksp0124": [ + "ÇA NE M'INSPIRE PAS CONFIANCE." + ], + "sksp0125": [ + "ON DIRAIT QUE CES TRUCS ONT BESOIN D'UNE CHARGE D'ÉCO BLEUE !" + ], + "sksp0126": [ + "PRENONS LA PILE D'ÉNERGIE SUR LE TOIT DE CE MACHIN !" + ], + "sksp0127": [ + "FRAPPE DU PIED LE TYPE EN HAUT !" + ], + "sksp0128": [ + "JAK ! COURS ! L'ÉCO NOIRE EST EN TRAIN DE MONTER !" + ], + "sksp0129": [ + "AHHH ! L'ÉCO NOIRE SE RAPPROCHE !" + ], + "sksp0130": [ + "EUH... JE CROIS QU'IL FAUT ACTIVER TOUTES LES PLATEFORMES." + ], + "sksp0131": [ + "HÉ, ON DIRAIT QUE TU PEUX SAUTER ET PLONGER SUR CES SALETÉS !" + ], + "sksp0132": [ + "OUAH ! OHH-AH ! OHH-AHH !" + ], + "sksp0133": [ + "JE SUIS SÛR QU'ON PEUT TOUT CHARGER EN MÊME TEMPS !" + ], + "sksp0134": [ + "ET SI ON FAISAIT ATTENTION À CES TUBES BRÛLANTS ?!" + ], + "sksp0135": [ + "L'EAU À L'AIR DANGEREUSE QUAND ELLE CHANGE DE COULEUR" + ], + "sksp0136": [ + "TU DOIS SORTIR DE L'EAU AVANT QU'ELLE NE CHANGE DE COULEUR !" + ], + "sksp0137": [ + "JE SUIS SÛR QU'ON PEUT TIRER SUR CES ROCHERS, SI ON EST CHARGÉ EN ÉCO JAUNE." + ], + "sksp0138": [ + "ON DEVRAIT TIRER SUR CES GROS ROCHERS QUI MAINTIENNENT LES CORDES !" + ], + "sksp0139": [ + "ON DEVRAIT PEUT-ÊTRE AIDER CE FÊLÉ À TROUVER SON ANIMAL." + ], + "sksp0140": [ + "LE FLUT-FLUT PEUT PLANER PLUS LOIN S'IL SAUTE ENCORE EN L'AIR !" + ], + "sksp0141": [ + "NE TOUCHE PAS CE GOUDRON NOIR, OU TU LE REGRETTERAS !" + ], + "sksp0142": [ + "ON PEUT S'AVENTURER DANS L'EAU." + ], + "sksp0143": [ + "AAH ! DÉBARRASSE-TOI DE SA LANGUE !" + ], + "sksp0144": [ + "TIRE SUR CES NIDS DE RATS POUR LES EMPÊCHER DE SORTIR !" + ], + "sksp0145": [ + "OUAH ! TU PEUX TIRER DES BOULES DE FEU", + "QUAND TU ES CHARGÉ EN ÉCO JAUNE !" + ], + "sksp0146": [ + "HÉ, C'EST DE L'ÉCO JAUNE !" + ], + "sksp0147": [ + "TU PEUX SAUTER SUR CETTE PERCHE LÀ-BAS !" + ], + "sksp0148": [ + "ATTENTION ! CES RONCES SONT PIQUANTES." + ], + "sksp0149": [ + "HÉ, ON DIRAIT UNE CORDE QUI MAINTIENT LE DIRIGEABLE EN PLACE !" + ], + "sksp0150": [ + "FAIS ATTENTION QUAND CETTE GRENOUILLE EST CHARGÉE !" + ], + "sksp0151": [ + "ENFUIS-TOI JAK !" + ], + "sksp0152": [ + "ATTENTION JAK ! C'EST UNE EMBUSCADE !" + ], + "sksp0153": [ + "HÉ, ÇA DOIT ÊTRE L'OBJET PRÉCURSOR QUE LES LURKERS RECHERCHENT", + "ON DIRAIT UN BRAS DE ROBOT GÉANT !" + ], + "sksp0154": [ + "CE GOUDRON NOIR A L'AIR BRÛLANT ET DANGEREUX !" + ], + "sksp0155": [ + "TIRE SUR LES CHAUVES-SOURIS AVEC CE TRUC D'ÉCO JAUNE !" + ], + "sksp0156": [ + "ON PEUT PEUT-ÊTRE ÉVITER LES CHAUVES-SOURIS !" + ], + "sksp0157": [ + "TU AS VU ÇA ? PLUS QUE TROIS CORDES !" + ], + "sksp0158": [ + "OUAH ! PLUS QUE DEUX CORDES." + ], + "sksp0159": [ + "CE DIRIGEABLE TIENT À PEINE. TROUVONS LA DERNIÈRE CORDE !" + ], + "sksp0160": [ + "HÉ, VOILÀ LE FLUT-FLUT !" + ], + "sksp0161": [ + "JE DÉTESTE LES RATS ! ET JE LEUR RESSEMBLE..." + ], + "sksp018a": [ + "CE FAINÉANT DE FERMIER NOUS DOIT UNE PILE D'ÉNERGIE", + "ALLONS LUI PARLER !" + ], + "sksp0300": [ + "IL FAUT QU'ON ARRIVE AU BOUT DU COL AVANT CES LURKERS !" + ], + "sksp0301": [ + "NE TOUCHE PAS CES EXPLOSIFS !" + ], + "sksp0302": [ + "RESTE DEVANT EUX ET CE SERA TOUT BON !" + ], + "sksp0303": [ + "TOUCHE L'ÉCO BLEUE POUR FAIRE DES POINTES DE VITESSE !" + ], + "sksp0304": [ + "ÉVITE LES ARBRES, JAK ! ILS NOUS RALENTISSENT !" + ], + "sksp0305": [ + "PLUS TU TOUCHES D'ÉCO BLEUE, PLUS ON VA VITE !" + ], + "sksp0306": [ + "ATTENTION À CES EXPLOSIFS !" + ], + "sksp0307": [ + "NE TOMBE PAS DANS LES TROUS !" + ], + "sksp0308": [ + "JE DEVRAIS PEUT-ÊTRE CONDUIRE." + ], + "sksp0309": [ + "VOILÀ UN DES LURKERS !" + ], + "sksp0310": [ + "ATTRAPE-LES, JAK !" + ], + "sksp0311": [ + "ON EN A PASSÉ UN !" + ], + "sksp0312": [ + "AHHH ! UN DES LURKERS NOUS DÉPASSÉ !" + ], + "sksp0313": [ + "ILS SONT LOIN DEVANT !" + ], + "sksp0314": [ + "ON EST DEVANT !" + ], + "sksp0315": [ + "PLUS VITE, JAK ! PLUS VITE !" + ], + "sksp0316": [ + "UN GRAND SAUT ! UN GRAND SAUT !" + ], + "sksp0317": [ + "ACCROCHE-TOI !" + ], + "sksp0318": [ + "YAAHH !" + ], + "sksp0319": [ + "ÇA VA ÊTRE CHAUD !" + ], + "sksp0320": [ + "ILS VONT ARRIVER AVANT NOUS AU DÉTONATEUR !" + ], + "sksp0321": [ + "ON A RÉUSSI ! ON LES A EMPÊCHÉS DE FAIRE EXPLOSER LE COL !" + ], + "sksp0327": [ + "JE CROIS QUE C'ÉTAIT LE DERNIER CRISTAL D'ÉCO NOIRE !" + ], + "sksp0328": [ + "TU TIRERAIS SÛREMENT MIEUX SI TU VISAIS AVEC TES LUNETTES !" + ], + "sksp0329": [ + "OH, NON ! ENCORE DE L'ÉCO NOIRE !" + ], + "sksp0330": [ + "JE NE CROIS PAS QU'ON AI EU TOUS CES CRISTAUX D'ÉCO NOIRE." + ], + "sksp0331": [ + "TIRE SUR LES LURKERS QUI RONGENT LES POTEAUX !" + ], + "sksp0332": [ + "NE LAISSE PAS LES LUMIÈRES S'ÉTEINDRE !" + ], + "sksp0333": [ + "TAPE UN CRISTAL POUR AVOIR DE LA LUMIÈRE !" + ], + "sksp0334": [ + "COURS, CE CRISTAL VA EXPLOSER !" + ], + "sksp0335": [ + "ILS ONT TROUVÉ UN ROBOT PRÉCURSOR !" + ], + "sksp0336": [ + "ÉCLATE LES OEUFS, AVANT QU'ILS N'ÉCLOSENT !" + ], + "sksp0337": [ + "C'EST SINISTRE ICI..." + ], + "sksp0338": [ + "ON DIRAIT QUE LES TOILES D'ARAIGNÉES SE CASSENT APRÈS DEUX REBONDS." + ], + "sksp0339": [ + "JE DÉTESTE LES ARAIGNÉES..." + ], + "sksp0340": [ + "DES BÉBÉS ARAIGNÉES ARRIVENT !" + ], + "sksp0341": [ + "JE CROIS QU'ON EST DANS UN NID D'ARAIGNÉES !" + ], + "sksp0342": [ + "ATTENTION, ENCORE DES ARAIGNÉES !" + ], + "sksp0343": [ + "FILONS D'ICI !" + ], + "sksp0345": [ + "COMMENT RENTRER DANS CE FORT ?" + ], + "sksp0346": [ + "PEUT-ÊTRE QUE L'ÉCO ROUGE PEUT LE BATTRE !" + ], + "sksp0347": [ + "IL FAUT FAIRE UN SAUT PÉRILLEUX !" + ], + "sksp0348": [ + "IL FAUT TROUVER UN MOYEN D'OUVRIR CET ORIFICE." + ], + "sksp0349": [ + "ON DIRAIT QU'IL Y A UN INTERRUPTEUR D'ÉCO EN BAS !" + ], + "sksp0350": [ + "ATTAQUE-LE DÈS QUE LES PIQUES SONT RENTRÉES !" + ], + "sksp0351": [ + "APPUIE SUR LE BOUTON !" + ], + "sksp0352": [ + "VITE ! AVANT QUE ÇA NE RETOMBE !" + ], + "sksp0359": [ + "IL FAUT QUE TU UTILISES DE L'ÉCO ROUGE !" + ], + "sksp0360": [ + "BIEN JOUÉ ! ON A ALLUMÉ TOUS LES ORIFICES D'ÉCO JAUNE BOUCHÉS." + ], + "sksp0362": [ + "REGARDE, UNE PILE D'ÉNERGIE CONGELÉE !" + ], + "sksp0363": [ + "SEUL UN FLUT-FLUT PEUT SAUTER AUSSI LOIN !" + ], + "sksp0364": [ + "IL FAUT QU'ON SE DÉPÊCHE OU ON EST CUIT !" + ], + "sksp0365": [ + "CHOISI UN CHEMIN ! N'IMPORTE LEQUEL !" + ], + "sksp0366": [ + "TIRE SUR LES MINES OU ÉVITE-LES, JAK !" + ], + "sksp0367": [ + "TROUVE UN PASSAGE À TRAVERS CES TONNEAUX D'ÉCO NOIRE !" + ], + "sksp0368": [ + "CONTINUE À TOUCHER CES BALLONS DE REFROIDISSEMENT !" + ], + "sksp0369": [ + "ON COMMENCE À CHAUFFER !" + ], + "sksp0370": [ + "ÇA VA EXPLOSER !" + ], + "sksp0371": [ + "VA CHERCHER L'ÉCO BLEUE, JAK !" + ], + "sksp0372": [ + "TIRE DESSUS POUR PASSER !" + ], + "sksp0373": [ + "WAOUH ! QUELLE BALADE !" + ], + "sksp0374": [ + "OUAIS ! À FOND LA CAISSE !" + ], + "sksp0375": [ + "TIRE SUR LES SPHÈRES D'ÉNERGIE POUR OUVRIR LA PORTE !" + ], + "sksp0376": [ + "TIRE SUR LES SPHÈRES D'ÉNERGIE AVANT QU'ON NE BRÛLE !" + ], + "sksp0378": [ + "LA PORTE EST OUVERTE. ALLONS-Y !" + ], + "sksp0379": [ + "À FOND !" + ], + "sksp0380": [ + "ON EST PASSÉS !" + ], + "sksp0381": [ + "DÉTRUIT LE GÉNÉRATEUR POUR LIBÉRER LE SAGE !" + ], + "sksp0382": [ + "ACCROCHE-TOI AU REBORD !" + ], + "sksp0383": [ + "ON A DE LA COMPAGNIE JAK ! BEAUCOUP DE LURKERS !" + ], + "sksp0384": [ + "DÉTRUIT CES GÉNÉRATEURS !" + ], + "sksp0385": [ + "APPUIE SUR CE BOUTON !" + ], + "sksp0386": [ + "CE ROBOT NE ME FAIT PAS PEUR." + ], + "sksp0387": [ + "MONTONS SUR CES PLATEFORMES !" + ], + "sksp0388": [ + "NE MANQUE PAS LE PROCHAIN PROPULSEUR !" + ], + "sksp0389": [ + "ATTENTION !" + ], + "sksp0390": [ + "IL FAUT QU'ON SAUVE TOUS LES SAGES !" + ], + "sksp0391": [ + "TU CROIS QUE GOL VA ME RETRANSFORMER ?" + ], + "sksp0392": [ + "C'EST DONC ÇA LA CITADELLE DE GOL ET MAIA ? C'EST MIGNON !" + ], + "sksp0393": [ + "ATTERRI SUR LE PROCHAIN PROPULSEUR !" + ], + "sksp0394": [ + "ATTRAPE L'ÉCO JAUNE !" + ], + "sksp0395": [ + "TIRE SUR LE ROBOT, JAK !" + ], + "sksp0396": [ + "TIRE SUR SON BRAS !" + ], + "sksp0397": [ + "TIRE SUR SON ARME !" + ], + "sksp0398": [ + "TIRE SUR SA TÊTE !" + ], + "sksp0399": [ + "ATTENTION À L'EXPLOSION !" + ], + "sksp0400": [ + "IL SE RECHARGE !" + ], + "sksp0401": [ + "PRENDS L'ÉCO BLEUE !" + ], + "sksp0402": [ + "PRENDS L'ÉCO ROUGE !" + ], + "sksp0403": [ + "J'AI COMME UN MAUVAIS PRESSENTIMENT..." + ], + "sksp0404": [ + "UTILISE LE PROPULSEUR, VITE !" + ], + "sksp0405": [ + "MAINTENANT LA BÊTE EST DÉCHAÎNÉE !" + ], + "sksp0406": [ + "TU NE PEUX PAS LES TOUCHER !" + ], + "sksp0407": [ + "UTILISE L'ÉCO JAUNE !" + ], + "sksp0408": [ + "TIRE SUR EUX !" + ], + "sksp0409": [ + "PRENDS L'ÉCO DE LUMIÈRE, JAK !" + ], + "sksp0410": [ + "IL N'A PAS L'AIR CONTENT !" + ], + "sksp0411": [ + "SAUTE POUR ÉVITER LES EXPLOSIONS !" + ], + "sksp0412": [ + "MAINTENANT ON PEUT S'EN OCCUPER !" + ], + "sksp0413": [ + "JOLIE GÂCHETTE, PARTENAIRE !" + ], + "sksp0414": [ + "ÇA FAIT MAL, HEIN ?" + ], + "sksp0415": [ + "LE VOILÀ !" + ], + "sksp0416": [ + "WAOUH ! TU AS RÉUSSI !" + ], + "sksp0417": [ + "DITES \"BONNE NUIT\", GOL ET MAIA !" + ], + "sksp0435": [ + "RENVERSE CES OS !" + ], + "sksp0443": [ + "TAPE CES PERCHES PAR-DESSOUS !" + ], + "sksp0444": [ + "J'ATTENDS... ALLÔ ?" + ], + "sksp0449": [ + "APPUIE SUR LA TOUCHE START POUR JOUER." + ], + "sksp0450": [ + "TU VEUX ARRÊTER DE JOUER ?" + ], + "sksp0451": [ + "C'EST BIEN CE QU'IL ME SEMBLAIT." + ], + "sksp0452": [ + "D'ACCORD, À PLUS TARD." + ], + "sksp0455": [ + "MAIS... QUI SONT TOUS CES GENS ?" + ], + "sksp0466": [ + "J'AI ÉTÉ BON. PAS VRAI LES FILLES ?" + ], + "sksp0b42": [ + "MAIS ATTRAPE LES POISSONS JAUNES !", + "ILS PÈSENT 5KG CHACUN. ÇA FAIT UN SACRÉ POIDS JAK !" + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "ORNITHOLOGUE", + "BLUE SAGE": "SAGE BLEU", + "DAXTER": "DAXTER", + "FARMER": "FERMIER", + "FISHERMAN": "PÊCHEUR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "PARIEUR", + "GEOLOGIST": "GÉOLOGUE", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "ONCLE DE JAK", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAIRE", + "MINER": "MINER", + "OLD MAN": "VIEIL HOMME", + "ORACLE": "ORACLE", + "RED SAGE": "SAGE ROUGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTEUR", + "WARRIOR": "GUERRIER", + "WILLARD": "WILLARD", + "WOMAN": "FEMME", + "YELLOW SAGE": "SAGE JAUNE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_hu-HU.json b/game/assets/jak1/subtitle/subtitle_lines_hu-HU.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_hu-HU.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_is-IS.json b/game/assets/jak1/subtitle/subtitle_lines_is-IS.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_is-IS.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_it-IT.json b/game/assets/jak1/subtitle/subtitle_lines_it-IT.json new file mode 100644 index 0000000000..732e625f50 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_it-IT.json @@ -0,0 +1,2794 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "OTTIMO! AVETE LE 20 BATTERIE NECESSARIE AD ATTIVARE LO SCUDO DI CALORE.", + "ORA FATE ATTENZIONE, PERCHÉ LO SCUDO PROTEGGERÀ LO ZOOMER FINO ALLA TEMPERATURA DI 500 GRADI.", + "QUINDI CERCATE DI MANTENERLO FREDDO.", + "VOLANDO SOPRA LA LAVA LO FARETE SURRISCALDARE VELOCEMENTE.", + "RAGGIUNGETE I 500 GRADI, ED È FINITA!", + "FINITA?! NEL SENSO DI DUE EROI ABBRUSTOLITI?!", + "IL CANYON DI FUOCO È MOLTO CALDO.", + "SFRUTTATE BENE I SALTI PER RESTARE A CONTATTO COL TERRENO IL MENO POSSIBILE.", + "HO ANCHE SPARSO DEI PALLONI REFRIGERANTI NELLA ZONA", + "COSÌ POTETE RAFFREDDARE VELOCEMENTE LO SCUDO.", + "OH! E QUANDO SIETE LÌ, NON DIMENTICATE DI ATTIVARE", + "IL TELETRASPORTO NEL LABORATORIO DEL SAGGIO BLU.", + "IN QUESTO MODO POTREMO RAGGIUNGERVI.", + "IN BOCCA AL LUPO!" + ], + "assistant-introduction-blue-eco-switch": [ + "EHI DOLCEZZA, CHE NE DIRESTI DI FARE UN GIRO SU QUESTO ZOOMER ANTI-GRAVITÀ, EH?", + "REGOLA NUMERO UNO: MAI. USCIRE. CON ANIMALI.", + "AAAH, PEGGIO PER TE, NON SAI COSA TI PERDI, HEHEHE-", + "AH! EHI!", + "ASCOLTA, SE TI SERVE QUALCOSA PER OCCUPARE IL TEMPO, MIO PADRE MI HA PARLATO", + "PIÙ VOLTE DI UN ANTICHISSIMO CONDOTTO REALIZZATO DAI PRECURSOR, NASCOSTO NEL SOTTOSUOLO.", + "LE TUBATURE SFOCIANO NEI CAMINI DI VENTILAZIONE.", + "DA ALCUNI DI ESSI, L'ECO FUORIESCE LIBERAMENTE, ALTRI SONO STATI BLOCCATI.", + "DEVE PUR ESSERCI UN MODO PER RIAPRIRE QUEI CAMINI!", + "IO HO INDIVIDUATO UNA PARTE DEL CONDOTTO AL TEMPIO PROIBITO.", + "MAGARI POTRESTI CERCARE LAGGIÙ QUALCHE INTERRUTTORE." + ], + "assistant-introduction-race-bike": [ + "EHI BELLEZZA, A COSA STAI LAVORANDO?", + "NO! FA' ATTENZIONE! GAH! STO CERCANDO DI CAPIRE COME TRASPORTARE LO ZOOMER", + "UTILIZZANDO I TRANS-PAD CHE I PRECURSOR HANNO LASCIATO IN TUTTO IL MONDO.", + "SE TROVI UNO DI QUESTI APPARECCHI, INFORMAMI. ", + "IO POSSO CALCOLARNE LA POSIZIONE COL TUO COMUNICATORE E SPEDIRTI LO ZOOMER.", + "CERCA I TRANS-PAD MENTRE ESPLORI L'ISOLA DELLA NEBBIA, O QUALSIASI ALTRO LUOGO!" + ], + "assistant-lavatube-end-resolution": [ + "EHI! ALLORA, DOV'È IL VECCHIO BASSO E RUGOSO?", + "È TERRIBILE... PAPÀ NON SI TROVA PIÙ!", + "CREDO CHE GOL E MAIA... L'ABBIANO RAPITO!", + "RILASSATI DOLCEZZA! LA SITUAZIONE È DEL TUTTO SOTTO CONTROLLO.", + "\"SOTTO CONTROLLO\"?!", + "LE TRUPPE DEI LURKER CONTINUANO AD AUMENTARE,", + "I SAGGI SONO STATI RAPITI,", + "GOL E MAIA HANNO ABBASTANZA ECO OSCURO PER COMPLETARE IL LORO PIANO,", + "E PER FERMARLI, VOLETE COMBATTERE FINO AD ARRIVARE ALLA LORO CITTADELLA?!", + "BEH... SÌ! ECCO, PIÙ O MENO...", + "DOVETE LIBERARE MIO PADRE PRIMA CHE SIA TROPPO TARDI!", + "E, JAK... STA' ATTENTO.", + "CERTO! - STAREMO -, ATTENTI!" + ], + "assistant-lavatube-start-resolution": [ + "HA-HA! BENISSIMO!", + "CON QUESTE BATTERIE EXTRA, DOVREI ESSERE IN GRADO DI FORNIRE ALLO SCUDO DI CALORE", + "ABBASTANZA ENERGIA PER RESISTERE ALLA LAVA!", + "MA LO SCUDO HA ANCORA DEI LIMITI.", + "NON PUÒ RESISTERE A TEMPERATURE SUPERIORI AGLI 800 GRADI,", + "QUINDI TENETE D'OCCHIO LA BARRA.", + "NON VOGLIO PENSARE A COSA SUCCEDEREBBE ALLO ZOOMER SE LO SCUDO DOVESSE CEDERE...", + "MMH, GIÀ, LO SCUDO...", + "... COSA?! LO ZOOMER??", + "EHI, E A NOI CHI CI PENSA?!", + "NON POTREMMO CERCARE UNA VIA PIÙ SICURA PER RAGGIUNGERE LA CITTADELLA?!", + "ASCOLTATE, HO SPARSO ALTRI PALLONI REFRIGERANTI NEL CONDOTTO.", + "POTRETE USARLI PER MANTENERE BASSA LA TEMPERATURA.", + "E NON DIMENTICATE DI ATTIVARE IL TELETRASPORTO AL LABORATORIO DEL SAGGIO GIALLO.", + "CONTIAMO SU DI VOI!" + ], + "assistant-reminder-1-blue-eco-switch": [ + "SONO SICURA CHE SE OSSERVI IL TEMPIO PROIBITO DEI PRECURSOR", + "TROVERAI UN MODO PER APRIRE I CAMINI DI VENTILAZIONE DELL'ECO BLU NELLA SPIAGGIA DELLE SENTINELLE!" + ], + "assistant-reminder-1-generic": [ + "RAGAZZI, CONTINUATE A RACCOGLIERE LE BATTERIE.", + "È IL SOLO MODO PER POTER PROSEGUIRE IL VIAGGIO VERSO NORD." + ], + "assistant-reminder-1-race-bike": [ + "HO FINALMENTE CAPITO COME USARE I TRANS-PAD!", + "ADESSO DIRIGETEVI ALL'ISOLA DELLA NEBBIA. VI SPEDIRÒ LO ZOOMER!" + ], + "assistant-village2-introduction": [ + "WHAOO!", + "PENSO CHE NON MI ABITUERÒ MAI ALLA SENSAZIONE FORMICOLANTE DEL TELETRASPORTO.", + "EHI!", + "SEMBRA CHE IL SAGGIO BLU ABBIA DATO UNA FESTA.", + "OH NO, GUARDATE! IL VILLAGGIO DI PIETRA È IN FIAMME!", + "ACCIDENTI, E CHE FESTA!", + "NO! COS'HAI CAPITO? INTENDO DIRE CHE IL VILLAGGIO È STATO BOMBARDATO CON MASSI INCANDESCENTI!", + "OH-OH! SEMBRA CHE IL SAGGIO BLU STESSE LAVORANDO A UNA MACCHINA FLUTTUANTE PER POTERLI MUOVERE.", + "SUPPONENDO CHE FUNZIONI, CI SERVIRANNO DELLE BATTERIE PER ALIMENTARLO.", + "PERCIÒ SARÀ MEGLIO CHE ANDIATE A CERCARNE ALTRE.", + "DAREMO UN'OCCHIATA AI SUOI APPUNTI.", + "JAK, VAI A SENTIRE CHE DICONO GLI ABITANTI, POI TORNA QUI E AGGIORNACI.", + "... E PORTA CON TE LA PALLA DI PELO!" + ], + "assistant-village2-introduction-flutflut": [ + "DI NUOVO QUI, RAGAZZI?", + "\"RAGAZZO\"?!", + "EHI! IO SONO... UN ESEMPLARE ADULTO...", + "UHM...", + "DI QUALCOSA DI... PELOSO, EHM...", + "INDOVINATE UN PO'? HO AVUTO IL PERMESSO DALL'ORNITOLOGA DEL VILLAGGIO", + "DI SELLARE IL NOSTRO PICCOLO FLUT-FLUT, NON È UNA BELLA NOTIZIA?", + "A QUANTO PARE C'È UN TRANS-PAD DEI PRECURSOR NELLA PALUDE FANGOSA.", + "SE RIUSCIRETE A TROVARLO, VI INVIERÒ IL FLUT-FLUT PER FARVELO CAVALCARE, D'ACCORDO?", + "IL SUO LUNGO SALTO POTREBBE ESSERVI UTILE PER ATTRAVERSARE LA ZONA!" + ], + "assistant-village2-introduction-robbers": [ + "EHI, VOI DUE!", + "IO SO DOVE RECUPERARE UN'ALTRA BATTERIA!", + "IN BASE AGLI APPUNTI,", + "UN PAIO DI GIORNI FA, ALCUNI LURKER VOLANTI NE HANNO RUBATA UNA AL SAGGIO BLU,", + "E POI SONO FUGGITI VERSO IL BACINO DEL PRECURSOR.", + "SONO CERTA CHE POTETE RAGGIUNGERLI COL VOSTRO ZOOMER E RINTRACCIARE QUELLO CHE HA LA BATTERIA.", + "LO ZOOMER È SUL TRANS-PAD VICINO ALL'ENTRATA DEL BACINO DEL PRECURSOR." + ], + "assistant-village2-introduction-room": [ + "PARE CHE LA STRUTTURA DEI PRECURSOR, SITUATA APPENA OLTRE LA COSTA,", + "CONDUCA ALLA CITTÀ PERDUTA SOTTOMARINA.", + "IL SAGGIO BLU HA TENTATO PIÙ VOLTE DI CAPIRE IL SISTEMA PER PORTARE UNA DELLE STANZE IN SUPERFICIE.", + "MA PURTROPPO NON CI È MAI RIUSCITO.", + "ANDATE A CONTROLLARE!", + "EHM... MA NON CI SONO UN SACCO DI... SQUALI LURKER IN QUELLE ACQUE?", + "PERCHÉ? TE LA FAI SOTTO?", + "CHI, IO? CERTO CHE NO! MI-MI INFORMAVO SOLO PER JAK!", + "EMH... LO SAI... QUANT'È FIFONE A VOLTE.", + "BEH, SE NUOTERETE DENTRO LA BARRIERA CORALLINA, GLI SQUALI LURKER NON VI DARANNO NOIA.", + "NON AMANO LE ACQUE POCO PROFONDE." + ], + "assistant-village2-reminder-1-flutflut": [ + "SONO CERTA CHE IL FLUT-FLUT VI SARÀ D'AIUTO NELLA PALUDE.", + "INDIVIDUATE IL TRANS-PAD E IO VE LO INVIERÒ." + ], + "assistant-village2-reminder-1-robbers": [ + "ORA TELETRASPORTERÒ IL VOSTRO ZOOMER AL BACINO DEL PRECURSOR,", + "COSÌ POTRETE DARE LA CACCIA AI LURKER VOLANTI DI CUI PARLAVAMO." + ], + "assistant-village2-reminder-1-room": [ + "SIETE GIÀ ARRIVATI ALLA CITTÀ PERDUTA, RAGAZZI?", + "DOVRESTE PROVARE A FAR EMERGERE LA STANZA A CUI STAVA LAVORANDO IL SAGGIO BLU." + ], + "assistant-village2-resolution": [ + "BENE, AVETE LE BATTERIE PER LA MACCHINA!", + "CI FORNIRANNO L'ENERGIA SUFFICIENTE PER SOLLEVARE IL MASSO.", + "ECCO FATTO!", + "MI RACCOMANDO, SIATE PRUDENTI QUANDO AFFRONTATE IL LURKER CHE C'È LASSÙ.", + "ASPETTATE! EHM...", + "HO DECISO, IO RIMARRÒ QUI PER PROTEGGERE KEIRA!", + "JAK, CREDO TU POSSA MACIULLARE QUEL MOSTRO ANCHE SENZA DI ME.", + "OH, DAVVERO EROICO DA PARTE TUA." + ], + "assistant-village3-reminder": [ + "RAGAZZI, CONTINUATE A RACCOGLIERE LE BATTERIE,", + "È IL SOLO MODO PER POTER PROSEGUIRE IL VIAGGIO VERSO NORD." + ], + "billy-accept": [ + "BENE! QUEI MALEDETTI STANNO PER TORNARE.", + "SPARATEGLI SENZA PIETÀ, E SALVATE ALMENO UNO DI QUEI BUONI PIATTINI." + ], + "billy-introduction": [ + "EHILÀ, AMICI! VI PIACE LA MIA STUPENDA PALUDE?", + "È TUTTA ROBA MIA QUESTA QUI.", + "CIOÈ, È TUTTO MIO QUELLO CHE NON SPROFONDA NEL FANGO! HAHAHAHAHAH...", + "SNIFF SNIFF...", + "A GIUDICARE DALL'ODORE, SI DIREBBE CHE NON VEDI", + "UNA VASCA DA BAGNO DA UN SECOLO!", + "BEH, COS'È UNA VASCA DA BAGNO?", + "E COMUNQUE AL MOMENTO HO DEI PROBLEMI BEN PIÙ GRAVI...", + "SEMBRA CHE QUI ATTORNO SIA TUTTO APPESTATO DA QUEI DANNATI LURKER,", + "CHE CON LE LORO SPORCHE ZAMPACCE ACCHIAPPANO TUTTO QUELLO CHE POSSONO.", + "HANNO FATTO PERSINO SCAPPARE IL MIO HIPHOG, FARTHY.", + "GIÀ, ORMAI È SPARITO DA UN SACCO DI TEMPO, SAPETE?", + "CONTINUO A METTERGLI FUORI I SUOI SPUNTINI,", + "MA QUEI MALEDETTI RATTI DI PALUDE GLIELI RUBANO TUTTI!", + "SE RIUSCISSI A TENERE LONTANO QUELLE BESTIACCE PER UN PO',", + "IL MIO FARTHY FIUTEREBBE I SUOI BOCCONCINI PREFERITI E TORNEREBBE!", + "MI DATE UNA MANO?" + ], + "billy-reject": [ + "ALLORA, SE PER CASO CAMBIATE IDEA, SAPETE TUTTI DOVE TROVARMI!", + "AH-AHAHAHAHAH..." + ], + "billy-reminder-1": [ + "EEEHI! SIETE TORNATI PER AIUTARMI A FERMARE QUEI RATTACCI?" + ], + "billy-resolution": [ + "CHE MI VENGA UN COLPO! CERTO CHE TU SPARI PROPRIO BENE!", + "GRAZIE MILLE PER L'AIUTO!" + ], + "bird-lady-beach-resolution": [ + "SANTO CIELO, SPERIAMO CHE IL CARO OVETTO STIA BENE. ECCOVI UNA BATTERIA PER RICOMPENSARVI.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "GUARDA... NON LO TROVI DELIZIOSO? CREDE CHE TU SIA LA SUA VERA MAMMA.", + "EHI UN MOMENTO, NON SONO TUA MADRE! VEDI FORSE QUALCHE PIUMA QUI?!", + "OH, MA È AMORE A PRIMA VISTA! AWW...", + "ORA ASCOLTATE RAGAZZI, RIPORTERÒ AL VILLAGGIO QUESTO PICCOLINO", + "E ME NE PRENDERÒ CURA CON L'AIUTO DEL SAGGIO." + ], + "bird-lady-introduction": [ + "OH CIELO, MA QUESTO UCCELLINO È VERAMENTE MOLTO MALATO!", + "TSK! NON MI PARE TU SIA MOLTO MEGLIO, PICCOLA!", + "OH, SCUSA. CREDEVO CHE FOSSI UN RING-FRING DAL PETTO A MACCHIE ARANCIONI!", + "SAPETE, IERI HO VISTO CERTI ESSERI TERRIBILMENTE MALVAGI", + "CATTURARE UNA FEMMINA DI FLUT-FLUT SULLA SPIAGGIA.", + "COSÌ IL SUO POVERO OVETTO È RIMASTO ORFANO IN UN NIDO IN CIMA ALLA SCOGLIERA", + "E IO NON RIESCO AD ARRIVARCI. SE POTESTE ARRAMPICARVI FIN LÌ E SPINGERLO GIÙ...", + "HO MESSO DEL FIENO SOTTO LA SCOGLIERA, ATTERRERÀ SENZA ROMPERSI.", + "FATE QUESTO PIACERE A UNA VECCHIA SIGNORA E IO VI DARÒ UNA BELLA BATTERIA." + ], + "bird-lady-reminder-1": [ + "OH, CIAO RAGAZZI. AVETE GIÀ TROVATO L'UOVO AZZURRO SULLA SCOGLIERA?", + "SE RIUSCITE A SPINGERLO GIÙ DAL BORDO, IO VI DARÒ UNA BATTERIA." + ], + "bird-lady-reminder-2": [ + "EHI, STATE ANCORA BIGHELLONANDO QUI ATTORNO? AH AH AH AH!", + "SCOMMETTO CHE QUEL POVERO OVETTO AZZURRO SULLA SCOGLIERA SARÀ GIÀ CONGELATO!", + "SALVATELO SPINGENDOLO OLTRE IL BORDO DELLA SCOGLIERA E IO VI REGALERÒ UNA BELLA BATTERIA." + ], + "bluesage-resolution": [ + "GRAN BEL LAVORO, RAGAZZI! SAMOS AVEVA RAGIONE SU DI VOI!", + "GIÀ, BELL'AMMASSO DI METALLO PRECURSOR!", + "QUELLA PERICOLOSA CREATURA MECCANICA NON DOVRÀ MAI RIUSCIRE A SPRIGIONARE IL SUO TERRIBILE POTERE!", + "QUINDI, PROVERÒ A METTERE IN FUNZIONE LO SCUDO, CREANDO UN CONDOTTO D'ENERGIA TRA ME", + "E L'ENORME VARCO CHE SI TROVA AL DI SOTTO DI ESSA!", + "AH... BRAVO. CE L'HAI FATTA. ALLORA NOI... ANDIAMO SUBITO A CERCARE AIUTO.", + "MOLTO STRANO..." + ], + "death-0181": [ + "NON ANDARE VERSO LA LUCE, JAK...!", + "NON ANDARE VERSO LA LUUCE!!" + ], + "death-0182": [ + "EHI JAK! CHE NE DICI, POSSO TENERMI...", + "LA TUA COLLEZIONE DI INSETTI?" + ], + "death-0184": [ + "SENTI, MENTRE SEI LAGGIÙ, POTRESTI...", + "LUSTRARMI LE SCARPE?" + ], + "death-0186": [ + "NON PREOCCUPARTI, TI VENDICHERÒ IO!", + "... FORSE." + ], + "death-0187": [ + "ECCOOO...", + "MEGLIO A TE, CHE A ME." + ], + "death-0191": [ + "SEMBRA FACCIA MALE!", + "DEVO CHIAMARE I RINFORZI?" + ], + "death-0193": [ + "PRIMA REGOLA: SALVATI LA PELLE.", + "SECONDA REGOLA...", + "PENSACI BENE PRIMA DI FARE UNA COSA SIMILE!!" + ], + "death-0195": [ + "IO ERO PROPRIO DIETRO DI TE, JAK!", + "... È VERO, SUL SERIO!" + ], + "death-0197": [ + "BISTURI! TAMPONE!", + "... DOTTORE? L'ABBIAMO PERSO." + ], + "death-0199": [ + "DIRÒ QUALCOSA DI VERAMENTE TRISTE AL TUO FUNERALE, TIPO...", + "...\"E ORA COME FACCIO A TORNARE NORMALE?!\"" + ], + "death-0202": [ + "DÌ BUONANOTTE, JAK!" + ], + "evilbro-misty-end": [ + "QUEI DUE POTREBBERO RIVELARSI UN PROBLEMA.", + "NON PREOCCUPARTI, CARO FRATELLO. INVIERÒ IL MIO ESERCITO DI LURKER AD OCCUPARSENE.", + "ASSICURATI SOLO CHE NON SI AVVICININO TROPPO ALLE NOSTRE OPERAZIONI A NORD.", + "DUBITO CHE ARRIVERANNO COSÌ LONTANO.", + "MA SE CI RIUSCIRANNO, CI SARÀ UNA SORPRESA AD ATTENDERLI AL VILLAGGIO ROCCIOSO.", + "QUINDI... FARAI USCIRE KLAWW DALLA SUA GABBIA?", + "PENSO CHE NE VALGA LA PENA.", + "CERTO." + ], + "explorer-introduction": [ + "ECCO, ALOHA CARO IL MIO RAGAZZO. MI COGLI IN UN MOMENTO VERAMENTE INOPPORTUNO.", + "SAI, IERI STAVO FINALMENTE PER METTERMI IN VIAGGIO", + "MA MI SONO RESO CONTO DI ESSERE A CORTO DI VECCHI GLOBI DEI PRECURSOR.", + "PER MILLE BALENE, IO AVREI GIURATO DI AVERNE 90!", + "CREDO CHE QUEL TUO GIOVANE AMICO, SÌ QUEL... QUEL TIPO IRRITANTE, BRUTTO E MISERABILE", + "ME LI ABBIA APPENA RUBATI, SOLO PER DIVERTIRSI UN PO'!", + "COMUNQUE, POTRESTI ESSERE COSÌ GENTILE DA PRESTARE AL TUO VECCHIO ZIO 90 GLOBI DEI PRECURSOR", + "IN MODO CHE POSSA METTERSI IN VIAGGIO? IN CAMBIO TI OFFRIREI UNA BELLA BATTERIA." + ], + "explorer-reminder-1": [ + "COME?! NON LI HAI TUTTI QUANTI HAI DETTO?!", + "ACCIDENTI, EBBENE ALLORA... CON MENO DI 90 GLOBI DEI PRECURSOR", + "NON POSSO ASSOLUTAMENTE METTERMI IN VIAGGIO, MIO CARO NIPOTE." + ], + "explorer-reminder-2": [ + "CI HO PENSATO SU. FACCIAMO UN PATTO: 90 GLOBI DEI PRECURSOR PER UNA BATTERIA.", + "MI SEMBRA UNO SCAMBIO MOLTO EQUO." + ], + "explorer-resolution": [ + "VEDO CHE SIETE TORNATI PER CONCLUDERE L'AFFARE. BENE, BENE, MOLTO BENE!", + "EHI, MA LI AVETE I GLOBI DEI PRECURSOR SU CUI CI SIAMO ACCORDATI?", + "SPERO CHE USERETE IN MODO INTELLIGENTE QUESTA BATTERIA, VE LA SIETE GUADAGNATA.", + "CIAO, CIAO, AU REVOIR, BYE BYE!" + ], + "farmer-introduction": [ + "MHMH, LE MIE YAKOW MUNGERÒ, LE MIE YAKOW MUNGERÒ...", + "HUFF! SEI TU! AAH, STAVO RIPOSANDO LE MIE STANCHE OSSA.", + "È TUTTO IL GIORNO CHE CERCO DI FAR TORNARE NEL RECINTO QUELLE BESTIACCE!", + "DEGLI STRANI ESSERI HANNO TENTATO DI RUBARLE.", + "PENSI CHE POTRESTI AIUTARE UN POVERO VECCHIO A RIPORTARLE NEL RECINTO?" + ], + "farmer-reminder-1": [ + "EHI! LE MIE YAKOW SONO TUTTE FUORI DAL RECINTO!", + "NON SEI ANCORA RIUSCITO A RIPORTARLE DENTRO?" + ], + "farmer-reminder-2": [ + "QUELLE DANNATE SE NE VANNO ANCORA A ZONZO!!", + "TI DECIDI A FARLE RIENTRARE NEL RECINTO?!" + ], + "farmer-resolution": [ + "OOH, BEN FATTO RAGAZZO, SEI RIUSCITO A FAR RIENTRARE QUEI SACCHI DI PULCI!", + "ORA POSSO DORMIRE IN PACE. COME RINGRAZIAMENTO, PRENDI QUESTA BATTERIA." + ], + "finalbosscam-white-eco": [ + "L'ECO LUMINOSO! MA ALLORA ESISTE!", + "NON DEVONO RIUSCIRE A PRENDERLO!" + ], + "fisher-accept": [ + "È CHE CI SONO DUE TIPI DI PESCE BUONO: I PESCI DA 1 CHILO, E I PESCI DA 5 CHILI.", + "SE TI LASCI SCAPPARE 20 CHILI DI PESCE BUONO, MI RIPRENDO LA RETE!", + "IN QUESTO FIUME CI SONO ANGUILLE VELENOSE.", + "PRENDI ANCHE SOLO UNA DI QUELLE DISGRAZIATE", + "E TI AVVELENERÀ TUTTI I PESCI CHE HAI GIÀ PRESO! AH AH AH AH!" + ], + "fisher-introduction": [ + "SCUSA, COS'HAI NEL CESTINO?", + "OH, BEH, C'È POCO DA DIRE.", + "QUEI MOSTRI CHE GIRANO PER L'OCEANO MI HANNO STACCATO A MORSI UN PEZZO DI BARCA.", + "E ORA SI INGOZZANO CON I MIEI PESCI!", + "LE HO PROVATE TUTTE, MA IN QUESTO FIUME NON RIESCO A PIGLIARE NEANCHE UN PESCE!", + "OOH! NON SARÀ... COLPA DEL TUO ALITO?", + "PENSI DI POTER FARE MEGLIO?", + "PROVA TU A PESCARE IN UN FIUME CON UNA RETE PICCOLISSIMA!", + "TI REGALERÒ UNA BATTERIA SE RIUSCIRAI A PRENDERE 200 CHILI DI PESCE!", + "GUARDA, A TE E AL TUO AMICO,", + "PRESTERÒ LA MIA BARCA PIÙ VELOCE PER ANDARE ALL'ISOLA DELLA NEBBIA.", + "ALLORA, TI INTERESSA LA SFIDA?" + ], + "fisher-reject": [ + "EHI TU, SE TI VIENE VOGLIA DI PROVARE A GUADAGNARTI LA BATTERIA,", + "SAI DOVE POTRAI TROVARMI." + ], + "fisher-reminder-1": [ + "ALLORA, PERCHÉ NON PROVI A BATTERE IL FIUME?" + ], + "fisher-resolution": [ + "CE L'AVETE FATTA! AVETE PRESO 200 CHILI DI PESCE!", + "NIENTE MALE PER DUE NOVELLINI!", + "ECCO LA BATTERIA CHE AVEVO PROMESSO.", + "E POTETE USARE LA MIA BARCA QUANDO VOLETE!", + "È ANCORATA AL PORTO." + ], + "gambler-introduction-1": [ + "OH, NO. NON CI VOLEVA UN ALTRO \"EROE\".", + "HO PERSO ANCHE LE MUTANDE SCOMMETTENDO SU 'STO COSIDDETTO EROE", + "CONTRO QUEL MOSTRO LÀ.", + "DAMMI RETTA, FATTI FURBO E PUNTA SUL MOSTRO.", + "QUESTA SCOMMESSA MI HA PRATICAMENTE ROVINATO!", + "SENTI, TI FACCIO UNA PROPOSTA.", + "CON 90 GLOBI IO MI RIMETTO IN SESTO, ESCO DA QUESTA BOTTE", + "E IN CAMBIO TI REGALERÒ UNA BELLA BATTERIA.", + "E SE SEI CORAGGIOSO, HO UN'ALTRA SCOMMESSA PER TE.", + "LA MIA GRANDE RIMONTA!", + "BATTI IL RECORD DI VELOCITÀ DEL PRECIPIZIO DELLA MORTE NEL BACINO DEL PRECURSOR.", + "IO NE RICAVERÒ", + "UNA BELLA SOMMETTA E TU UN'ALTRA BATTERIA." + ], + "gambler-reminder-money": [ + "EHI. NON DIMENTICARTI DI QUEI GLOBI, AMICO.", + "ME NE SERVONO 90, PER AVERE UNA BATTERIA, OVVIAMENTE!" + ], + "gambler-reminder-race": [ + "BEH, CHE COSA STAI ASPETTANDO? QUESTA BOTTE MI FA VENIRE IL PRURITO!", + "BATTI IL RECORD DI DISCESA DEL PRECIPIZIO DELLA MORTE E FARAI VINCERE ANCHE ME!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, CERTO!", + "CON QUEI GLOBI RICOMINCIERÒ A VINCERE E USCIRÒ DA QUESTA BOTTE!", + "ECCO LA BATTERIA CHE TI AVEVO PROMESSO!" + ], + "gambler-resolution-race": [ + "OH, SEI STATO GRANDE, RAGAZZO! LO SAPEVO CHE AVRESTI BATTUTO IL RECORD.", + "ALLORA, ECCO A TE LA BATTERIA. IO VADO A RISCUOTERE LA MIA GROSSA VINCITA!" + ], + "geologist-introduction": [ + "VOI DUE MI SEMBRATE DEI TIPI MOLTO IN GAMBA.", + "HO IN CORSO UN PROGETTO DI RICERCA, POTRESTE DARMI UNA MANO?", + "EHI, ABBIAMO UNA MISSIONE DA PORTARE A TERMINE, SIAMO NOI AD AVER BISOGNO DI AIUTO!", + "BEH, FORSE POSSIAMO AIUTARCI A VICENDA.", + "STO STUDIANDO IL MODO IN CUI LE TALPE FULMINE SCAVANO LE TANE", + "NEL BACINO DEL PRECURSOR, ACCANTO AL NOSTRO VILLAGGIO.", + "ORA, I LURKER HANNO SPAVENTATO LE TALPE E LE HANNO FATTE VENIRE IN SUPERFICIE!", + "E SICCOME LE POVERINE SONO CIECHE, NON RIESCONO PIÙ A TORNARE SOTTO TERRA.", + "SE VOI POTESTE GUIDARLE ATTRAVERSO LE LORO GALLERIE, SALVERESTE LORO LA VITA.", + "HO QUI UNA BATTERIA COME INCENTIVO PER VOI.", + "MA CERTO, TALPE FULMINE... ALTROCHÉ!", + "MAGARI PER DUE BATTERIE, MH?", + "BEH, CI HAI PROVATO. POTREI SEPARARMI DA UN'ALTRA BATTERIA SOLO SE", + "VOI DUE MI PORTASTE I GLOBI PRECURSOR PER LE MIE ATTREZZATURE DI RICERCA.", + "D'ACCORDO?" + ], + "geologist-reminder-moles": [ + "AVETE GUIDATO LE TALPE FULMINE AI TUNNEL SOTTERRANEI?", + "FATE IN FRETTA: LA LUCE DIRETTA DEL SOLE È DANNOSA PER LORO!" + ], + "geologist-reminder-money": [ + "SE NON AVRÒ QUEI GLOBI, NON POTRÒ CONTINUARE LA MIA RICERCA!" + ], + "geologist-resolution-moles": [ + "GRAZIE PER AVER SALVATO QUELLE TALPE, SIETE STATI BRAVISSIMI!", + "ECCO UNA BATTERIA, VI SARÀ MOLTO UTILE.", + "ADESSO POSSO TORNARE ALLA MIA RICERCA!" + ], + "geologist-resolution-money": [ + "OH, AVETE I GLOBI PER ME!", + "ECCO LA BATTERIA CHE AVEVO PROMESSO." + ], + "green-sagecage-daxter-sacrifice": [ + "L'ECO LUMINOSO!", + "POTREBBE SERVIRE A FARMI TORNARE NORMALE!", + "OHHH... OPPURE POTREBBE FERMARE IL ROBOT.", + "MMH... RESTARE PELOSO, O SALVARE IL MONDO...", + "CHE SCELTA...", + "OOKAY, VA BENE, SALVEREMO IL MONDO.", + "MA VEDIAMO DI FARE IN FRETTA, PRIMA CHE IO CAMBI IDEA!", + "GRRR!" + ], + "green-sagecage-introduction": [ + "ERA ORA CHE VI FACESTE VIVI!", + "ANCHE NOI SIAMO FELICI DI VEDERTI.", + "TI HANNO MESSO A PULIRE PER TERRA ORA, EH?", + "NON È IL MOMENTO DI SCHERZARE, DAXTER.", + "GOL E MAIA CI HANNO RAPITO PER ASSORBIRE LE NOSTRE ENERGIE", + "E DARE POTENZA ALLA LORO TERRIBILE MACCHINA.", + "SEMBRA CHE ABBIANO MONTATO CIÒ CHE RIMANEVA DI UN ROBOT PRECURSOR", + "CON ALCUNI MANUFATTI TROVATI SCAVANDO NELLA ZONA.", + "E CHE QUINDI ABBIANO AGGIUNTO ALTRE DIAVOLERIE CREATE DA LORO,", + "DANDO VITA AD UN MOSTRO IN GRADO DI APRIRE I SILOS DELL'ECO OSCURO.", + "SE RIESCI A LIBERARCI TUTTI E QUATTRO, POTREMO UNIRE I NOSTRI POTERI", + "E DISTRUGGERE LO SCUDO ENERGETICO INTORNO AL ROBOT, PRIMA CHE POSSANO DISTRUGGERE IL MONDO." + ], + "green-sagecage-outro-beat-boss-a": [ + "FA' QUALCOSA!", + "NOOOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "BEH, FORSE SONO STATO UN PO' TROPPO DURO CON VOI, RAGAZZI MIEI.", + "VOI AVETE TUTTO QUELLO CHE SERVE PER DIVENTARE EROI!", + "MA ORA, DAXTER, NON TI POSSIAMO TRASFORMARE.", + "OH, NON PREOCCUPARTI PER ME BABY.", + "SAI COME SI DICE DI SOLITO? IL VINO BUONO STA IN UNA BOTTE... PICCOLINA.", + "JAK, HAI DAVVERO UN INCREDIBILE TALENTO NEL CANALIZZARE L'ECO!", + "SAMOS, DOPOTUTTO POTRESTI ANCHE AVER RAGIONE SU DI LUI!", + "SAI KEIRA, SENZA IL TUO AIUTO E SENZA LA TUA INGENUITÀ,", + "TUTTO CIÒ NON SAREBBE STATO POSSIBILE.", + "HAHAHAH. CHISSÀ, FORSE ABBIAMO TROVATO UN NUOVO SAGGIO", + "ORA CHE GOL E MAIA NON CI SONO PIÙ...", + "GIÀ, GOL E MAIA... SÌ, L'ECO OSCURO PROBABILMENTE LI AVRÀ DISTRUTTI.", + "GIÀ, PROBABILMENTE...", + "AH, CHE IMPORTA? CHE RITORNINO, POSSIAMO SCONFIGGERLI UN'ALTRA VOLTA, VERO JAK?", + "NON HO DETTO... BENE, JAK?", + "WOW! DATTI UNA CALMATA, RAGAZZO!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "PER TUTTE LE YAKOW! CHE COSA PUÒ ESSERE QUELLO?", + "WOW! SI TRATTA DI UN ANTICO PORTONE PRECURSOR!", + "E SEMBRA CHE PER APRIRLO DOVREMO RIEMPIRE TUTTE E 100 LE FESSURE CON DELLE BATTERIE.", + "UHM, MA NOI SIAMO DEGLI EROI, RICORDI?", + "ECCOCI QUA, CON LE 100 BATTERIE NECESSARIE." + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "PER TUTTE LE YAKOW! CHE COSA PUÒ ESSERE QUELLO?", + "WOW! SI TRATTA DI UN ANTICO PORTONE PRECURSOR!", + "E SEMBRA CHE PER APRIRLO DOVREMO RIEMPIRE TUTTE E 100 LE FESSURE CON DELLE BATTERIE.", + "OH RAGAZZI... ECCOCI TORNARE ALLA CARICA!", + "MH-MH!", + "MPH!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! MA CHE COS'È, PER VOI?", + "A ME SEMBRA COSÌ BELLO...", + "PER TUTTI I PRECURSOR..." + ], + "green-sagecage-outro-preboss": [ + "SEI ARRIVATO TROPPO TARDI, SAMOS.", + "QUANDO AVRÒ UNA QUANTITÀ ILLIMITATA DI ECO OSCURO,", + "ANCHE LA CHIAVE DELLA CREAZIONE SARÀ MIA!", + "MA QUESTA È UNA FOLLIA!", + "LIBERARE COSÌ TANTO ECO OSCURO DISTRUGGERÀ TUTTO CIÒ CHE CONOSCIAMO!", + "CONSIDERA BENE QUELLO CHE È SUCCESSO A TE!", + "CI HA DATO UNA BELLEZZA SUPERIORE A TUTTO CIÒ CHE VOI POTETE CAPIRE.", + "\"BELLEZZA\"? VI SIETE GUARDATI BENE ALLO SPECCHIO DI RECENTE?!", + "ASPETTA FINO A QUANDO NON AVREMO APERTO TUTTI I SILOS, PICCOLETTO!", + "TU CHE NE DICI, TI VA BENE BASSO E PELOSO?", + "E PENSARE, CHE VOI DUE SIETE ARRIVATI FIN QUI PER CERCARE IL MIO AIUTO.", + "PAZZI! DIVERTITEVI CON UN POSTO IN PRIMA FILA", + "NELLA NUOVA CREAZIONE DEL MONDO!", + "JAK! SALI SULL'ASCENSORE, PRESTO! E FERMA SUBITO QUEL ROBOT!" + ], + "green-sagecage-resolution": [ + "BEL LAVORO, RAGAZZI! ORA SIETE DEI VERI EROI.", + "UNIRÒ I POTERI DELL'ECO VERDE CON QUELLI DEGLI ALTRI TRE SAGGI", + "PER APRIRE UN VARCO NELLA BARRIERA ENERGETICA INTORNO AL ROBOT PRECURSOR.", + "SÌ, SÌ, MI SEMBRA UN BUON INIZIO.", + "MA DOPO CHE AVRETE APERTO IL VARCO, CHE COSA PENSATE DI FARE AL ROBOT?", + "NIENTE, DAXTER. NOI DOVREMO GIÀ TENERE LO SCUDO APERTO.", + "ECCO... VI DOVRETE OCCUPARE VOI DI DISTRUGGERE IL ROBOT.", + "OH, OTTIMO. DEVO AIUTARE IL TIPO CHE MI HA TRASFORMATO IN UNA PALLA DI PELO", + "A DISTRUGGERE L'UNICA PERSONA IN GRADO DI FARMI TORNARE NORMALE!", + "GULP...", + "PER PRIMA COSA SALVATE IL MONDO,", + "POI CERCHEREMO DI CONVINCERE GOL AD AIUTARE DAXTER." + ], + "mayor-introduction": [ + "OH NO.. NO NO NO NO NO... NON DITEMI CHE ANCHE VOI DUE AVETE QUALCHE PROBLEMA!", + "PRIMA MI RIFERISCONO CHE SONO STATI AVVISTATI DEI MOSTRI VICINO AL VILLAGGIO, E ORA QUESTO.", + "HUH BEH, VEDETE QUEI CONGEGNI LASSÙ, LI VEDETE? VEDETE CHE NON SI MUOVONO?!", + "SIGNIFICA CHE IL NOSTRO VILLAGGIO È RIMASTO SENZA ENERGIA!", + "L'ECO-RAGGIO CHE PROVIENE DAL TEMPIO DELLA GIUNGLA È STATO INTERROTTO", + "E, SAPETE RAGAZZI MIEI, SONO TUTTI TROPPO SPAVENTATI PER ANDARE LÀ, A SCOPRIRE CHE COS'È SUCCESSO!", + "MH, HAI PAGATO LA BOLLETTA?", + "CHE COSA? OH-HOHOHOHOH, MA CHE SCIOCCHEZZA!", + "SENTITE, SE VOI DUE RIUSCITE A SISTEMARE L'ECO-RAGGIO, IO VI DARÒ UNA BATTERIA.", + "OH OOH OOH ASPETTATE, C'È UN'ALTRA COSA, EHM...", + "ECCO, VOGLIO DIRE CHE SE PER CASO FOSTE INTERESSATI A DARE UN CONTRIBUTO ALLA CAMPAGNA PER LA MIA RIELEZIONE,", + "IO POTREI DECIDERE DI SEPARARMI DA UN'ALTRA BATTERIA.", + "E-E BEH, ECCO, IL CONTRIBUTO MINIMO - OH, OH! È MODESTO...", + "SOLO 90 GLOBI PRECURSOR." + ], + "mayor-reminder-beams": [ + "GIÀ DI RITORNO? NON AVETE ANCORA RIPARATO L'ECO-RAGGIO?!", + "UUH UHUHUH... MA IL NOSTRO VILLAGGIO HA BISOGNO DEL VOSTRO AIUTO!" + ], + "mayor-reminder-donation": [ + "COSÌ SIETE VENUTI A FARE UNA DONAZIONE PER LA MIA CAMPAGNA, HO HO HO HO.", + "CON 90 GLOBI PRECURSOR VI SIETE GUADAGNATI UNA BATTERIA, E UN GRAZIE." + ], + "mayor-resolution-beams": [ + "OH OH OH, OH MA CHE MERAVIGLIOSA APPARIZIONE! BEH, IO VI RINGRAZIO.", + "E L'INTERO VILLAGGIO RINGRAZIERÀ ME!", + "OH BRAVI RAGAZZI, AVETE RESTITUITO L'ENERGIA AL VILLAGGIO E ASSICURATO LA MIA RIELEZIONE,", + "E QUINDI VOI, MIEI PRODI, VI SIETE GUADAGNATI UNA BATTERIA." + ], + "mayor-resolution-donation": [ + "E COSÌ AVETE DECISO DI DARE UN CONTRIBUTO? BEEENE... UN CONTRIBUTO CONSISTENTE, SPERO.", + "YUUH! EH HE HE, OH SÌ, È DECISAMENTE UN CONTRIBUTO CONSISTENTE!", + "BEH, BEH IO-IO-IO, IO SPERO SOLO CHE QUESTA BATTERIA ESPRIMA ADEGUATAMENTE LA MIA GRATITUDINE." + ], + "minershort-introduction-gnawers": [ + "EHI VOI DUE! PERCHÉ NON CERCATE DI RENDERVI UTILI?", + "DEI LURKER STANNO SCAVANDO NELLA GROTTA OSCURA LÀ SOPRA.", + "SEMBRA STIANO CERCANDO I MANUFATTI DEI PRECURSOR...", + "SE LI POSSONO PRENDERE ANCHE TUTTI, PER QUEL CHE M'IMPORTA.", + "GIÀ, PER QUEL CHE C'IMPORTA.", + "WILLARD, DÀ DA MANGIARE AL CANARINO.", + "A ME INTERESSANO SOLTANTO LE GEMME!", + "MA NON RIESCO A PRENDERLE PERCHÉ QUANDO VENGONO ESTRATTE,", + "PURTROPPO FANNO CROLLARE TUTTO!", + "CERCA DI ELIMINARE I LURKER CHE ROSICCHIANO I TRONCHI DI SUPPORTO,", + "COSÌ MI SARAI DI GRANDE AIUTO.", + "E MUOVITI!" + ], + "minershort-introduction-orbs": [ + "GAH... EHI, GORDY! ACCIPICCHIA, PENSO CHE ABBIAMO DELLE VISITE!", + "\"PENSI\", WILLARD? E-EHM, SALVE, STRANIERI, SIETE... DI PASSAGGIO?", + "AH, BEH-BEH, ANCHE NOI, PROSEGUIAMO, NON C'È NIENTE DI INTERESSANTE QUI...", + "MA NON AVEVI DETTO CHE QUESTA ERA UNA GEMMA INESTIMABILE, DI GRANDE VALORE E CHE-", + "WILLARD!", + "ABBIAMO BISOGNO DI BATTERIE, NON DI GEMME!", + "EHM, NOI ABBIAMO BEN 4 BATTERIE. MMH, LE VUOI?", + "QUELLO CHE QUESTO CERVELLO DI GALLINA VUOLE DIRE,", + "È CHE POTREMMO ANCHE AVERE DELLE BATTERIE QUI INTORNO,", + "E POTREMMO ANCHE SEPARARCENE PER LA SOMMA DI, BEH...", + "... 90 GLOBI CIASCUNA.", + "DOV'È CHE L'HO SENTITA QUESTA?", + "EHI, CERVELLONI, COME PENSATE DI FARE PER PORTARE FUORI DI QUI QUELLA GROSSA GEMMA?", + "SENTI, QUESTO BRILLANTONE. BEH, ABBIAMO ALTRI DODICI ANNI DI TEMPO PER PROVARCI!", + "MMH, UHH... MMH, GORDY, NON CI VORREBBE UN PO' MENO TEMPO SE TI METTESSI A SCAVARE ANCHE TU, EH?", + "HO LA SCIATICA! HUMPF!", + "MM MM" + ], + "minershort-introduction-switch": [ + "PSST, EHI, RAGAZZI...", + "SAPETE, IO E BIRDIE UN GIORNO STAVAMO ESPLORANDO UNA GROTTA MITICA...", + "ERA PIENA DI UN BEL METALLO ARANCIONE,", + "ED ERA N-NASCOSTA MOLTO BENE DIETRO ALCUNI ALBERI SULLE MONTAGNE INNEVATE!", + "L'HO DETTO A GORDY, MA LUI... SI È MESSO A GRIDARE COME UN PAZZO PERCHÉ AVEVO SMESSO DI SCAVARE! OOH!", + "PERCHÉ DIAVOLO NON STAI SCAVANDO?!", + "OH SCUSA, GORDY!" + ], + "minershort-reminder-1-gnawers": [ + "INSOMMA, VUOI OCCUPARTI DEI LURKER CHE STANNO GIÀ ROSICCHIANDO", + "I TRONCHI DI SUPPORTO DELLA GROTTA OSCURA?!", + "QUEI TRONCHI NON POSSONO RESISTERE PER SEMPRE AI LORO DENTI! UMPF!" + ], + "minershort-reminder-1-orbs": [ + "NON SCORDARE IL PATTO. DEVI PORTARCI BEN... 100 GLOBI!", + "MA COME? AVEVI DETTO 90...", + "W-WILLARD!", + "D'ACCORDO. 90 GLOBI PER UNA BATTERIA." + ], + "minershort-reminder-1-switch": [ + "ALLORA, SIETE RIUSCITI A TROVARE LA GROTTA DIETRO AGLI ALBERI SULLE MONTAGNE INNEVATE?", + "GIÀ... MI SA DOVRÒ ANDARCI AL PIÙ PRESTO ANCH'IO,", + "PER CERCARE DI NASCONDERMI DA GORDY,", + "CHE NON LA SMETTE MAI DI SGRIDARMI!", + "WILLAAARD!!", + "VISTO? MMH!" + ], + "minershort-reminder-2-orbs": [ + "M-MA COME, GORDY?", + "HO DETTO 90 GLOBI PER UNA BATTERIA, W-I-LLARD!!" + ], + "minershort-resolution-1-orbs": [ + "AHEM, BENE, RAGAZZI.", + "ECCO COME D'ACCORDO UNA BATTERIA PER I VOSTRI GLOBI. CONTENTI?" + ], + "minershort-resolution-2-orbs": [ + "GRUNT...", + "OOH! OH, QUESTA VOLTA L'HO TROVATA, SÌ!", + "UH?", + "ECCOLA QUA!", + "È UNA... È UNAA... UUUH...", + "UNA BATTERIA!", + "SÌÌÌ! È QUELLO CHE VOLEVO DIRE! HEHE!", + "PERFETTO. CI HAI LASCIATO IN MUTANDE!", + "NON RESTA PIÙ NEANCHE... UNA BATTERIA... PER NOIALTRI!", + "UH! SE TI PRENDO! EH EH EH EH!" + ], + "oracle-intro-1": [ + "CHI HA SVEGLIATO L'ORACOLO?", + "ASPETTATE, UNO DI VOI HA IN SÉ LA LUCE.", + "DA PRIMA DEI TEMPI, HO CERCATO E ATTESO IL RITORNO DEL VERO EROE.", + "PORTAMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO." + ], + "oracle-intro-2": [ + "FATE ATTENZIONE ALLA LUCE OSCURA, PERCHÉ ESSA HA INTACCATO IL FATO DI UNO DI VOI DUE.", + "PORTATEMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO." + ], + "oracle-intro-3": [ + "CERCATE LA LUCE PURA, PERCHÉ ALL'INTERNO DELLA SUA FIAMMA SI TROVANO LE RISPOSTE.", + "POTETE OTTENERE LE MIE BATTERIE", + "PORTANDOMI 120 GLOBI PRECURSOR PER OGNUNA DI ESSE." + ], + "oracle-left-eye-1": [ + "TI SEI DIMOSTRATO ANCORA UNA VOLTA MERITEVOLE. ECCOTI UNA BATTERIA." + ], + "oracle-left-eye-2": [ + "PER I TUOI SACRIFICI, TI OFFRO UNA BATTERIA." + ], + "oracle-left-eye-3": [ + "PER I TUOI SFORZI, SEI RICOMPENSATO CON UNA BATTERIA." + ], + "oracle-reminder-1": [ + "PORTAMI 120 GLOBI PRECURSOR E TI DARÒ IN CAMBIO UNA BATTERIA." + ], + "oracle-reminder-2": [ + "PRESENTA 120 GLOBI PRECURSOR E SARAI RICOMPENSATO CON UNA BATTERIA." + ], + "oracle-reminder-3": [ + "DEVI PORTARMI 120 GLOBI PRECURSOR PER OGNI BATTERIA CHE CONTENGO." + ], + "oracle-right-eye-1": [ + "PER I VOSTRI DONI, VI MERITATE UN'ALTRA BATTERIA." + ], + "oracle-right-eye-2": [ + "ECCO UN'ALTRA BATTERIA PER LA TUA MISSIONE." + ], + "oracle-right-eye-3": [ + "HAI OTTENUTO UN'ALTRA BATTERIA." + ], + "redsage-resolution": [ + "HEHEHEH, ALLA FINE SIETE ARRIVATI A SALVARMI.", + "SAPETE DA QUANTO TEMPO SONO QUI? PERCHÉ CI AVETE IMPIEGATO TANTO? BENE... HEHEHEH,", + "DUNQUE, COME VI CHIAMATE?", + "IO SONO DAXTER. LUI È JAK. È CON ME.", + "BEL LAVORO, DAXTER. SEI UN VERO EROE!", + "ECCO, DEVI EVITARE CHE GOL LANCI IL SUO ROBOT.", + "IO UTILIZZERÒ, VEDIAMO UN PO', IL MIO POTERE DELL'ECO PER APRIRE LO SCUDO." + ], + "sage-bluehut-introduction-crop-dusting": [ + "OK GENTE, QUI LA SITUAZIONE PUZZA PIÙ DELL'ASCELLA DI UN LURKER.", + "POCO TEMPO PRIMA DELLA SUA SCOMPARSA,", + "IL SAGGIO BLU AVEVA ANNOTATO LE PROBLEMATICHE DI TUTTE LE AREE CIRCOSTANTI.", + "RITENGO SIA DI PARTICOLARE INTERESSE", + "L'INFEZIONE CAUSATA DALL'ECO OSCURO DI ALCUNE POVERE PIANTE", + "NEL BACINO DEL PRECURSOR.", + "KEIRA TELETRASPORTERÀ IL VOSTRO ZOOMER ANTI-GRAVITÀ AL TRANS-PAD PIÙ VICINO.", + "RAGGIUNGETE CON LO ZOOMER UN CAMINO E PORTATE SUBITO L'ECO VERDE A TUTTE LE PIANTE MALATE.", + "QUESTO DOVREBBE CURARLE.", + "NON DIMENTICATENE NEMMENO UNA, ALTRIMENTI L'INFEZIONE", + "SI PROPAGHERÀ MOLTO VELOCEMENTE", + "TRA LE PIANTE SANE.", + "E TU, DAXTER...", + "COMINCIA A DARE UNA RIPULITA!", + "... E NON TRALASCIARE GLI ANGOLI!" + ], + "sage-bluehut-introduction-prec-arm": [ + "SPERO CHE VI SIATE PORTATI IL PRANZO, PERCHÉ SIAMO SOLTANTO ALL'INIZIO.", + "DUNQUE, SECONDO GLI APPUNTI DEL SAGGIO BLU, I LURKER HANNO INFESTATO L'INTERA PALUDE DELLA BAIA.", + "SEMBRA CHE STIANO PENSANDO DI UTILIZZARE UN DIRIGIBILE", + "PER POTER RECUPERARE DAL TERRENO FANGOSO UN IMPORTANTE MANUFATTO DEI PRECURSOR.", + "VOI, DOVETE ANDARE LAGGIÙ... E SPEZZARE LE CATENE.", + "NON SO COSA INTENDANO FARE CON QUEL MANUFATTO,", + "MA AD ESSERE SINCERO, AMICI MIEI, NON PREVEDO NULLA DI BUONO." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "LA VISTA MI STA GIOCANDO UN BRUTTO SCHERZO!", + "PERCHÉ IO SO CHE IN QUESTO MOMENTO VOI DUE VI TROVATE NEL BACINO DEL PRECURSOR", + "PER SALVARE LE PIANTE INFETTATE DALL'ECO OSCURO." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "BEH, CHE COSA FATE DI NUOVO QUI?", + "DAL BALCONE POSSO VEDERE CHE IL DIRIGIBILE DEI LURKER", + "SI TROVA ANCORA SULLA PALUDE.", + "E VOI OVVIAMENTE NON AVETE PORTATO A TERMINE LA MISSIONE.", + "MUOVETEVI!" + ], + "sage-intro-sequence-a": [ + "HO PASSATO LA VITA CERCANDO DI DARE RISPOSTE ALLE DOMANDE CHE MIO PADRE,", + "E IL PADRE DI MIO PADRE, SI ERANO POSTI INUTILMENTE:", + "CHI ERANO I PRECURSOR?", + "PERCHÉ HANNO CREATO I GRANDI MONOLITI CHE VEDIAMO SU TUTTO IL PIANETA?", + "COME RIUSCIVANO A CONTROLLARE L'ECO, L'ENERGIA VITALE DEL MONDO?", + "QUAL ERA IL LORO OBIETTIVO, E PERCHÉ SONO SCOMPARSI?", + "HO CHIESTO ALLE PIANTE, MA NON RICORDAVANO.", + "LE PIANTE HANNO CHIESTO ALLE ROCCE, MA NEANCHE LE ROCCE RAMMENTAVANO,", + "NEANCHE LE ROCCE RIUSCIVANO A RICORDARE...", + "OGNI GOCCIA DEL MIO SANGUE MI DICE CHE TUTTE LE RISPOSTE GIACCIONO", + "SULLE SPALLE DI UN GIOVANE, IGNARO DEL SUO DESTINO, A CUI NON INTERESSA LA RICERCA DELLA VERITÀ,", + "E CHE RIFIUTA IL MIO CONSIGLIO!", + "E D'ALTRA PARTE, PERCHÉ DOVREBBE DARE ASCOLTO AL VECCHIO SAMOS?", + "IO SONO SOLO IL MAESTRO DELL'ECO VERDE,", + "UNO DEGLI UOMINI PIÙ SAGGI DEL PIANETA...", + "PURTROPPO, SEMBRA CHE LE RISPOSTE NON NASCANO MAI DA ATTENTE RICERCHE O DA PROFONDI RAGIONAMENTI.", + "NO.", + "PROPRIO COME MOLTI DEI MISTERI DEL FATO,", + "NASCONO SEMPLICEMENTE DA UN PICCOLO ATTO... DI DISOBBEDIENZA.", + "EHI, ASCOLTA JAK, IL VECCHIO VERDE CI AVEVA DETTO DI NON VENIRE QUI!" + ], + "sage-intro-sequence-d1": [ + "ADESSO SI PUÒ SAPERE COSA VOLETE DA ME VOI DUE?", + "ECCO, NOI- ERAVAMO- CIOÈ- IO- IO ERO-", + "NO! NON DIRMELO. INVECE DI DARMI RETTA, VOI DUE", + "SIETE ANDATI A COMBINARE GUAI NELL'UNICO POSTO CHE VI AVEVO DETTO DI EVITARE ASSOLUTAMENTE:", + "L'ISOLA DELLA NEBBIA!", + "SÌ, ESATTO, E POI-", + "E POI, DAXTER, TI SEI FATTO FINALMENTE UN BEL BAGNO.", + "MA IN UNA POZZA DI ECO OSCURO, DOVE TI SEI RIDOTTO COSÌ!", + "BENE, ORA VUOI CONTINUARE A CIARLARE O VUOI AIUTARMI A RISOLVERE QUESTO CASINO?!", + "PENSO CHE CONTINUERÒ A CIARLARE PERCHÉ, A MIO PARERE, LA TRASFORMAZIONE È UN NOTEVOLE MIGLIORAMENTO.", + "E D'ALTRA PARTE...", + "NON POTREI AIUTARTI NEANCHE SE VOLESSI.", + "COSA?!", + "C'È SOLTANTO UNA PERSONA CHE HA STUDIATO L'ECO OSCURO", + "ABBASTANZA A LUNGO DA POTERTI FAR TORNARE ALLA TUA FORMA ORIGINARIA:", + "GOL ACHERON, IL SAGGIO.", + "MA GOL VIVE NEL LONTANO NORD... NEL LONTANISSIMO NORD.", + "NESSUNO GLI PARLA ORMAI DA ANNI.", + "TI TELETRASPORTEREI LÌ, MA PURTROPPO NON POSSO FARLO,", + "VISTO CHE DEI TRE SAGGI CHE CUSTODISCONO I TELETRASPORTI", + "ORMAI NON SI HANNO NOTIZIE DA TEMPO IMMEMORABILE." + ], + "sage-intro-sequence-d2": [ + "L'UNICA ALTRA VIA È A NORD E PASSA ATTRAVERSO IL CANYON DI FUOCO.", + "MA È UN TERRENO VULCANICO E POTREBBE FONDERE ANCHE IL METALLO PRECURSOR,", + "NON PUOI ATTRAVERSARLO A PIEDI.", + "MA POTRESTI TENTARE DI SORVOLARLO, SE AVESSI UNO ZOOMER CON UNO SCUDO CONTRO IL CALORE!", + "PER PURO CASO IO STAREI LAVORANDO SU UN GINGILLO DEL GENERE IN QUESTI GIORNI.", + "MI SERVIREBBERO SOLO 20 BATTERIE PER AVERE ABBASTANZA ENERGIA", + "DA RESISTERE AL CALORE DEL CANYON! VERO PAPÀ?", + "CERTO KEIRA, POTREBBE FUNZIONARE...", + "MA, QUESTO GIOVANE RAGAZZO,", + "E LA CREATURA!", + "DOVE TROVERANNO 20 BATTERIE?", + "LÀ, AL VILLAGGIO!", + "MOLTI LAGGIÙ HANNO UNA O DUE BATTERIE NASCOSTE DA QUALCHE PARTE.", + "ANCHE SE LORO NON SARANNO DELL'IDEA DI SCAMBIARLE,", + "METTETE NELLE LORO MANI QUALCHE GLOBO PRECURSOR E RIUSCIRETE A RAGGIRARLI!", + "E SCOMMETTO CHE CE NE SONO MOLTE DI PIÙ ABBANDONATE NEL DESERTO IN ATTESA CHE QUALCHE", + "PRODE AVVENTURIERO VADA A RECUPERARLE!", + "BEH, ECCO FINALMENTE IL CORAGGIOSO AVVENTURIERO!", + "\"CORAGGIOSO AVVENTURIERO\"?", + "VOI DUE NON RIUSCIRESTE A USCIRE DAL VILLAGGIO, SENZA ALLENAMENTO!", + "PRIMA DI FARE QUALUNQUE ALTRA COSA,", + "FARESTE MEGLIO AD ANDARE AL TELETRASPORTO PER ALLENARVI SULLA ROCCIA DEL GEYSER!", + "EHM, NON È CHE TROVEREMO ANCORA DELL'ALTRA BRUTTA ROBACCIA OSCURA, VERO?", + "NON VORREI CADERCI DENTRO DI NUOVO E DIVENTARE COME TE!", + "ENTRATE SUBITO LÌ, PRIMA CHE VI TRASFORMI ENTRAMBI IN FELCI!" + ], + "sage-intro-sequence-e": [ + "OTTIMO ALLENAMENTO! MA QUESTO NON È NULLA IN CONFRONTO ALLE SFIDE CHE ANCORA VI ATTENDONO!", + "NAH, NON C'È NESSUUUUN PROBLEMA!", + "DOBBIAMO DARCI UNA MOSSA, VERO JAK?", + "CI PIACEREBBE RESTARE A PARLARE CON L'OMINO VERDE, MA ORA", + "DOBBIAMO RIPRENDERE LE NOSTRE FATICHE!", + "BENE, BENE. ALLORA PARTITE PER \"L'AVVENTURA\"...", + "E MENTRE VIAGGIATE, IN CERCA D' \"AVVENTURA\", CERCATE ALMENO DI RENDERVI UTILI!", + "QUEI RACCOGLITORI DI ECO VERDE SI SONO INTASATI DI NUOVO.", + "ANDATE ALL'ESTREMITÀ PIÙ LONTANA DELLA SPIAGGIA E DATEGLI UNA PULITA.", + "SEGUITE LE LAMPADE: VI CONDURRANNO FIN LAGGIÙ.", + "E ORA, TUTTI QUANTI...", + "FUORI DI QUIIIII!" + ], + "sage-introduction-misty-cannon": [ + "OH, ECCO I NOSTRI EROICI CONQUISTATORI...", + "BENE! VOLEVO APPUNTO PARLARVI DI UNA FACCENDA PIUTTOSTO SERIA.", + "SEMBRA CI SIANO PARECCHI LURKER IN FERMENTO SULL'ISOLA DELLA NEBBIA.", + "DALLA MIA TORRE DI OSSERVAZIONE POSSO VEDERLI, STANNO BORBANDANDO IL SILOS DEL PRECURSOR.", + "SE I LURKER DOVESSERO RIUSCIRE AD APRIRLO LIBERANDO L'ECO OSCURO", + "SAREMMO COSTRETTI A FUGGIRE A GAMBE LEVATE, RICOPRENDOCI DI RIDICOLO, NON SO SE MI SPIEGO.", + "JAK, È IL MOMENTO DI DIMOSTRARE IL TUO CORAGGIO.", + "RECATI DAL PESCATORE E FATTI RIPORTARE IN BARCA ALL'ISOLA DELLA NEBBIA.", + "RAGGIUNGI LA CIMA DEL SILOS DEL PRECURSOR E TOGLI DI MEZZO QUEL CANNONE, CHIARO?!", + "E IO CHE DEVO FARE?", + "TU? MMH, PERCHÉ NON PULISCI I PAVIMENTI? HANNO PERSO UN PO' DELLA LORO LUCENTEZZA ULTIMAMENTE." + ], + "sage-reminder-1-ecorocks": [ + "OH, DEVO RICONOSCERE CHE AVETE PROPRIO UN BEL CORAGGIO!", + "DI NUOVO QUI E SENZA ESSERE RIUSCITI A SBLOCCARE I MIEI ECO-RACCOGLITORI!?", + "EBBENE, SI TROVANO DALL'ALTRA PARTE DELLA SPIAGGIA, RAGAZZI.", + "E ADESSO...", + "DATEVI UNA MOSSA!" + ], + "sage-reminder-1-generic": [ + "MMH...", + "E VOI DUE CHE CI FATE QUI, EH? DOVETE PENSARE A RACCOGLIERE LE BATTERIE!", + "NON OSATE PIÙ DISTURBARMI FINCHÉ NON LE AVRETE TROVATE, CAPITO?!" + ], + "sage-reminder-1-misty-cannon": [ + "IL BOMBARDAMENTO SI STA INTENSIFICANDO!", + "TROVA IL PESCATORE NELLA GIUNGLA, OTTIENI IL PERMESSO DI USARE LA SUA BARCA", + "E RAGGIUNGI L'ISOLA DELLA NEBBIA PER FERMARE IL CANNONE.", + "E TU DAXTER, MMH, DAI UNA BELLA RIPULITA. QUESTO POSTO SEMBRA UN PORCILE!" + ], + "sage-reminder-2-generic": [ + "FORSE NON RIUSCITE A CAPIRE LA GRAVITÀ DELLA SITUAZIONE.", + "NON È UNA SEMPLICE GUERRA CONTRO DEI MOSTRICIATTOLI PELOSI.", + "DALL'ESITO DELLA MISSIONE DIPENDE IL NOSTRO FUTURO!", + "PERCIÒ, ADESSO USCITE DA QUI E FATE QUELLO CHE DOVETE FARE!" + ], + "sage-village3-introduction": [ + "WOW! MI SONO SEMPRE DOMANDATO SE AVREI PERSO DEI PEZZI VIAGGIANDO IN QUESTI AFFARI!", + "EHI, PER TUTTE LE SACRE YAKOW! IL LABORATORIO DEL SAGGIO ROSSO È PIÙ DISASTRATO DI QUELLO DEL BLU!", + "EHI, SEMBRA PROPRIO CHE QUI DENTRO CI SIA STATA UNA ZUFFA!", + "UH UH EH EH EHE!", + "NON MI AZZARDEREI A CHIAMARLA \"ZUFFA\".", + "TU CHE NE DICI, MIA CARA SORELLA?", + "CERTAMENTE NO.", + "IL SAGGIO ROSSO SI È ARRESO COSÌ FACILMENTE...", + "... NON È STATO AFFATTO DIVERTENTE.", + "GOL? SEI TU?", + "ALLA FINE HAI PERSO LE STAFFE, EH?", + "E, MAIA! VI AVEVO AVVISATO CHE L'ECO OSCURO AVREBBE AVUTO UN BRUTTO EFFETTO SU DI VOI!", + "MMH, NESSUNO DÀ MAI RETTA AL VECCHIO SAMOS...", + "COSA NE AVETE FATTO DEL SAGGIO BLU E DEL SAGGIO ROSSO?", + "NON PREOCCUPARTI DEI TUOI PITTORESCHI AMICI.", + "LI ABBIAMO PORTATI TUTTI NELLA NOSTRA CITTADELLA.", + "SONO... OSPITI \"SPECIALI\".", + "GIÀ. HANNO GENTILMENTE ACCETTATO DI AIUTARCI NEL NOSTRO PICCOLO PROGETTO.", + "MH, TI SBAGLIAVI SAMOS!", + "L'ECO OSCURO PUÒ ESSERE CONTROLLATO!", + "ABBIAMO APPRESO I SUOI SEGRETI,", + "E ADESSO POSSIAMO PLASMARE IL MONDO A NOSTRO PIACIMENTO!", + "NON POTETE CONTROLLARE L'ECO OSCURO!", + "NEMMENO I PRECURSOR-", + "FINORA, ABBIAMO DOVUTO ACCONTENTARCI DI QUEL POCO ECO CHE SI TROVAVA VICINO ALLA SUPERFICIE.", + "MA BEN PRESTO, POTREMO ACCEDERE AI VASTI GIACIMENTI D'ECO OSCURO", + "CHE DA TEMPO SONO CELATI NELLE PROFONDITÀ.", + "NON NEI SILOS!", + "SÌ, SÌ, PROPRIO I SILOS!", + "SARANNO TUTTI QUANTI APERTI", + "E TUTTO L'ECO OSCURO DEL MONDO SARÀ NOSTRO!", + "MA È IMPOSSIBILE! SOLO UN ROBOT PRECURSOR-", + "OH, NON ESSERE COSÌ DELUSO, SAMOS.", + "ABBIAMO DEI GRANDI PROGETTI SU DI TE.", + "MH MH MH MH MH! AH HA HA HA HA HA HA! AH AH AH...", + "ASPETTA UN ATTIMO!", + "QUELLO ERA GOL?", + "LO STESSO GOL CHE DOVEVA FARMI TORNARE NORMALE?", + "GOL È IL TIZIO CHE STA CERCANDO DI FARCI FUORI?!", + "SONO FINITO.", + "POTREMMO ESSERE FINITI TUTTI.", + "SE APRONO I SILOS, L'ECO OSCURO COMINCIERÀ A DISTRUGGERE TUTTO CIÒ CON CUI ENTRERÀ IN CONTATTO!", + "DOBBIAMO ANDARE ALLA CITTADELLA PER FERMARLI!", + "LA VIA PIÙ VELOCE È IL CONDOTTO LAVICO IN FONDO A QUESTO CRATERE.", + "EH! QUALCHE ALTRA BATTERIA, E LO SCUDO DI CALORE DEL VOSTRO ZOOMER", + "POTREBBE SUPERARE INCOLUME QUELL'INFERNO.", + "BENE, RAGAZZI. SAPETE COSA FARE!", + "AVANTI, SACCHI DI PULCI, ANDATE A CERCARE ALTRE BATTERIE!" + ], + "sage-village3-introduction-dark-eco": [ + "PER TUTTE LE PALLE DI ECO!", + "SEMBRA CHE CI SIA UNA FORTE PRESENZA DI LURKER NELLE GROTTE DEL RAGNO!", + "PERFETTO! DAL NOME SEMBRA GIÀ UN BEL POSTO.", + "FAMMI INDOVINARE... CI SONO RAGNI NELLE GROTTE DEL RAGNO, GIUSTO?", + "CERTO CHE È PIENO DI RAGNI NELLE GROTTE DEL RAGNO!", + "MA QUESTO È L'ULTIMO DEI PROBLEMI!", + "I LURKER SONO ALLA RICERCA DEI CRISTALLI DI ECO OSCURO CONCENTRATO.", + "DOVETE DISTRUGGERE I CRISTALLI PRIMA CHE QUEI MOSTRI CI METTANO SOPRA LE ZAMPE!", + "MUOVE-TE-VI!" + ], + "sage-village3-introduction-rams": [ + "SONO FELICE CHE SIATE QUI.", + "CI SONO PARECCHI LURKER SULLE MONTAGNE.", + "SEMBRA CHE ABBIANO TROVATO DELL'ECO OSCURO CONGELATO NEI GHIACCIAI", + "E ORA STIANO CERCANDO DI ESTRARLO.", + "MENTRE SIETE LASSÙ ALLA RICERCA DI BATTERIE,", + "CERCATE DI FERMARE I LURKER,", + "EVITANDO CHE ALTRO ECO OSCURO FINISCA NELLE MANI DI GOL." + ], + "sage-village3-reminder-1-dark-eco": [ + "DOVETE DISTRUGGERE I CRISTALLI DI ECO OSCURO CHE SI TROVANO NELLE GROTTE DEL RAGNO!" + ], + "sage-village3-reminder-1-rams": [ + "NON POSSIAMO PERMETTERE AI LURKER DI IMPOSSESSARSI DELLE SCATOLE DI ECO OSCURO.", + "RAGGIUNGETE LE CIME INNEVATE E FERMATELI!" + ], + "sculptor-introduction": [ + "EHI... ESSERINO PELOSO!", + "AWW... PER UN ATTIMO AVEVO PENSATO CHE FOSSI LA MIA MUSA.", + "LA TUA COSA?", + "NON AVETE MAI VISTO UNA MUSA PRIMA D'ORA?", + "È UNA SPECIE DI SCOIATTOLINA LUMINOSA GRANDE COSÌ, PIENA DI CORAGGIO E MATTA COME UNA CAVALLA!", + "AAAH, CERTO, HO CAPITO! SAREBBE UNA SPECIE DI AMICONE.", + "SE DEVO DIRE IL VERO, SENZA LA MIA CARA MUSA, NON RIESCO PIÙ A SCOLPIRE NIENTE.", + "MA QUANDO LEI È QUI CON ME... AH-HA! VEDO LA BELLEZZA IN OGNI COSA, SAPETE?", + "ORA INVECE NON FAREI DI CESELLO NEANCHE UNA SCATOLA.", + "CREDO SIA SCAPPATA ALL'ISOLA DELLA NEBBIA.", + "AHH, SPERO SOLO STIA BENE.", + "VI DARÒ UNA BATTERIA SE ME LA RIPORTATE!", + "EHI, UN MOMENTO! - NOI - NON ABBIAMO ALCUNA INTENZIONE DI TORNARE SULL'ISOLA DELLA NEBBIA!", + "DICO BENE?" + ], + "sculptor-reminder-1": [ + "AH! ALLORA, RAGAZZI! ... AVETE GIÀ TROVATO LA MIA MUSA?" + ], + "sculptor-resolution": [ + "OH, LA MIA MUSA! L'AVETE SALVATA! AAH, SIETE DAVVERO STUPENDI!", + "ECCO, TENETE QUESTA BATTERIA. NON MI SERVE PIÙ, ORA HO RITROVATO L'ISPIRAZIONE!" + ], + "sidekick-human-intro-sequence-b": [ + "SHHH!", + "DEVE CONTINUARE LA TUA RICERCA DI ARTEFATTI E ECO.", + "GAAAH!", + "SE GLI INDIGENI HANNO DEGLI OGGETTI PRECURSOR...", + "EH - SAI BENE CHE COSA FARE!", + "REGOLARE I CONTI CON CHIUNQUE OSI ALLONTANARSI DAL VILLAGGIO.", + "PER IL RESTO LO ATTACCHEREMO A TEMPO DEBITO!" + ], + "sidekick-human-intro-sequence-c": [ + "INSOMMA, CHE STIAMO FACENDO QUI, JAK?", + "QUESTO POSTO MI FA VENIRE I BRIVIDI...", + "ACK!", + "EHEHE...", + "UH?", + "AHH, STUPIDA SPAZZATURA DEI PRECURSOR!", + "EHI, CHE COS'È QUELLA ROBACCIA SCURA?", + "NON PROMETTE NIENTE DI BUONO...", + "IL SAGGIO HA FARNETICATO QUALCOSA SUI PRECURSOR CHE AVEVANO COSTRUITO QUESTO LUOGO.", + "\"DOVE SARANNO ANDAAAATI? PERCHÉ LO AVRANNO COSTRUIIIITO?\"", + "ORA, SE DEVO DIRE LA VERITÀ, I GLOBI PRECURSOR E LE BATTERIE MI PIACCIONO,", + "MA SECONDO ME I PRECURSOR ERANO SOLO DEI PERDENTI.", + "SI È ACCESA! COME DIAVOLO HAI FATTO?", + "OH JAK, CREDO CHE SIAMO NEI GUAI!", + "AARGH!", + "UH-AH, AAAIUUTOOOOOO!!", + "OUCH! ARGH!", + "RAGAZZI SE BRUCIA!", + "TE L'AVEVO DETTO CHE NON DOVEVAMO VENIRE QUI, PERCIÒ...", + "... MH?", + "CHE C'È?!", + "AAAAAAAAAAAAAAAAAH!!", + "OKAY... OOKAAY, VA TUTTO BENE... STO BENE!", + "AAAAAAAAAAAAAAAAAAAAAAH!!" + ], + "warrior-introduction": [ + "OHH... LA MIA TESTA. CHE MALE!", + "DUBITO CHE PER TE SIA UN ORGANO VITALE!", + "NON FARCI CASO, FUSTONE!", + "OH, CERTO, UNA VOLTA IO ERO UN DURO.", + "FORSE IL PIÙ INFLESSIBILE DI TUTTI.", + "HO CERCATO DI DIFENDERE QUESTO VILLAGGIO DALLE ORRIBILI CREATURE DA SOLO, PER QUASI UN ANNO INTERO!", + "POI È ARRIVATO QUEL MOSTRO TREMENDO, E HA INCOMINCIATO IL BOMBARDAMENTO COI MACIGNI.", + "IO ERO... PIENO DI CORAGGIO... E CON L'ARMATURA CHE RISPLENDEVA SOTTO IL SOLE,", + "E SONO SALITO IN CIMA ALLA COLLINA PER AFFRONTARLO...!", + "MA LUI MI HA PESTATO COME SE FOSSI UNA BISTECCA DI YAKOW DA CUOCERE!", + "PERCHÉ NON PROVI A UCCIDERLO CON I TUOI MELODRAMMI?", + "CON ME CI STAI RIUSCENDO!", + "DOPO IL MIO ULTIMO TERRIBILE FALLIMENTO,", + "HA BLOCCATO LA STRADA PER IL SUO COVO CON UN MACIGNO DA 30 TONNELLATE,", + "E ORA NESSUNO PUÒ RAGGIUNGERLO PER SFIDARLO DI NUOVO.", + "ALLORA, IL NOSTRO SAGGIO, UN MAESTRO DELL'ECO BLU, ASSIEME AD UN GENIO DELLA MECCANICA,", + "HA INVENTATO UN MACCHINARIO CAPACE DI SOLLEVARE IL MACIGNO E TOGLIERLO DI MEZZO!", + "MA, AHIMÉ... IL SAGGIO È SPARITO PRIMA CHE POTESSIMO FARLO FUNZIONARE.", + "E HA PORTATO CON SÉ ANCHE TUTTE LE SUE BATTERIE.", + "PERLOMENO, SONO RIUSCITO AD ELIMINARE UN BEL PO' DI PONTONI", + "COSÌ IL MOSTRO NON POTRÀ PIÙ SCENDERE E FARMI DI NUOVO DEL MALE.", + "WOW, OTTIMO LAVORO, FUSTONE. MA ORA...", + "CI SERVIRAI PER... RIPRENDERCELE!", + "OH, CERTO! E COME NO? E LA MIA SORTE SARÀ SEGNATA!", + "OHH...", + "EH VA BENE. OKAY.", + "PORTATEMI 90 GLOBI PRECURSOR E IO ANDRÒ A SCIOGLIERE TUTTI I PONTONI.", + "MA VI ASSICURO CHE NON COMBATTERÒ MAI PIÙ CONTRO QUEL MOSTRO!" + ], + "warrior-reminder-1": [ + "PRENDETEVI TUTTO IL TEMPO CHE VI SERVE PER PORTARMI I GLOBI PRECURSOR,", + "NON HO AFFATTO INTENZIONE DI RICOSTRUIRE IL PONTE COSÌ IN FRETTA!" + ], + "warrior-resolution": [ + "OH.", + "CHE MERAVIGLIA.", + "BRAVI, MI AVETE PORTATO I GLOBI PRECURSOR.", + "D'ACCORDO.", + "SISTEMERÒ IL PONTE.", + "BASTA CHE NON MI CHIEDIATE DI COMBATTERE DI NUOVO CON QUEL MOSTRO TREMENDO!" + ], + "yellowsage-resolution": [ + "CHI POTEVA PENSARE CHE SAREI VISSUTO FINO A VEDERE", + "IL GIORNO IN CUI SAREI STATO SALVATO DA UN RAGAZZO E DAL SUO TOPO MUSCHIATO!?", + "... MH, GLIELA FARÒ PAGARE A CARA A GOL E MAIA PER QUESTO MOMENTO A DIR POCO IMBARAZZANTE.", + "POI DECIDERÒ SE MANGIARE DEL BUON TOPO MUSCHIATO IN UMIDO...", + "EH!" + ] + }, + "hints": { + "ASSTLP01": [ + "MMH!" + ], + "ASSTLP02": [ + "BISOGNA FAR FUNZIONARE QUESTO SCUDO TERMICO..." + ], + "ASSTLP03": [ + "CI SERVONO DELLE BATTERIE PER ALIMENTARLO..." + ], + "ASSTLP04": [ + "DOV'È LA MIA CHIAVE?" + ], + "ASSTLP05": [ + "IL CANYON DI FUOCO È COSÌ CALDO..." + ], + "ASSTLP23": [ + "ORA, COME FUNZIONA QUESTA MACCHINA FLUTTUANTE?" + ], + "ASSTLP24": [ + "ANCHE USANDO LE BATTERIE, AVREMO ENERGIA SUFFICIENTE?" + ], + "ASSTLP30": [ + "MMH, VEDIAMO..." + ], + "ASSTLP31": [ + "MH..." + ], + "ASSTLP32": [ + "ODDIO...!" + ], + "ASSTLP34": [ + "HUH... A COSA SI PREPARANO GOL E MAIA...?" + ], + "ASSTLP35": [ + "MMH... DOBBIAMO RAGGIUNGERE LA CITTÀ DEI PRECURSOR..." + ], + "ASSTLP36": [ + "HUH. LO SCUDO DI CALORE AVRÀ BISOGNO DI ALTRA ENERGIA PER RESISTERE ALLA LAVA." + ], + "ASSTLP37": [ + "GAH... DOBBIAMO SALVARE GLI ALTRI SAGGI." + ], + "BIL-AM01": [ + "MI PIACE IL FANGO." + ], + "BIL-AM02": [ + "MALEDETTI RATTACCI." + ], + "BIL-AM03": [ + "HO PROPRIO BISOGNO DI UN GOCCETTO." + ], + "BIL-AM04": [ + "GLADÌOLA." + ], + "BIL-AM05": [ + "HO BISOGNO DEL MIO SCIROPPINO." + ], + "BIL-AM06": [ + "HO BISOGNO DI UN PO' DI REFRIGERIO." + ], + "BIL-AM07": [ + "MALEDETTO CALDO, MI PRUDE TUTTO." + ], + "BIL-AM08": [ + "DANNAZIONE! HO L'ORTICARIA DAL CALDO." + ], + "BIL-AM1A": [ + "MMH! MI PIACE IL FANGO!" + ], + "BIL-AM2A": [ + "MALEDETTI RATTACCI!" + ], + "BIL-AM2B": [ + "MALEDETTI RATTACCI!" + ], + "BIL-LO01": [ + "FAAAAAARTHY!" + ], + "BIL-LO02": [ + "PORCELLINO-PORCELLINO!" + ], + "BIL-LO03": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "PORCELLINO-PORCELLINO!" + ], + "BIL-LO2B": [ + "PORCELLINO! PORCELLINO!" + ], + "BIL-TA01": [ + "LÀ!" + ], + "BIL-TA02": [ + "VAI!" + ], + "BIL-TA03": [ + "LÌ!" + ], + "BIL-TA04": [ + "ACCIDENTI." + ], + "BIL-TA05": [ + "UN RATTO NE HA PRESO UNO." + ], + "BIL-TA06": [ + "E UN ALTRO..." + ], + "BIL-TA07": [ + "NE RIMANE UNO..." + ], + "BIL-TA08": [ + "PRESI." + ], + "BIL-TA09": [ + "YEEHAA!" + ], + "BIL-TA1A": [ + "LÀ!" + ], + "BIL-TA2A": [ + "VAI!" + ], + "BIL-TA3A": [ + "LÌ." + ], + "BIL-TA4A": [ + "PORC..." + ], + "BIL-TA4B": [ + "AAAH!" + ], + "BIL-TA5A": [ + "UN RATTO NE HA PRESO UNO!" + ], + "BIR-AM01": [ + "SEI GIÀ VICINO ALL'UOVO?" + ], + "BIR-AM02": [ + "ECCO, SOLO UN POCHINO PIÙ AVANTI!" + ], + "BIR-AM03": [ + "OH, BENE, SPINGILO. OH-OH, PIANO!" + ], + "BIR-AM04": [ + "OH, MAMMA MIA, AVEVO DETTO PIANO!" + ], + "BIR-AM05": [ + "CORAGGIO, SPINGI L'UOVO GIÙ DALLA SCOGLIERA!" + ], + "BIR-AM06": [ + "OOOOH!" + ], + "BIR-AM07": [ + "QUI, UCCELLINO. QUI, UCCELLINO BELLO." + ], + "BIR-AM08": [ + "QUI, UCCELLINO." + ], + "BIR-AM09": [ + "STATE ATTENTI! NON SEMBRA UN POSTO MOLTO SICURO!" + ], + "BIR-AM10": [ + "ATTENZIONE, ADAGIO!" + ], + "BIR-AM11": [ + "BUON LAVORO. CI VEDIAMO GIÙ VICINO ALL'UOVO!" + ], + "BIR-AM12": [ + "VOI SÌ CHE SIETE DEI VERI AMANTI DEGLI ANIMALI!" + ], + "BIR-AM13": [ + "VEDETE QUALCHE ALTRO UCCELLINO LASSÙ?" + ], + "BIR-LO01": [ + "SMACK... FIRULÌ..." + ], + "BIR-LO02": [ + "OH, QUELLO È PROPRIO GRAZIOSO." + ], + "BIR-LO03": [ + "OOH GUARDA, UN MUCKY-MUCK!" + ], + "BIR-am08": [ + "QUI, UCCELLINO..." + ], + "BLU-AM01": [ + "UN PO' DI AIUTO SAREBBE UUUUTILE!" + ], + "BLU-AM02": [ + "AH, QUESTO È UN BEL GUAIO." + ], + "BLU-AM03": [ + "MMH, CI TROVIAMO DI FRONTE A UN BELL'ENIGMA." + ], + "CHI-AM01": [ + "OOH NO...! QUESTA È UNA CATASTROFE! U-UNA VERA... CATASTROFE..." + ], + "CHI-AM02": [ + "VOGLIONO CHE IO VADA NELLA GIUNGLA - IO! HO HO OH...", + "PREFERIREI LOTTARE CON UN FLUT-FLUT IMBESTIALITO." + ], + "CHI-AM03": [ + "UGH... PRIMA LA BARCA DEL PESCATORE VIENE A-ATTACCATA DA UN M-MOSTRO...", + "E ORA- ORA QUESTO... CHE ALTRO... CHE ALTRO POTREBBE ANDARE STORTO?!" + ], + "CHI-AM04": [ + "OHH... IO- IO- NON SO IO- IOIOIOIO... OOOOH... FORSE DOVREI AUMENTARE LE TASSE PER...", + "PER POTER RIMEDIARE QUESTO PASTICCIO." + ], + "CHI-AM05": [ + "PROBLEMI...? OH- IOIOIOIO... P-PROBLEMI... OH... PROBLEMI..!" + ], + "CHI-AM06": [ + "SOB... SIGH... A-A-ADESSO È IMPOSSIBILE... CHE MI RIELEGGANO..." + ], + "CHI-AM07": [ + "OOOOHHH... CHE COSA È SUCCESSO... ALL'ECO-RAGGIO?" + ], + "CHI-AM08": [ + "SIGH... P-PERCHÉ... M-M-MA IO... PERCHÉ? PERCHÉ? SOB..." + ], + "CHI-LO01": [ + "OOH... MULINI A VENTO, MOSTRI, ENERGIA, RIELEZIONE..." + ], + "CHI-LO02": [ + "MHMH... VOTAZIONI... M-MOSTRI... R-RIELEZIONE..." + ], + "EXP-AM01": [ + "DEVO METTERMI IN VIAGGIO AL PIÙ PRESTO.", + "HO BISOGNO DEI GLOBI DEI PRECURSOR!" + ], + "EXP-AM02": [ + "VEDIAMO... DOVE POSSO ANDARE PRIMA?" + ], + "EXP-AM03": [ + "OH, COME MI MANCA VIAGGIARE..." + ], + "EXP-AM04": [ + "COSÌ TANTI POSTI DA VEDERE, E COSÌ POCO TEMPO." + ], + "EXP-AM05": [ + "AI MIEI TEMPI, SI POTEVA VIAGGIARE", + "SENZA ESSERE AGGREDITI... DAI MOSTRI!" + ], + "EXP-LO02": [ + "MI SERVONO ALTRI GLOBI DEI PRECURSOR." + ], + "EXP-LO1A": [ + "AH-AAAH!" + ], + "FAR-AM01": [ + "RONF... QUIII, BESSIE... QUIII, BESSIE-BESSIE...", + "SU DA BRAVA..." + ], + "FAR-AM02": [ + "RONF- DEVO PORTARE DENTRO IL RACCOLTO PRIMA CHE GLI INSETTI ME LO ROVININO..." + ], + "FAR-AM2A": [ + "DEVO PORTARE DENTRO IL RACCOLTO PRIMA CHE GLI INSETTI ME LO ROVININO..." + ], + "FAR-LO01": [ + "RONF..." + ], + "FAR-LO1A": [ + "RONF..." + ], + "FIS-AM01": [ + "GRR, DANNATI PESCI... NON RIUSCIRÒ A PRENDERNE NEANCHE UNO." + ], + "FIS-AM02": [ + "QUEI MOSTRI CHE MI HANNO MORSO LA BARCA", + "MI MANDERANNO IN ROVINA!" + ], + "FIS-AM03": [ + "DANNATE CANAGLIE!", + "QUI NEL CESTO, MALEDETTI PESCI, QUI DOVETE VENIRE...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "AAH, COME MI PIACE IL PROFUMO DEL PESCE LA MATTINA..." + ], + "FIS-AM05": [ + "MMH, COME MI MANGEREI DELLE BELLE CODE DI PESCE SOTTO SALE..." + ], + "FIS-AM06": [ + "MI RICORDO ANCORA QUELLO GROSSO CHE È SCAPPATO..." + ], + "FIS-LO01": [ + "GRR-GRR!" + ], + "FIS-LO04": [ + "DANNATI PESCI! NON ENTRANO MAI NELLA MIA RETE!" + ], + "FIS-TA01": [ + "A SINISTRA!" + ], + "FIS-TA02": [ + "VAI A DESTRA!" + ], + "FIS-TA03": [ + "NE ARRIVA UNO GROSSO!" + ], + "FIS-TA04": [ + "NE HAI MANCATO UNO ENORME!" + ], + "FIS-TA05": [ + "NON PERDERNE UN ALTRO DI QUELLI!" + ], + "FIS-TA06": [ + "FERMO..." + ], + "FIS-TA07": [ + "HAI LE VELE AFFLOSCIATE, FIGLIOLO." + ], + "FIS-TA08": [ + "ARGH! MANCATO." + ], + "FIS-TA09": [ + "MI SA CHE TI CI VUOLE UNA RETE PIÙ GROSSA..." + ], + "FIS-TA10": [ + "MANCATO DI NUOVO!" + ], + "FIS-TA11": [ + "FERMA! CI SEI QUASI..." + ], + "FIS-TA1A": [ + "SINISTRA!" + ], + "FIS-TA2A": [ + "DESTRA!" + ], + "GAM-AM01": [ + "EHI, VENTI A UNO NON È MALE!" + ], + "GAM-AM02": [ + "HUNN, SEMBRAVA COSÌ SICURO!" + ], + "GAM-AM03": [ + "HE HE HE... LA PROSSIMA VOLTA FARÒ IL COLPO GROSSO!" + ], + "GAM-AM04": [ + "HA! SE AVESSI UN GLOBO PER OGNI OPPORTUNITÀ MANCATA...!" + ], + "GAM-AM05": [ + "EHI! LE BOTTI POTREBBERO TORNARE DI MODA." + ], + "GAM-AM06": [ + "AHH... HO BISOGNO DI UN PO' DI FORTUNA." + ], + "GAM-AM07": [ + "WOW, QUANTE PROBABILITÀ HO DI TRASFERIRMI IN UNA CITTÀ ASSEDIATA?" + ], + "GAM-AM08": [ + "DOVEVA ESSERE SICURA!" + ], + "GAM-AM09": [ + "GIORNO NUOVO, SCOMMESSA NUOVA." + ], + "GAM-AM10": [ + "SCOMMETTO CHE NESSUNO PUÒ BATTERE QUEL MOSTRO." + ], + "GAM-AM11": [ + "... DOVREI RISCUOTERE E ANDARMENE VIA." + ], + "GAM-AM12": [ + "EHI, NON SEMPRE SI PUÒ VINCERE." + ], + "GAM-AM13": [ + "EHI, CHE C'HAI DA RIDERE? MI TROVI RIDICOLO?!" + ], + "GEO-AM01": [ + "MMH, MOLTO INTERESSANTE..." + ], + "GEO-AM02": [ + "POVERE PICCOLINE..." + ], + "GEO-AM03": [ + "NOTEVOLE..." + ], + "GEO-AM04": [ + "BUONA FORTUNA!" + ], + "GEO-AM05": [ + "ODIOSI LURKER..." + ], + "GEO-AM06": [ + "ANCHE LE PIETRE HANNO UN CUORE..." + ], + "GEO-AM07": [ + "TENETE DURO, PICCOLE MIE..." + ], + "GEO-AM08": [ + "ADESSO POSSO TORNARE ALLA MIA RICERCA!" + ], + "GEO-LO01": [ + "DEVO RIPRENDERE LA MIA RICERCA." + ], + "GEO-LO02": [ + "MMH, QUESTA ROCCIA È MOLTO VECCHIA..." + ], + "GOL-AM01": [ + "MICA TI VORRAI ARRENDERE, VERO?" + ], + "GOL-AM02": [ + "PRESTO, L'ECO OSCURO, SARÀ NOSTRO!" + ], + "GOL-AM03": [ + "FINISCILI!" + ], + "GOL-AM04": [ + "FUOCO!" + ], + "GOL-AM05": [ + "DISTRUGGILI!" + ], + "GOL-AM06": [ + "COSA? ANCORA LORO!" + ], + "GOL-AM07": [ + "È TROPPO TARDI!" + ], + "GOL-AM08": [ + "SEI MIO!" + ], + "GOL-AM09": [ + "ORA SEI MIO!" + ], + "GOL-AM11": [ + "NESSUNA PIETÀ!" + ], + "GOL-AM12": [ + "PRENDI QUESTO!" + ], + "GOL-AM13": [ + "BEL TENTATIVO!" + ], + "GOL-AM14": [ + "STAI. FERMO!" + ], + "GOL-AM15": [ + "SEI PATETICO!" + ], + "GOL-AM18": [ + "APRIREMO IL SILOS, E VI FAREMO A PEZZI!" + ], + "GOL-AM19": [ + "L'ECO LUMINOSO! MA ALLORA ESISTE!" + ], + "GOL-AM20": [ + "NON RIUSCIREMO A PRENDERLO!" + ], + "MAI-AM01": [ + "FINISCILI, UNA VOLTA PER TUTTE!" + ], + "MAI-AM02": [ + "ELIMINALI!" + ], + "MAI-AM04": [ + "L'ECO NON VI PROTEGGERÀ ORA!" + ], + "MAI-AM05": [ + "FA' QUALCOSA!" + ], + "MAI-AM08": [ + "APRIREMO I SILOS E VI DISTRUGGEREMO ENTRAMBI!" + ], + "MAI-AM09": [ + "NON DEVONO RIUSCIRE A PRENDERLO!" + ], + "MIN-LO01": [ + "UNO DI QUESTI GIORNI SARÒ RICCO...", + "VOLEVI DIRE: SAREMO RICCHI!", + "SÌ. VABEH..." + ], + "MIN-LO03": [ + "SCAVA, WILLARD! SCAVA!", + "UH, SÌ, MA TU NON SCAVI?", + "NO! PERCHÉ IO SONO LA MENTE!" + ], + "MIN-LO04": [ + "GYUHH, G-GORDY? POSSO STACCARE?", + "STACCARE?! SE NON LA PIANTI TI STACCO LE ORECCHIE! SCAVA!" + ], + "MIN-LO05": [ + "STO MORENDO DI FAME, GORDY!", + "MANGIATI IL CANARINO!" + ], + "MIN-LO06": [ + "GUH, GORDY? HO BISOGNO DI UN PICCONE PIÙ GROSSO!", + "NO. HAI BISOGNO DI UN CERVELLO PIÙ GROSSO!" + ], + "MSH-AM01": [ + "HI-HAHAHAHA! SARÒ RICCO!" + ], + "MSH-AM02": [ + "SCAVA, SCAVA, SCAAAVA!" + ], + "MSH-AM03": [ + "WILLARD! LAVORA, NON PERDERE TEMPO!" + ], + "MSH-AM04": [ + "UHUHUH! SARÒ L'UOMO PIÙ RICCO DEL MONDO, HAHA!" + ], + "MSH-AM05": [ + "OH HO HO! NON SI È MAI VISTA UNA GEMMA COSÌ GRANDE, HAHA!" + ], + "MSH-AM06": [ + "CARA MINIERA, ADDIO!" + ], + "MSH-AM07": [ + "LE MIE GEMME! TUTTE MIE!" + ], + "MSH-AM09": [ + "HO-HA HA HA! NON VEDO L'ORA DI CAMBIARLA CON DEI BEI BIGLIETTONI! EH EH!" + ], + "MSH-AM10": [ + "SEMBRA UNA RARA CRISTITE FLORCONIA! HOHOHO!" + ], + "MSH-AM11": [ + "EHI, SONO TUTTE MIE. SONO MIE, HO DETTO!" + ], + "MSH-AM12": [ + "DIMMI, WILLARD. COSA VUOI FARE CON IL TUO QUARTO DI METÀ?" + ], + "MSH-AM1A": [ + "SARÒ RICCO!" + ], + "MSH-AM2A": [ + "SCAVA. SCAVA! SCAVA!" + ], + "MSH-AM3A": [ + "LAVORA, NON PERDERE TEMPO!" + ], + "MTA-AM01": [ + "GUH, SIAMO QUASI PRONTI." + ], + "MTA-AM02": [ + "GUHH, POSSIAMO FARE UNA PAUSA?" + ], + "MTA-AM03": [ + "OHH, HO UNA FAME...!" + ], + "MTA-AM04": [ + "DUHH... MI SA CHE LA GABBIETTA DI BIRDIE", + "HA BISOGNO DI UNA PULITINA..." + ], + "MTA-AM05": [ + "MA È UNA GEMMA PAUROSA!" + ], + "MTA-AM06": [ + "DUHH, HO SEMPRE DESIDERATO FARE IL BOSCAIOLO!" + ], + "MTA-AM07": [ + "DUHH, GORDY HA PROMESSO DI DARMI LA METÀ", + "DI TUTTO CIÒ CHE RIESCO A PORTARE!" + ], + "MTA-AM08": [ + "EH HEH- EH HEH... BIRDIE È IL MIO MIGLIORE AMICO!" + ], + "MTA-AM09": [ + "VOGLIO BENE AL MIO BIRDIE." + ], + "RED-AM01": [ + "C'È NESSUNO?" + ], + "RED-AM02": [ + "BENE..." + ], + "RED-AM03": [ + "COSA VI HA TRATTENUTO?" + ], + "SAGELP03": [ + "QUESTI DUE NON RIUSCIREBBERO NEMMENO A STAPPARSI LE ORECCHIE..." + ], + "SAGELP04": [ + "NON SARÀ MAI COME SUO ZIO... MH, BAH-AH.", + "NON MI IMPORTA COSA DICONO GLI ALTRI." + ], + "SAGELP05": [ + "SALVE, SAGGIO BLU? SALVE?", + "IN QUALE FIAMMA BLU POTRÀ MAI ESSERE..." + ], + "SAGELP06": [ + "ODDIO, ODDIO, ODDIO..." + ], + "SAGELP11": [ + "EHI? C'È NESSUNO? ENTRIAMO..." + ], + "SAGELP20": [ + "MMH... MMMH!" + ], + "SAGELP21": [ + "I LURKER DEVONO ESSERE FERMATI." + ], + "SAGELP22": [ + "CAPISCO..." + ], + "SAGELP24": [ + "COSA PUÒ ESSERGLI SUCCESSO...?" + ], + "SAGELP31": [ + "QUESTO NON VA BENE." + ], + "SAGELP32": [ + "CRISTALLI DI ECO OSCURO?" + ], + "SAGELP33": [ + "MAIA E GOL NON CAPISCONO PIÙ NIENTE..." + ], + "SAGELP34": [ + "MH. I POTERI DELL'ECO OSCURO NON POSSONO ESSERE CONTROLLATI." + ], + "SAGELP35": [ + "ECO OSCURO NEI GHIACCIAI?!" + ], + "SAGELP36": [ + "AH! CI SONO TRUPPE LURKER A SPASSO SULLE MONTAGNE!" + ], + "SAGELP37": [ + "COS'HA IN MENTE GOL...?" + ], + "SAGELP38": [ + "POTREBBE DAVVERO AVERE...?" + ], + "SCU-AM01": [ + "OHH... NON CI RIESCO PROPRIO PIÙ." + ], + "SCU-AM02": [ + "COME VORREI RITROVARE L'ISPIRAZIONE." + ], + "SCU-AM03": [ + "SONO ISPIRATO COME... COME UN SASSO." + ], + "SCU-AM04": [ + "OOHH... DOV'È LA MIA MUSA?" + ], + "SCU-AM05": [ + "NON POSSO LAVORARE COSÌ!" + ], + "SCU-AM06": [ + "OH DIO... TORNERÀ MAI DA ME?" + ], + "SCU-LO01": [ + "ODDIO..." + ], + "SKSP009F": [ + "PRENDILO! PRENDILO! HA HA HA!" + ], + "WAR-LO1A": [ + "SOOOOOOOOOOOOOOB..." + ], + "WAR-LO1B": [ + "HUHH... IIIIII-GHI-GHI-GHI SIIIIIIIIGH..." + ], + "WAR-LO1C": [ + "AH-AH-AH... SNORT!", + "WAHAAAAAAAAAAA..." + ], + "YEL-AM01": [ + "IL TEMPO STA PER SCADERE!" + ], + "YEL-AM02": [ + "EHI! PORTATEMI FUORI DI QUI!" + ], + "YEL-AM03": [ + "QUANDO SARÒ FUORI DI QUI, INIZIERÀ UNA SPARATORIA!" + ], + "asstv100": [ + "OK, ABBIAMO BATTERIE SUFFICIENTI PER AUMENTARE LA POTENZA DELLO SCUDO DI CALORE.", + "SCENDETE USANDO IL CARRELLO MINERARIO VICINO AL GEYSER LAVICO.", + "CI VEDIAMO ALL'ENTRATA DEL CONDOTTO, COSÌ POTRÒ MODIFICARE LO ZOOMER.", + "AVANTI, MUOVETEVI!" + ], + "asstv101": [ + "HA-HA, OK! ABBIAMO BATTERIE SUFFICIENTI A POTENZIARE LO SCUDO DI CALORE.", + "CI VEDIAMO AL CRATERE VULCANICO.", + "VI ASPETTO AL PASSAGGIO, GIÙ, OLTRE IL GEYSER LAVICO.", + "PORTATE LE BATTERIE!" + ], + "asstv102": [ + "MUOVETEVI CON QUELLE BATTERIE!", + "VI STO ASPETTANDO AL CARRELLO MINERARIO, VICINO AL GEYSER LAVICO." + ], + "asstv103": [ + "NON DIMENTICATE DI ATTIVARE IL TELETRASPORTO PER FARCI ARRIVARE FIN LÌ.", + "ENTRATE NEL LABORATORIO DEL SAGGIO ROSSO ", + "AL CENTRO DEL CRATERE VULCANICO.", + "NON POTREMO RAGGIUNGERVI FINCHÉ NON SARÀ DI NUOVO OPERATIVO." + ], + "asstv104": [ + "EHI! SIAMO ANCORA AL VILLAGGIO ROCCIOSO!", + "ATTIVATE IL TELETRASPORTO." + ], + "asstv105": [ + "VORREMMO RAGGIUNGERVI AL CRATERE VULCANICO.", + "ENTRATE NEL LABORATORIO DEL SAGGIO ROSSO E ATTIVATE IL TELETRASPORTO!" + ], + "asstva73": [ + "EHI, RAGAZZI! SECONDO I MIEI CALCOLI SERVONO 72 BATTERIE PER ATTIVARE LO SCUDO DI CALORE", + "E PASSARE LA ZONA LAVICA SULLA STRADA VERSO LA CITTADELLA DI GOL E MAIA." + ], + "asstva74": [ + "NON AVETE BATTERIE A SUFFICIENZA PER SUPERARE LA ZONA LAVICA!", + "NON POTETE RAGGIUNGERE LA CITTADELLA DI GOL E MAIA", + "PRIMA DI AVER TROVATO 72 BATTERIE!" + ], + "asstvb02": [ + "WOW, HAI VISTO? HAI APERTO I CAMINI DI VENTILAZIONE DELL'ECO BLU DI TUTTO IL MONDO!", + "SAPEVO CHE C'ERA UN MODO PER FARLO!", + "DEVONO ESSERCI LUOGHI NEI QUALI È POSSIBILE APRIRE", + "TUTTI GLI ALTRI CAMINI DI VENTILAZIONE." + ], + "asstvb03": [ + "BENE! AVETE BLOCCATO TUTTE LE MINE!", + "PER SETTIMANE SONO STATE UNA MINACCIA PER LE ACQUE INTORNO AL NOSTRO VILLAGGIO.", + "RIPORTATE LO ZOOMER AL TRANS-PAD, COSÌ LO TELETRASPORTERÒ INDIETRO!" + ], + "asstvb04": [ + "BENE! AVETE RACCOLTO BATTERIE SUFFICIENTI PER ALIMENTARE IL MIO SCUDO TERMICO!", + "INCONTRIAMOCI ALL'ENTRATA DEL CANYON DEL FUOCO, SALENDO LA RUPE DIETRO LA CASA DELL'AGRICOLTORE.", + "PORTATE LE BATTERIE, E SBRIGATEVI. MIO PADRE DICE DI AVER VISTO ALTRI LURKER NEI DINTORNI!" + ], + "asstvb08": [ + "SBRIGATEVI CON QUELLE BATTERIE!", + "STO ASPETTANDO AL CANYON DEL FUOCO, IN CIMA ALLA RUPE", + "DIETRO LA CASA DELL'AGRICOLTORE!" + ], + "asstvb09": [ + "NON AVETE ABBASTANZA BATTERIE PER ALIMENTARE IL MIO SCUDO TERMICO!", + "NON POTETE ATTRAVERSARE IL CANYON DEL FUOCO FINCHÉ NON TROVATE 20 BATTERIE." + ], + "asstvb20": [ + "OTTIMO VOLO! QUEI LURKER NON ERANO ALL'ALTEZZA DEL VOSTRO ZOOMER!", + "ORA ABBIAMO UN'ALTRA BATTERIA!" + ], + "asstvb21": [ + "OTTIMO LAVORO! NON SIETE CONTENTI DI AVER SALVATO IL NOSTRO PICCOLO AMICO FLUT-FLUT?", + "POTRÀ ESSERCI UTILE IN FUTURO.", + "ORA TORNATE AL TRANS-PAD, MENTRE IO LO PORTO A CASA." + ], + "asstvb22": [ + "WOW! AVETE FATTO RIEMERGERE UNA PARTE DELLE ROVINE SOTTOMARINE!", + "SEMBRA CHE POSSIATE USARE L'ECO IN UN MODO MAI VISTO PRIMA!", + "UNA BATTERIA È RIEMERSA CON LA STANZA. SALITE E PRENDETELA." + ], + "asstvb23": [ + "OTTIMO LAVORO! GLI ABITANTI DEL VILLAGGIO DI PIETRA STANNO TIRANDO UN SOSPIRO DI SOLLIEVO!", + "MA NON C'È TEMPO PER FESTEGGIARE!", + "USATE LO ZOOMER PER ATTRAVERSARE IL PASSO MONTANO DI FRONTE A VOI.", + "FATE ATTENZIONE, SEMBRA CHE I LURKER ABBIANO IMBOTTITO DI ESPLOSIVO TUTTA LA ZONA!", + "RAGGIUNTO IL CRATERE VULCANICO, RICORDATEVI DI VISITARE IL LABORATORIO DEL SAGGIO ROSSO E DI ATTIVARE IL", + "TELETRASPORTO, COSÌ IO E PAPÀ POTREMO RAGGIUNGERVI." + ], + "asstvb24": [ + "OH NO! QUEI LURKER DEVONO ESSERE DIRETTI A UN DETONATORE ALLA FINE DEL CANYON!", + "SE LO RAGGIUNGONO PRIMA DI VOI, FARANNO SALTARE L'INTERO PASSO!", + "DOVETE PRECEDERLI E DISTRUGGERE IL DETONATORE, O SARÀ TUTTO FINITO!" + ], + "asstvb25": [ + "BEL LAVORO! LI AVETE PRECEDUTI AL DETONATORE!", + "IL LABORATORIO DEL SAGGIO ROSSO È PROPRIO DI FRONTE A VOI.", + "ANDATE AD ATTIVARE IL TELETRASPORTO, COSÌ POSSIAMO RAGGIUNGERVI." + ], + "asstvb28": [ + "EHI! NON DIMENTICATEVI DEL SAGGIO E DI ME!", + "DOVETE ATTIVARE IL TELETRASPORTO PER FARCI ARRIVARE LÌ!", + "È NEL LABORATORIO DEL SAGGIO BLU, ALLA FINE DEL CANYON DI FUOCO.", + "SE NON CI FATE ARRIVARE LÌ, NON POTREMO AIUTARVI!" + ], + "asstvb29": [ + "EEHI! STIAMO ANCORA ASPETTANDO!!", + "ATTIVATE IL TELETRASPORTO!" + ], + "asstvb30": [ + "EHI! NON POSSIAMO RAGGIUNGERVI FINCHÉ NON ATTIVATE IL TELETRASPORTO!" + ], + "asstvb40": [ + "QUESTO APPARECCHIO È UN COMUNICATORE. CON QUESTO, MIO PADRE E IO", + "POTREMO CONTATTARVI IN QUALSIASI MOMENTO DURANTE L'AVVENTURA!" + ], + "asstvb41": [ + "QUELLE COSE FLUTTUANTI A FORMA DI UOVO SONO I GLOBI PRECURSOR.", + "RACCOGLIETENE ABBASTANZA E GLI ABITANTI DEL VILLAGGIO", + "LI SCAMBIERANNO CON UNA BATTERIA!" + ], + "asstvb42": [ + "ECCO UNA BATTERIA, IL MANUFATTO PRECURSOR PIÙ IMPORTANTE CHE SI POSSA TROVARE!", + "DOVETE RACCOGLIERE 20 BATTERIE SE VOLETE ENERGIA SUFFICIENTE AD ATTIVARE LO SCUDO DI CALORE", + "DEL VOSTRO ZOOMER ANTI-GRAVITÀ." + ], + "asstvb44": [ + "EHI! AVETE TROVATO UNA DELLE MIE MOSCHE SCOUT!", + "NE HO MANDATE SETTE IN OGNI AREA ALLA RICERCA DI BATTERIE,", + "MA I LURKER DEVONO AVERLE CATTURATE TUTTE..." + ], + "asstvb45": [ + "WOW! L'ULTIMA MOSCA SCOUT HA TROVATO UNA BATTERIA!", + "SCOMMETTO CHE SE TROVATE TUTTE LE SETTE MOSCHE SCOUT,", + "RIUSCIRETE A RACIMOLARE ANCHE ALTRE BATTERIE!" + ], + "asstvb46": [ + "FATE ATTENZIONE NELL'OCEANO,", + "QUELLE ACQUE SONO PIENE DI SQUALI LURKER", + "E NON HO MAI VISTO NESSUNO FARNE FUORI UNO.", + "STATE LONTANI DA LORO SE VOLETE SALVARE LA PELLE." + ], + "asstvb47": [ + "RICORDATE, QUELLA È UNA BATTERIA. DOVETE RACCOGLIERNE IL PIÙ POSSIBILE." + ], + "asstvb48": [ + "QUELLA È UNA FONTE DELL'ECO BLU! LÌ L'ECO È PIÙ CONCENTRATA CHE ALTROVE,", + "E VI PERMETTE DI OTTENERE UNA CARICA COMPLETA,", + "E SFRUTTARE IL POTERE DELL'ECO PER IL MASSIMO DEL TEMPO!" + ], + "asstvb71": [ + "NON AVETE ABBASTANZA BATTERIE PER ATTIVARE LA MACCHINA DEL SAGGIO BLU!", + "NON POSSIAMO SOLLEVARE QUEL MASSO FINCHÉ NON TROVATE ALMENO 45 BATTERIE." + ], + "asstvb72": [ + "FINCHÉ NON SCOPRIAMO PERCHÉ IL SAGGIO BLU È SCOMPARSO,", + "AVRETE BISOGNO DI 45 BATTERIE PER ATTIVARE QUELLA MACCHINA.", + "ANDATE A PRENDERLE!" + ], + "asstvb75": [ + "QUESTA GONDOLA SEMBRA FUNZIONARE MALE.", + "CERCHERÒ DI RIMETTERLA A POSTO E DI FARLA RIPARTIRE." + ], + "asstvb76": [ + "HO RIATTIVATO LA GONDOLA! ORA PUÒ PORTARVI FINO ALLA MONTAGNA NEVOSA.", + "USATELA OGNI VOLTA CHE NE AVETE BISOGNO!" + ], + "sagevb01": [ + "BENE, VEDO CHE AVETE DECISO DI SBLOCCARE I MIEI RACCOGLITORI.", + "VI FAREI LE MIE CONGRATULAZIONI, MA AVRETE SICURAMENTE MOLTO DA FARE", + "E NON VOGLIO FARVI PERDERE TEMPO.", + "IN OGNI CASO, SE LE COSE NON DOVESSERO ANDARE PER IL MEGLIO,", + "DAXTER POTREBBE COMUNQUE TROVARSI UN LAVORO", + "SISTEMANDO IL PROBLEMA DEI TOPI NEL VILLAGGIO.", + "AH AH AH AH AH." + ], + "sagevb02": [ + "DEVO AMMETTERLO: SONO IMPRESSIONATO. NON MI AVETE DELUSO!", + "ORA CHE I LURKER NON POSSONO APRIRE IL SILOS,", + "NON POTRANNO NEMMENO INFESTARE IL MONDO CON L'ECO OSCURO", + "E CAUSARNE LA DISTRUZIONE.", + "MA ORA TOGLITI QUEL GHIGNO DALLA FACCIA, DAXTER!", + "VOI DUE AVETE MOLTE COSE DA FARE.", + "MUOVETEVI!" + ], + "sagevb03": [ + "CONTINUATE A STUPIRMI.", + "MA FORSE È SOLO PERCHÉ NON AVEVO GRANDI ASPETTATIVE.", + "OK, IL VOSTRO MOMENTO DI GLORIA È FINITO.", + "ORA MUOVETEVI!" + ], + "sagevb04": [ + "OTTIMO LAVORO, JAK! TUO ZIO SAREBBE FIERO DI TE.", + "QUELLO ERA IL BRACCIO GIGANTE DI UN ROBOT DEI PRECURSOR.", + "NON NE AVEVO MAI VISTO UNO IN COSÌ BUONE CONDIZIONI!", + "NON RIESCO A IMMAGINARE PERCHÉ I LURKER LO VOLESSERO,", + "MA DI CERTO NOI NON VOLEVAMO CHE SE NE IMPOSSESSASSERO.", + "SE CONTINUATE COSÌ... NAH, NON CE LA FARETE MAI.", + "MA ALMENO PROVATECI. QUESTO È CIÒ CHE CONTA." + ], + "sagevb21": [ + "QUELLE PICCOLE SFERE VERDI SUL TERRENO SONO UNA VARIETÀ DI ECO.", + "RACCOGLINE 50 PICCOLE, OPPURE UNA GRANDE PER INCREMENTARE LA TUA ENERGIA." + ], + "sagevb22": [ + "QUESTO È ECO BLU E CONTIENE L'ENERGIA DEL MOVIMENTO.", + "L'ECO BLU TI PERMETTE DI CORRERE PIÙ VELOCEMENTE, DI INFRANGERE CASSE E DI ATTIVARE ALCUNI", + "MANUFATTI PRECURSOR, AVVICINANDOTI A ESSI." + ], + "sagevb23": [ + "OGNI ECO BLU CHE RACCOGLI INCREMENTA IL TEMPO IN CUI PUOI SFRUTTARNE I POTERI." + ], + "sagevb24": [ + "QUESTA È UNA PORTA PRECURSOR.", + "PUÒ ESSERE APERTA SOLO AVVICINANDOTI AD ESSA", + "MENTRE NEL TUO CORPO SCORRE L'ECO BLU." + ], + "sagevb25": [ + "OTTIMO LAVORO. L'ECO BLU TI HA PERMESSO DI APRIRE LA PORTA.", + "GRAZIE ALL'ECO BLU POTRAI CONVOGLIARE ENERGIE IN TUTTI I MANUFATTI PRECURSOR", + "CHE FINORA ERANO RIMASTI INATTIVI PER ANNI." + ], + "sagevb26": [ + "USA I VISORI PER VISUALIZZARE I TUOI PROGRESSI DURANTE L'AVVENTURA." + ], + "sagevb27": [ + "PUOI SALTARE UNA VOLTA, QUINDI SPICCARE UN ALTRO SALTO MENTRE SEI IN VOLO", + "PER RAGGIUNGERE PIATTAFORME MOLTO ALTE." + ], + "sagevb28": [ + "QUANDO SEI CIRCONDATO DAI NEMICI, USA IL TUO CALCIO ROTANTE." + ], + "sagevb29": [ + "QUESTO NON È UN CALCIO ROTANTE, PROVA DI NUOVO." + ], + "sagevb30": [ + "ANDIAMO JAK, ESEGUI UN CALCIO ROTANTE!" + ], + "sagevb31": [ + "BEL LAVORO!", + "USA IL CALCIO ROTANTE QUANDO HAI BISOGNO DI UN ATTACCO AD AMPIO RAGGIO." + ], + "sagevb32": [ + "PER UN ATTACCO IN LINEA RETTA, SFERRA UN PUGNO!" + ], + "sagevb33": [ + "QUELLO NON È UN PUGNO! UN BEL PUGNO, ANDIAMO!" + ], + "sagevb34": [ + "JAK! SFERRA UN PUGNO!" + ], + "sagevb35": [ + "OTTIMO LAVORO!", + "USA IL PUGNO PER ATTACCARE GLI AVVERSARI A CORTA DISTANZA!" + ], + "sagevb36": [ + "ALCUNE VOLTE POTRESTI VOLER COLPIRE CON MAGGIOR FORZA.", + "PER SPACCARE UNA DI QUESTE CASSE DEVI SALTARE IN ARIA,", + "QUINDI TUFFARTI SU DI ESSA CON LE MANI IN AVANTI." + ], + "sagevb37": [ + "QUANDO SARAI ABBASTANZA ABILE, PROVA AD USARE I TUOI ATTACCHI IN COMBINAZIONE." + ], + "sagevb38": [ + "NON PUOI TORNARE INDIETRO ATTRAVERSO IL TELETRASPORTO", + "FINCHÉ NON AVRAI TROVATO LE QUATTRO BATTERIE SU QUEST'ISOLA." + ], + "sagevb39": [ + "OTTIMO! HAI TROVATO TUTTE LE BATTERIE SPARSE SULL'ISOLA!", + "TORNA AL TELETRASPORTO COSÌ CHE POSSA RIPORTARTI AL LABORATORIO.", + "SBRIGATI!" + ], + "sksp0001": [ + "EHI! MA QUELLA BAMBOLINA DI KEIRA AVEVA RAGIONE! QUI FUORI CI SONO DEI TRANS-PAD!" + ], + "sksp0002": [ + "CREDIMI, QUELLE SCATOLE CON L'ECO OSCURO SONO MOOOOLTO PERICOLOSE!" + ], + "sksp0003": [ + "SCOMMETTO CHE FRA TUTTE LE MOSCHE SCOUT PRESENTI IN OGNI LIVELLO", + "CE NE SARÀ ALMENO UNA CON UNA BATTERIA." + ], + "sksp0004": [ + "SÌÌÌ, UN TESORO!" + ], + "sksp0005": [ + "QUELLE SCATOLE DI LEGNO E DI METALLO NON SEMBRANO COSÌ RESISTENTI.", + "SCOMMETTO CHE SI ROMPONO SE TI TUFFI IN SALTO SU DI LORO." + ], + "sksp0006": [ + "QUELLE SCATOLE DI METALLO SONO PIÙ SPESSE DEL CRANIO DI UNA YAKOW", + "MA CI DEVE ESSERE UN MODO PER APRIRLE." + ], + "sksp0007": [ + "UNA SOLA PAROLA: BATTERIE. DOBBIAMO TROVARLE MA NON STIAMO CERCANDO CON LA DOVUTA CURA!" + ], + "sksp0008": [ + "ABBIAMO BISOGNO DEI GLOBI. GLOOOBI JAK! COME POTREMO COMPRARE LE BATTERIE SE NON RACCOGLIAMO I GLOOOBI?!" + ], + "sksp0009": [ + "CHE OGGETTO PARTICOLARE! SCOMMETTO CHE POTREMMO APRIRLO", + "UTILIZZANDO QUELLO STRANO ECO BLU." + ], + "sksp0010": [ + "EHI! ANDIAMO GIÙ AL PORTO, ALLA NAVE DEL VECCHIO PESCATORE!" + ], + "sksp0011": [ + "DOVREMMO CHIEDERE AL PESCATORE CHE SI TROVA VICINO AL FIUME CHE COSTEGGIA LA GIUNGLA", + "SE CI PRESTA LA SUA BARCA PER VOLAAARE VERSO L'ISOLA DELLA NEBBIA!" + ], + "sksp0013": [ + "HAI VISTO LE DIMENSIONI DEL MORSO DI QUELLO SQUALO LURKER? HA PORTATO VIA TUTTO UN PEZZO DELLO SCAFO!", + "FAREMMO MEGLIO A STARNE ALLA LARGA. NON PENSO CHE POTREMMO AFFRONTARE UNA CREATURA DEL GENERE..." + ], + "sksp0014": [ + "ABBIAMO RACCOLTO ABBASTANZA GLOBI PER SCAMBIARLI CON UNA BATTERIA.", + "TORNIAMO INDIETRO E CONCLUDIAMO L'AFFARE." + ], + "sksp0015": [ + "QUESTO DEVE ESSERE UNO DEGLI ORACOLI PRECURSOR DI CUI PARLANO SEMPRE I SAGGI.", + "SPERO SOLO CHE NON FOSSERO VERAMENTE COSÌ BRUTTI!" + ], + "sksp0017": [ + "WOW! GUARDA QUELLA STRANA SCULTURA ADAGIATA SOPRA LE ROCCE!" + ], + "sksp0018": [ + "DOVREMMO DIRE A QUEL FANFARONE DEL SINDACO CHE È IN DEBITO CON NOI", + "PER AVER RIATTIVATO I RAGGI ENERGETICI DEL VILLAGGIO!" + ], + "sksp0019": [ + "EHI, DEI GABBIANI! AVANTI, INSEGUIAMOLI!" + ], + "sksp0020": [ + "YAAH HA HA! FACCIAMOLO DI NUOVO!" + ], + "sksp0021": [ + "ECCO DI NUOVO QUEI GABBIANI. PRENDIAMOLI!!" + ], + "sksp0022": [ + "YAAAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0024": [ + "YAAH HA HA! YEAH!" + ], + "sksp0025": [ + "WOW! HANNO PROVOCATO UNA SLAVINA! SU, ANDIAMO A VEDERE!" + ], + "sksp0026": [ + "EHI! QUEL DANNATO PELLICANO HA APPENA PRESO UNA BATTERIA!", + "ANDIAMO A DARE UNA BELLA BATTUTA AL SUO GROSSO SEDERE!" + ], + "sksp0027": [ + "SPICCIATI! DOBBIAMO PRENDERE LA BATTERIA PRIMA CHE IL PELLICANO LA RACCOLGA DI NUOVO!" + ], + "sksp0028": [ + "CALCIA L'UOVO! EH-EH! CALCIALO! CALCIALO!" + ], + "sksp0029": [ + "EH, POTREMMO PARLARE CON LA VECCHIA SIGNORA", + "E VEDERE SE ABBIAMO ROTTO L'UOVO DEL FLUT-FLUT." + ], + "sksp0030": [ + "EHI, PER SPOSTARE LE ROCCE, PROVA A COLPIRLE CON UN PUGNO!" + ], + "sksp0031": [ + "UUH! USIAMO IL CANNONE PER FAR SALTARE TUTTO IN ARIA!" + ], + "sksp0034": [ + "AHOOGA! AHOOGA! TUFFATI PER PRENDERE QUELLE UOVA JAK, TUFFATI!" + ], + "sksp0035": [ + "YEAH, E COSÌ ABBIAMO UN LANCIATORE PRECURSOR.", + "EHI, MA NON SEI CARICATO CON L'ECO BLU! UFFA, ALLORA NON CI SERVE A NULLA!" + ], + "sksp0037": [ + "QUESTE TORRI SPARSE PER TUTTA LA GIUNGLA SERVONO A RIFLETTERE GLI ECO-RAGGI!", + "ANDIAMO A DIVERTIRCI UN PO'!" + ], + "sksp0038": [ + "MMH, SE L'ECO BLU PUÒ ESSERE USATO PER COSTRUIRE UN PONTE, SCOMMETTO CHE PUÒ ANCHE APRIRE UNA PORTA.", + "TORNIAMO INDIETRO PER RICARICARTI." + ], + "sksp0039": [ + "EHI, CI SONO DEI PICCOLI SEGNI LUMINOSI SU QUEI CARTELLI,", + "E C'È ANCHE UNA LUCE CHE ESCE DA QUEL CONDOTTO!", + "STAI PENSANDO A QUELLO CHE PENSO IO...?" + ], + "sksp0040": [ + "SALIAMO SU QUELLA MACCHINA E ROMPIAMO LO SPECCHIO CHE DEVÌA IL RAGGIO PRECURSOR!" + ], + "sksp0041": [ + "DOBBIAMO RAGGIUNGERE LA CIMA DI QUELLA TORRE!" + ], + "sksp0043": [ + "DOVREMMO CERCARE IL PESCATORE. PARE CHE SI TROVI", + "NELLA GIUNGLA, NELLA PARTE MERIDIONALE DEL FIUME!" + ], + "sksp0049": [ + "ALLINEA IL RAGGIO INDIRIZZANDOLO VERSO LA TORRE SUCCESSIVA!" + ], + "sksp0050": [ + "ROMPI LO SPECCHIO, JAK!" + ], + "sksp0051": [ + "PRENDI GLI INSETTI, JAK! PRENDI GLI INSETTI!" + ], + "sksp0052": [ + "ANDIAMO ALLA PROSSIMA TORRE E RICOLLEGHIAMO IL RAGGIO!" + ], + "sksp0053": [ + "MMH! POSSIAMO SEGUIRE IL RAGGIO PER TROVARE LA PROSSIMA TORRE." + ], + "sksp0054": [ + "TI DEVI CARICARE CON QUELLA COSA BLU PER RIUSCIRE AD APRIRLA!" + ], + "sksp0056": [ + "WOW! VEDO LA MUSA DELLO SCULTORE!" + ], + "sksp0059": [ + "QUESTO POSTO MI SPAVENTA...", + "STIAMO LONTANI DAL FANGO, OK?" + ], + "sksp0060": [ + "AGH, QUESTO POSTO MI FA VENIRE I BRIVIDI!", + "E CREDIMI, È UN'ESPERIENZA NUOVA SE SEI RICOPERTO... DI PELO!" + ], + "sksp0062": [ + "COLPIAMO E DISTRUGGIAMO I PALLONI DEI LURKER!" + ], + "sksp0063": [ + "HO DETTO... DI DISTRUGGERE I PALLONI, JAK, NON LE MINE!", + "REGOLA NUMERO UNO: EVITA SEMPRE LE MINE!" + ], + "sksp0064": [ + "GUARDATI ALLE SPALLE! TI RICORDI COS'È SUCCESSO L'ULTIMA VOLTA CHE SIAMO STATI QUI!?" + ], + "sksp0067": [ + "NON CADERE NELLA NEBBIA!! ANCHE PERCHÉ NON PENSO CHE RIUSCIREMMO AD USCIRNE." + ], + "sksp0069": [ + "È UN'IMBOSCATA, JAK! È UN'IMBOSCATA!!" + ], + "sksp0070": [ + "TUFFATI IN SALTO SU QUELLA BOLLA INSTABILE." + ], + "sksp0071": [ + "PRENDI L'ECO ROSSO!" + ], + "sksp0072": [ + "L'ECO ROSSO AUMENTA LA FORZA DEI TUOI ATTACCHI!" + ], + "sksp0073": [ + "ABBIAMO BISOGNO DELL'ECO BLU PER CARICARLO!" + ], + "sksp0076": [ + "AVANTI, JAK! IL TERRENO È DANNATAMENTE CALDO, SALTA!" + ], + "sksp0077": [ + "PALLONI: BUONI, MAGMA CALDO: CATTIVO!" + ], + "sksp0078": [ + "STAI SUL PONTE PRECURSOR PER NON ESSERE FERITO." + ], + "sksp0079": [ + "AAH! STO MORENDO! STO ARRIVANDO, NONNO!", + "DEVI PORTARE QUESTA COSA DALL'ALTRA PARTE PRIMA CHE SI SURRISCALDI!" + ], + "sksp0080": [ + "PER STERZARE DI PIÙ, CURVA MENTRE VOLI!" + ], + "sksp0081": [ + "GAAH! POTREI GUIDARE IO?!" + ], + "sksp0082": [ + "STAI PROVANDO A EVITARE LE SCATOLE DI ECO OSCURO, VERO?" + ], + "sksp0083": [ + "UHUH! VEDIAMO SE RIUSCIAMO A SALTARE SOPRA A QUEL LURKER!" + ], + "sksp0084": [ + "TROPPO VICINO, TROPPO VICINO!!" + ], + "sksp0085": [ + "WOW! QUESTA BAMBOLA SI STA SURRISCALDANDO!" + ], + "sksp0086": [ + "ANCORA POCHI SECONDI E SAREMO UN FLUT-FLUT FRITTO!" + ], + "sksp0087": [ + "COLPISCI QUEI PALLONI PER ABBASSARE LA TEMPERATURA!" + ], + "sksp0088": [ + "ARRIVA UN ALTRO PALLONE!" + ], + "sksp0089": [ + "AVREI DOVUTO RIMANERE A DORMIRE QUESTA MATTINA!" + ], + "sksp0090": [ + "HAI MANCATO UN PALLONE! CERCA DI COLPIRLI, O FINIREMO FRITTI!" + ], + "sksp0091": [ + "QUESTO COSO STA DIVENTANDO TROPPO CALDO!" + ], + "sksp0092": [ + "SENTI PUZZA DI BRUCIATO?" + ], + "sksp0093": [ + "LA MIA CODA È IN FIAMMEEE!" + ], + "sksp0094": [ + "ESPLODERÀÀÀ!" + ], + "sksp0095": [ + "YA-HAA! CI SIAMO RIUSCITI!" + ], + "sksp0096": [ + "ANCHE QUI CI SONO DELLE MOSCHE SCOUT!" + ], + "sksp009a": [ + "HA HA! GLIELE ABBIAMO FATTE VEDERE." + ], + "sksp009b": [ + "BEENE, ALTRI GLOBI!" + ], + "sksp009c": [ + "FAMMI UN FAVORE: STAI ALLA LARGA DALL'ECO OSCURO!" + ], + "sksp009e": [ + "WAA-HOOO!" + ], + "sksp009f": [ + "PRENDILO, PRENDILO! HA HA HA!" + ], + "sksp009g": [ + "PROPRIO DIETRO DI TE, JAK!" + ], + "sksp009i": [ + "ABBIAMO TROVATO TUTTE LE MOSCHE SCOUT DI QUESTA ZONA?" + ], + "sksp009j": [ + "EHI! SEMBRA CHE LE MOSCHE SCOUT SI TROVINO SEMPRE NELLE SCATOLE ROSSE." + ], + "sksp009k": [ + "BENE! ABBIAMO TROVATO TUTTE LE MOSCHE SCOUT DI QUESTA ZONA." + ], + "sksp0109": [ + "UUH! ABBIAMO BATTUTO IL RECORD!" + ], + "sksp0110": [ + "TE L'HO DETTO PRIMA E TE LO RIPETO...", + "EVITA LE SCATOLE DELL'ECO OSCURO!!" + ], + "sksp0111": [ + "AVANTI, INSEGUIAMO QUELLE TALPE SOTTO TERRA." + ], + "sksp0112": [ + "ANDIAMO A PRENDERE LA BATTERIA DALLA GEOLOGA." + ], + "sksp0113": [ + "QUELLE DEVONO ESSERE LE PIANTE INFESTATE DI CUI PARLAVA IL VECCHIO." + ], + "sksp0114": [ + "DOBBIAMO USARE L'ECO VERDE PER CURARE LE PIANTE!" + ], + "sksp0115": [ + "ATTRAVERSA IL CONDOTTO DI VENTILAZIONE DELL'ECO VERDE!" + ], + "sksp0116": [ + "QUELLO È UNO DEI LURKER VOLANTI! POTREBBE AVERE UNA BATTERIA!" + ], + "sksp0117": [ + "È IL BUCO DI UNA TALPA!" + ], + "sksp0118": [ + "ORA VOLIAMO SOPRA LE PIANTE INFESTATE!" + ], + "sksp0119": [ + "PRESO UN ANELLO, MA NE MANCANO ANCORA MOLTI!" + ], + "sksp0120": [ + "PRESTO! ECCO L'ANELLO SUCCESSIVO!" + ], + "sksp0121": [ + "PRESTO! DEVI ATTRAVERSARE GLI ANELLI PRIMA CHE SI DISATTIVINO!" + ], + "sksp0122": [ + "DANNAZIONE! L'ERBA CI RALLENTA..." + ], + "sksp0123": [ + "PRESTO! SEGUI QUEL TUBO!" + ], + "sksp0124": [ + "HO UNA BRUTTA SENSAZIONE..." + ], + "sksp0125": [ + "SEMBRA CHE QUELLE COSE ABBIANO BISOGNO DI UNA CARICA DI ECO BLU." + ], + "sksp0126": [ + "PRENDIAMO LA BATTERIA SUL TETTO!" + ], + "sksp0127": [ + "COLPISCI IL RAGAZZO IN CIMA!" + ], + "sksp0128": [ + "JAK! CORRI! L'ECO OSCURO STA VENENDO FUORI!" + ], + "sksp0129": [ + "AHH! L'ECO OSCURO SI STA AVVICINANDO!" + ], + "sksp0130": [ + "OOH, PENSO CHE DOVREMMO ATTIVARE TUTTE QUELLE PIATTAFORME." + ], + "sksp0131": [ + "EHI! SEMBRA CHE TU POSSA TUFFARTI IN SALTO SU QUEI RAGAZZI!" + ], + "sksp0132": [ + "EEH-EEH! OOOOH! OOH! A-AOOH!" + ], + "sksp0133": [ + "DAI, CARICHIAMO TUTTE QUELLE COSE CONTEMPORANEAMENTE!" + ], + "sksp0134": [ + "PERCHÉ NON FACCIAMO PIÙ ATTENZIONE A QUEI TUBI CALDI?!" + ], + "sksp0135": [ + "L'ACQUA SEMBRA PERICOLOSA QUANDO CAMBIA COLORE!" + ], + "sksp0136": [ + "DEVI USCIRE DALL'ACQUA PRIMA CHE CAMBI COLORE!" + ], + "sksp0137": [ + "SCOMMETTO CHE POSSIAMO SPARARE A QUEI MASSI SE CI CARICHIAMO CON L'ECO GIALLO." + ], + "sksp0138": [ + "DOVREMMO SPARARE A QUELLE ROCCE CHE BLOCCANO LE CATENE." + ], + "sksp0139": [ + "POTREMMO AIUTARE QUELLO STRANO RAGAZZO A TROVARE IL SUO CUCCIOLO." + ], + "sksp0140": [ + "IL FLUT-FLUT PUÒ VOLTEGGIARE PIÙ A LUNGO SE ESEGUI UN DOPPIO SALTO!" + ], + "sksp0141": [ + "NON TOCCARE QUEL CATRAME CALDO O TI FARAI MOLTO MALE!" + ], + "sksp0142": [ + "L'ACQUA È UN POSTO SICURO DOVE PASSARE." + ], + "sksp0143": [ + "AAH-HA! LIBERATI DA QUELLA LINGUA!" + ], + "sksp0144": [ + "SPARA ALLE TANE DEI RATTI PER NON FARNE USCIRE PIÙ." + ], + "sksp0145": [ + "PUOI SPARARE DELLE PALLE DI FUOCO QUANDO SEI CARICATO CON L'ECO GIALLO!" + ], + "sksp0146": [ + "EHI! C'È DELL'ECO GIALLO!" + ], + "sksp0147": [ + "PUOI DONDOLARTI SU QUEL PALO!" + ], + "sksp0148": [ + "ATTENTO, QUEL ROVO PUNGE!" + ], + "sksp0149": [ + "EHI, SEMBRA CHE UNA CATENA STIA BLOCCANDO IL DIRIGIBILE!" + ], + "sksp0150": [ + "ATTENTO QUANDO QUELLA RANA È CARICA!" + ], + "sksp0151": [ + "SCAPPA, JAK!" + ], + "sksp0152": [ + "ATTENTO, JAK! È UN'IMBOSCATA!" + ], + "sksp0153": [ + "QUELLO DEVE ESSERE L'ARTEFATTO PRECURSOR CHE I LURKER STANNO CERCANDO!", + "SEMBRA UN BRACCIO DI UN ROBOT GIGANTE!" + ], + "sksp0154": [ + "QUEL CATRAME NERO SEMBRA CALDO E PERICOLOSO!" + ], + "sksp0155": [ + "SPARA AI PIPISTRELLI USANDO L'ECO GIALLO!" + ], + "sksp0156": [ + "FORSE POSSIAMO EVITARE I PIPISTRELLI!" + ], + "sksp0157": [ + "HAI VISTO? MANCANO SOLO TRE CATENE!" + ], + "sksp0158": [ + "WOW! MANCANO SOLO DUE CATENE!" + ], + "sksp0159": [ + "IL DIRIGIBILE STA PER STACCARSI. TROVIAMO L'ULTIMA CATENA!" + ], + "sksp0160": [ + "EHI! ECCO IL FLUT-FLUT." + ], + "sksp0161": [ + "ODIO I RATTI! E SONO QUASI UNO DI LORO." + ], + "sksp018a": [ + "QUEL CONTADINO SFATICATO CI DEVE UNA BATTERIA!", + "ANDIAMO A PARLARGLI!" + ], + "sksp0300": [ + "DOBBIAMO SCONFIGGERE I LURKER CHE SI TROVANO ALLA FINE DEL PASSAGGIO!" + ], + "sksp0301": [ + "NON COLPIRE QUEGLI ESPLOSIVI!" + ], + "sksp0302": [ + "STAGLI LONTANO E VEDRAI CHE CE LA FAREMO!" + ], + "sksp0303": [ + "COLPISCI L'ECO BLU PER ACCELERARE!" + ], + "sksp0304": [ + "EVITA GLI ALBERI, JAK! CI RALLENTANO!" + ], + "sksp0305": [ + "PIÙ ECO BLU PRENDI, PIÙ ACCELERI!" + ], + "sksp0306": [ + "FAI ATTENZIONE AGLI ESPLOSIVI!" + ], + "sksp0307": [ + "STAI LONTANO DAI POZZI!" + ], + "sksp0308": [ + "FORSE DOVREI GUIDARE IO!" + ], + "sksp0309": [ + "C'È UN LURKER!" + ], + "sksp0310": [ + "PRENDILI, JAK!" + ], + "sksp0311": [ + "NE ABBIAMO PASSATO UNO!" + ], + "sksp0312": [ + "AAAH, UNO DEI LURKER CI HA SUPERATO!" + ], + "sksp0313": [ + "SONO MOLTO AVANTI!" + ], + "sksp0314": [ + "YAA-AH! SIAMO PRIMI!" + ], + "sksp0315": [ + "PIÙ VELOCE, JAK, PIÙ VELOCE!" + ], + "sksp0316": [ + "SALTA, SALTAAA!" + ], + "sksp0317": [ + "CONTINUA COSÌ!" + ], + "sksp0318": [ + "YAAAAAAAAHH!" + ], + "sksp0319": [ + "SARÀ UN FINALE COMBATTUTO!" + ], + "sksp0320": [ + "ARRIVERANNO AL DETONATORE PRIMA DI NOI!" + ], + "sksp0321": [ + "CI SIAMO RIUSCITI! ABBIAMO EVITATO CHE DISTRUGGESSERO IL PASSAGGIO!" + ], + "sksp0327": [ + "PENSO CHE QUELLO FOSSE L'ULTIMO CRISTALLO DI ECO OSCURO!" + ], + "sksp0328": [ + "FORSE PUOI SPARARE MEGLIO SE MIRI USANDO IL TUO VISORE!" + ], + "sksp0329": [ + "OH, NO! ALTRO ECO OSCURO!" + ], + "sksp0330": [ + "NON ABBIAMO RACCOLTO TUTTI QUEI CRISTALLI DI ECO OSCURO!" + ], + "sksp0331": [ + "SPARA AI LURKER CHE STANNO MANGIANDO I PALI!" + ], + "sksp0332": [ + "NON LASCIARE CHE SI SPENGANO LE LUCI!" + ], + "sksp0333": [ + "COLPISCI I CRISTALLI PER FARE LUCE." + ], + "sksp0334": [ + "SCAPPA! QUEL CRISTALLO STA PER ESPLODERE!" + ], + "sksp0335": [ + "EWH, HANNO TROVATO IL ROBOT PRECURSOR!" + ], + "sksp0336": [ + "ROMPI LE UOVA, PRIMA CHE SI SCHIUDANO!" + ], + "sksp0337": [ + "QUI DENTRO È SPAVENTOSO..." + ], + "sksp0338": [ + "SEMBRA CHE LE TELE DI RAGNO SI ROMPANO DOPO DUE RIMBALZI." + ], + "sksp0339": [ + "GRR! ODIO. I RAGNI...!" + ], + "sksp0340": [ + "ARRIVANO DEI PICCOLI RAGNI!" + ], + "sksp0341": [ + "ORA DOVREMMO ESSERE NELLA TANA DI UN RAGNO!" + ], + "sksp0342": [ + "GUARDA! ALTRI RAGNI!" + ], + "sksp0343": [ + "USCIAMO DI QUIIIII!" + ], + "sksp0345": [ + "COME POSSIAMO ENTRARE IN QUESTO FORTE...?" + ], + "sksp0346": [ + "FORSE L'ECO ROSSO PUÒ SCONFIGGERE QUEL RAGAZZO!" + ], + "sksp0347": [ + "DOBBIAMO FARE UN SALTO CON GIRAVOLTA!" + ], + "sksp0348": [ + "DOBBIAMO TROVARE UN MODO PER APRIRE QUEL CONDOTTO!" + ], + "sksp0349": [ + "QUELLO LAGGÙ SEMBRA UN INTERRUTTORE DELL'ECO!" + ], + "sksp0350": [ + "PRENDILO QUANDO I PUNGIGLIONI SONO DENTRO!" + ], + "sksp0351": [ + "PREMI IL PULSANTE!" + ], + "sksp0352": [ + "PRESTO! PRIMA CHE TORNINO GIÙ!" + ], + "sksp0359": [ + "DEVI USARE L'ECO ROSSO!" + ], + "sksp0360": [ + "SÌ! ABBIAMO ATTIVATO I CONDOTTI DI VENTILAZIONE DELL'ECO GIALLO!" + ], + "sksp0362": [ + "AAH! SEMBRA UNA BATTERIA CONGELATA!" + ], + "sksp0363": [ + "SOLO UN FLUT-FLUT PUÒ SALTARE COSÌ DISTANTE!" + ], + "sksp0364": [ + "DOBBIAMO MUOVERCI, O SIAMO FRITTI!" + ], + "sksp0365": [ + "SCEGLI UN PERCORSO QUALUNQUE!" + ], + "sksp0366": [ + "EVITA LE MINE, JAK, O SPARAGLI!" + ], + "sksp0367": [ + "TROVA UN MODO PER ATTRAVERSARE QUEI BARILI DI ECO OSCURO!" + ], + "sksp0368": [ + "CONTINUA A COLPIRE QUEI PALLONI!" + ], + "sksp0369": [ + "CI STIAMO SCALDANDO TROPPO!" + ], + "sksp0370": [ + "ESPLODERÀÀÀ!" + ], + "sksp0371": [ + "CERCA DELL'ECO BLU, JAK!" + ], + "sksp0372": [ + "SPARAAA!" + ], + "sksp0373": [ + "YAA-HA! CHE VIAGGIO!" + ], + "sksp0374": [ + "SÌÌ! CURVA E SFRIGOLA, BABY!" + ], + "sksp0375": [ + "SPARA ALLE SFERE ENERGETICHE PER APRIRE LA PORTA!" + ], + "sksp0376": [ + "SPARA ALLE SFERE ENERGETICHE PRIMA DI ANDARE A FUOCO!" + ], + "sksp0378": [ + "LA PORTA È APERTA, ANDIAMO!" + ], + "sksp0379": [ + "ZOOMIN'!" + ], + "sksp0380": [ + "CI SIAMO RIUSCITI!" + ], + "sksp0381": [ + "DISTRUGGI IL GENERATORE PER LIBERARE IL SAGGIO!" + ], + "sksp0382": [ + "RIMANI ATTACCATO AL BORDO!" + ], + "sksp0383": [ + "ABBIAMO COMPAGNIA, JAK. UN BEL PO' DI LURKEEERS!" + ], + "sksp0384": [ + "DISTRUGGI QUEI GENERATORI!" + ], + "sksp0385": [ + "PREMI IL PULSANTE!" + ], + "sksp0386": [ + "QUEL ROBOT NON MI SPAVENTA!" + ], + "sksp0387": [ + "SALIAMO SU QUELLE PIATTAFORME!" + ], + "sksp0388": [ + "NON MANCARE IL PROSSIMO LANCIATOREEE!" + ], + "sksp0389": [ + "ATTENTO!" + ], + "sksp0390": [ + "DOBBIAMO LIBERARE TUTTI I SAGGI!" + ], + "sksp0391": [ + "PENSI CHE GOL MI RITRASFORMERÀ LO STESSO?" + ], + "sksp0392": [ + "ALLORA QUESTA È LA CITTADELLA DI GOL E MAIA. CARINA E GRADEVOLE." + ], + "sksp0393": [ + "ATTERRA SUL LANCIATORE SUCCESSIVO!" + ], + "sksp0394": [ + "RECUPERA L'ECO GIALLO!" + ], + "sksp0395": [ + "SPARA AL ROBOT, JAK!" + ], + "sksp0396": [ + "SPARAGLI AL BRACCIO!" + ], + "sksp0397": [ + "SPARA ALLA SUA PISTOLA!" + ], + "sksp0398": [ + "SPARAGLI IN TESTA!" + ], + "sksp0399": [ + "ATTENTO ALL'ESPLOSIONE!" + ], + "sksp0400": [ + "SI STA CARICANDO!" + ], + "sksp0401": [ + "PRENDI L'ECO BLU!" + ], + "sksp0402": [ + "PRENDI L'ECO ROSSO!" + ], + "sksp0403": [ + "HO UNA BRUTTA SENSAZIONE!" + ], + "sksp0404": [ + "USA IL LANCIATORE, PRESTO!" + ], + "sksp0405": [ + "HAI FATTO IMPAZZIRE L'ANIMALE!" + ], + "sksp0406": [ + "NON POSSIAMO TOCCARE QUEI RAGAZZI!" + ], + "sksp0407": [ + "USA L'ECO GIALLO!" + ], + "sksp0408": [ + "SPARA A QUEI RAGAZZI!" + ], + "sksp0409": [ + "PRENDI DELL'ECO LUMINOSO, JAK!" + ], + "sksp0410": [ + "SEMBRA ARRABBIATO!" + ], + "sksp0411": [ + "SALTA PER EVITARE LE ESPLOSIONI!" + ], + "sksp0412": [ + "ORA POSSIAMO PREOCCUPARCI DEGLI AFFARI!" + ], + "sksp0413": [ + "BELLA MIRA, AMICO!" + ], + "sksp0414": [ + "QUESTO DEVE FAR MALE!" + ], + "sksp0415": [ + "STA ARRIVANDO!" + ], + "sksp0416": [ + "YA-AH! CE L'HAI FATTA!" + ], + "sksp0417": [ + "AVANTI GOL E MAIA, FATE \"CIAO CIAO\" CON LA MANINA!" + ], + "sksp0435": [ + "COLPISCI QUELLE OSSA!" + ], + "sksp0443": [ + "COLPISCI QUEI PALI CON UN PUGNO DAL BASSO!" + ], + "sksp0444": [ + "STIAMO ASPETTANDO. EHI, SEI SVEGLIO?" + ], + "sksp0449": [ + "PREMI IL TASTO START PER GIOCARE." + ], + "sksp0450": [ + "VUOI SMETTERE DI GIOCARE?" + ], + "sksp0451": [ + "NON PENSO PROPRIO." + ], + "sksp0452": [ + "OK, CI VEDIAMO DOPO." + ], + "sksp0455": [ + "RAGAZZI, MA CHI È TUTTA QUESTA GENTE?" + ], + "sksp0466": [ + "NON ERO NIENTE MALE, VERO RAGAZZE?" + ], + "sksp0b42": [ + "SMETTILA DI LASCIARTI SCAPPARE I PESCI GIALLI! PESANO 5 LIBBRE OGNUNO!", + "NON SONO NIENTE MALE, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "ORNITOLOGA", + "BLUE SAGE": "SAGGIO BLU", + "DAXTER": "DAXTER", + "FARMER": "CONTADINO", + "FISHERMAN": "PESCATORE", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GIOCATORE D'AZZARDO", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "ZIO", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "SINDACO", + "MINER": "MINER", + "OLD MAN": "VOCE MASCHILE", + "ORACLE": "ORACOLO", + "RED SAGE": "SAGGIO ROSSO", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULTORE", + "WARRIOR": "SOLDATO", + "WILLARD": "WILLARD", + "WOMAN": "VOCE FEMMINILE", + "YELLOW SAGE": "SAGGIO GIALLO" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_jp-JP.json b/game/assets/jak1/subtitle/subtitle_lines_jp-JP.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_jp-JP.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_nl-NL.json b/game/assets/jak1/subtitle/subtitle_lines_nl-NL.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_nl-NL.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_no-NO.json b/game/assets/jak1/subtitle/subtitle_lines_no-NO.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_no-NO.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json b/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json new file mode 100644 index 0000000000..e02414d3f2 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json @@ -0,0 +1,2781 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "ÓTIMO! VOCÊ CONSEGUIU AS 20 POWER CELLS PARA O ESCUDO DE CALOR!", + "TENHA CUIDADO, O ESCUDO SÓ VAI PROTEGER O ZOOMER ATÉ CHEGAR EM 260 GRAUS,", + "ENTÃO TENTE MANTÊ-LO FRIO.", + "VOAR PELA LAVA ABERTA VAI TE AQUECER RÁPIDO COM CERTEZA.", + "CHEGUE A 260 GRAUS E ACABOU.", + "ACABOU?! TIPO ACABOU VIRANDO METAL DERRETIDO?!", + "O DESFILADEIRO DE FOGO É MUITO QUENTE, ENTÃO BUSQUE PLATAFORMAS DE SALTO", + "PARA TE MANTER FORA DO CHÃO.", + "EU TAMBÉM SOLTEI VÁRIOS BALÕES AZUIS DE RESFRIAMENTO", + "USE ELE PARA DIMINUIR A TEMPERATURA RAPIDAMENTE.", + "OH! E QUANDO VOCÊ ESTIVER DO OUTRO LADO, NÃO ESQUEÇA DE ATIVAR", + "O TELEPORTADOR NO LABORATÓRIO DO SÁBIO AZUL.", + "PARA QUE A GENTE POSSA SE TELEPORTAR E ENCONTRAR VOCÊS!", + "BOA SORTE!" + ], + "assistant-introduction-blue-eco-switch": [ + "EAÍ BEBÊ. O QUE ACHA DE EU E VOCÊ DARMOS UMA VOLTINHA NESSE ZOOMER?", + "REGRA NÚMERO 1: EU NÃO SAIO COM ANIMAIS.", + "AH VOCÊ NÃO SABE O QUE ESTÁ PERDENDO, HE HE.", + "ESCUTA, SE VOCÊS ESTIVEREM DESOCUPADOS, MEU PAI SEMPRE FALA DE UMA", + "ANTIGA TUBULAÇÃO PRECURSORA ESCONDIDA NO SUBSOLO .", + "ALGUNS DESSES CANOS LEVAM A FONTES QUE EMANAM ECO,", + "E ALGUMAS DELAS FORAM SELADAS, IMPEDINDO A SAÍDA DO ECO.", + "DEVE HAVER UM JEITO DE ABRIR ESSAS FONTES DE NOVO.", + "EU RASTREEI PARTE DA TUBULAÇÃO DIRETO AO TEMPLO PROIBIDO.", + "TALVEZ VOCÊ DEVESSE VER SE ACHA ALGUM TIPO DE INTERRUPTOR LÁ." + ], + "assistant-introduction-race-bike": [ + "EI BEBÊ, TÁ TRABALHANDO EM QUÊ?", + "CUIDADO COM ISSO, EU ESTOU TENTANDO DESCOBRIR COMO TELEPORTAR O ZOOMER", + "USANDO OS TRANS-PADS QUE OS PRECURSORES DEIXARAM POR TODO O MUNDO.", + "SE VOCÊ ENCONTRAR ALGUM DELES, EU POSSO LOCALIZAR ATRAVÉS DO SEU COMUNICADOR", + "E TE ENVIAR O ZOOMER!", + "FIQUE DE OLHO POR TRANS-PADS NA ILHA DA NÉVOAS, E EM OUTROS LUGARES TAMBÉM!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! CADÊ AQUELE VERDINHO ENRUGADO?", + "ISSO É TERRÍVEL! O PAPAI SUMIU!", + "ACHO QUE GOL E MAIA SEQUESTRARAM ELE TAMBÉM!", + "RELAXA, AMORZINHO. EU TENHO TUDO SOB CONTROLE.", + "SOB CONTROLE?!", + "TROPAS LURKER CONTINUAM CRESCENDO PELA REGIÃO,", + "OS SÁBIOS FORAM SEQUESTRADOS,", + "GOL E MAIA JUNTARAM ECO", + "O BASTANTE PARA COMPLETAR SEU PLANO TERRÍVEL,", + "E PARA IMPEDI-LOS,", + "VOCÊS VÃO TER QUE CRUZAR A CIDADELA DELES!", + "UH... É. ISSO MEIO QUE... RESUME TUDO.", + "VOCÊS PRECISAM RESGATAR MEU PAI ANTES QUE SEJA TARDE DEMAIS!", + "E JAK...", + "TENHA CUIDADO.", + "É. NÓS VAMOS TER!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! TUDO CERTO!", + "COM ESSAS POWER CELLS ADICIONAIS, EU DEVO CONSEGUIR ABASTECER O ESCUDO DE CALOR", + "COM ENERGIA O BASTANTE PARA AGUENTAR ESSA LAVA.", + "MAS O ESCUDO AINDA TEM UM LIMITE.", + "AGORA ELE AGUENTA TEMPERATURAS DE ATÉ 426 GRAUS, NADA ALÉM DISSO.", + "ENTÃO FIQUEM DE OLHO NO MEDIDOR.", + "NÃO QUERO NEM PENSAR NO QUE ESSAS TEMPERATURAS FARIAM COM O SEU ZOOMER", + "SE O ESCUDO NÃO SUPORTAR.", + "É, O CALOR...", + "O QUE? O ZOOMER? EI! E QUANTO A GENTE?!", + "NÃO ACHA QUE PODÍAMOS PROCURAR UMA ROTA MAIS SEGURA PARA A CIDADELA DO GOL?", + "OLHA, EU SOLTEI MAIS BALÕES DE RESFRIAMENTO NO TÚNEL.", + "USEM ELES PARA MANTER A TEMPERATURA BAIXA.", + "E NÃO ESQUEÇAM DE ATIVAR O TELEPORTADOR NO LABORATÓRIO DO SÁBIO AMARELO.", + "ESTAMOS CONTANDO COM VOCÊS." + ], + "assistant-reminder-1-blue-eco-switch": [ + "TENHO CERTEZA DE QUE SE VOCÊ DER UMA OLHADA NO TEMPLO PROIBIDO PRECURSOR", + "VOCÊ VAI CONSEGUIR ABRIR A FONTE DE ECO AZUL FECHADA NA PRAIA SENTINELA ." + ], + "assistant-reminder-1-generic": [ + "EI RAPAZES, CONTINUEM PEGANDO POWER CELLS,", + "ELAS SÃO A CHAVE PARA A JORNADA AO NORTE." + ], + "assistant-reminder-1-race-bike": [ + "EU DEFINITIVAMENTE DESCOBRI COMO USAR OS TRANS-PADS.", + "AGORA VÃO PARA A ILHA DAS NÉVOAS, EU VOU ENVIAR O ZOOMER PARA LÁ." + ], + "assistant-village2-introduction": [ + "WHOA!", + "ACHO QUE NUNCA VOU ME ACOSTUMAR COM ESSE FORMIGAMENTO DO TELEPORTE.", + "HEY!", + "PARECE QUE O SÁBIO AZUL DEU UMA FESTA.", + "MINHA NOSSA! VILA DA PEDRA ESTÁ EM CHAMAS!", + "UMA BELA FESTA.", + "NÃO, NÃO! TÔ TENTANDO DIZER QUE A VILA DA PEDRA FOI BOMBARDEADA COM ROCHAS FLAMEJANTES!", + "OH! E PARECE QUE O SÁBIO AZUL ESTÁ TRABALHANDO EM UMA MÁQUINA PARA LEVITAR ELAS.", + "PRESSUPONDO QUE ESTEJA FUNCIONANDO, ELA VAI PRECISAR DE POWER CELLS.", + "ACHO QUE VOCÊS DOIS VÃO PRECISAR ENCONTRAR MAIS.", + "MELHOR DARMOS UMA OLHADA NAS ANOTAÇÕES DELE.", + "JAK, VÁ CHECAR OS MORADORES, E ENTÃO VOLTE E NOS INFORME.", + "E LEVE A BOLA DE PELO COM VOCÊ!" + ], + "assistant-village2-introduction-flutflut": [ + "JÁ VOLTARAM, MENINOS?", + "\"MENINO\"?", + "EI GATINHA, EU SOU UM TOTALMENTE CRESCIDO...", + "AH...", + "ALGUM TRECO... ALGUM TRECO FELPUDO.", + "OH, ADIVINHA? COM A PERMISSÃO DA SRA. PÁSSARO,", + "EU EQUIPEI A BEBÊ FLUT-FLUT COM UMA SELA.", + "PARECE QUE TEM UM TRANS-PAD NO PÂNTANO LAMACENTO.", + "SE VOCÊ ENCONTRÁ-LO, TE MANDO A FLUT-FLUT TOTALMENTE EQUIPADA.", + "OS SALTOS DELA PODEM SER ÚTEIS CRUZANDO O LODO." + ], + "assistant-village2-introduction-robbers": [ + "HEY, VOCÊS DOIS!", + "SEI ONDE ENCONTRAR OUTRA POWER CELL!", + "DE ACORDO COM ESSAS ANOTAÇÕES,", + "HÁ ALGUNS DIAS ATRÁS, LURKERS VOADORES ROUBARAM UMA DO SÁBIO AZUL,", + "E LEVARAM ELA VOANDO PARA O BACIA PRECURSOR.", + "APOSTO QUE VOCÊS CONSEGUEM ATROPELAR OS LURKERS COM O ZOOMER", + "ATÉ ACHAREM O QUE LEVOU A POWER CELL.", + "VOCÊS VÃO ACHAR O ZOOMER PERTO DA BACIA PRECURSOR." + ], + "assistant-village2-introduction-room": [ + "APARENTEMENTE, A ESTRUTURA PRECURSOR AO FINAL DA COSTA", + "LEVA PARA UMA CIDADE SUBMERSA PERDIDA.", + "O SÁBIO AZUL ESTAVA TENTANDO DESCOBRIR", + "COMO TRAZER UMA DAS CAPSULAS PARA A SUPERFÍCIE.", + "MAS ELE NUNCA TEVE SUCESSO.", + "VOCÊS DEVERIAM DAR UMA OLHADA!", + "UH... NÃO TEM MUITOS, UM...", + "TUBARÕES LURKER NAQUELAS ÁGUAS?", + "POR QUE? TÁ COM MEDO?", + "EU? CLARO QUE NÃO!", + "SÓ TÔ CUIDANDO DO JAK AQUI!", + "VOCÊ, É, HEH...", + "SABE O PEIDÃO QUE ELE É.", + "BEM, SE VOCÊ NADAR PELO RECIFE DE CORAL, EU DUVIDO QUE OS TUBARÕES VENHAM TE INCOMODAR.", + "ELES NÃO GOSTAM DE ÁGUA RASA." + ], + "assistant-village2-reminder-1-flutflut": [ + "TENHO CERTEZA QUE A FLUT-FLUT VAI SER ÚTIL NO PÂNTANO.", + "ENCONTRE O TRANS-PAD E EU TELEPORTO ELA ATÉ VOCÊ." + ], + "assistant-village2-reminder-1-robbers": [ + "VOU TELEPORTAR O ZOOMER ATÉ VOCÊ NA BACIA PRECURSOR,", + "PRA VOCÊ PODER PERSEGUIR AQUELES LURKERS VOADORES QUE FALAMOS A RESPEITO." + ], + "assistant-village2-reminder-1-room": [ + "VOCÊS JÁ NADARAM PRA FORA DA CIDADE PRECURSOR PERDIDA?", + "VOCÊS DEVERIAM TENTAR ERGUER A SALA QUE O SÁBIO AZUL ESTAVA BUSCANDO." + ], + "assistant-village2-resolution": [ + "ÓTIMO, VOCÊS TEM AS CELLS PRA MÁQUINA!", + "ELAS DEVEM DAR ENERGIA O BASTANTE PARA LEVANTAR AQUELA ROCHA.", + "LÁ VAI!", + "AGORA, TENHAM CUIDADO ENFRENTANDO AQUELE MONSTRO LURKER LÁ EM CIMA.", + "ESPERE! UH...", + "EU VOU FICAR AQUI E CUIDAR DA KEIRA!", + "JAK, EU ACHO QUE VOCÊ ESTÁ PRONTO PRA CUIDAR DAQUELE MONSTRO SEM MIM.", + "OH, TÃO HEROICO DA SUA PARTE." + ], + "assistant-village3-reminder": [ + "EI RAPAZES! CONTINUEM COLETANDO POWER CELLS.", + "ELAS SÃO A CHAVE PARA SEGUIRMOS NOSSA JORNADA AO NORTE." + ], + "billy-accept": [ + "ÓTIMO! ESSES RATOS VÃO VOLTAR A QUALQUER MOMENTO.", + "ATIRE NELES, E NUM DEIXA ELES", + "COMEREM AO MENOS UM LANCHINHO." + ], + "billy-introduction": [ + "OLAR, AMIGOS! GUSTARAM DO MEU LINDO PÂNTANO?", + "EU SÔ DONO DI TUDO AQUI.", + "TUDO QI NÃO AFUNDOU NA LAMA! HA HA HA...", + "PELO CHEIRO, EU APOSTO QUE SEU", + "CHUVEIRO AFUNDOU NA LAMA A MUITO TEMPO.", + "QUIÉ CHUVEIRO??", + "DI TODO JEITO, TENHO PROBREMAS MAIORES AGORA...", + "PARECE QUE UNS MARDITOS LURKERS TÃO RODANDO A AREA,", + "CATANO TUDO QUE ELES CONSEGUEM BOTÁ AQUELAS PATAS GORDA DELES.", + "E AFUGENTARAM MEU MASCOTE, PEIDINHO.", + "ELE TÁ SUMIDO JÁ FAZ UM TEMPÃO.", + "EU TÔ BOTANDO O LANCHIN FAVORITO DELE", + "MAS OS RATO DE PÂNTANO MARDITOS FICAM ROBANO", + "SE TU PUDESSE MANTER SAS RATAZANA LONGE POR TEMPO O BASTANTE,", + "EU SEI QUE O PEIDINHO IA SENTIR O CHEIRIN DO LANCHE E VOLTAR", + "CÊS ME AJUDA?" + ], + "billy-reject": [ + "BEM, SE MUDAREM DE IDEIA, CÊS SABE ONDE ME ACHAR!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, CÊS VOLTARAM PRA ACABAR COM OS RATOS?" + ], + "billy-resolution": [ + "MACACOS ME MORDAM! CÊ SABE MESMO COMO ATIRAR!", + "MUITO OBRIGADO SÔ PELA AJUDA." + ], + "bird-lady-beach-resolution": [ + "NOSSA!, EU ESPERO QUE O COITADINHO ESTEJA BEM,", + "TOMA, UMA POWER CELL PELA SUA CORAGEM.", + "MAMA!", + "MAMA!", + "OH NÃO! NÃO, NÃO, NÃO, NÃO!", + "OLHA SÓ... NÃO É FOFO? ELE ACHA QUE VOCÊ É A MÃE DELE.", + "EH? EU NÃO SOU TUA MÃE! TÁ VENDO ALGUMA PENA AQUI?", + "OH, AMOR A PRIMEIRA VISTA! AHH...", + "OLHA GAROTOS, EU VOU LEVAR ESSE PINTINHO DE VOLTA PRA VILA COMIGO", + "E PEDIR PARA O SÁBIO TOMAR CONTA DELE." + ], + "bird-lady-introduction": [ + "MINHA NOSSA, ESSE PASSARINHO ESTÁ TERRIVELMENTE DOENTE.", + "HUH! TU TAMBÉM NÃO TÁ ESSAS COISAS NÃO, MOÇA!", + "OH, DESCULPA. EU ACHEI QUE VOCÊ", + "FOSSE UMA ANDORINHA PINTADA DE BARRIGA AMARELA.", + "SABE, ONTEM EU", + "VI CRIATURAS PERVERSAS CAPTURAREM", + "UMA MÃE FLUT-FLUT PERTO DA PRAIA.", + "AGORA O POBRE OVO DELA FICOU ÓRFÃO NUM", + "NINHO NO TOPO DO PENHASCO", + "E EU NÃO CONSIGO CHEGAR ATÉ ELE.", + "SE VOCÊ PUDER SUBIR LÁ E EMPURRAR O OVO, EU JUNTEI", + "UM POUCO DE FENO AQUI EM BAIXO PARA QUE ELE CAIA EM SEGURANÇA", + "FAÇA ESSE FAVOR A UMA VELHA SENHORA E EU LHE DAREI UMA POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, OLÁ DE NOVO, VOCÊS ENCONTRARAM AQUELE OVO AZUL NO TOPO DO PENHASCO?", + "EMPURRE-O PARA CAIR AQUI EM BAIXO E TE DAREI UMA POWER CELL!" + ], + "bird-lady-reminder-2": [ + "VOCÊS MENINOS AINDA ESTÃO PASSEANDO POR AQUI? HO HO HO.", + "APOSTO QUE AQUELE POBRE OVO SOZINHO NO PENHASCO", + "DEVE ESTAR COM MUITO FRIO.", + "SALVE-O EMPURRANDO ELE PARA FORA DO PENHASCO", + "E EM TROCA TE DAREI UMA POWER CELL." + ], + "bluesage-resolution": [ + "BOM TRABALHO, COMPANHEIROS! O VELHO SAMOS ESTAVA CERTO SOBRE VOCÊS!", + "PELA SANTO MONTE DE METAL PRECURSOR!", + "ESSA SÓRDIDA CRIAÇÃO MECÂNICA", + "NÃO PODE LOGRAR SUA TERRÍVEL DESTRUIÇÃO!", + "EU TENTAREI MITIGAR O CAMPO DE", + "FORÇA EMITINDO UM CONDUTO DE ENERGIA", + "ENTRE EU E O GRANDE PORTAL ABAIXO!", + "UH... YEAH. FAZ ISSO AÍ. NÓS VAMOS UH... SÓ CONSEGUIR MAIS AJUDA.", + "LERDÃO!" + ], + "death-0181": [ + "NÃO VÁ PARA A LUZ, JAK! NÃO VÁ PARA A LUZ!" + ], + "death-0182": [ + "HEY, JAK! EU POSSO...", + "FICAR COM A SUA COLEÇÃO DE INSETOS?" + ], + "death-0184": [ + "ENQUANTO VOCÊ ESTÁ AÍ EM BAIXO, EHM...", + "PODE COÇAR MEU PEZINHO?" + ], + "death-0186": [ + "NÃO SE PREOCUPE EU VOU TE VINGAR!", + "...SÓ QUE NÃO." + ], + "death-0187": [ + "BEM, UH...", + "ANTES VOCÊ DO QUE EU." + ], + "death-0191": [ + "AQUILO DEVE TER DOÍDO.", + "DEVO CHAMAR REFORÇOS?" + ], + "death-0193": [ + "PRIMEIRO PASSO: FIQUE VIVO!", + "SEGUNDO PASSO...", + "TENTE NÃO FAZER ALGO ASSIM DE NOVO" + ], + "death-0195": [ + "EU ESTAVA LOGO ATRÁS DE VOCÊ, JAK!", + "...JURO. EU ESTAVA." + ], + "death-0197": [ + "CURATIVOS... MACA!", + "ECA... BALA DE MENTA?" + ], + "death-0199": [ + "EU VOU DIZER ALGO MUITO TRISTE NO FUNERAL, TIPO...", + "...\"COMO EU VOU VOLTAR AO NORMAL AGORA?!\"" + ], + "death-0202": [ + "BONS SONHOS, JAK!" + ], + "explorer-introduction": [ + "OLÁ MEU QUERIDO MENINO.", + "TU ME PEGASTES EM UM MOMENTO INOPORTUNO.", + "ONTEM EU ESTAVA PRONTO PARA PARTIR EM MINHA JORNADA,", + "MAS ME ENCONTRO EM DESVANTAGEM QUANTO AS VELHAS ORBES PRECURSORAS.", + "LHE ASSEGURO QUE POSSUÍA 90 DELAS ANTERIORMENTE,", + "PORÉM ACREDITO QUE SEU AMIGO, VOCÊ SABE,", + "AQUELE DIMINUTO IRRITANTE MISERÁVEL E FEIO.", + "PODE TER AS FURTADO PARA SE DIVERTIR UM POUCO.", + "TODAVIA, TERIAS A BONDADE DE EMPRESTAR", + "90 ORBES PRECURSORAS AO SEU VELHO TIO", + "PARA QUE ELE POSSA SEGUIR VIAGEM? EM TROCA, LHE OFEREÇO UMA POWER CELL." + ], + "explorer-reminder-1": [ + "O QUÊ? NÃO TENS TAL ABUNDÂNCIA? HARRUMPH!", + "BEM, MENOS DE 90 ORBES PRECURSORAS", + "E NÃO LOGRAREI EM MINHA VIAGEM." + ], + "explorer-reminder-2": [ + "Ô VEJA BEM, O ACORDO É DE 90 ORBES PRECURSORAS POR UMA POWER CELL.", + "UMA TROCA DEVERÁS JUSTA." + ], + "explorer-resolution": [ + "VEJO QUE VOCÊS DOIS VOLTARAM PARA FAZER A TROCA, BOM, BOM, SUBLIME!", + "EH, VOCÊ TEM UH, AS ORBES QUE COMBINAMOS?", + "ESPERO QUE DÊ BOM USO À ESTA POWER CELL,", + "MEU JOVEM MENINO, TA TA, TCHAU TCHAU!" + ], + "farmer-introduction": [ + "TIRAR LEITE DO BOI, TIRAR LEITE DO BOI...", + "OH! É VOCÊ... ESTOU DESCANSANDO MEUS VELHOS OSSOS.", + "TENHO TENTADO PÔR ESSES BOIS", + "DE VOLTA NO CURRAL O DIA TODO!", + "UMAS CRIATURAS ESTRANHAS TENTARAM ROUBÁ-LOS MAIS CEDO.", + "ACHA QUE PODE AJUDAR UM VELHO SENHOR A LEVÁ-LOS DE VOLTA AO CURRAL?" + ], + "farmer-reminder-1": [ + "EI, MEUS BOIS CONTINUAM SOLTOS!", + "EH, PODERIA BOTAR ELES DE VOLTA NO CURRAL?" + ], + "farmer-reminder-2": [ + "ESSES MALDITOS BOIS CONTINUAM PERAMBULANDO SOLTOS.", + "VOCÊ NÃO IA BOTAR ELES NO CURRAL?" + ], + "farmer-resolution": [ + "AH, MUITO BEM MEU GAROTO. VOCÊ COLOCOU ESSES SACOS DE PULGA DE VOLTA NO CURRAL.", + "AGORA POSSO DORMIR EM PAZ, LEVE ESSA POWER CELL PELO INCÔMODO." + ], + "finalbosscam-white-eco": [ + "ECO LUMINOSO! ELE EXISTE!", + "ELES NÃO PODEM PEGÁ-LO!" + ], + "fisher-accept": [ + "EXISTEM DOIS TIPOS DE PEIXES QUE PRESTAM,", + "OS DE 1 QUILO E OS DE 5 QUILOS.", + "HEH. SE TU PERDER 20 QUILOS DE PEIXE BOM,", + "VÔ TOMAR A VARA DA TUA MÃO!", + "TEM ENGUIAS VENENOSAS NO RIO.", + "SE OCÊ CATAR UM SÓ DESSES TREM,", + "VAI ENVENENAR TODOS OS PEIXES." + ], + "fisher-introduction": [ + "O QUE TEM NA CESTA?", + "SÓ VENTO.", + "SAS PESTE DE MONSTRO RODANO O OCEANO,", + "LASCARAM UMA MORDIDA NO MEU BARCO.", + "E AGORA TÃO COMENO MEUS PEIXE!", + "NÃO IMPORTA O QUE EU FAÇA, NUM CONSIGO PEGA UM ÚNICO PEIXE NESSE RIO.", + "WHOOA! TALVEZ... SEJA SEU HÁLITO.", + "ACHA QUE FAZ MELHOR?", + "TENTA CATAR PEIXE COM ESSA REDE PEQUENA!", + "TE DOU UMA POWER CELL", + "SE TU PEGAR 200 QUILOS DOS PESTINHAS!", + "E DEIXO VOCÊ E O CAMARÃOZINHO AQUI", + "USAR MEU BARCO PRA CHEGAR NA ILHA DAS NÉVOAS.", + "IAÍ VÃO ACEITÁ O DESAFIO?" + ], + "fisher-reject": [ + "BEM SE QUISEREM TENTAR GANHAR A POWER CELL,", + "SABEM ONDE ME ENCONTRAR." + ], + "fisher-reminder-1": [ + "TÃO QUERENDO VER SE GANHAM DO RIO?" + ], + "fisher-resolution": [ + "CÊS CONSEGUIRAM, PEGARAM 200 QUILOS DE PEIXE!", + "NADA MAL PRA UMA DUPLA DE GENTE DA TERRA!", + "TA AQUI A POWER CELL,", + "E PODEM PEGAR MEU BARCO NA DOCA DA VILA", + "SEMPRE QUE QUISEREM!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "ESSES DOIS PODEM SE TORNAR UM PROBLEMA.", + "NÃO SE PREOCUPE, QUERIDO IRMÃO, VOU MANDAR MINHA TROPA DE LURKERS LIDAR COM ELES.", + "SÓ GARANTA QUE ELES NÃO VÃO CHEGAR PERTO DEMAIS DAS OPERAÇÕES AO NORTE.", + "EU DUVIDO QUE ELES CHEGUEM TÃO LONGE.", + "MAS SE CHEGAREM, TERÃO UMA SURPRESA NA VILA DA PEDRA.", + "ENTÃO... VAI SOLTAR O KLAWW DA JAULA?", + "ACHO QUE VALE O RISCO.", + "DE FATO." + ], + "gambler-introduction-1": [ + "AW, NÃO. MAIS UM \"HERÓI\".", + "EU PERDI MINHAS CALÇAS APOSTANDO NA TAL \"GRANDE LUTA\" DESSE", + "HERÓI AQUI CONTRA O MONSTRO LÁ EM CIMA.", + "PODE CONFIAR, A JOGADA É APOSTAR NO MONSTRO.", + "ESSA APOSTA ME DEIXOU QUASE ZERADO!", + "ENTÃO, VAI AQUI UMA PROPOSTA.", + "ME TRAGA 90 ORBES PARA EU ME REERGUER E SAIR DESSE BARRIL,", + "E EU TE DOU UMA POWER CELL EM TROCA.", + "E SE ESTIVER NO PIQUE, EU TENHO MAIS UMA APOSTA EM JOGO.", + "MEU GRANDE RETORNO!", + "SUPERE O TEMPO DO FALECIDO GORGE NA BACIA PRECURSOR,", + "E EU VOU GANHAR UMA NOTA PRETA!", + "E POR ISSO, TE DAREI MAIS UMA POWER CELL." + ], + "gambler-reminder-money": [ + "EI. NÃO SE ESQUEÇA DAS MINHAS ORBES.", + "90 E TE DOU UMA, UMA POWER CELL, É ISSO!" + ], + "gambler-reminder-race": [ + "BEM, TÃO ESPERANDO O QUE?", + "ESSE BARRIL TÁ ME COÇANDO!", + "SUPERE O RECORDE DO FALECIDO GORGE,", + "E VAMOS SER VENCEDORES!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "ESSAS ORBES VÃO ME TIRAR DESSE BARRIL!", + "TÁ AQUI A POWER CELL QUE EU PROMETI!" + ], + "gambler-resolution-race": [ + "OH, BOA DIREÇÃO, GAROTO! EU SABIA QUE AQUELE RECORDE IA CAIR.", + "AGORA, AQUI ESTÁ SUA POWER CELL, E EU POSSO PEGAR MINHA GRANA!" + ], + "geologist-introduction": [ + "VOCÊS DOIS PARECEM UMA DUPLA DE CAMARADAS COMPETENTES.", + "EU ESTOU NO MEIO DE UMA PESQUISA,", + "E TALVEZ VOCÊS POSSAM ME AJUDAR.", + "HEY, NÓS QUE ESTAMOS NA GRANDE JORNADA AQUI.", + "NÓS QUE PEDIMOS SUA AJUDA.", + "BEM, TALVEZ POSSAMOS NOS AJUDAR.", + "EU VENHO ESTUDANDO HÁ ANOS OS HÁBITOS DE ESCAVAÇÃO DAS", + "TOUPEIRAS RELÂMPAGO NA BACIA PRECURSOR PRÓXIMA A NOSSA VILA.", + "MAS AGORA ESSES LURKERS TERRÍVEIS ENXOTARAM AS TOUPEIRAS PARA A SUPERFICIE!", + "E POR SEREM CEGAS COMO MORCEGOS, NÃO CONSEGUEM ACHAR O CAMINHO DE VOLTA O SUBSOLO.", + "SE VOCÊ PUDESSE GUIÁ-LAS DE VOLTA ATÉ OS SEUS BURACOS,", + "VOCÊ PODE SALVAR A VIDA DELAS.", + "EU TENHO UMA POWER CELL QUE DIZ QUE VOCÊ É CAPAZ.", + "YEAH, TOUPEIRAS RELÂMPAGOS... ESTAMOS PREOCUPADOS.", + "TALVEZ POR DUAS POWER CELLS!", + "BOA TENTATIVA. MAS ESTOU DISPOSTA A DEIXAR MAIS UMA POWER CELL", + "EM TROCA DE 90 ORBES PRECURSORAS PARA MEU EQUIPAMENTO DE PESQUISA.", + "JUSTO?" + ], + "geologist-reminder-moles": [ + "VOCÊS LEVARAM AS TOUPEIRAS RELÂMPAGO DE VOLTA AO SUBSOLO?", + "SE APRESSEM - A LUZ DO SOL NÃO FAZ BEM PRA ELAS!" + ], + "geologist-reminder-money": [ + "PRECISO DAQUELAS ORBES PRA CONTINUAR MINHA PESQUISA!" + ], + "geologist-resolution-moles": [ + "OBRIGADA POR SALVAR AS TOUPEIRAS, FOI MUITO BACANA DA SUA PARTE.", + "AQUI ESTÁ UMA POWER CELL PARA TE AJUDAR.", + "AGORA POSSO VOLTAR A MINHA PESQUISA!" + ], + "geologist-resolution-money": [ + "OH, VOCÊ TEM AS ORBES!", + "AQUI ESTÁ A POWER CELL QUE COMBINAMOS." + ], + "green-sagecage-daxter-sacrifice": [ + "ECO LUMINOSO! ISSO PODE ME TRAZER DE VOLTA!", + "OU... PODE DESTRUIR AQUELE ROBÔ.", + "CONTINUAR FELPUDO, SALVAR O MUNDO... ESCOLHAS...", + "TÁ BOM, A GENTE SALVA O MUNDO.", + "MAS FAÇA RÁPIDO ANTES QUE EU MUDE DE IDEIA!" + ], + "green-sagecage-introduction": [ + "JÁ ERA HORA DE VOCÊS DOIS RESOLVEREM APARECER!", + "É BOM TE VER TAMBÉM!", + "ELES TE BOTARAM PRA LAVAR O CHÃO AGORA?", + "NÃO HÁ TEMPO PARA PIADAS, DAXTER. GOL E MAIA NOS SEQUESTRARAM", + "PARA USAR NOSSAS ENERGIAS NA MÁQUINA ABOMINÁVEL DELES.", + "PARECE QUE ELES COMBINARAM PARTES FUNCIONAIS DO ROBÔ PRECURSOR", + "COM ARTEFATOS RECOLHIDOS PELO MUNDO.", + "E ELES ADICIONARAM MECANISMOS DIABÓLICOS PRÓPRIOS,", + "CRIANDO ALGO CAPAZ DE ABRIR OS RESERVATÓRIOS DE ECO NEGRO.", + "SE VOCÊS PUDEREM LIBERTAR NÓS 4, PODEMOS USAR NOSSOS PODERES COMBINADOS", + "PARA QUEBRAR O CAMPO DE FORÇA EM VOLTA DO ROBÔ,", + "ANTES QUE ELES O USEM PARA DESTRUIR O MUNDO." + ], + "green-sagecage-outro-beat-boss-a": [ + "FAÇA ALGUMA COISA!", + "NÃOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "BEM, PARECE QUE FUI DURO DEMAIS COM VOCÊS, GAROTOS!", + "VOCÊS TEM O QUE É PRECISO PARA SEREM HERÓIS!", + "MAS, DAXTER, AGORA NÃO PODEMOS TE TRAZER DE VOLTA.", + "NÃO SE PREOCUPE COMIGO, BEBÊ.", + "É COMO DIZ O DITADO: OS MELHORES PERFUMES NOS MENORES FRASCOS.", + "JAK, VOCÊ TEM UM TALENTO INCRÍVEL PARA CANALIZAR ECO!", + "SAMOS, VOCÊ PODE TER RAZÃO SOBRE ESSE AQUI AFINAL!", + "E KEIRA, SEM SUA AJUDA E TALENTO,", + "NADA DISSO SERIA POSSÍVEL.", + "HM-HM-HM. TALVEZ TENHAMOS ACHADO UMA NOVA SÁBIA AGORA", + "QUE GOL E MAIA SE FORAM...", + "SIM, GOL E MAIA... O ECO NEGRO PROVAVELMENTE DESTRUIU ELES.", + "EH, PROVAVELMENTE...", + "QUEM LIGA? DEIXA VIR, A GENTE APAGA ELES DE NOVO NÉ, JAK?", + "EU DISSE, NÉ, JAK?", + "WHOA! ARRUMA UM QUARTO, GRANDÃO!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "MINHA NOSSA! O QUE PODE SER ISSO?", + "WOW, É UM ANTIGO PORTÃO PRECURSOR!", + "PARECE QUE SÓ ABRE SE PREENCHERMOS OS 100 BURACOS COM POWER CELLS!", + "UH, SOMOS HERÓIS, LEMBRA? NÓS TEMOS 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "MINHA NOSSA! O QUE PODE SER ISSO?", + "WOW, É UM ANTIGO PORTÃO PRECURSOR!", + "PARECE QUE SÓ ABRE SE PREENCHERMOS OS 100 BURACOS COM POWER CELLS!", + "AH MANO... LÁ VAMOS NÓS DE NOVO!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! O QUE É ISSO?", + "É TÃO LINDO...", + "PELOS PRECURSORES..." + ], + "green-sagecage-outro-preboss": [ + "TARDE DEMAIS, SAMOS.", + "ASSIM QUE EU TIVER ECO NEGRO ILIMITADO,", + "EU TEREI A CHAVE PARA A PRÓPRIA CRIAÇÃO!", + "ISSO É LOUCURA!", + "LIBERAR AQUELE TANTO DE ECO NEGRO IRÁ DESTRUIR TUDO QUE CONHECEMOS!", + "OLHE O QUE ELE FEZ COM VOCÊ!", + "NOS TROUXE BELEZA ALÉM DA SUA COMPREENSÃO.", + "BELEZA? VOCÊS SE OLHARAM NO ESPELHO RECENTEMENTE?", + "ESPERE ATÉ ABRIRMOS OS RESERVATÓRIOS, PEQUENINO.", + "VOCÊ ACHA QUE BAIXINHO E PELUDO É RUIM?", + "E PENSAR QUE VOCÊS DOIS VIAJARAM ISSO TUDO PELA MINHA AJUDA.", + "TOLOS! APROVEITEM A FILEIRA DA FRENTE PARA O RENASCIMENTO DO MUNDO!", + "JAK! SUBA NO ELEVADOR E IMPEÇA ESSE ROBÔ!" + ], + "green-sagecage-resolution": [ + "BOM TRABALHO, GAROTOS! VOCÊS SÃO VERDADEIROS HERÓIS AGORA.", + "EU VOU COMBINAR O MEU PODER COM O DOS OUTROS TRÊS SÁBIOS", + "E JUNTOS VAMOS DESTRUIR O CAMPO DE FORÇA EM VOLTA DO ROBÔ PRECURSOR.", + "TÁ, TÁ, PARECE UM BOM COMEÇO.", + "E DEPOIS DE ABRIR O CAMPO DE FORÇA,", + "O QUE VOCÊ VAI FAZER QUANTO AO ROBÔ?", + "NADA, DAXTER. NÓS PRECISAMOS MANTER O CAMPO DE FORÇA ABERTO.", + "CABE A VOCÊS DOIS DESCOBRIREM COMO DESTRUIR O ROBÔ.", + "OH, ÓTIMO. EU AJUDO O CARA QUE ME TRANSFORMOU NUMA BOLA DE PELO", + "A DESTRUIR A ÚNICA PESSOA QUE PODE ME TRAZER DE VOLTA!", + "PRIMEIRO, SALVAR O MUNDO!", + "E ENTÃO A GENTE TENTA CONVENCER O GOL A AJUDAR O DAXTER." + ], + "mayor-introduction": [ + "NÃO... (MURMURA) NÃO ME DIGA QUE VOCÊS DOIS TAMBÉM ESTÃO COM PROBLEMAS!", + "PRIMEIRO EU OUÇO SOBRE MONSTROS AVISTADOS PRÓXIMO A VILA E AGORA ISSO .", + "ESTÃO VENDO AQUELAS ENGRENAGENS ALI, GAROTOS? VEEM ELAS? VEEM QUE ELAS NÃO SE MEXEM?", + "ISSO SIGNIFICA QUE NOSSA VILA ESTÁ SEM ENERGIA!", + "O RAIO DE ECO AZUL QUE VINHA DA SELVA PROIBIDA FOI INTERROMPIDO!", + "E TODO MUNDO ESTÁ COM MEDO DEMAIS PARA IR LÁ E DESCOBRIR O QUE HOUVE.", + "VOCÊ PAGOU A CONTA?", + "YEAH-HMM? OH-HUH-OH, VOCÊ É ENGRAÇADO.", + "OLHA, SE VOCÊS DOIS CONSERTAREM O RAIO DE ECO EU DOU UMA POWER CELL.", + "OH OOH OOH E-E MAIS UMA COISA, UH...", + "SE ESTIVEREM INTERESSADOS EM FAZER UMA CONTRIBUIÇÃO PARA MINHA CAMPANHA DE REELEIÇÃO,", + "EU-EU POSSO TALVEZ DAR MAIS UMA POWER CELL!", + "A CONTRIBUIÇÃO MÍNIMA É, OH, BEM MODESTA...", + "90 ORBES PRECURSORAS." + ], + "mayor-reminder-beams": [ + "JÁ VOLTARAM? E SEM CONSERTAR OS RAIOS DE ECO AZUL?", + "A VILA PRECISA DE VOCÊS, GAROTOS!" + ], + "mayor-reminder-donation": [ + "AH, VEIO FAZER UMA DOAÇÃO PARA A MINHA CAMPANHA?, OH HO HO HO.", + "90 ORBES PRECURSORAS E EM TROCA, UMA POWER CELL, OBRIGADO." + ], + "mayor-resolution-beams": [ + "OH HO HO, MAS QUE BELEZURA, OBRIGADO!", + "E A VILA INTEIRA IRÁ AGRADECER A MI-", + "UH, A VOCÊS, VOCÊS RETORNARAM A ENERGIA A VILA E GARANTIRAM MINHA REELEIÇÃO!", + "E POR ISSO, MEU GAROTO, VOCÊ GANHOU UMA POWER CELL." + ], + "mayor-resolution-donation": [ + "ENTÃO ER, VOCÊ UH, QUER CONTRIBUIR? BOM... U-U-UMA QUANTIA SIGNIFICATIVA EU ESPERO.", + "YOOH! EH HE HE, É UMA, OH, ISSO É UMA CONTRIBUIÇÃO SIGNIFICATIVA!", + "EU, E-E-EU-E EU SÓ ESPERO QUE ESSA POWER CELL REPRESENTE MINHA GRATIDÃO." + ], + "minershort-introduction-gnawers": [ + "POR QUE VOCÊS NÃO FAZEM ALGO DE ÚTIL?", + "LURKERS TÃO ESCAVANDO AS CAVERNAS NEGRAS ALI.", + "PARECEM ESTAR ATRÁS DE ARTEFATOS PRECURSORES.", + "ELES PODEM PEGAR OS ARTEFATOS, TÔ NEM AÍ.", + "TAMO NEM AÍ!", + "WILLARD, ALIMENTE SEU PÁSSARO.", + "SÓ ME IMPORTO COM GEMAS!", + "MAS NUM VOU PODER PEGAR AS GEMAS DA CAVERNA", + "PORQUE QUANDO ELES ACABAREM, ELES VÃO SOTERRAR O LUGAR!", + "SE VOCÊ ACABAR COM OS LURKERS QUE ESTÃO COMENDO OS PILARES,", + "VOCÊ PODE SALVAR A CAVERNA PARA MIM.", + "AGORA VAZA!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, UH, ACHO QUE TEMOS VISITA.", + "TU ACHA, WILLARD? OLÁ, ESTRANHOS, UH, TÃO DE PASSAGEM?", + "UH, NÓS, TAMBÉM. BEM, NÓS TEMOS QUE SEGUIR, NÃO TEM NADA PRA VER AQUI.", + "UÉ, TU NÃO FALOU QUE ESSA ERA UMA GEMA INESTIMÁVEL QUE VALIA...", + "WILLARD!", + "NA VERDADE, QUEREMOS POWER CELLS, NÃO GEMAS.", + "A GENTE TEM QUATRO DELAS. DUH, TU QUER UMA?", + "O QUE O CABEÇA DE PÁSSARO ESTÁ TENTANDO DIZER AQUI,", + "TALVEZ TENHAMOS ALGUMAS POWER CELLS SOBRANDO,", + "E NÓS PODEMOS ESTAR DISPOSTOS A TROCAR ELAS POR...", + "90 ORBES CADA.", + "ONDE FOI QUE EU OUVI ISSO ANTES?", + "EI, COMO OS DOIS GÊNIOS ESPERAM TIRAR ESSA GEMA ENORME DAÍ?", + "BEM, ESPERTÃO, TEMOS MAIS DOZE ANOS DE ESCAVAÇÃO PARA DESCOBRIR ISSO.", + "UHH... GORDY, NÃO LEVARIA MENOS TEMPO SE VOCÊ CAVASSE TAMBÉM?" + ], + "minershort-introduction-switch": [ + "PSST, CARAS. DUH...", + "O PASSARINHO E EU ESTÁVAMOS VIMOS UMA CAVERNA QUE VOCÊS IRIAM GOSTAR!", + "ESTAVA REPLETA DE UM METAL LARANJA BONITO,", + "E MUITO BEM ESCONDIDA ATRÁS DE UMAS ÁRVORES NA MONTANHA NEVADA!", + "EU FALEI PRO GORDY, MAS ELE GRITOU COMIGO POR NÃO ESTAR ESCAVANDO!", + "POR QUE VOCÊ NÃO ESTÁ ESCAVANDO?!", + "DESCULPA!" + ], + "minershort-reminder-1-gnawers": [ + "VÃO LOGO DAR UM JEITO NAQUELES LURKERS QUE ESTÃO", + "COMENDO OS PILARES DA CAVERNA NEGRA!", + "AQUELES PILARES NÃO VÃO AGUENTAR POR MUITO TEMPO!" + ], + "minershort-reminder-1-orbs": [ + "NÃO ESQUEÇA DO NOSSO ACORDO. TRAGA 100 ORBES.", + "DUH... VOCÊ TINHA DITO 90.", + "WILLARD!", + "CERTO. 90 ORBES POR UMA POWER CELL." + ], + "minershort-reminder-1-switch": [ + "VOCÊ ACHOU A CAVERNA ATRÁS DAS ÁRVORES NA MONTANHA NEVADA?", + "DAQUI A POUCO VOU LÁ, PRA ME ESCONDER DO GORDY, ELE TÁ GRITANDO COMIGO DE NOVO!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBES POR UMA POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, TÁ CERTO ENTÃO.", + "AQUI ESTÁ UMA POWER CELL POR ESSAS ORBES SUAS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, EU CONSIGO DESSA VEZ! UH...", + "AQUI ESTÁ UMA...", + "DUHH.. AQUI ESTÁ UMA...!", + "UMA POWER CELL!", + "É, É... O QUE ELE DISSE.", + "É ISSO. VOCÊ ZEROU A GENTE .", + "NÃO! MAIS! POWER! CELLS!" + ], + "oracle-intro-1": [ + "QUEM DESPERTA O ORÁCULO?", + "ESPERA, UM DE VOCÊS POSSUÍ A LUZ EM SI.", + "ANTES DO INÍCIO DOS TEMPOS, EU OBSERVO E ESPERO", + "PELO RETORNO DO VERDADEIRO HERÓI.", + "ME OFEREÇA 120 ORBES PRECURSORAS", + "PARA CADA POWER CELL QUE EU POSSUO." + ], + "oracle-intro-2": [ + "CUIDADO COM A LUZ NEGRA,", + "POIS ELA DISTORCEU O DESTINO DE UM DE VOCÊS.", + "ME TRAGA 120 ORBES PRECURSORAS", + "PARA CADA POWER CELL QUE EU POSSUO." + ], + "oracle-intro-3": [ + "BUSQUEM A LUZ PURA, POIS EM TUAS CHAMAS RESIDEM AS RESPOSTAS.", + "VOCÊ PODE OBTER MINHAS POWER CELLS", + "SE ME TROUXER 120 ORBES PRECURSORAS PARA CADA UMA." + ], + "oracle-left-eye-1": [ + "VOCÊ SE PROVOU DIGNO, AQUI ESTÁ UMA POWER CELL." + ], + "oracle-left-eye-2": [ + "PELO SEU SACRIFÍCIO, EU LHE OFEREÇO UMA POWER CELL." + ], + "oracle-left-eye-3": [ + "PELO SEU ESFORÇO, UMA POWER CELL SERÁ A RECOMPENSA." + ], + "oracle-reminder-1": [ + "ME TRAGA 120 ORBES PRECURSORAS", + "E EU RECOMPENSAREI COM UMA POWER CELL." + ], + "oracle-reminder-2": [ + "ME OFEREÇA 120 ORBES PRECURSORAS", + "E UMA POWER CELL SERÁ SUA RECOMPENSA." + ], + "oracle-reminder-3": [ + "VOCÊ DEVE ME TRAZER 120 ORBES PRECURSORAS", + "PARA CADA POWER CELL QUE EU POSSUO" + ], + "oracle-right-eye-1": [ + "PELO SEU PRESENTE, MAIS UMA POWER CELL É SUA." + ], + "oracle-right-eye-2": [ + "AQUI ESTÁ MAIS UMA POWER CELL PARA SUA JORNADA." + ], + "oracle-right-eye-3": [ + "VOCÊ OBTEVE MAIS UMA POWER CELL." + ], + "redsage-resolution": [ + "(RISOS) VOCÊS FINALMENTE VIERAM ME RESGATAR.", + "VOCÊS SABEM A QUANTO TEMPO EU TÔ AQUI?", + "POR QUE DEMORARAM TANTO?... (RISOS)", + "E QUAL O NOME DE VOCÊS?", + "EU SOU DAXTER! ESSE AÍ É O JAK, ELE TÁ COMIGO.", + "BOM TRABALHO, DAXTER. VOCÊ É UM VERDADEIRO HERÓI.", + "VOCÊ PRECISA IMPEDIR GOL DE LIBERAR O ROBÔ.", + "EU VOU USAR O MEU PODER DE ECO PARA AJUDAR A ABRIR O CAMPO DE FORÇA." + ], + "sage-bluehut-introduction-crop-dusting": [ + "BEM, A SITUAÇÃO AQUI TÁ FEDENDO MAIS QUE SOVACO DE LURKER.", + "ANTES DO SUMIÇO DO SÁBIO AZUL,", + "ELE REGISTROU PROBLEMAS SIGNIFICATIVOS EM TODA REGIÃO EM VOLTA.", + "DE INTERESSE PARTICULAR MEU, ESTÁ A INFESTAÇÃO DE ECO NEGRO", + "EM PLANTAS INOCENTES NA BACIA PRECURSOR.", + "KEIRA IRÁ TELEPORTAR O ZOOMER PARA O TRANS-PAD MAIS PRÓXIMO.", + "LEVE O ZOOMER PARA UMA FONTE DE ECO VERDE,", + "E ENTÃO LEVE O ECO VERDE ATÉ AS PLANTAS INFECTADAS.", + "ISSO DEVE CURÁ-LAS.", + "NÃO PERCA UMA ÚNICA PLANTA, SE NÃO AS INFECTADAS IRÃO CORROMPER AS SAUDÁVEIS.", + "E, DAXTER...", + "COMECE A FAZER FAXINA AQUI!", + "E NÃO ESQUEÇA OS CANTINHOS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "BEM, ESPERO QUE TENHAM FEITO UMA MARMITA. PORQUE ESTAMOS SÓ COMEÇANDO.", + "DE ACORDO COM AS ANOTAÇÕES DO SÁBIO AZUL,", + "LURKERS INFESTARAM O PÂNTANO DO OUTRO LADO DA BAÍA.", + "PARECE QUE ESTÃO PLANEJANDO USAR UM DIRIGÍVEL", + "PARA RETIRAR UM IMPORTANTE ARTEFATO PRECURSOR DA LAMA.", + "VOCÊS TERÃO QUE IR LÁ E DESTRUIR AS CORDAS DO DIRIGÍVEL.", + "QUEM SABE O QUE ELES QUEREM COM ESSE ARTEFATO?", + "MAS ASSIM COMO O HÁLITO DA COISINHA LARANJA AQUI, NÃO PODE SER BOM." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MEUS OLHOS DEVEM ESTAR ME ENGANANDO!", + "PORQUE VOCÊS DOIS COM CERTEZA ESTÃO NA BACIA PRECURSOR,", + "SALVANDO AS PLANTAS INFECTADAS COM ECO NEGRO." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "O QUE VOCÊS ESTÃO FAZENDO VOLTANDO AQUI?", + "EU CONSIGO VER DA VARANDA", + "QUE O DIRIGÍVEL DOS LURKERS AINDA ESTÁ EM CIMA DO PÂNTANO.", + "VOCÊS OBVIAMENTE NÃO CUMPRIRAM SUA TAREFA.", + "METAM O PÉ!" + ], + "sage-intro-sequence-a": [ + "EU PASSEI A MINHA VIDA BUSCANDO PELAS RESPOSTAS QUE MEU PAI,", + "E O PAI DO MEU PAI, FALHARAM EM ENCONTRAR", + "QUEM FORAM OS PRECURSORES?", + "POR QUE ELES CRIARAM OS VASTOS MONÓLITOS ESPALHADOS PELO NOSSO PLANETA?", + "COMO ELES UTILIZAVAM O ECO, A ENERGIA VITAL DO PLANETA?", + "QUAL ERA O SEU OBJETIVO? POR QUE ELES DESAPARECERAM?", + "EU PERGUNTEI AS PLANTAS, MAS ELAS NÃO SE LEMBRAM", + "AS PLANTAS PERGUNTARAM AS PEDRAS, MAS AS PEDRAS NÃO SE RECORDAM", + "ATÉ MESMO AS PEDRAS NÃO SE RECORDAM...", + "CADA OSSO DO MEU CORPO ME DIZ QUE AS RESPOSTAS", + "ESTÃO NAS COSTAS DE UM JOVEM GAROTO", + "ALHEIO AO SEU DESTINO, DESINTERESSADO NA BUSCA PELA VERDADE,", + "E IGNORANDO MEUS ENSINAMENTOS!", + "E POR QUE ELE DARIA OUVIDOS AO VELHO SAMOS?", + "EU SOU APENAS O MESTRE DO ECO VERDE, UM DOS HOMENS MAIS SÁBIOS DO PLANETA", + "ENTÃO PARECE QUE A RESPOSTA NÃO COMEÇA COM UMA PESQUISA CUIDADOSA,", + "OU REFLEXÕES SENSÍVEIS.", + "NÃOO! ASSIM COMO MUITOS DOS MISTÉRIOS DO DESTINO", + "ELA COMEÇA COM UM PEQUENO ATO DE DESOBEDIÊNCIA.", + "HEY! HMM, JAK? AQUELA VELHA COISA VERDE FALOU PARA NÃO VIR AQUI!" + ], + "sage-intro-sequence-d1": [ + "MAS O QUE DIABOS VERDES VOCÊS DOIS QUEREM?", + "NÓ- NÓ- ELE ESTAVA- ELES ESTAVAM- EU- EU ESTAVA-", + "NÃO ME DIGA! EM VEZ DE OUVIREM MINHA SABEDORIA,", + "VOCÊS DOIS FORAM DAR UM PASSEIO", + "NO ÚNICO LUGAR QUE EU DISSE PARA NÃO IREM: ILHA DAS NÉVOAS!", + "FOI ISSO MESMO! E ENTÃ-", + "E ENTÃO, DAXTER, VOCÊ FINALMENTE TOMOU UM BANHO,", + "MAS FOI EM UM POÇO DE ECO NEGRO.", + "ESCUTA AQUI, COROA, VOCÊ VAI FICAR DANDO ESPORRO,", + "OU VOCÊ VAI ME AJUDAR A SAIR DESSA?", + "VOU FICAR DANDO ESPORRO! PORQUE NA MINHA OPINIÃO PROFISSIONAL,", + "A MUDANÇA FOI UMA MELHORIA.", + "E ALÉM DISSO... EU NÃO PODERIA TE AJUDAR MESMO SE QUISESSE", + "QUÊ!?", + "SÓ EXISTE UMA PESSOA QUE ESTUDOU O ECO NEGRO POR TEMPO O BASTANTE", + "PARA TER UMA CHANCE DE TE TRAZER A SUA FORMA ANTIGA:", + "GOL ACHERON, O SÁBIO.", + "MAS ELE VIVE AO NORTE. LONGE, BEM LONGE AO NORTE.", + "NINGUÉM FALA COM ELE HÁ ANOS", + "EU TE TELEPORTARIA PARA LÁ, MAS TAMBÉM NÃO CONSIGO", + "NENHUM DOS OUTROS TRÊS SÁBIOS QUE MANTÉM OS OUTROS PORTAIS DE TELETRANSPORTE", + "ATIVARAM O SEUS PORTAIS JÁ FAZ UM BOM TEMPO!" + ], + "sage-intro-sequence-d2": [ + "O ÚNICO OUTRO CAMINHO AO NORTE É A PÉ PELA DESFILADEIRO DE FOGO", + "MAS O SEU SOLO VULCÂNICO É QUENTE O BASTANTE PARA DERRETER METAL PRECURSOR.", + "VOCÊ NÃO CONSEGUE ATRAVESSAR A PÉ.", + "MAS VOCÊ PODERIA VOAR POR CIMA DELE,", + "SE VOCÊ TIVESSE UM ZOOMER COM UM ESCUDO DE CALOR.", + "E POR ACASO EU ESTOU TRABALHANDO EM ALGO ASSIM AGORA MESMO", + "EU SÓ PRECISO DE VINTE POWER CELLS PARA TER ENERGIA O BASTANTE", + "PARA SUPORTAR O CALOR DO DESFILADEIRO, NÃO É MESMO, PAPAI?", + "SIM, KEIRA, ISSO PODE FUNCIONAR. MAS COMO UM GAROTO", + "E MEIO!", + "VÃO CONSEGUIR VINTE POWER CELLS?", + "DOS ALDEÕES! A MAIORIA DELES TEM UMA OU DUAS POWER CELL", + "GUARDADA EM ALGUM LUGAR.", + "E MESMO QUE ELES NÃO QUEIRAM SIMPLESMENTE DAR ELAS", + "MOLHAR A MÃO DELES COM ALGUMAS ORBES DE PRECURSOR DEVE RESOLVER.", + "E EU APOSTO QUE DEVE TER AINDA MAIS DELAS POR AÍ APENAS ESPERANDO QUE ALGUM", + "CORAJOSO AVENTUREIRO AS ENCONTRE.", + "BEM, NÓS AO MENOS TEMOS O CORAJOSO AVENTUREIRO.", + "CORAJOSO AVENTUREIRO?", + "VOCÊS DOIS NÃO CONSEGUIRIAM NEM SAIR DA VILA SEM TREINAMENTO", + "ANTES DE QUALQUER COISA, VOCÊS VÃO ENTRAR NO TELEPORTADOR", + "E TREINAR NA GEYSER ROCK .", + "UH, NÃO VAI TER NENHUM ECO NEGRO GOSMENTO LÁ NÉ?", + "PORQUE EU ODIARIA CAIR NELE DE NOVO E TRANSFORMAR EM VOCÊ!", + "VÃO LÁ AGORA! ANTES QUE EU TRANSFORME VOCÊS DOIS EM SAMAMBAIAS" + ], + "sage-intro-sequence-e": [ + "BOM TREINO, MENINOS, MAS ISSO NÃO É NADA COMPARADO AOS DESAFIOS QUE VIRÃO A SEGUIR", + "AH, VAI SER SUAVE. A GENTE TEM A MANHA, NÉ JAK?", + "NÓS ADORARIAMOS CONVERSAR MAIS, VERDÃO, MAS NÓS ERR...", + "ESTAMOS COM SEDE DE AVENTURA.", + "CERTO, CERTO, \"AVENTUREM-SE\" POR AÍ ENTÃO.", + "E ENQUANTO VOCÊS ESTIVEREM \"AVENTURANDO,\" POR QUE NÃO FAZEM ALGO DE ÚTIL?", + "MEUS MALDITOS COLETORES DE ECO VERDE ESTÃO ENTUPIDOS DE NOVO.", + "VÃO PARA O CANTO MAIS AO FUNDO DA PRAIA E LIMPEM ELES, QUE TAL?.", + "SIGAM AS LÂMPADAS, ELAS VÃO TE LEVAR ATÉ ELES.", + "AGORA, TODOS VOCÊS...", + "SUMAM DAQUI!!!" + ], + "sage-introduction-misty-cannon": [ + "OH, SÃO OS HERÓIS CONQUISTADORES.", + "ÓTIMO, EU QUERIA FALAR COM VOCÊS SOBRE ALGO SÉRIO.", + "PARECE HAVER BASTANTE CIRCULAÇÃO DE LURKERS NA ILHA DAS NÉVOAS.", + "EU CONSIGO VÊ-LOS BOMBARDEANDO O ARMAZÉM PRECURSOR PELA MINHA TORRE DE VIGIA.", + "SE OS LURKERS CONSEGUIREM ABRIR E LIBERAR O ECO NEGRO, NÓS PODEMOS", + "ACABAR TENDO QUE ANDAR POR AÍ IGUAL A ESSE PEQUENO ESPÉCIME.", + "JAK, É HORA DE VOCÊ PROVAR O SEU VALOR.", + "PEÇA EMPRESTADO O BARCO DO PESCADOR PARA IR À ILHA DAS NÉVOAS", + "SUBA AO TOPO DO ARMAZÉM PRECURSOR E ACABE COM AQUELE CANHÃO.", + "E... QUANTO A MIM?", + "VOCÊ? POR QUE VOCÊ NÃO PASSA UM PANO NO CHÃO? ELES PARECEM TER PERDIDO O BRILHO." + ], + "sage-reminder-1-ecorocks": [ + "MAS QUE \"CORAJOSOS AVENTUREIROS\" VOCÊS SÃO.", + "JÁ VOLTARAM E NÃO DESENTUPIRAM MEUS COLETORES DE ECO!", + "ELES ESTÃO NO CANTO MAIS DISTANTE DA PRAIA, GAROTOS.", + "AGORA...", + "METAM O PÉ!" + ], + "sage-reminder-1-generic": [ + "O QUE VOCÊS ESTÃO FAZENDO AQUI? VOCÊS TEM POWER CELLS PARA COLETAR!", + "ME DEIXEM SOZINHO... ATÉ VOCÊS PEGAREM ELAS!" + ], + "sage-reminder-1-misty-cannon": [ + "O BOMBARDEAMENTO ESTÁ PIORANDO!", + "ENCONTRE O PESCADOR NA SELVA PROIBIDA, E CONSIGA O BARCO COM ELE", + "E VÁ PARA A ILHA DAS NÉVOAS PARAR AQUELE CANHÃO.", + "E VOCÊ DAXTER, VOCÊ PRECISA LIMPAR O CHÃO. ESSE LUGAR TÁ UMA ZONA!" + ], + "sage-reminder-2-generic": [ + "VOCÊS DOIS NÃO ENTENDEM A GRAVIDADE DA SITUAÇÃO.", + "ISSO É MAIS DO QUE UM GAROTO FICANDO FELPUDO, É SOBRE A VIDA COMO NÓS A CONHECEMOS.", + "AGORA, VÃO LÁ E REALIZEM O SEUS DESTINOS." + ], + "sage-village3-introduction": [ + "OW! EU SEMPRE ME PERGUNTO SE ESTOU PERDENDO PEDAÇOS DO CORPO NESSAS COISAS!", + "SANTA VACA! O LABORATÓRIO DO SÁBIO VERMELHO TÁ PIOR QUE O DO AZUL!", + "BEM, DEFINITIVAMENTE PARECE QUE TEVE UMA BRIGA AQUI.", + "HA HA HA HA HA!", + "EU NÃO DIRIA QUE FOI UMA \"BRIGA\".", + "E VOCÊ, QUERIDA IRMÃ?", + "CERTAMENTE NÃO. O SÁBIO VERMELHO DESISTIU COM TÃO POUCO ESFORÇO.", + "NÃO FOI NEM UM POUCO DIVERTIDO.", + "GOL? É VOCÊ?", + "VOCÊ FINALMENTE CHEGOU NO FUNDO DO POÇO, EH?", + "E, MAIA! EU DISSE QUE O ECO NEGRO IRIA AFETAR VOCÊS DOIS!", + "HNG, NINGUÉM DÁ OUVIDOS AO VELHO SAMOS...", + "O QUE VOCÊS FIZERAM COM OS SÁBIOS AZUL E VERMELHO?", + "NÃO SE PREOCUPE COM SEUS AMIGOS COLORIDOS, SEU VELHO TOLO.", + "ELES ESTÃO PERFEITAMENTE SEGUROS NA NOSSA CIDADELA. SÃO NOSSOS CONVIDADOS ESPECIAIS.", + "ELES GRACIOSAMENTE CONCORDARAM EM NOS AJUDAR EM NOSSO PEQUENO PROJETO.", + "VOCÊ ESTAVA ERRADO, SAMOS. O ECO NEGRO PODE SER CONTROLADO!", + "NÓS DESCOBRIMOS SEUS SEGREDOS, E AGORA PODEMOS REFAZER O MUNDO AO NOSSO GOSTO.", + "NÃO SE PODE CONTROLAR O ECO NEGRO POR CONTA PRÓPRIA, NEM OS PRECURSORES CONSEGUIAM", + "ATÉ AGORA, TIVEMOS QUE NOS VIRAR COM O", + "POUCO QUE ACHÁVAMOS NA SUPERFÍCIE.", + "MAS EM BREVE, TEREMOS ACESSO AS VASTAS RESERVAS", + "DE ECO NEGRO ESCONDIDA NO FUNDO DO SUBSOLO.", + "NÃO OS RESERVATÓRIOS!", + "SIM, OS RESERVATÓRIOS!", + "ELES SERÃO ABERTOS, E TODO ECO NEGRO DO MUNDO SERÁ NOSSO!", + "MAS ISSO É IMPOSSÍVEL! APENAS UM ROBÔ PRECURSOR PODERIA-", + "OH, NÃO FIQUE TÃO CHATEADO, SAMOS.", + "TEMOS GRANDES PLANOS PARA VOCÊ.", + "AH HA HA HA HA HA HA! AH...", + "ESPERA UM MINUTO!", + "AQUELE ERA O GOL?", + "O MESMO GOL QUE DEVERIA ME TRAZER DE VOLTA?", + "GOL É O CARA QUE TÁ TENTANDO NOS MATAR?!", + "TÔ PERDIDO.", + "TALVEZ ESTEJAMOS TODOS PERDIDOS.", + "SE ELES ABRIREM OS RESERVATÓRIOS, O ECO NEGRO IRÁ", + "CORROMPER E DESTRUIR TUDO QUE TOCAR!", + "NÓS PRECISAMOS IR À CIDADELA E IMPEDI-LOS!", + "O CAMINHO MAIS RÁPIDO ATÉ LÁ É PELO TÚNEL DE LAVA", + "NO FUNDO DESSA CRATERA.", + "MAIS ALGUMAS POWER CELLS E O ESCUDO DE CALOR DO ZOOMER", + "DEVE TE LEVAR ATÉ O OUTRO LADO EM SEGURANÇA.", + "TÁ CERTO, MEU GAROTO. VOCÊ SABE O QUE FAZER.", + "PEGUE ESSE SACO DE PULGA E VÁ BUSCAR MAIS POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "PELAS GRANDES BOLAS DE ECO!", + "PARECE TER UMA GRANDE PRESENÇA LURKER NA CAVERNA DAS ARANHAS!", + "ÓTIMO, PARECE SER UM LUGAR SUPER ALEGRE.", + "DEIXA EU ADIVINHAR. TEM ARANHAS NA CAVERNA DAS ARANHAS, NÉ?", + "É CLARO QUE TEM ARANHAS NA CAVERNA DAS ARANHAS!", + "MAS ESSE É O MENOR DOS PROBLEMAS!", + "OS LURKERS ESTÃO ATRÁS DE CRISTAIS DE ECO NEGRO CONCENTRADO.", + "VOCÊS PRECISAM DESTRUIR OS CRISTAIS ANTES QUE", + "OS MONSTROS CONSIGAM LEVÁ-LOS!", + "É PRA ONTEM!" + ], + "sage-village3-introduction-rams": [ + "QUE BOM QUE VOCÊS DOIS ESTÃO AQUI, HÁ UMA MOVIMENTAÇÃO LURKER NAS MONTANHAS.", + "PARECE QUE ELES ACHARAM E AGORA ESTÃO TENTANDO LEVAR,", + "ALGUMS TANQUES DE ECO NEGRO CONGELADOS NAS GELEIRAS.", + "QUANDO ESTIVEREM LÁ RODANDO ATRÁS DE POWER CELLS, IMPEÇAM OS LURKERS,", + "E TIREM MAIS UM POUCO DE ECO NEGRO DA MÃO DO GOL." + ], + "sage-village3-reminder-1-dark-eco": [ + "VOCÊ PRECISA DESTRUIR OS CRISTAIS DE ECO NEGRO NA CAVERNA DAS ARANHAS!" + ], + "sage-village3-reminder-1-rams": [ + "NÃO PODEMOS DEIXAR OS LURKERS BOTAREM AS MÃOS NOS TANQUES DE ECO.", + "SUBA NAQUELES PICOS NEVADOS E IMPEÇA-OS!" + ], + "sculptor-introduction": [ + "EI... CARINHA PELUDO!", + "AWW... POR UM MINUTO EU ACHEI QUE VOCÊ FOSSE MINHA MUSA.", + "SUA O QUE?", + "VOCÊ NUNCA VIU MINHA MUSA ANTES?", + "É UM PEQUENO ESQUILO BRILHANTE MAIS OU MENOS DO SEU TAMANHO, BEM VALENTE E SERELEPE!", + "OH, ENTENDI, TIPO UM COMPANHEIRO.", + "E NA VERDADE, SEM MINHA MUSA, NÃO CONSIGO ESCULPIR.", + "MAS COM ELA EM VOLTA... EU VEJO BELEZA EM TUDO, SABE?", + "AGORA EU NÃO CONSIGO ESCULPIR NEM UMA CAIXA.", + "EU ACHO QUE ELA FUGIU PRA AQUELA ILHA DAS NÉVOAS.", + "AWW, SÓ ESPERO QUE ELA ESTEJA BEM.", + "TRAZER ELA DE VOLTA SERIA DIGNO DE UMA POWER CELL!", + "ESPERA UM MINUTO, NÓS NÃO VAMOS VOLTAR PARA ILHA DAS NÉVOAS!", + "VAMOS?" + ], + "sculptor-reminder-1": [ + "AW EAE CARAS, VOCÊS JÁ ACHARAM MINHA MUSA?" + ], + "sculptor-resolution": [ + "OH, MINHA MUSA, VOCÊS A SALVARAM, AW, VOCÊS SÃO OS MELHORES", + "AQUI, FIQUEM COM ESSA POWER CELL, NÃO PRECISO DELA AGORA QUE TENHO MINHA INSPIRAÇÃO!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUEM SUAS BUSCAS POR ARTEFATOS E ECO.", + "SE OS HABITANTES TIVEREM ITENS PRECURSORES, VOCÊS SABEM O QUE FAZER.", + "ATAQUEM QUALQUER UM QUE TENTAR SAIR DA VILA.", + "NÓS VAMOS ATACÁ-LOS NA HORA CERTA." + ], + "sidekick-human-intro-sequence-c": [ + "O QUE ESTAMOS FAZENDO AQUI, JAK? ESSE LUGAR DÁ MO MEDO!", + "HUH?", + "PORCARIA PRECURSOR IDIOTA!", + "EEK! QUE LAMA NEGRA É ESSA? NÃO PARECE MUITO AMIGÁVEL.", + "O SÁBIO FALA TODA HORA SOBRE OS PRECURSORES QUE CONSTRUÍRAM ESSE LUGAR.", + "\"ONDE ELES FORAM? POR QUE ELES CONSTRUÍRAM ESSE BAGULHO?\"", + "OLHA EU GOSTO DE ORBES PRECURSORAS E POWER CELLS IGUAL A TODO MUNDO", + "MAS SE QUER SABER, EU ACHO QUE ELES ERAM UNS TROUXAS.", + "WHOA! COMO VOCÊ FEZ ISSO?", + "JAK, EU ACHO QUE DEU RUIM!", + "NOSSA, ISSO ARDEU.", + "EU TE FALEI QUE A GENTE NÃO DEVIA TER VINDO AQUI, E TU NÃO QUIS SABER", + "O QUE?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. EU TÔ BEM, EU TÔ BEM...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MINHA CABEÇA DÓI.", + "EU DUVIDO QUE ELA SEJA UM DOS SEUS ÓRGÃOS VITAIS!", + "SAI DESSA, CARA DURÃO!", + "OH, CLARO, EU JÁ FUI DURÃO.", + "TALVEZ O MAIS DURÃO QUE HÁ.", + "EU DEFENDI A VILA SOZINHO DAQUELAS TERRÍVEIS CRIATURAS POR QUASE UM ANO!", + "E ENTÃO, AQUELE MONSTRO HORRENDO APARECEU E COMEÇOU OS BOMBARDEIOS.", + "ENTÃO, CHEIO DE HONRA, COM A ARMADURA BRILHANDO AO SOL...", + "EU ESCALEI A COLINA PARA PEGÁ-LO...!", + "MAS ELE ME SURROU COMO SE ESTIVESSE AMACIANDO UM BIFE.", + "JÁ TENTOU ATACÁ-LO COM SEU MELODRAMA?", + "PORQUE ESTÁ QUASE ME MATANDO!", + "APÓS A MINHA ESPANTOSA DERROTA,", + "ELE SELOU O CAMINHO ATÉ ELE COM UMA PEDRA DE 30 TONELADAS,", + "IMPEDINDO QUE QUALQUER UM POSSA DESAFIÁ-LO NOVAMENTE.", + "E ENTÃO, NOSSO SÁBIO, UM MESTRE DO ECO AZUL E GÊNIO DA MECÂNICA, CRIOU UMA MÁQUINA", + "CAPAZ DE LEVANTAR A PEDRA PARA FORA DO CAMINHO...!", + "MAS ELE SUMIU ANTES DE TER A CHANCE DE LIGÁ-LA.", + "E LEVOU TODAS AS SUAS POWER CELLS COM ELE.", + "EU AO MENOS FUI CAPAZ DE ESPALHAR AS PONTES O BASTANTE PARA EVITAR", + "QUE AQUELE MONSTRO DESÇA AQUI E ME MACHUQUE.", + "YEAH, BOM, BOM TRABALHO, CARA DURÃO. MAS, UM...", + "NÓS VAMOS PRECISAR QUE VOCÊ, UH... COLOQUE ELAS NO LUGAR E TAL.", + "OH, CLARO! E ME CONDENAR?", + "(CHORA)", + "TÁ CERTO. TUDO BEM.", + "ME TRAGA 90 ORBES PRECURSORAS E EU ALINHO AS PONTES.", + "MAS EU NÃO VOU LUTAR COM AQUELE MONSTRO DE NOVO!" + ], + "warrior-reminder-1": [ + "PODE LEVAR TODO TEMPO DO MUNDO PRA ME TRAZER AQUELAS ORBES", + "EU NÃO QUERO ALINHAR ESSAS PONTES TÃO CEDO." + ], + "warrior-resolution": [ + "OH.", + "MARAVILHA.", + "VOCÊS ME TROUXERAM AS ORBES PRECURSORAS. (CHORA)", + "TÁ CERTO.", + "VOU CONSERTAR AS PONTES.", + "MAS NÃO PEÇA PARA EU ME ENCONTRAR COM AQUELA CRIATURA DE NOVO!" + ], + "yellowsage-resolution": [ + "QUEM DIRIA QUE EU VIVERIA PRA VER O DIA", + "QUE EU PRECISARIA SER RESGATADO POR UM GAROTO E SUA RATAZANA!", + "(SUSPIRA) GOL E MAIA", + "VÃO PAGAR POR ESSE CONSTRANGIMENTO!", + "E ENTÃO VAMOS COZINHAR BIFE DE RATAZANA...", + "(MEDO)" + ] + }, + "hints": { + "ASSTLP02": [ + "TENHO QUE FAZER ESSE ESCUDO FUNCIONAR..." + ], + "ASSTLP03": [ + "NÓS PRECISAMOS DE MAIS POWER CELLS PRA ENERGIZA-LO..." + ], + "ASSTLP04": [ + "CADÊ A MINHA CHAVE INGLESA?" + ], + "ASSTLP05": [ + "O DESFILADEIRO DE FOGO É TÃO QUENTE..." + ], + "ASSTLP23": [ + "AGORA, COMO ELE FEZ AQUELE LEVITADOR FUNCIONAR?" + ], + "ASSTLP24": [ + "AGORA, MESMO COM AS POWER CELLS,", + "TEREMOS ENERGIA O BASTANTE?" + ], + "ASSTLP30": [ + "HM, DEIXA EU VER..." + ], + "ASSTLP32": [ + "OH, MINHA NOSSA..." + ], + "ASSTLP34": [ + "HUH... O QUE GOL E MAIA ESTÃO TRAMANDO?" + ], + "ASSTLP35": [ + "HMM... TEMOS QUE CHEGAR À CIDADE PRECURSOR." + ], + "ASSTLP36": [ + "HUH. O ESCUDO DE CALOR VAI PRECISAR DE AINDA MAIS ENERGIA", + "PRA SUPORTAR A LAVA." + ], + "ASSTLP37": [ + "AW... TEMOS QUE SALVAR OS SÁBIOS..." + ], + "BIL-AM01": [ + "EU AMO A LAMA." + ], + "BIL-AM02": [ + "MARDITOS RATOS DE PÂNTANO." + ], + "BIL-AM03": [ + "EU PRECISO DUMA BOA GOLADA DO REMÉDIO DA MAINHA." + ], + "BIL-AM04": [ + "GLADÍOLO." + ], + "BIL-AM05": [ + "EU PRECISO DUM CHIMARRÃO." + ], + "BIL-AM06": [ + "EU PRECISO DE UM REFRESCO." + ], + "BIL-AM07": [ + "MARDIÇÃO, ESSE CALOR TÁ ME DANDO COCEIRA." + ], + "BIL-AM08": [ + "DROGA... ESSE CALOR TÁ ME ARDENO TODO." + ], + "BIL-AM1A": [ + "MM-MM! EU ADORO A LAMA!" + ], + "BIL-AM2A": [ + "MARDITOS RATOS DE PÂNTANO!" + ], + "BIL-AM2B": [ + "MARDITOS RATIN DE PÂNTANO!" + ], + "BIL-LO01": [ + "PEIDINHO!" + ], + "BIL-LO1A": [ + "PEIDINHO!" + ], + "BIL-TA01": [ + "PEGA ELES!" + ], + "BIL-TA02": [ + "BOM TIRO!" + ], + "BIL-TA03": [ + "BEM ALI!" + ], + "BIL-TA04": [ + "AW, DROGA." + ], + "BIL-TA05": [ + "O RATO CATOU UM LANCHINHO." + ], + "BIL-TA06": [ + "E MAIS UM..." + ], + "BIL-TA07": [ + "SÓ TEM MAIS UM..." + ], + "BIL-TA08": [ + "PEGOU ELE." + ], + "BIL-TA1A": [ + "PEGA ELES!" + ], + "BIL-TA2A": [ + "BOM TIRO!" + ], + "BIL-TA3A": [ + "POR ALI." + ], + "BIL-TA4A": [ + "DROGA!" + ], + "BIL-TA4B": [ + "DROGA!" + ], + "BIL-TA5A": [ + "O RATO LEVOU UM LANCHINHO!" + ], + "BIR-AM01": [ + "VOCÊS JÁ ESTÃO PERTO DO OVO?" + ], + "BIR-AM02": [ + "ISSO AÍ, SÓ MAIS UM POUCO!" + ], + "BIR-AM03": [ + "OH, BOM, AGORA EMPURRE. OH, COM CUIDADO!" + ], + "BIR-AM04": [ + "OH, NOSSA, ISSO NÃO FOI CUIDADOSO" + ], + "BIR-AM05": [ + "VAMOS LÁ, EMPURRE O OVO DO PENHASCO!" + ], + "BIR-AM07": [ + "OH, AQUI, PASSARIN PASSARIN. AQUI, PASSARIN PASSARIN." + ], + "BIR-AM08": [ + "AQUI, PASSARIN PASSARIN." + ], + "BIR-AM09": [ + "CUIDADO, É PERIGOSO AÍ NO ALTO!" + ], + "BIR-AM10": [ + "CUIDADO, DE LEVE JÁ BASTA!" + ], + "BIR-AM11": [ + "BOM TRABALHO! AGORA ME ENCONTRE AQUI NO OVO." + ], + "BIR-AM12": [ + "VOCÊ DEVE SER UM VERDADEIRO AMANTE DOS ANIMAIS!" + ], + "BIR-AM13": [ + "VOCÊ VIU ALGUM OUTRO PÁSSARO LÁ EM CIMA?" + ], + "BIR-LO01": [ + "(BEIJO) (ASSOBIO)" + ], + "BIR-LO02": [ + "OH NOSSA, ESSE É UM LINDO." + ], + "BIR-LO03": [ + "OH OLHA, É UM MUCKY-MUCK." + ], + "BIR-am08": [ + "AQUI, PASSARIN PASSARIN..." + ], + "BLU-AM01": [ + "UMA AJUDINHA SERIA BOM!" + ], + "BLU-AM02": [ + "OH, MAS QUE CONFUSÃO." + ], + "BLU-AM03": [ + "HMM, ESTAMOS DIANTE DE UM DILEMA DE FATO." + ], + "CHI-AM01": [ + "ISSO É UMA CATÁSTROFE, UMA CATÁSTROFE ESTOU DIZENDO!" + ], + "CHI-AM02": [ + "ELES QUEREM QUE EU VÁ PARA A SELVA - EU! HO HO OH...", + "EU PREFIRO LUTAR COM UM FLUT-FLUT RAIVOSO." + ], + "CHI-AM03": [ + "...PRIMEIRO O BARCO DO PESCADOR,", + "(GAGUEJA) É ATACADO POR UM MONSTRO...", + "E AGORA, E AGORA ISSO...", + "O QUE MAIS PODE DAR ERRADO?" + ], + "CHI-AM04": [ + "EU NÃO... EU, E-EU... OOH, TALVEZ EU DEVESSE AUMENTAR", + "OS IMPOSTOS PARA RESOLVER ISSO." + ], + "CHI-AM05": [ + "PROBLEMAS... PROBLEMAS... PROBLEMAS!" + ], + "CHI-AM06": [ + "EU NUNCA SEREI REELEITO AGORA..." + ], + "CHI-AM07": [ + "O QUE HOUVE COM O RAIO DE ENERGIA DA VILA?" + ], + "CHI-AM08": [ + "EU... ELES, EU NÃO... (GAGUEJA)" + ], + "CHI-LO01": [ + "...MOINHO DE VENTO, MONSTROS, PODER, REELEIÇÃO..." + ], + "CHI-LO02": [ + "...AS PESQUISAS, EU... MONSTROS, HM... REELEIÇÃO, OH..." + ], + "EXP-AM01": [ + "EU PRECISO SAIR LOGO EM MINHA JORNADA,", + "PRECISO DE ORBES PRECURSORAS!" + ], + "EXP-AM02": [ + "VAMOS VER, ONDE EU DEVO IR PRIMEIRO? EH..." + ], + "EXP-AM03": [ + "QUE SAUDADE DE PEGAR A ESTRADA." + ], + "EXP-AM04": [ + "TANTOS LUGARES PARA IR, E TÃO POUCO TEMPO." + ], + "EXP-AM05": [ + "BEM, NA MINHA ÉPOCA, VOCÊ PODIA ANDAR", + "POR AÍ SEM SER ATACADO POR MONSTROS!" + ], + "EXP-LO02": [ + "EU PRECISO DE MAIS ORBES PRECURSORAS." + ], + "EXP-LO1A": [ + "(MURMURO)" + ], + "FAR-AM01": [ + "(RONCA) AQUI, BESSIE... AQUI, BESSIE, BESSIE...", + "QUEM É UMA BOA MENINA..." + ], + "FAR-AM02": [ + "TENHO QUE COLHER ANTES DOS BESOUROS DE JUNHO..." + ], + "FAR-AM2A": [ + "TENHO QUE COLHER ANTES QUE OS BESOUROS DE JUNHO CONSIGAM..." + ], + "FAR-LO01": [ + "(RONCA)" + ], + "FAR-LO1A": [ + "(RONCA)" + ], + "FIS-AM01": [ + "GRR, SAS DROGA DE PEIXE...", + "NUM CONSIGO PEGAR UM SÓ." + ], + "FIS-AM02": [ + "ESSES MONSTRO MORDERAM MEU BARCO,", + "VÃO ME QUEBRAR." + ], + "FIS-AM03": [ + "DROGA, ESTAS PESTES!", + "PRA MINHA CESTA, MALDITOS PEIXES! VENHAM!...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH EU AMO O CHEIRO DE PEIXE DE MANHÃ." + ], + "FIS-AM05": [ + "OOH QUERIA UM PEIXE BEM SALGADINHO NO PÃO." + ], + "FIS-AM06": [ + "AINDA TÔ PENSANDO NO GRANDÃO QUE MI ESCAPOU..." + ], + "FIS-LO04": [ + "MALDITOS PEIXES... NUM ENTRAM NA MINHA REDE!" + ], + "FIS-TA01": [ + "PRA ESQUERDA!" + ], + "FIS-TA02": [ + "VIRA PRA DIREITA!" + ], + "FIS-TA03": [ + "LÁ VEM UM GRANDÃO!" + ], + "FIS-TA04": [ + "TU PERDEU UM PESADO AMIGÃO!" + ], + "FIS-TA05": [ + "NUM ME PERDE MAIS UM ASSIM NÃO!" + ], + "FIS-TA06": [ + "FIRME GAROTO." + ], + "FIS-TA07": [ + "SUAS VELAS TÃO BALANÇANDO AO VENTO, GAROTO." + ], + "FIS-TA08": [ + "ESCAPOU." + ], + "FIS-TA09": [ + "PARECE QUE OCÊ PRECISA DE UMA REDE MAIOR..." + ], + "FIS-TA10": [ + "FUGIU DE NOVO!" + ], + "FIS-TA11": [ + "SEGURA FIRME! TÁ QUASE LÁ..." + ], + "FIS-TA1A": [ + "ESQUERDA!" + ], + "FIS-TA2A": [ + "DIREITA!" + ], + "GAM-AM01": [ + "EI, UMA CHANCE DE 20 PRA UM NÃO É NADA MAL!" + ], + "GAM-AM02": [ + "NÃO, ERA GARANTIDO!" + ], + "GAM-AM03": [ + "HEH HEH HEH... EU VOU ENCHER OS BOLSOS DA PRÓXIMA!" + ], + "GAM-AM04": [ + "HEH! SE EU TIVESSE UMA ORBE PARA CADA OPORTUNIDADE PERDIDA..." + ], + "GAM-AM05": [ + "HEY! BARRIS PODEM VOLTAR A MODA!" + ], + "GAM-AM06": [ + "OH... EU PRECISO DAR SORTE." + ], + "GAM-AM07": [ + "AW, QUAIS AS CHANCES DE EU ME MUDAR PARA UMA VILA SOB ATAQUE?" + ], + "GAM-AM08": [ + "EU ACHAVA QUE TINHA UMA BOA DICA!" + ], + "GAM-AM09": [ + "MAIS UM DIA, MAIS UM JOGO." + ], + "GAM-AM10": [ + "APOSTO QUE NINGUÉM DERRUBA AQUELE MONSTRO." + ], + "GAM-AM11": [ + "HUH-HUH... EU DEVIA SACAR A GRANA E SEGUIR A VIDA." + ], + "GAM-AM12": [ + "EH, AS VEZES NÃO DÁ PRA GANHAR." + ], + "GAM-AM13": [ + "EI, TÁ RINDO DO QUE? VOCÊ NÃO VAI COM A MINHA CARA?" + ], + "GEO-AM01": [ + "MM, DADOS INTERESSANTES..." + ], + "GEO-AM02": [ + "POBRES TOUPEIRINHAS..." + ], + "GEO-AM03": [ + "INTERESSANTE..." + ], + "GEO-AM04": [ + "BOA SORTE, MENINOS!" + ], + "GEO-AM05": [ + "LURKERS MALDITOS..." + ], + "GEO-AM06": [ + "PEDRAS TAMBÉM TEM SENTIMENTOS..." + ], + "GEO-AM07": [ + "AGUENTEM FIRME, PEQUENINOS..." + ], + "GEO-AM08": [ + "AGORA POSSO VOLTAR À MINHA PESQUISA!" + ], + "GEO-LO01": [ + "TENHO QUE VOLTAR À MINHA PESQUISA." + ], + "GEO-LO02": [ + "HM, ESSA PEDRA É BEM ANTIGA..." + ], + "GOL-AM01": [ + "VOCÊ SÓ NÃO DESISTE, NÃO É?" + ], + "GOL-AM02": [ + "EM BREVE, O ECO NEGRO SERÁ NOSSO!" + ], + "GOL-AM03": [ + "ACABE COM ELES!" + ], + "GOL-AM04": [ + "FOGO!" + ], + "GOL-AM05": [ + "EXPLODA ELES!" + ], + "GOL-AM06": [ + "O QUE? ELES DE NOVO!" + ], + "GOL-AM07": [ + "É TARDE DEMAIS!" + ], + "GOL-AM08": [ + "VOCÊS SÃO MEUS!" + ], + "GOL-AM09": [ + "TE PEGUEI AGORA!" + ], + "GOL-AM11": [ + "SEM PIEDADE!" + ], + "GOL-AM12": [ + "TOMA ISSO!" + ], + "GOL-AM13": [ + "BOA TENTATIVA!" + ], + "GOL-AM14": [ + "FIQUE PARADO!" + ], + "GOL-AM15": [ + "PATÉTICO!" + ], + "GOL-AM16": [ + "NÃOOO!" + ], + "GOL-AM18": [ + "VAMOS ABRIR O RESERVATÓRIO TOTALMENTE E DESTRUIR VOCÊS!" + ], + "GOL-AM19": [ + "ECO LUMINOSO! ELE EXISTE MESMO!" + ], + "GOL-AM20": [ + "VAMOS PEGÁ-LO!" + ], + "MAI-AM01": [ + "ACABE COM ELES DOIS DE UMA VEZ POR TODAS!" + ], + "MAI-AM02": [ + "ACABA COM ELES!" + ], + "MAI-AM04": [ + "ECO NÃO VAI TE PROTEGER AGORA!" + ], + "MAI-AM05": [ + "FAÇA ALGUMA COISA!" + ], + "MAI-AM07": [ + "NÃOOOOO!" + ], + "MAI-AM08": [ + "VAMOS ABRIR O RESERVATÓRIO E DESTRUIR VOCÊS!" + ], + "MAI-AM09": [ + "ELES NÃO PODEM PEGÁ-LO!" + ], + "MIN-LO01": [ + "UM DIA DESSES SEREI RICO...", + "VOCÊ QUER DIZER NÓS SEREMOS RICOS!", + "YEAH. TANTO FAZ." + ], + "MIN-LO03": [ + "CAVE, WILLARD! CAVE!", + "YEAH, MAS VOCÊ NÃO ESTÁ CAVANDO!", + "É PORQUE EU ESTOU PENSANDO!" + ], + "MIN-LO04": [ + "DUH, GORDY? POSSO DAR UM DESCANSO?", + "OH, PODE DEIXAR QUE EU TE BOTO PRA DORMIR, AGORA CAVE!" + ], + "MIN-LO05": [ + "TÔ MORRENDO DE FOME, GORDY!", + "COMA SEU PÁSSARO!" + ], + "MIN-LO06": [ + "DUH, GORDY? EU PRECISO DE UMA PICARETA AFIADA.", + "VOCÊ PRECISA É DE UM CÉREBRO AFIADO!" + ], + "MSH-AM01": [ + "(RI) EU VOU SER RICO!" + ], + "MSH-AM02": [ + "CAVA, CAVA, CAVA!" + ], + "MSH-AM03": [ + "WILLARD! TRABALHE COM AS MÃOS, NÃO COM A CABEÇA!" + ], + "MSH-AM04": [ + "(RI) EU VOU SER O HOMEM MAIS RICO DO MUNDO! (RI)" + ], + "MSH-AM05": [ + "OH HO HO! NINGUÉM NUNCA VIU UMA GEMA DESSE TAMANHO! AH HA HA!" + ], + "MSH-AM06": [ + "VIDA FÁCIL, AQUI VOU EU!" + ], + "MSH-AM07": [ + "MINHAS GEMAS! TODAS MINHAS!" + ], + "MSH-AM09": [ + "(RINDO) MAL POSSO ESPERAR PRA SACAR ESSE BEBÊZINHO! (RI)" + ], + "MSH-AM10": [ + "PARECE SER UM RARO CRISTITE ZLARCONIA! (RI)" + ], + "MSH-AM11": [ + "PERA UM POUCO, ELAS SÃO TODAS MINHAS TÔ TE FALANDO!" + ], + "MSH-AM12": [ + "E ENTÃO, WILLARD. O QUE VOCÊ VAI FAZER COM", + "O SEU QUARTO DA SUA METADE?" + ], + "MSH-AM1A": [ + "EU VOU SER RICO!" + ], + "MSH-AM2A": [ + "CAVA, CAVA, CAVA!" + ], + "MSH-AM3A": [ + "TRABALHE COM AS MÃOS, NÃO COM A CABEÇA!" + ], + "MTA-AM01": [ + "DUH, ESTAMOS PERTO?" + ], + "MTA-AM02": [ + "JESUS, DÁ PRA DAR UM INTERVALO?" + ], + "MTA-AM03": [ + "AWW, TÔ COM FOME..." + ], + "MTA-AM04": [ + "DUH... ACHO QUE A GAIOLA DO PASSARINHO PRECISA SER LAVADA..." + ], + "MTA-AM05": [ + "JESUS, QUE GEMA TERRIVELMENTE GRANDE!" + ], + "MTA-AM06": [ + "DUH... EU SEMPRE QUIS SER UM LENHADOR..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMETEU ME DAR METADE DO QUE EU PUDER CARREGAR!" + ], + "MTA-AM08": [ + "EH HEH... PASSARINHO É O MEU MELHOR AMIGO..." + ], + "MTA-AM09": [ + "EU AMO O MEU PEQUENO PASSARINHO..." + ], + "RED-AM01": [ + "TEM ALGUÉM AÍ?" + ], + "RED-AM02": [ + "BEM..." + ], + "RED-AM03": [ + "DEMOROU POR QUÊ?" + ], + "SAGELP03": [ + "ESSES DOIS NÃO CONSEGUEM ABRIR OS OUVIDOS..." + ], + "SAGELP04": [ + "ELE NUNCA VAI SER IGUAL AO TIO DELE...", + "EU NÃO LIGO PARA O QUE OS OUTROS DIGAM." + ], + "SAGELP05": [ + "OLÁ, SÁBIO AZUL? OLÁ?", + "ONDE DIABOS ELE PODE ESTAR?..." + ], + "SAGELP06": [ + "MINHA NOSSA..." + ], + "SAGELP11": [ + "ALGUÉM? QUALQUER UM? APAREÇA" + ], + "SAGELP21": [ + "OS LURKERS PRECISAM SER IMPEDIDOS." + ], + "SAGELP22": [ + "ENTENDO..." + ], + "SAGELP23": [ + "NÃO..." + ], + "SAGELP24": [ + "O QUE PODE TER ACONTECIDO COM ELES?" + ], + "SAGELP31": [ + "ISSO NÃO É BOM." + ], + "SAGELP32": [ + "CRISTAIS DE ECO NEGRO?" + ], + "SAGELP33": [ + "MAIA E GOL PERDERAM A CABEÇA!" + ], + "SAGELP34": [ + "HNG, O PODER DO ECO NEGRO NÃO PODE SER CONTROLADO!" + ], + "SAGELP35": [ + "ECO NEGRO NAS GELEIRAS?" + ], + "SAGELP36": [ + "AH! TEM TROPAS LURKERS NAS MONTANHAS!" + ], + "SAGELP37": [ + "O QUE GOL ESTÁ PLANEJANDO..." + ], + "SAGELP38": [ + "SERÁ QUE ELE REALMENTE PODE...?" + ], + "SCU-AM01": [ + "AW... EU SÓ NÃO CONSIGO MAIS." + ], + "SCU-AM02": [ + "AW, QUERIA TER ALGUMA INSPIRAÇÃO." + ], + "SCU-AM03": [ + "ESTOU TÃO INSPIRADO QUANTO... ESSA PEDRA." + ], + "SCU-AM04": [ + "AW... CADÊ A MINHA MUSA?" + ], + "SCU-AM05": [ + "NÃO CONSIGO TRABALHAR ASSIM!" + ], + "SCU-AM06": [ + "AH CARA... SERÁ QUE ELA VAI UM DIA VOLTAR PRA MIM?" + ], + "SCU-LO01": [ + "AH CARA..." + ], + "SKSP009F": [ + "TOMA! TOMA! HA HA HA!" + ], + "WAR-LO1A": [ + "(CHORANDO)" + ], + "WAR-LO1B": [ + "(SOLUÇO)" + ], + "WAR-LO1C": [ + "(ASSOA O NARIZ)", + "(CONTINUA CHORANDO)" + ], + "YEL-AM01": [ + "O TEMPO TÁ ACABANDO!" + ], + "YEL-AM02": [ + "HEY! ME TIRA DAQUI!" + ], + "YEL-AM03": [ + "QUANDO EU SAIR DAQUI, VAI ROLAR UM TIROTEIO!" + ], + "asstv100": [ + "OKAY, VOCÊ TEM CELLS O BASTANTE PARA AUMENTAR O PODER DO ESCUDO DE CALOR.", + "SIGAM O TRILHO DO CARRINHO AO LADO DO ELEVADOR.", + "TE ENCONTRO NA ENTRADA DO TÚNEL DE LAVA,", + "PARA QUE EU POSSA MODIFICAR O ZOOMER, CORRA!" + ], + "asstv101": [ + "HAHA, OKAY! VOCÊ TEM POWER CELLS O BASTANTE", + "PARA MELHORAR O ESCUDO DE CALOR.", + "ME ENCONTRE NA CRATERA VULCÂNICA.", + "VOU ESTAR TE ESPERANDO NO TÚNEL DE LAVA, AO FINAL DOS TRILHOS DO LADO DO ELEVADOR.", + "LEVE AS POWER CELLS!" + ], + "asstv102": [ + "SE APRESSE COM ESSAS POWER CELLS!", + "EU ESTOU ESPERANDO AO FINAL DOS TRILHOS AO LADO DO ELEVADOR." + ], + "asstv103": [ + "NÃO ESQUEÇA DE LIGAR O TELEPORTADOR PARA A GENTE.", + "VOCÊ PRECISA IR AO LABORATÓRIO DO SÁBIO VERMELHO", + "NO CENTRO DA CRATERA VULCÂNICA PARA LIGÁ-LO.", + "NÃO PODEMOS ATRAVESSAR ENQUANTO NÃO ESTIVER LIGADO." + ], + "asstv104": [ + "HEY, AINDA ESTAMOS NA VILA DA PEDRA!", + "LIGUE O TELEPORTADOR!" + ], + "asstv105": [ + "QUEREMOS NOS JUNTAR A VOCÊ NA CRATERA VULCÂNICA!", + "VÁ PARA O LABORATÓRIO DO SÁBIO VERMELHO E LIGUE O PORTAL." + ], + "asstva73": [ + "EI RAPAZES! PELOS MEUS CÁLCULOS, VAMOS PRECISAR DE", + "72 POWER CELLS PARA O ESCUDO DE CALOR", + "AGUENTAR A LAVA NO CAMINHO ATÉ A CIDADELA DE GOL E MAIA." + ], + "asstva74": [ + "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA ATRAVESSAR ESSA LAVA!", + "VOCÊ NÃO CONSEGUE IR ATÉ A CIDADELA DE GOL E MAIA", + "ENQUANTO NÃO COLETAR 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, TU VIU ISSO?", + "FONTES DE ECO AZUL FORAM ATIVADAS EM TODO O MUNDO!", + "EU SABIA QUE DAVA PRA LIGAR ELAS.", + "DEVE TER LUGARES PARA LIGAR AS OUTRAS FONTES TAMBÉM." + ], + "asstvb03": [ + "ÓTIMO, VOCÊS ACABARAM COM OS LURKERS LANÇADORES DE MINA!", + "ELES VINHAM AMEAÇANDO AS ÁGUAS EM VOLTA DA VILA HÁ SEMANAS.", + "TRAGA O ZOOMBER DE VOLTA AO TRANS-PAD E EU VOU TELEPORTA-LO DE VOLTA." + ], + "asstvb04": [ + "ÓTIMO, VOCÊS PEGARAM POWER CELLS SUFICIENTES PARA O ESCUDO DE CALOR, ME ENCONTREM", + "NA ENTRADA DO DESFILADEIRO DE FOGO,", + "SUBINDO O PENHASCO ATRÁS DA CASA DO FAZENDEIRO.", + "TRAGAM AS POWER CELLS RÁPIDO!", + "MEU PAI DISSE QUE VIU MAIS LURKERS POR AÍ" + ], + "asstvb08": [ + "TRAGAM LOGO AS POWER CELLS,", + "ESTOU ESPERANDO NA ENTRADA DO DESFILADEIRO DE FOGO", + "NO TOPO DO PENHASCO ATRÁS DA CASA DO FAZENDEIRO" + ], + "asstvb09": [ + "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA CARREGAR O ESCUDO.", + "VOCÊ NÃO CONSEGUE PASSAR ANTES DE PEGAR POWER CELLS SUFICIENTES." + ], + "asstvb20": [ + "BOM VÔO! ESSES LURKERS NÃO ERAM PÁREOS PARA SEU ZOOMER!", + "AÍ ESTÁ, MAIS UMA POWER CELL!" + ], + "asstvb21": [ + "BOM TRABALHO! VOCÊS NÃO ESTÃO", + "FELIZES DE SALVAR NOSSA PEQUENA AMIGA FLUT-FLUT?", + "ELA PODE SER ÚTIL NOVAMENTE.", + "AGORA, VOLTEM AO TRANS-PAD, E EU VOU LEVAR ELA PARA CASA." + ], + "asstvb22": [ + "WOW! VOCÊS TROUXERAM UMA PARTE DAS RUÍNAS SUBAQUÁTICAS PARA A SUPERFÍCIE!", + "PARECE QUE VOCÊ PODE USAR O ECO DE FORMAS NUNCA ANTES VISTAS!", + "UMA POWER CELL EMERGIU DA CAPSULA. SUBA LÁ E PEGUE ELA." + ], + "asstvb23": [ + "ÓTIMO TRABALHO! TODOS DA VILA DA PEDRA", + "ESTÃO SUSPIRANDO ALIVIADOS!", + "MAS NÃO HÁ TEMPO PARA COMEMORAR, USE O ZOOMER", + "PARA NAVEGAR PELA PASSAGEM DA MONTANHA.", + "TOME CUIDADO! PARECE QUE OS LURKERS ARMARAM", + "EXPLOSIVOS NA PASSAGEM TODA!", + "CHEGANDO NA CRATERA VULCÂNICA,", + "VÁ PARA O LABORATÓRIO DO SÁBIO VERMELHO", + "E ATIVE O TELEPORTADOR PARA QUE EU E O PAPAI POSSAMOS CHEGAR ATÉ VOCÊ." + ], + "asstvb24": [ + "MINHA NOSSA! ESSES LURKERS DEVEM ESTAR INDO", + "PARA O DETONADOR NO FINAL DA PASSAGEM!", + "SE ELES CHEGAREM ANTES DE VOCÊ,", + "ELES VÃO EXPLODIR A PASSAGEM TODA!", + "VOCÊ PRECISA SER MAIS RÁPIDO E DESTRUIR O DETONADOR,", + "OU ESTÁ TUDO ACABADO!" + ], + "asstvb25": [ + "BOM TRABALHO! VOCÊS VENCERAM ELES ATÉ O DETONADOR!", + "O LABORATÓRIO DO SÁBIO VERMELHO É LOGO EM FRENTE,", + "LIGUE O TELEPORTADOR PARA NÓS." + ], + "asstvb28": [ + "EI! NÃO ESQUEÇA DO SÁBIO E EU!", + "VOCÊ TEM QUE LIGAR O TELEPORTADOR PARA A GENTE PASSAR!", + "ESTÁ NO LABORATÓRIO DO SÁBIO AZUL, NO FINAL DO DESFILADEIRO DE FOGO.", + "SE NÃO PASSARMOS, NÃO PODEMOS TE AJUDAR!" + ], + "asstvb29": [ + "EI! AINDA ESTAMOS ESPERANDO!", + "LIGUE O TELEPORTADOR!" + ], + "asstvb30": [ + "NÓS NÃO PODEMOS PASSAR ENQUANTO O TELEPORTADOR NÃO FOR LIGADO!" + ], + "asstvb40": [ + "ESSE DISPOSITIVO É UM COMUNICADOR, COM ELE, MEU PAI E EU", + "PODEMOS TE ACONSELHAR EM QUALQUER MOMENTO DA SUA JORNADA." + ], + "asstvb41": [ + "ESSAS COISAS FLUTUANTES EM FORMATO DE OVO SÃO ORBES PRECURSORAS", + "COLETE O BASTANTE DELAS, E ALGUNS DOS ALDEÕES TE DARÃO", + "UMA POWER CELL EM TROCA." + ], + "asstvb42": [ + "ISSO É UMA POWER CELL, O MAIS IMPORTANTE ARTEFATO PRECURSOR QUE VOCÊ PODE ENCONTRAR!", + "VOCÊ PRECISA COLETAR 20 DESSAS PARA QUE EU POSSA ENERGIZAR O ESCUDO DE CALOR", + "PARA O SEU ANTI-GRAV. ZOOMER." + ], + "asstvb44": [ + "HEY, VOCÊS ENCONTRARAM UMA DAS MINHAS MOSCAS DE BUSCA!", + "EU ENVIEI 7 DELAS PARA CADA ÁREA EM BUSCA DE POWER CELLS", + "MAS OS LURKERS DEVEM TER CAPTURADO TODAS ELAS!" + ], + "asstvb45": [ + "WOW! ESSA ÚLTIMA MOSCA DE BUSCA TINHA UMA POWER CELL!", + "APOSTO QUE SE VOCÊ ACHAR TODAS AS 7 EM CADA ÁREA", + "VOCÊ ENCONTRARÁ AINDA MAIS POWER CELLS." + ], + "asstvb46": [ + "CUIDADO COM O OCEANO, AS ÁGUAS ESTÃO LOTADAS DE TUBARÕES LURKER", + "E EU NUNCA VI NINGUÉM DERROTAR UM DELES.", + "FIQUE LONGE DELES SE VOCÊ SABE O QUE É MELHOR PRA SUA SAÚDE!" + ], + "asstvb47": [ + "LEMBRE-SE, ISSO É UMA POWER CELL.", + "VOCÊ PRECISA COLETAR QUANTO VOCÊ FOR CAPAZ DELAS." + ], + "asstvb48": [ + "ISSO É UMA FONTE DE ECO AZUL, MAIS CONCENTRADO QUE AS FRAÇÕES FLUTUANTES,", + "ESSA FONTE TE DARÁ UMA CARGA COMPLETA DE ECO AZUL,", + "PERMITINDO QUE VOCÊ USE ELE POR MAIS TEMPO." + ], + "asstvb71": [ + "VOCÊ NÃO TEM POWER CELLS O BASTANTE PARA ENERGIZAR A MÁQUINA DO SÁBIO AZUL.", + "NÃO PODEMOS LEVANTAR AQUELA ROCHA SEM AS 45 POWER CELLS." + ], + "asstvb72": [ + "ATÉ DESCOBRIRMOS O POR QUÊ DO SUMIÇO DO SÁBIO AZUL,", + "VOCÊ VAI PRECISAR PEGAR 45 POWER CELLS PARA ENERGIZAR ESSA MÁQUINA.", + "VÁ PEGÁ-LAS!" + ], + "asstvb75": [ + "ESSE ELEVADOR PARECE ESTAR COM DEFEITO.", + "VOU TENTAR FAZER ELE FUNCIONAR DE NOVO." + ], + "asstvb76": [ + "EU REATIVEI O ELEVADOR. ELE PODE TE LEVAR PARA A MONTANHA NEVADA!", + "USE QUANDO QUISER." + ], + "sagevb01": [ + "BEM, VEJO QUE VOCÊS FINALMENTE", + "RESOLVERAM DESENTUPIR MEUS COLETORES.", + "EU DARIA OS MEUS PARABÉNS,", + "MAS VOCÊS TEM TANTA COISA PRA FAZER QUE NÃO QUERO PERDER TEMPO.", + "A PROPÓSITO, SE AS COISAS NÃO FUNCIONAREM,", + "DAXTER SEMPRE PODERÁ TRABALHAR CUIDANDO DA QUESTÃO DOS RATOS DA VILA.", + "NYEH HA HA HA HA." + ], + "sagevb02": [ + "EU TENHO QUE ADMITIR, ESTOU SURPRESO. VOCÊS DOIS NÃO ESTRAGARAM TUDO!", + "AGORA QUE OS LURKERS NÃO CONSEGUEM ABRIR O ARMAZÉM,", + "ELES NÃO PODEM INUNDAR O MUNDO", + "EM ECO NEGRO E CAUSAR UMA DESTRUIÇÃO INIMAGINÁVEL.", + "TIRA ESSE SORRISO RIDÍCULO DA CARA, DAXTER,", + "VOCÊS DOIS TEM MUITO O QUE FAZER.", + "AGORA MÃOS À OBRA!" + ], + "sagevb03": [ + "VOCÊS CONTINUAM ME IMPRESSIONANDO. MAS PODE SER POR EU", + "TER EXPECTATIVAS BAIXAS.", + "OKAY, O SEU MOMENTO DE GLÓRIA ACABOU,", + "MÃOS A OBRA!" + ], + "sagevb04": [ + "BOM TRABALHO, JAK! SEU TIO FICARIA ORGULHOSO.", + "ESSE ERA UM BRAÇO GIGANTE DE UM ROBÔ PRECURSOR.", + "NUNCA VI UM EM CONDIÇÕES TÃO BOAS!", + "NEM IMAGINO O QUE OS LURKERS QUERIAM COM ISSO,", + "MAS COM CERTEZA NÃO SERIA BOM SE ELES TIVESSEM ELE.", + "SE CONTINUAR DESSE JEITO...", + "NAH, VOCÊ AINDA TÁ LONGE DE SER UM HERÓI.", + "MAS CONTINUE TENTANDO. É FOFINHO." + ], + "sagevb21": [ + "ESSAS PEQUENAS BOLAS VERDES DE ENERGIA SÃO UM TIPO DE ECO.", + "PEGUE 50 PEQUENOS ECOS VERDES, OU UM GRANDE PARA RECUPERAR SUA SAÚDE." + ], + "sagevb22": [ + "ESSE É UM ECO AZUL, ELE CONTÉM A ENERGIA DO MOVIMENTO", + "ECO AZUL PERMITE QUE VOCÊ CORRA MAIS RÁPIDO, QUEBRE CAIXAS E ", + "ATIVE ARTEFATOS PRECURSORES QUANDO SE APROXIMA DELES." + ], + "sagevb23": [ + "CADA FRAÇÃO DE ECO AZUL AUMENTA O", + "TEMPO QUE VOCÊ CONSEGUE USAR SEUS PODERES." + ], + "sagevb24": [ + "ESSA É UMA PORTA PRECURSORA.", + "ELA SÓ PODE SER ABERTA AO SE APROXIMAR DELA", + "ENQUANTO CANALIZA ECO AZUL PELO SEU CORPO." + ], + "sagevb25": [ + "BOM TRABALHO, O ECO AZUL ABRIU ESSA PORTA.", + "COM O ECO AZUL VOCÊ CONSEGUE", + "DAR VIDA A TODO TIPO DE ARTEFATO PRECURSOR ADORMECIDO HÁ ANOS." + ], + "sagevb26": [ + "USE SEU VISOR PARA VER O PROGRESSO DURANTE SUA AVENTURA ." + ], + "sagevb27": [ + "VOCÊ PODE PULAR E ENTÃO PULAR DE NOVO PARA SUBIR MAIS ALTO." + ], + "sagevb28": [ + "QUANDO ESTIVER RODEADO DE INIMIGOS, USE SEU CHUTE ROTATIVO." + ], + "sagevb29": [ + "ISSO NÃO FOI UM CHUTE ROTATIVO, TENTE DE NOVO." + ], + "sagevb30": [ + "VAMOS LÁ, JAK, DÊ UM CHUTE ROTATIVO." + ], + "sagevb31": [ + "BOM TRABALHO. USE O CHUTE ROTATIVO QUANDO VOCÊ QUISER DAR UM BOM ATAQUE AO REDOR." + ], + "sagevb32": [ + "PARA UM ATAQUE RETO, EM MOVIMENTO, USE SEU PUNHO PARA SOCAR." + ], + "sagevb33": [ + "ISSO NÃO FOI UM SOCO, VAMOS LÁ, DÁ UM SOCO." + ], + "sagevb34": [ + "JAK! DÊ UM SOCO." + ], + "sagevb35": [ + "MUITO BEM, USE O SOCO PARA ENCURTAR A DISTÂNCIA RAPIDAMENTE." + ], + "sagevb36": [ + "AS VEZES VOCÊ VAI QUERER ACERTAR AS COISAS COM UMA FORÇA MAIOR.", + "PARA QUEBRAR UMA DESSAS CAIXAS, VOCÊ DEVE PULAR NO AR", + "E ENTÃO MERGULHAR NELA COM AS MÃOS" + ], + "sagevb37": [ + "QUANDO SE SENTIR CONFIANTE, TENTE USAR OS SEUS MOVIMENTOS EM COMBINAÇÕES." + ], + "sagevb38": [ + "VOCÊ NÃO PODE VOLTAR PELO TELEPORTADOR ANTES DE", + "ACHAR TODAS AS 4 POWER CELLS NESSA ILHA." + ], + "sagevb39": [ + "ÓTIMO, VOCÊ ACHOU TODAS AS POWER CELL NA ILHA", + "VOLTE PRO TELEPORTADOR PARA QUE EU TE TRAGA DE VOLTA PRA CÁ, RÁPIDO!" + ], + "sksp0001": [ + "HEY! AQUELA DELÍCINHA DA KEIRA TINHA RAZÃO, TEM TRANS-PADS AQUI." + ], + "sksp0002": [ + "CONFIA EM MIM, ESSAS CAIXAS DE ECO NEGRO SÃO PROBLEMA!" + ], + "sksp0003": [ + "APOSTO QUE SE ACHARMOS TODAS ESSAS MOSCAS DE BUSCA FOFINHAS EM CADA ÁREA", + "AO MENOS UMA DELAS VAI TER UMA POWER CELL!" + ], + "sksp0004": [ + "BELEZA, TESOURO!" + ], + "sksp0005": [ + "ESSAS CAIXAS DE MADEIRA E FERRO NÃO PARECEM SER MUITO FORTES!", + "APOSTO QUE ELAS QUEBRAM SE VOCÊ PULAR MERGULHANDO NELAS." + ], + "sksp0006": [ + "ESSAS CAIXAS GROSSAS DE METAL SÃO MAIS DURAS QUE CRÂNIO DE BOI!", + "MAS DEVE TER ALGO QUE CONSIGA ESTOURAR ELAS." + ], + "sksp0007": [ + "DUAS PALAVRAS: POWER CELLS, A GENTE PRECISA DELAS E TÁ FAZENDO FALTA" + ], + "sksp0008": [ + "NÓS PRECISAMOS DE ORBES, ORBES JAK! COMO QUE VAMOS COMPRAR POWER CELLS SEM ORBES?!" + ], + "sksp0009": [ + "QUE COISA ESQUISITA, APOSTO QUE CONSEGUIMOS ABRIR ISSO", + "SE VOCÊ SE ENERGIZAR COM AQUELA COISA AZUL BRILHANTE ." + ], + "sksp0010": [ + "EI!, BORA DAR UMA OLHADA NO BARCO DAQUELE BAFO DE PEIXE NA DOCA" + ], + "sksp0011": [ + "A GENTE DEVIA PERGUNTAR AO PESCADOR LÁ NO RIO DA SELVA PROIBIDA", + "SE NÓS PODEMOS PEGAR O BARCO DELE EMPRESTADO PRA IR NA ILHA DAS NÉVOAS!" + ], + "sksp0013": [ + "VOCÊ VIU O TAMANHO DA MORDIDA QUE AQUELE TUBARÃO", + "LURKER DEU NO BARCO DO PESCADOR?", + "MELHOR FICAR LONGE DELES,", + "EU NÃO ACHO QUE A GENTE DÊ CONTA DE UM BICHO ASSIM." + ], + "sksp0014": [ + "NÓS JUNTAMOS ORBES O BASTANTE PARA TROCAR POR UMA POWER CELL.", + "VAMOS VOLTAR E FAZER A TROCA!" + ], + "sksp0015": [ + "ESSE DEVE SER UM DAQUELES ORÁCULOS PRECURSORES QUE O SÁBIO SEMPRE FALA.", + "ESPERO QUE ELES NÃO SEJAM TÃO FEIOS PESSOALMENTE!" + ], + "sksp0017": [ + "WOW! SE LIGA NAQUELA ESTÁTUA", + "MANEIRINHA ALI NAS PEDRAS" + ], + "sksp0018": [ + "NÓS TEMOS QUE IR FALAR PRO PREFEITO QUE ELE TÁ DEVENDO A GENTE", + "POR CONECTAR O RAIO DE ENERGIA DA VILA!" + ], + "sksp0019": [ + "HEY, GAIVOTAS! BORA BOTAR ELAS PRA CORRER." + ], + "sksp0020": [ + "YEAH HA HA! BORA FAZER DE NOVO!" + ], + "sksp0021": [ + "AS GAIVOTAS VOLTARAM, VAMO PEGAR ELAS!!" + ], + "sksp0025": [ + "WOW! ELAS CAUSARAM UMA AVALANCHE, VAMOS CHECAR." + ], + "sksp0026": [ + "HEY! AQUELE PELICANO CATOU A POWER CELL!", + "BORA COMER O PELICANO NA PORRADA!" + ], + "sksp0027": [ + "RÁPIDO, TEMOS QUE PEGAR A POWER CELL ANTES QUE O PELICANO PEGUE ELA DE NOVO." + ], + "sksp0028": [ + "CHUTA O OVO! HEE-HEE! BICA ELE! CHUTA ELE!" + ], + "sksp0029": [ + "EH, MELHOR IRMOS FALAR COM A SRA.PÁSSARO", + "E VER SE QUEBRAMOS ESSE OVO DE FLUT-FLUT." + ], + "sksp0030": [ + "EI, TENTA SOCAR AS PEDRAS PRA TIRA-LAS DO CAMINHO!" + ], + "sksp0031": [ + "OOH! BORA USAR O CANHÃO PRA EXPLODIR AS COISAS!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! MERGULHA NESSAS ORBES, JAK, MERGULHA!" + ], + "sksp0035": [ + "É, TEMOS UM LANÇADOR PRECURSOR AQUI", + "MAS VOCÊ NÃO ESTÁ ENERGIZADO COM O NEGÓCIO AZUL, ENTÃO NÃO VAI DAR EM NADA!" + ], + "sksp0037": [ + "ESSA TORRES ESPALHADAS PELA SELVA DEVEM REDIRECIONAR O RAIO DE ECO AZUL.", + "VAMO MEXER NELAS!" + ], + "sksp0038": [ + "HMM, SE O ECO AZUL CONSEGUE CONSTRUIR UMA PONTE, APOSTO QUE ABRE UMA PORTA!", + "VAMOS VOLTAR E TE ENERGIZAR DE NOVO." + ], + "sksp0039": [ + "EI, TEM MARCAÇÕES DE RELÂMPAGO AZUL NAQUELES POSTES", + "E TEM ECO AZUL SAINDO DAQUELA FONTE ALI.", + "ESTÁ PENSANDO NO QUE EU ESTOU PENSANDO?" + ], + "sksp0040": [ + "VAMOS SUBIR NESSA MÁQUINA E QUEBRAR O ESPELHO QUE TÁ REFLETINDO O RAIO PRECURSOR!" + ], + "sksp0041": [ + "NÓS PRECISAMOS SUBIR NO TOPO DAQUELA TORRE!" + ], + "sksp0043": [ + "TALVEZ FOSSE BOM TROCAR UMA IDEIA COM O PESCADOR.", + "ME FALARAM QUE ELE ESTAVA NA SELVA PROIBIDA, PESCANDO NO RIO DE BAIXO!" + ], + "sksp0049": [ + "ALINHE O RAIO APONTANDO ELE PARA A PRÓXIMA TORRE!" + ], + "sksp0050": [ + "QUEBRE O ESPELHO, JAK!" + ], + "sksp0051": [ + "PEGA ELES, JAK! PEGA ELES!" + ], + "sksp0052": [ + "VAMOS PRA PRÓXIMA TORRE E RECONECTAR O RAIO LÁ!" + ], + "sksp0053": [ + "HEY! NÓS PODEMOS SEGUIR O RAIO PRA ACHAR A PRÓXIMA TORRE." + ], + "sksp0054": [ + "PRECISAMOS TE ENERGIZAR COM O NEGÓCIO AZUL PRA ABRIR ISSO!" + ], + "sksp0056": [ + "HEY! TÔ VENDO A MUSA DO ESCULTOR!" + ], + "sksp0059": [ + "ESSE LUGAR ME DÁ ARREPIOS,", + "VAMOS TENTAR FICAR FORA DO LODO, OKAY?" + ], + "sksp0060": [ + "ESSE LUGAR ME ASSUSTA,", + "E ACREDITE, ESTÁ SENDO UMA EXPERIÊNCIA COMPLETAMENTE NOVA.", + "QUANDO SE ESTÁ COBERTO DE PELOS!" + ], + "sksp0062": [ + "VAMOS BATER NESSES LURKERS DE BALÃO E PICOTAR ELES" + ], + "sksp0063": [ + "EU DISSE: \"PICOTAR OS LURKERS,\" JAK. NÃO AS MINAS!", + "REGRA NUMERO UM: EVITE AS MINAS!" + ], + "sksp0064": [ + "FICA ESPERTO, VOCÊ LEMBRA O QUE ROLOU DA ULTIMA VEZ QUE VIEMOS AQUI." + ], + "sksp0067": [ + "NÃO CAIA NA NÉVOA EM BAIXO DE NÓS,", + "OU NÃO IREMOS SAIR MAIS DE LÁ." + ], + "sksp0069": [ + "É UMA EMBOSCADA, JAK! É UMA EMBOSCADA!" + ], + "sksp0070": [ + "PULE, E ENTÃO MERGULHE NA GANGORRA." + ], + "sksp0071": [ + "PEGA O ECO VERMELHO!" + ], + "sksp0072": [ + "ECO VERMELHO DEIXA OS SEUS ATAQUES MAIS FORTES." + ], + "sksp0073": [ + "NÓS PRECISAMOS DE ECO AZUL PRA ENERGIZAR ESSA PLATAFORMA!" + ], + "sksp0077": [ + "BALÕES BOM, MAGMA QUENTE FLAMEJANTE RUIM!" + ], + "sksp0078": [ + "VOE PELAS PLATAFORMAS PRECURSORAS PARA NOS MANTER FRIO." + ], + "sksp0079": [ + "AHH! EU VO MORRER! EU TO CHEGANDO, VOVÔ!", + "TU TEM QUE LEVAR ESSA COISA PARA O OUTRO LADO ANTES QUE SUPERAQUEÇA!" + ], + "sksp0080": [ + "USE A VOLTA PARA PEGAR IMPULSO" + ], + "sksp0081": [ + "AHH! TALVEZ EU DEVESSE PILOTAR!" + ], + "sksp0082": [ + "VOCÊ TÁ TENTANDO EVITAR AS CAIXAS DE ECO NEGRO, NÉ?!" + ], + "sksp0083": [ + "OOH! VÊ SE DÁ PRA PEGAR IMPULSO BATENDO NOS LURKERS!" + ], + "sksp0084": [ + "QUASE, QUASE!" + ], + "sksp0085": [ + "WHOA! ESSE BEBÊ TÁ FICANDO QUENTE DEMAIS!" + ], + "sksp0086": [ + "MAIS UNS SEGUNDOS E ESTAMOS FRITOS!" + ], + "sksp0087": [ + "ACERTE OS BALÕES PARA ESFRIAR!" + ], + "sksp0088": [ + "LÁ VEM MAIS UM BALÃO!" + ], + "sksp0089": [ + "QUERIA TER DORMIDO ESSA MANHÃ!" + ], + "sksp0090": [ + "TU PERDEU UM BALÃO, NÓS PRECISAMOS DELES OU ESTAMOS COZIDOS!" + ], + "sksp0091": [ + "ESSA NENÉM TA FICANDO MUITO QUENTE!" + ], + "sksp0092": [ + "TÁ SENTINDO CHEIRO DE QUEIMADO?!" + ], + "sksp0093": [ + "ACHO QUE MEU RABO TÁ PEGANDO FOGO!" + ], + "sksp0094": [ + "VAI EXPLODIR!" + ], + "sksp0095": [ + "WAHOO! NÓS CONSEGUIMOS!" + ], + "sksp0096": [ + "TEM MOSCAS DE BUSCA AQUI TAMBÉM!" + ], + "sksp009a": [ + "HA HA! A GENTE MOSTROU PRA ELE NÉ." + ], + "sksp009b": [ + "AEEE, MAIS ORBES!" + ], + "sksp009c": [ + "FAZ FAVOR E FICA LONGE DAS CAIXAS DE ECO NEGRO" + ], + "sksp009f": [ + "TOMA! TOMA! HA HA HA!" + ], + "sksp009g": [ + "ATRÁS DE VOCÊ, JAK!" + ], + "sksp009i": [ + "NÓS ENCONTRAMOS TODAS AS MOSCAS DE BUSCA NESSA ÁREA?" + ], + "sksp009j": [ + "HEY! PARECE QUE AS MOSCAS DE BUSCA ESTÃO SEMPRE EM CAIXAS VERMELHAS." + ], + "sksp009k": [ + "BELEZA, VOCÊ ENCONTROU TODAS AS MOSCAS DE BUSCA DESSA ÁREA!" + ], + "sksp0109": [ + "WOO! A GENTE BATEU O RECORDE!" + ], + "sksp0110": [ + "EU JÁ FALEI ANTES, VOU FALAR DE NOVO...", + "EVITE AS CAIXAS DE ECO NEGRO!" + ], + "sksp0111": [ + "VAMOS LEVAR ESSAS TOUPEIRAS DE VOLTA AO SUBSOLO." + ], + "sksp0112": [ + "VAMO PEGAR A NOSSA POWER CELL DA GEOLOGISTA." + ], + "sksp0113": [ + "ESSAS DEVEM SER AS PLANTAS INFESTADAS QUE O VELHO CABEÇA DE TRONCO FALOU." + ], + "sksp0114": [ + "PRECISAMOS USAR O ECO VERDE PRA CURAR ELAS." + ], + "sksp0115": [ + "JAK, PASSE NA FONTE DE ECO VERDE." + ], + "sksp0116": [ + "ESSE É UM DOS LURKERS VOADORES!", + "ELE PODE TER UMA POWER CELL!" + ], + "sksp0117": [ + "LÁ ESTÁ O BURACO DAS TOUPEIRAS!" + ], + "sksp0118": [ + "AGORA, VAMOS PASSAR PELAS PLANTAS INFECTADAS!" + ], + "sksp0119": [ + "UM ANEL JÁ FOI, FALTA UM MONTE!" + ], + "sksp0120": [ + "RÁPIDO! ALI ESTÁ O PRÓXIMO ANEL!" + ], + "sksp0121": [ + "RÁPIDO! VOCÊ TEM QUE PASSAR POR CADA ANEL ANTES QUE ELE APAGUE!" + ], + "sksp0122": [ + "EI! ESSA GRAMA NOS DESACELERA..." + ], + "sksp0123": [ + "RÁPIDO! SIGA ESSE CANO!" + ], + "sksp0124": [ + "EU TÔ COM UM MAU PRESSENTIMENTO." + ], + "sksp0125": [ + "ESSAS COISAS PARECEM PRECISAR DE UMA CARGA DE ECO AZUL." + ], + "sksp0126": [ + "VAMO PEGAR A POWER CELL NO TOPO DESSA COISA!" + ], + "sksp0127": [ + "CHUTA O CARINHA NO TOPO!" + ], + "sksp0128": [ + "JAK! CORRE! O ECO NEGRO ESTÁ SUBINDO!" + ], + "sksp0129": [ + "AHH! O ECO NEGRO TÁ CHEGANDO PERTO" + ], + "sksp0130": [ + "UH, ACHO QUE TEMOS QUE ATIVAR TODAS AS PLATAFORMAS." + ], + "sksp0131": [ + "EI! PARECE QUE VOCÊ PODE MERGULHAR PULANDO NESSES CARAS!" + ], + "sksp0133": [ + "APOSTO QUE DÁ PRA CARREGAR TODOS AO MESMO TEMPO!" + ], + "sksp0134": [ + "QUE TAL PEGAR LEVE NOS CANOS QUENTES?!" + ], + "sksp0135": [ + "ESSA ÁGUA PARECE PERIGOSA QUANDO MUDA DE COR!" + ], + "sksp0136": [ + "VOCÊ TEM QUE SAIR DA ÁGUA ANTES QUE MUDE DE COR!" + ], + "sksp0137": [ + "APOSTO QUE PODEMOS ATIRAR NESSAS PEDRAS ENORMES COM O ECO AMARELO." + ], + "sksp0138": [ + "NÓS DEVÍAMOS ATIRAR NAS PEDRAS QUE SEGURAM AS CORDAS." + ], + "sksp0139": [ + "TALVEZ DEVÊSSEMOS AJUDAR A ACHAR O PET DO ESQUISITÃO." + ], + "sksp0140": [ + "A FLUT-FLUT PODE PLANAR MAIS LONGE SE PULAR DE NOVO NO AR!" + ], + "sksp0141": [ + "NÃO TOQUE NO PICHE QUENTE PRETO, OU IRÁ SE MACHUCAR!" + ], + "sksp0142": [ + "ESSAS ÁGUAS ESTÃO SEGURAS PARA FICAR." + ], + "sksp0143": [ + "WAAH! CORTA A LÍNGUA DELE!" + ], + "sksp0144": [ + "ATIRE NOS NINHOS DE RATO PRA ELES PARAREM DE SAIR DE DENTRO." + ], + "sksp0145": [ + "WOW! VOCÊ CONSEGUE ATIRAR BOLAS DE FOGO", + "QUANDO ENERGIZADO COM ECO AMARELO." + ], + "sksp0146": [ + "EI! ISSO É ECO AMARELO!" + ], + "sksp0147": [ + "VOCÊ CONSEGUE RODAR NAQUELE CANO ALI!" + ], + "sksp0148": [ + "CUIDADO COM AQUELES ESPINHOS!" + ], + "sksp0149": [ + "EI, PARECE QUE TEM UMA CORDA SEGURANDO O DIRIGÍVEL!" + ], + "sksp0150": [ + "CUIDADO QUANDO O SAPO ESTIVER CARREGADO!" + ], + "sksp0151": [ + "METE O PÉ, JAK!" + ], + "sksp0152": [ + "CUIDADO, JAK! É UMA EMBOSCADA!" + ], + "sksp0153": [ + "EI, ESSE DEVE SER O ARTEFATO PRECURSOR QUE OS LURKERS ESTÃO ATRÁS!", + "PARECE UM BRAÇO ROBÔ GIGANTE!" + ], + "sksp0154": [ + "ESSE PICHE PRETO PARECE QUENTE E PERIGOSO!" + ], + "sksp0155": [ + "ATIRA NOS MORCEGOS COM O NEGÓCIO AMARELO!" + ], + "sksp0156": [ + "TALVEZ DÊ PRA DERRUBAR OS MORCEGOS!" + ], + "sksp0157": [ + "TU VIU ISSO? SÓ FALTAM MAIS TRÊS CORDAS!" + ], + "sksp0158": [ + "WOW! SÓ MAIS DUAS CORDAS." + ], + "sksp0159": [ + "ESSE DIRIGÍVEL ESTÁ NO LIMITE! VAMOS ENCONTRAR A ULTIMA CORDA!" + ], + "sksp0160": [ + "HEY! LÁ ESTÁ A FLUT-FLUT!" + ], + "sksp0161": [ + "EU ODEIO RATOS, E EU SOU QUASE UM." + ], + "sksp018a": [ + "AQUELE FAZENDEIRO PREGUIÇOSO NOS DEVE UMA POWER CELL!", + "VAMOS FALAR COM ELE!" + ], + "sksp0300": [ + "TEMOS QUE ULTRAPASSAR OS LURKERS ATÉ O FINAL!" + ], + "sksp0301": [ + "NÃO ENCOSTE NOS EXPLOSIVOS!" + ], + "sksp0302": [ + "SE MANTENHA NA FRENTE DELES E TÁ TUDO CERTO!" + ], + "sksp0303": [ + "PEGUE O ECO AZUL PARA GANHAR VELOCIDADE!" + ], + "sksp0304": [ + "EVITE AS ÁRVORES, JAK! ELAS NOS ATRASAM!" + ], + "sksp0305": [ + "QUANTO MAIS ECO AZUL PEGARMOS, MAIS RÁPIDO NÓS VAMOS!" + ], + "sksp0306": [ + "CUIDADO COM OS EXPLOSIVOS!" + ], + "sksp0307": [ + "EVITE OS BURACOS!" + ], + "sksp0308": [ + "TALVEZ EU DEVA PILOTAR!" + ], + "sksp0309": [ + "LÁ ESTÁ UM DOS LURKERS!" + ], + "sksp0310": [ + "PEGA ELE, JAK!" + ], + "sksp0311": [ + "PASSAMOS UM!" + ], + "sksp0312": [ + "WAH, UM DOS LURKERS PASSOU A GENTE!" + ], + "sksp0313": [ + "ELES ESTÃO MUITO NA FRENTE!" + ], + "sksp0314": [ + "YEAH, ESTAMOS NA LIDERANÇA!" + ], + "sksp0315": [ + "MAIS RÁPIDO, JAK, MAIS RÁPIDO!" + ], + "sksp0316": [ + "GRANDE SALTO, GRANDE SALTO!" + ], + "sksp0317": [ + "SE SEGURA!" + ], + "sksp0319": [ + "VAI SER PERTO!" + ], + "sksp0320": [ + "ELES VÃO NOS VENCER ATÉ O DETONADOR!" + ], + "sksp0321": [ + "CONSEGUIMOS! IMPEDIMOS ELES DE DETONAR A PASSAGEM!" + ], + "sksp0327": [ + "ACHO QUE ESSE FOI O ÚLTIMO CRISTAL DE ECO NEGRO!" + ], + "sksp0328": [ + "TALVEZ A GENTE ATIRE MELHOR SE VOCÊ MIRAR COM A SUA LENTE." + ], + "sksp0329": [ + "OH, NÃO! MAIS ECO NEGRO!" + ], + "sksp0330": [ + "NÃO ACHO QUE PEGAMOS TODOS OS CRISTAIS DE ECO NEGRO." + ], + "sksp0331": [ + "ATIRE NOS LURKERS COMENDO AS PILARES!" + ], + "sksp0332": [ + "NÃO DEIXE AS LUZES APAGAREM!" + ], + "sksp0333": [ + "ACERTE O CRISTAL PARA CONSEGUIR ALGUMA LUZ." + ], + "sksp0334": [ + "CORRE! AQUELE CRISTAL VAI EXPLODIR!" + ], + "sksp0335": [ + "EWH, ELES ACHARAM O ROBÔ PRECURSOR!" + ], + "sksp0336": [ + "ESTOURE OS OVOS! ANTES QUE ELES NASÇAM!" + ], + "sksp0337": [ + "É TÃO ASSUSTADOR AQUI..." + ], + "sksp0338": [ + "PARECE QUE TEIAS DE ARANHA QUEBRAM APÓS DUAS BALANÇADAS." + ], + "sksp0339": [ + "EU. ODEIO. ARANHAS..." + ], + "sksp0340": [ + "BEBÊS ARANHA VINDO!" + ], + "sksp0341": [ + "ACHO QUE ESTAMOS NO NINHO DAS ARANHA!" + ], + "sksp0342": [ + "CUIDADO, MAIS ARANHAS!" + ], + "sksp0343": [ + "VAMO VAZAR DAQUI!" + ], + "sksp0345": [ + "COMO VAMOS ENTRAR NESSA FORTALEZA?" + ], + "sksp0346": [ + "TALVEZ O ECO VERMELHO DERRUBE ESSE CARA!" + ], + "sksp0347": [ + "PRECISAMOS FAZER UM PULO ROLANDO!" + ], + "sksp0348": [ + "PRECISAMOS ACHAR UMA FORMA DE ABRIR ESSA FONTE!" + ], + "sksp0349": [ + "AQUILO PARECE SER UM INTERRUPTOR DE ECO!" + ], + "sksp0350": [ + "ACERTE ELE QUANDO OS ESPINHOS ESTIVEREM PRA DENTRO!" + ], + "sksp0351": [ + "APERTE O BOTÃO!" + ], + "sksp0352": [ + "RÁPIDO! ANTES QUE ELES DESÇAM!" + ], + "sksp0359": [ + "VOCÊ PRECISA USAR O ECO VERMELHO!" + ], + "sksp0360": [ + "TÁ CERTO! NÓS ABRIMOS AS FONTES DE ECO AMARELO!" + ], + "sksp0362": [ + "OLHA! UMA POWER CELL CONGELADA!" + ], + "sksp0363": [ + "APENAS UM FLUT-FLUT CONSEGUE PULAR TÃO LONGE!" + ], + "sksp0364": [ + "TEMOS QUE CORRER, OU ESTAMOS FRITOS!" + ], + "sksp0365": [ + "ESCOLHE UM CAMINHO, QUALQUER CAMINHO!" + ], + "sksp0366": [ + "DESVIE OU ATIRE NAS MINAS, JAK!" + ], + "sksp0367": [ + "ACHE UM CAMINHO ENTRE OS BARRIS DE ECO NEGRO!" + ], + "sksp0368": [ + "CONTINUE ACERTANDO ESSES BALÕES DE RESFRIAMENTO!" + ], + "sksp0369": [ + "ESTAMOS FICANDO QUENTES DEMAIS!" + ], + "sksp0370": [ + "VAI EXPLODIR!" + ], + "sksp0371": [ + "VÁ PELO ECO AZUL, JAK!" + ], + "sksp0372": [ + "ATIRA PRA ABRIR CAMINHO!" + ], + "sksp0373": [ + "WAHOO! QUE VIAGEM!" + ], + "sksp0374": [ + "SIM! RODA E QUEIMA, BEBÊ!" + ], + "sksp0375": [ + "ATIRA NAS ESFERAS DE ENERGIA PRA ABRIR A PORTA!" + ], + "sksp0376": [ + "ATIRA NAS ESFERAS DE ENERGIA ANTES QUE A GENTE QUEIME!" + ], + "sksp0378": [ + "A PORTA ESTÁ ABRINDO, VAMOS LÁ!" + ], + "sksp0379": [ + "VOANDO!" + ], + "sksp0380": [ + "CONSEGUIMOS ATRAVESSAR!" + ], + "sksp0381": [ + "QUEBRA O GERADOR PRA LIBERTAR O SÁBIO!" + ], + "sksp0382": [ + "SE SEGURA NA BEIRADA!" + ], + "sksp0383": [ + "TEMOS COMPANHIA, JAK. MUUITOS LURKERS!" + ], + "sksp0384": [ + "DESTRUA ESSES GERADORES!" + ], + "sksp0385": [ + "APERTA O BOTÃO!" + ], + "sksp0386": [ + "ESSE ROBÔ NÃO ME ASSUSTA!" + ], + "sksp0387": [ + "VAMOS SUBIR ESSAS PLATAFORMAS!" + ], + "sksp0388": [ + "NÃO PERCA O PRÓXIMO LANÇADOR!" + ], + "sksp0389": [ + "FICA DE OLHO!" + ], + "sksp0390": [ + "TEMOS QUE RESGATAR TODOS OS SÁBIOS!" + ], + "sksp0391": [ + "ACHA QUE O GOL AINDA VAI ME TRAZER DE VOLTA?" + ], + "sksp0392": [ + "E ESSA CIDADELA DO GOL E MAIA HEIN? BEM ACONCHEGANTE." + ], + "sksp0393": [ + "ACERTA O PRÓXIMO LANÇADOR!" + ], + "sksp0394": [ + "PEGA O ECO AMARELO!" + ], + "sksp0395": [ + "ATIRA NO ROBÔ, JAK!" + ], + "sksp0396": [ + "ATIRA NO BRAÇO DELE!" + ], + "sksp0397": [ + "ATIRA NA ARMA!" + ], + "sksp0398": [ + "ATIRA NA CABEÇA!" + ], + "sksp0399": [ + "CUIDADO COM O DISPARO!" + ], + "sksp0400": [ + "ELE TÁ CARREGANDO!" + ], + "sksp0401": [ + "PEGA O ECO AZUL!" + ], + "sksp0402": [ + "PEGA O ECO VERMELHO!" + ], + "sksp0403": [ + "EU TÔ COM UM MAU PRESSENTIMENTO!" + ], + "sksp0404": [ + "USA O LANÇADOR, RÁPIDO!" + ], + "sksp0405": [ + "AGORA TU DEIXOU O BICHO NERVOSO!" + ], + "sksp0406": [ + "A GENTE NÃO CONSEGUE TOCAR NELES!" + ], + "sksp0407": [ + "USA O ECO AMARELO!" + ], + "sksp0408": [ + "ATIRA NELES!" + ], + "sksp0409": [ + "PEGA O ECO LUMINOSO, JAK!" + ], + "sksp0410": [ + "ELE PARECE IRRITADO!" + ], + "sksp0411": [ + "PULA PRA FUGIR DAS EXPLOSÕES!" + ], + "sksp0412": [ + "AGORA A GENTE TÁ NA MÃO!" + ], + "sksp0413": [ + "BOA MIRA, PARCEIRO!" + ], + "sksp0414": [ + "AQUILO MACHUCOU ELE!" + ], + "sksp0415": [ + "LÁ VEM!" + ], + "sksp0416": [ + "YEAH! TU CONSEGUIU!" + ], + "sksp0417": [ + "DIGAM \"BONS SONHOS\", GOL E MAIA!" + ], + "sksp0435": [ + "DERRUBA ESSES OSSOS!" + ], + "sksp0443": [ + "SOQUE ESSAS ESTACAS DE BAIXO PRA CIMA!" + ], + "sksp0444": [ + "ESTAMOS ESPERANDO. OLÁ?" + ], + "sksp0449": [ + "APERTE START PRA JOGAR." + ], + "sksp0450": [ + "QUER JOGAR MAIS NÃO?" + ], + "sksp0451": [ + "FOI O QUE PENSEI." + ], + "sksp0452": [ + "OKAY, TE VEJO DEPOIS." + ], + "sksp0455": [ + "CARA, QUEM PESSOAL É ESSE?" + ], + "sksp0466": [ + "EU MANDEI BEM. NÃO FOI, GAROTAS?" + ], + "sksp0b42": [ + "PARA DE PERDER OS PEIXES AMARELOS, ELES PESAM 5 QUILOS CADA,", + "É MUITO PEIXE, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "SRA.PÁSSARO", + "BLUE SAGE": "SÁBIO AZUL", + "DAXTER": "DAXTER", + "FARMER": "FAZENDEIRO", + "FISHERMAN": "PESCADOR", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "APOSTADOR", + "GEOLOGIST": "GEOLOGISTA", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK'S UNCLE": "TIO DO JAK", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "PREFEITO", + "MINER": "MINER", + "OLD MAN": "VELHO", + "ORACLE": "ORÁCULO", + "RED SAGE": "SÁBIO VERMELHO", + "SAMOS": "SAMOS", + "SCULPTOR": "ESCULTOR", + "WARRIOR": "GUERREIRO", + "WILLARD": "WILLARD", + "WOMAN": "MULHER", + "YELLOW SAGE": "SÁBIO AMARELO" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_pt-PT.json b/game/assets/jak1/subtitle/subtitle_lines_pt-PT.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_pt-PT.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_lines_sv-SE.json b/game/assets/jak1/subtitle/subtitle_lines_sv-SE.json new file mode 100644 index 0000000000..5081aae2cd --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_lines_sv-SE.json @@ -0,0 +1,2868 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + "GREAT! YOU HAVE THE 20 CELLS NEEDED TO POWER MY HEAT SHIELD!", + "NOW BE CAREFUL, THE SHIELD WILL ONLY PROTECT YOUR ZOOMER", + "TILL IT REACHES 500 DEGREES, SO TRY TO KEEP HER COOL.", + "FLYING OVER OPEN LAVA WILL DEFINITELY HEAT YOU UP FAST.", + "HIT 500 DEGREES, AND IT'S OVER.", + "OVER?! LIKE BURNING MOLTEN METAL OVER?!", + "THE FIRE CANYON GETS PRETTY HOT, SO KEEP A LOOK OUT FOR JUMPS", + "TO KEEP YOU OFF THE HOT GROUND.", + "I'VE ALSO RELEASED SEVERAL BLUE COOLING BALLOONS YOU CAN USE TO DROP", + "THE SHIELD'S TEMPERATURE QUICKLY.", + "OH! AND WHEN YOU GET ACROSS, DON'T FORGET TO ACTIVATE", + "THE TELEPORT GATE IN THE BLUE SAGE'S LAB.", + "THEN WE'LL BE ABLE TO TELEPORT OVER AND MEET YOU!", + "GOOD LUCK!" + ], + "assistant-introduction-blue-eco-switch": [ + "HEY BABY. WHAT DO YOU SAY YOU AND I GO CRUISIN' ON THIS A-GRAV ZOOMER?", + "RULE NUMBER ONE: I DON'T DATE ANIMALS.", + "OH YOU DON'T KNOW WHAT YOU'RE MISSING, HE HEH.", + "LISTEN, IF YOU NEED SOMETHING TO KEEP YOU BUSY, MY FATHER ALWAYS TALKED", + "ABOUT AN ANCIENT PRECURSOR PIPELINE HIDDEN DEEP UNDERGROUND.", + "SOME OF THESE PIPES END IN VENTS FROM WHICH ECO FLOWS FREELY,", + "AND SOME HAVE BEEN CAPPED OFF SO THAT THE ECO IS SEALED BACK.", + "THERE MUST BE A WAY TO TURN THE CAPPED VENTS ON.", + "I TRACED PART OF THE PIPELINE BACK TO THE FORBIDDEN TEMPLE.", + "MAYBE YOU SHOULD LOOK THERE FOR SOME TYPE OF SWITCH." + ], + "assistant-introduction-race-bike": [ + "HEY BABY, WHAT'CHA WORKIN' ON?", + "BE CAREFUL WITH THAT! I'M TRYING TO FIGURE HOW TO TRANSPORT THE ZOOMER", + "USING THE TRANS-PADS THE PRECURSORS LEFT ALL OVER THE WORLD.", + "IF YOU COME ACROSS ONE OF THESE PADS I CAN LOCK ON TO YOUR COMMUNICATOR'S LOCATION", + "AND SEND YOU THE ZOOMER!", + "KEEP AN EYE OUT FOR A TRANS-PAD WHEN YOU EXPLORE MISTY ISLAND, AND WHEREVER ELSE YOU GO!" + ], + "assistant-lavatube-end-resolution": [ + "HEY! WHERE'S OL' SHORT, GREEN AND WRINKLY?", + "THIS IS TERRIBLE! FATHER IS MISSING!", + "I THINK GOL AND MAIA MAY HAVE KIDNAPPED HIM AS WELL!", + "RELAX, SWEETHEART. I GOT EVERYTHING UNDER CONTROL.", + "UNDER CONTROL?!", + "LURKER ARMIES CONTINUE TO GROW ACROSS THE LAND,", + "THE SAGES HAVE BEEN KIDNAPPED,", + "GOL AND MAIA HAVE GATHERED ENOUGH ECO", + "TO COMPLETE THEIR TERRIBLE PLAN,", + "AND TO STOP THEM, YOU'RE GOING TO HAVE TO", + "FIGHT YOUR WAY THROUGH THEIR CITADEL!", + "UH... YEAH. THAT ABOUT, UH... SUMS IT UP.", + "YOU'VE GOT TO RESCUE MY FATHER BEFORE IT'S TOO LATE!", + "AND JAK...", + "BE CAREFUL.", + "YEAH. WE WILL BE!" + ], + "assistant-lavatube-start-resolution": [ + "HA HA! ALL RIGHT!", + "WITH THESE ADDITIONAL POWER CELLS, I SHOULD BE ABLE TO SUPPLY THE HEAT SHIELD", + "WITH ENOUGH POWER TO STAND UP TO THIS LAVA.", + "BUT THE SHIELD STILL HAS A LIMIT.", + "IT WILL NOW WITHSTAND TEMPERATURES UP TO 800 DEGREES, BUT NO MORE.", + "SO KEEP AN EYE ON YOUR GAUGE.", + "I DON'T WANNA THINK ABOUT WHAT THOSE TEMPERATURES WOULD DO TO YOUR ZOOMER", + "IF THE SHIELD GIVES OUT.", + "YEAH, THE HEAT...", + "WHAT? THE ZOOMER? HEY! WHAT ABOUT US?!", + "DON'T YOU THINK WE COULD LOOK FOR A SAFER ROUTE TO GOL'S CITADEL?", + "LOOK, I'VE RELEASED MORE COOLING BALLOONS INTO THE TUBE.", + "SO YOU CAN USE THEM TO KEEP THE TEMPERATURE DOWN.", + "AND DON'T FORGET TO ACTIVATE THE TELEPORT GATE IN THE YELLOW SAGE'S LAB.", + "WE'RE COUNTING ON YOU." + ], + "assistant-reminder-1-blue-eco-switch": [ + "I'M SURE IF YOU LOOKED INSIDE THE PRECURSOR FORBIDDEN TEMPLE", + "YOU'LL FIND A WAY TO TURN ON THAT CAPPED BLUE ECO VENT ON SENTINEL BEACH." + ], + "assistant-reminder-1-generic": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "assistant-reminder-1-race-bike": [ + "I'VE DEFINITELY FIGURED OUT HOW TO USE THE TRANS-PADS.", + "NOW GO TO MISTY ISLAND AND I'LL SEND THE ZOOMER OVER TO YOU." + ], + "assistant-village2-introduction": [ + "WHOA!", + "I DON'T THINK I'LL EVER GET USED TO THAT TELEPORTER TINGLING SENSATION.", + "HEY!", + "IT LOOKS LIKE THE BLUE SAGE THREW A PARTY.", + "OH MY! ROCK VILLAGE IS ON FIRE!", + "ONE HECK OF A PARTY.", + "NO, NO! I MEAN ROCK VILLAGE IS BEING BOMBARDED WITH FLAMING BOULDERS!", + "OH! AND IT LOOKS LIKE THE BLUE SAGE IS WORKING ON A LEVITATION MACHINE TO MOVE THEM.", + "ASSUMING IT'S OPERATIONAL, WE'RE GONNA NEED POWER CELLS TO FUEL IT.", + "I GUESS YOU TWO ARE GOING TO HAVE TO FIND SOME MORE.", + "WE'D BETTER TAKE A LOOK AT HIS NOTES.", + "JAK, GO CHECK ON THE VILLAGERS, THEN COME BACK AND GIVE US AN UPDATE.", + "AND TAKE THE FURBALL WITH YOU!" + ], + "assistant-village2-introduction-flutflut": [ + "BACK AGAIN, BOYS?", + "\"BOY\"?", + "HEY BABE, I'M A FULL-GROWN...", + "AH...", + "SOMETHIN'... SOMETHIN' FUZZY.", + "OH, GUESS WHAT? WITH PERMISSION FROM OUR VILLAGE BIRDWATCHER,", + "I'VE OUTFITTED THE BABY FLUT-FLUT WITH A RIDING SADDLE.", + "IT APPEARS THERE'S A PRECURSOR TRANS-PAD IN THE BOGGY SWAMP.", + "IF YOU CAN FIND IT, I'LL SEND YOU THE FLUT-FLUT IN FULL RIDING REGALIA.", + "HER LONG JUMP MIGHT COME IN HANDY WHEN YOU'RE CROSSING THE TAR." + ], + "assistant-village2-introduction-robbers": [ + "HEY, YOU TWO!", + "I KNOW WHERE YOU CAN FIND ANOTHER POWER CELL!", + "ACCORDING TO HIS NOTES,", + "A COUPLE OF DAYS AGO FLYING LURKERS STOLE ONE FROM THE BLUE SAGE,", + "AND FLEW OFF INTO THE PRECURSOR BASIN.", + "I'LL BET YOU COULD RUN THOSE LURKERS DOWN WITH YOUR ZOOMER", + "UNTIL YOU FIND THE ONE WITH THE POWER CELL.", + "YOU'LL FIND THE ZOOMER ON THE TRANS-PAD NEAR THE ENTRANCE TO THE PRECURSOR BASIN." + ], + "assistant-village2-introduction-room": [ + "APPARENTLY THE PRECURSOR STRUCTURE JUST OFF THE COAST", + "LEADS TO AN UNDERWATER LOST CITY.", + "THE BLUE SAGE HAS BEEN TRYING TO FIGURE OUT", + "HOW HE CAN BRING ONE OF THE CHAMBERS TO THE SURFACE.", + "BUT HE WAS NEVER SUCCESSFUL.", + "YOU SHOULD CHECK IT OUT!", + "UH... AREN'T THERE A LOT OF, UM...", + "LURKER SHARKS IN THAT WATER?", + "WHY? ARE YOU SCARED?", + "ME? OF COURSE NOT!", + "JUST LOOKIN' OUT FOR JAK HERE!", + "YOU, UH, HEH...", + "YOU KNOW WHAT A CHICKEN HE CAN BE.", + "WELL, IF YOU SWIM OUT OVER THE CORAL REEF, I DOUBT THE LURKER SHARKS WILL BOTHER YOU.", + "THEY DON'T LIKE SHALLOW WATER." + ], + "assistant-village2-reminder-1-flutflut": [ + "I'M SURE THE FLUT-FLUT COULD BE OF USE TO YOU IN THE SWAMP.", + "FIND THE TRANS-PAD AND I'LL TELEPORT HER TO YOU." + ], + "assistant-village2-reminder-1-robbers": [ + "I'LL TELEPORT YOUR ZOOMER TO YOU BY THE PRECURSOR BASIN,", + "SO YOU CAN CHASE DOWN THOSE FLYING LURKERS WE WERE TALKING ABOUT." + ], + "assistant-village2-reminder-1-room": [ + "DID YOU SWIM OUT TO THE LOST PRECURSOR CITY YET?", + "YOU SHOULD REALLY TRY AND RAISE THE ROOM THE BLUE SAGE WAS AFTER." + ], + "assistant-village2-resolution": [ + "GREAT, YOU HAVE THE CELLS FOR THE MACHINE!", + "THEY OUGHT TO PROVIDE ENOUGH POWER TO LIFT THAT BOULDER.", + "THERE WE GO!", + "NOW, BE CAREFUL FACING THAT MONSTER LURKER AT THE TOP.", + "WAIT! UH...", + "I'LL STAY HERE AND PROTECT KEIRA!", + "JAK, I THINK YOU'RE READY TO HANDLE THAT MONSTER WITHOUT ME.", + "OH, REALLY HEROIC OF YOU." + ], + "assistant-village3-reminder": [ + "HEY GUYS! KEEP COLLECTING POWER CELLS.", + "THEY'RE THE KEY TO CONTINUING OUR JOURNEY NORTH." + ], + "billy-accept": [ + "GOOD! THOSE RATS WILL BE BACK ANYTIME.", + "SHOOT ALL THEM RATS, AND KEEP 'EM", + "FROM EATING AT LEAST ONE OF THEM SNACKS." + ], + "billy-introduction": [ + "HOWDY, FRIENDS! ENJOYIN' MY BEAUTIFUL SWAMP?", + "I OWN THESE HERE PARTS.", + "EVERYTHING THAT DOESN'T SINK INTO THE MUD, THAT IS! HA HA HA...", + "JUDGING BY THE SMELL, I'D WAGER YOUR", + "BATHTUB SANK IN THE MUD LONG AGO.", + "WHAT'S A BATHTUB?", + "ANYWAY I GOT BIGGER PROBLEMS NOW...", + "SEEMS SOME NASTY LURKER VARMINTS ARE GROUSIN' ABOUTS,", + "SNATCHIN' EVERYTHING THEY CAN GET THEIR GRUBBY LITTLE PAWS ON.", + "AND SCARIN' AWAY MY PET HIPHOG, FARTHY.", + "HE'S BEEN MISSIN' FOR NIGH ON TO A COON'S AGE.", + "I'VE BEEN PUTTIN' OUT HIS FAVORITE SNACK,", + "BUT THOSE ORNERY SWAMP RATS KEEP STEALIN' EM!", + "IF YOU COULD KEEP THOSE PESKY CRITTERS AWAY LONG ENOUGH,", + "I JUST KNOW FARTHY WOULD SMELL THEM VITTLES AND COME BACK!", + "WILL YA HELP ME OUT?" + ], + "billy-reject": [ + "WELL, IF YOU CHANGE YOUR MIND, YOU KNOW WHERE TO FIND ME!", + "HE HE HE HE HEH..." + ], + "billy-reminder-1": [ + "AHH, Y'ALL BACK TO HELP STOP THEM RATS?" + ], + "billy-resolution": [ + "WELL FRY MY HIDE! YOU SURE KNOW HOW TO SHOOT!", + "THANKS A HEAP FOR THE HELP." + ], + "bird-lady-beach-resolution": [ + "OH MY, I HOPE THE POOR DEAR'S OKAY.", + "HERE'S A POWER CELL FOR YOUR VALOR.", + "MAMA!", + "MAMA!", + "OH NO! NO, NO, NO, NO!", + "LOOK... ISN'T THAT CUTE? IT THINKS YOU'RE ITS MAMA.", + "EH? I'M NOT YOUR MOM! YOU SEE ANY FEATHERS HERE?", + "OH, LOVE AT FIRST SIGHT! AH...", + "LISTEN, BOYS, I'LL TAKE THIS LITTLE CHICK BACK TO THE VILLAGE WITH ME", + "AND WORK WITH THE SAGE TO TAKE CARE OF HER." + ], + "bird-lady-introduction": [ + "OH MY, WHAT A HORRIBLY SICK LITTLE BIRD.", + "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!", + "OH, SORRY. I THOUGHT YOU WERE A SPOTTED", + "ORANGE-BELLIED RAIN FRAY.", + "YOU KNOW, YESTERDAY I SAW SOME", + "TERRIBLY VICIOUS CREATURES CAPTURE", + "A MOTHER FLUT-FLUT NEAR THE BEACH.", + "NOW THERE'S THIS POOR LITTLE ORPHAN EGG", + "SITTING IN A NEST AT THE TOP OF THE CLIFF", + "AND I CAN'T GET TO IT.", + "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED", + "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.", + "DO AN OLD LADY A FAVOR, AND I'LL GIVE YOU A POWER CELL." + ], + "bird-lady-reminder-1": [ + "OH, HELLO AGAIN. DID YOU BOYS FIND THAT BLUE EGG ON THE CLIFF?", + "PUSH IT OFF THE EDGE AND I'LL GIVE YOU A POWER CELL!" + ], + "bird-lady-reminder-2": [ + "ARE YOU BOYS STILL PICKING AROUND HERE? HO HO HO.", + "I'LL BET THAT POOR LITTLE BLUE EGG ON THE CLIFF", + "IS GETTING AWFULLY COLD BY NOW.", + "GO SAVE IT BY PUSHING IT OFF THE EDGE OF THE CLIFF,", + "AND I'LL GIVE YOU A POWER CELL." + ], + "bluesage-resolution": [ + "GOOD WORK, FELLOWS! OLD SAMOS WAS RIGHT ABOUT YOU!", + "GREAT PILES OF PRECURSOR METAL!", + "THAT INSIDIOUS MECHANICAL CREATION", + "MUST NOT BE ALLOWED TO WREAK ITS TERRIBLE HAVOC!", + "I WILL TRY TO ACTUATE THE SHIELD DOOR", + "BY ELICITING A CONDUIT OF ENERGY", + "BETWEEN MYSELF AND THE VAST PORTAL BELOW!", + "UH... YEAH. YOU DO THAT. WE'LL UH... JUST GO FIND MORE HELP.", + "WEIRDO!" + ], + "death-0181": [ + "DON'T STEP INTO THE LIGHT, JAK! DON'T STEP INTO THE LIGHT!" + ], + "death-0182": [ + "HEY, JAK! CAN I...", + "HAVE YOUR INSECT COLLECTION?" + ], + "death-0184": [ + "WHILE YOU'RE DOWN THERE, EHM...", + "COULD YA RUB MY FEET?" + ], + "death-0186": [ + "DON'T WORRY! I'LL AVENGE YOU!", + "...NOT." + ], + "death-0187": [ + "WELL, UH...", + "BETTER YOU THAN ME." + ], + "death-0191": [ + "THAT LOOKS LIKE IT HURT.", + "SHOULD I CALL FOR BACKUP?" + ], + "death-0193": [ + "STEP ONE: STAY ALIVE!", + "STEP TWO...", + "THINK ABOUT NOT DOING SOMETHING LIKE THAT AGAIN!" + ], + "death-0195": [ + "I WAS RIGHT BEHIND YA, JAK!", + "...REALLY. I WAS." + ], + "death-0197": [ + "HEIMLICH! UH... STRETCHER!", + "YUCK... BREATH MINT?" + ], + "death-0199": [ + "I'LL SAY SOMETHING REALLY TEARY AT THE FUNERAL, LIKE...", + "...\"HOW AM I GONNA GET CHANGED BACK NOW?!\"" + ], + "death-0202": [ + "SAY GOODNIGHT, JAK!" + ], + "evilbro-misty-end": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY DEAR BROTHER, I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR...", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO...YOU'RE GOING TO LET...KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED..." + ], + "explorer-introduction": [ + "WELL, HELLO THERE MY DEAR BOY.", + "YOU'VE CAUGHT AT A MOST INOPPORTUNE MOMENT.", + "I WAS TO SET OFF ON MY JOURNEYS YESTERDAY", + "BUT I SEEM TO BE A SPOT SHORT ON THE OLD PRECURSOR ORBS.", + "I WOULD'VE PLEDGED MY WORD THAT I HAD 90 OF THEM,", + "BUT I GATHER THAT YOUR YOUNG FRIEND, YOU KNOW, THE", + "LITTLE ANNOYING MISERABLY UGLY ONE", + "MIGHT HAVE JUST PILFERED THEM AS A SORT OF A SPOT OF FUN.", + "ANYWAY, WOULD YOU BE KIND ENOUGH TO LOAN YOUR DEAR OLD UNCLE", + "90 PRECURSOR ORBS SO HE CAN GET UNDERWAY?", + "I WOULD OFFER YOU A POWER CELL IN RETURN." + ], + "explorer-reminder-1": [ + "WHAT? YOU DON'T HAVE THE FULL STASH? HARRUMPH!", + "WELL, ANY LESS THAN 90 PRECURSOR ORBS", + "AND I SHAN'T HAVE A CHANCE TO GET UNDERWAY, DEAR BOY." + ], + "explorer-reminder-2": [ + "OH SEE HERE, THE DEAL IS FOR 90 PRECURSOR ORBS FOR A POWER CELL.", + "A DOWNRIGHT EVEN TRADE." + ], + "explorer-resolution": [ + "I SEE YOU TWO ARE BACK TO MAKE THE TRADE. GOOD, GOOD, JOLLY GOOD!", + "EH, YOU HAVE THE UH, PRECURSOR ORBS THAT WE AGREED ON?", + "I HOPE YOU PUT THIS HARD-EARNED POWER CELL TO GOOD USE.", + "CHEERIO, TA TA, BYE BYE!" + ], + "farmer-introduction": [ + "GOTTA MILK THOSE YAKOWS, GOTTA MILK THOSE YAKOWS...", + "OH! IT'S YOU... JUST RESTIN' MY TIRED BONES.", + "I'VE BEEN TRYING TO GET THOSE ORNERY YAKOWS", + "BACK INTO THE PEN ALL DAY!", + "SOME STRANGE CREATURES TRIED TO STEAL 'EM EARLIER.", + "YOU THINK YOU CAN HELP AN OLD MAN TRY TO GET 'EM BACK INTO THE CORRAL?" + ], + "farmer-reminder-1": [ + "HEY! MY YAKOWS ARE STILL ON THE LOOSE!", + "EH, COULD YOU BRING 'EM BACK FOR ME ALREADY?" + ], + "farmer-reminder-2": [ + "THOSE DARN YAKOWS ARE STILL ROAMIN' FREE.", + "AIN'T YOU GONNA CHASE 'EM INTO THE CORRAL ALREADY?" + ], + "farmer-resolution": [ + "AH, WELL DONE MY BOY. YOU ACTUALLY GOT THOSE FLEABAGS PACK INTO THE PEN.", + "NOW I CAN SLEEP IN PEACE. TAKE THIS POWER CELL FOR YOUR TROUBLE." + ], + "finalbosscam-white-eco": [ + "LIGHT ECO! IT DOES EXIST!", + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "fisher-accept": [ + "THERE ARE TWO TYPES OF GOOD FISH TO CATCH:", + "ONE-POUND FISHIES, AND FIVE-POUND FISHIES.", + "HEH. IF YOU MISS 20 POUNDS OF GOOD FISH", + "THEN I'M GONNA TAKE ME NET BACK FROM YA!", + "THERE ARE POISONOUS EELS IN THIS RIVER.", + "CATCH EVEN ONE OF THEM BOOGERS", + "AND YOU'LL POISON THE WHOLE DARN CATCH!" + ], + "fisher-introduction": [ + "WHAT DO YOU HAVE IN THE BASKET?", + "NOTHING TO TALK ABOUT.", + "THEM MONSTERS PATROLIN' THE OCEAN", + "TOOK A BITE OUT OF ME FISHIN' RIG.", + "AND NOW THEY'RE GOBLIN' UP ME CATCH!", + "NO MATTER WHAT I TRY, I CAN'T SEEM TO CATCH A SINGLE FISH IN THIS RIVER.", + "WHOO! MAYBE... IT'S YOUR BREATH.", + "YOU THINK YOU CAN DO BETTER?", + "TRY SCOOPIN' UP RIVER FISH WITH A TINY NET!", + "I'LL GIVE YOU A POWER CELL", + "IF YOU CAN CATCH 200 POUNDS OF THEM CRITTERS!", + "AND I'LL LET YOU AND SHRIMP HERE", + "USE MY SPEEDBOAT TO GET TO MISTY ISLAND.", + "YOU'S WANT TO TRY THE CHALLENGE?" + ], + "fisher-reject": [ + "WELL, IF YOU WANT TO TRY FOR THE POWER CELL SOMETIME", + "YOU KNOW WHERE TO FIND ME." + ], + "fisher-reminder-1": [ + "WANT TO TRY AND BEAT THE RIVER, DO YA?" + ], + "fisher-resolution": [ + "YOU DID IT! YOU CAUGHT 200 POUNDS OF FISH!", + "NOT BAD FOR A COUPLE OF LAND LUBBERS!", + "HERE'S THE POWER CELL I PROMISED", + "AND YOU CAN USE MY BOAT IN THE VILLAGE DOCK", + "WHENEVER YOU LIKE!" + ], + "fishermans-boat-ride-to-village1-alt": [ + "THOSE TWO COULD PROVE TO BE TROUBLE.", + "DON'T WORRY, DEAR BROTHER. I'LL DISPATCH MY LURKER ARMY TO DEAL WITH THEM.", + "JUST MAKE SURE THEY DON'T GET TOO CLOSE TO OUR NORTHERN OPERATIONS.", + "I DOUBT THEY'LL GET THAT FAR.", + "BUT IF THEY DO, A SURPRISE WILL BE WAITING FOR THEM IN ROCK VILLAGE.", + "SO... YOU'RE GOING TO LET KLAWW OUT OF HIS CAGE?", + "I THINK IT'S WORTH THE RISK.", + "INDEED." + ], + "gambler-introduction-1": [ + "AW, NO. NOT ANOTHER \"HERO\".", + "I LOST MY SHORTS ON THIS SO-CALLED HERO'S BIG FIGHT", + "AGAINST THE MONSTER UP THERE.", + "TRUST ME, THE SMART MONEY'S ON THE MONSTER.", + "THAT WAGER PRETTY MUCH TAPPED ME OUT!", + "SO'S, I GOT A PROPOSAL.", + "BRING ME 90 ORBS TO GET ME BACK ON MY FEET AND OUT OF THIS BARREL,", + "AND I'LL GIVE YOU A POWER CELL IN RETURN.", + "AND IF YOU'RE GAME, I DO HAVE ONE MORE BET ONLINE.", + "MY BIG COMEBACK!", + "BEAT THE RECORD TIME RACING DEAD MAN'S GORGE IN THE PRECURSOR BASIN,", + "AND I'LL GET A PRETTY PAYOFF!", + "FOR THAT, I'LL GIVE YOU ANOTHER POWER CELL." + ], + "gambler-reminder-money": [ + "HEY. DON'T FORGET ABOUT THOSE ORBS I NEED.", + "90'LL GET YOU ONE. ONE POWER CELL, THAT IS!" + ], + "gambler-reminder-race": [ + "WELL, WHAT ARE YOU WAITIN' FOR?", + "THIS BARREL'S GETTIN' ITCHY!", + "BEAT THE BEST TIME DOWN DEAD MAN'S GORGE,", + "AND WE'LL BOTH BE WINNERS!" + ], + "gambler-resolution-money": [ + "HEH HEH HEH! OH, YEAH!", + "THESE ORBS'LL HELP ME WIN MY WAY BACK OUTTA THIS BARREL!", + "HERE'S THE POWER CELL I PROMISED!" + ], + "gambler-resolution-race": [ + "OH, GREAT MOVES, KID! I KNEW THAT TIME RECORD WOULD FALL.", + "NOW HERE'S YOUR POWER CELL, AND I CAN GO COLLECT MY BIG PAYOFF!" + ], + "geologist-introduction": [ + "YOU TWO LOOK LIKE A COUPLE OF CAPABLE FELLOWS.", + "I'VE GOT A RESEARCH PROJECT GOING,", + "AND MAYBE YOU COULD HELP ME OUT.", + "HEY, WE'RE THE ONES ON A BIG QUEST HERE.", + "WE ASK YOU FOR HELP.", + "WELL, PERHAPS WE CAN HELP EACH OTHER.", + "I'VE BEEN STUDYING THE BURROWING HABITS OF LIGHTING MOLES", + "IN THE PRECURSOR BASIN NEXT TO OUR VILLAGE FOR YEARS.", + "BUT NOW THOSE AWFUL LURKERS HAVE SCARED THE MOLES TO THE SURFACE!", + "AND SINCE THEY'RE BLIND AS BATS, THEY CAN'T FIND THEIR WAY BACK UNDERGROUND.", + "IF YOU COULD HERD THEM BACK INTO THEIR BURROWING TUNNELS,", + "YOU MIGHT JUST SAVE THEIR LIVES.", + "I'VE GOT A POWER CELL THAT SAYS YOU CAN DO IT.", + "YEAH, LIGHTNING MOLES... WE CARE.", + "MAYBE FOR TWO POWER CELLS!", + "NICE TRY. BUT I WOULD BE WILLING TO PART WITH ANOTHER POWER CELL", + "IF YOU TWO FIND ME 90 PRECURSOR ORBS FOR MY RESEARCH EQUIPMENT.", + "FAIR ENOUGH?" + ], + "geologist-reminder-moles": [ + "DID YOU HERD THOSE LIGHTNING MOLES BACK UNDERGROUND?", + "YOU SHOULD HURRY - THE DIRECT SUNLIGHT ISN'T GOOD FOR THEM!" + ], + "geologist-reminder-money": [ + "I NEED THOSE ORBS IF I'M GOING TO CONTINUE MY RESEARCH!" + ], + "geologist-resolution-moles": [ + "THANK YOU FOR SAVING THOSE MOLES, THAT'S AWFULLY GOOD OF YOU.", + "HERE'S A POWER CELL TO HELP YOU OUT.", + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "geologist-resolution-money": [ + "OH, YOU HAVE THE ORBS!", + "HERE'S A POWER CELL WE AGREED UPON." + ], + "green-sagecage-daxter-sacrifice": [ + "LIGHT ECO! THAT COULD BE THE STUFF TO CHANGE ME BACK!", + "OR... IT MIGHT STOP THAT ROBOT.", + "STAY FUZZY, SAVE THE WORLD... CHOICES...", + "OKAY, FINE, WE'LL SAVE THE WORLD.", + "BUT DO IT QUICKLY BEFORE I CHANGE MY MIND!" + ], + "green-sagecage-introduction": [ + "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!", + "NICE TO SEE YOU TOO!", + "DO THEY HAVE YOU MOPPING THE FLOORS NOW?", + "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US", + "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.", + "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT", + "WITH SCAVENGED ARTIFACTS FROM ACROSS THE LAND.", + "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,", + "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.", + "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS", + "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT", + "BEFORE THEY USE IT TO DESTROY THE WORLD." + ], + "green-sagecage-outro-beat-boss-a": [ + "DO SOMETHING!", + "NOOO!" + ], + "green-sagecage-outro-beat-boss-b": [ + "WELL, IT LOOKS LIKE I MAY HAVE BEEN TOO HARD ON YOU BOYS!", + "YOU DO HAVE WHAT IT TAKES TO BE HEROES!", + "BUT, DAXTER, NOW WE CAN'T CHANGE YOU BACK.", + "DON'T WORRY ABOUT ME, BABY.", + "YOU KNOW WHAT THEY SAY: BIG THINGS COME IN SMALL PACKAGES.", + "JAK, YOU HAVE AN INCREDIBLE TALENT FOR CHANNELLING ECO!", + "SAMOS, YOU MAY HAVE BEEN RIGHT ABOUT THIS ONE AFTER ALL!", + "AND KEIRA, WITHOUT YOUR HELP AND INGENUITY", + "NONE OF THIS WOULD HAVE BEEN POSSIBLE.", + "HM-HM-HM. PERHAPS WE FOUND ANOTHER SAGE", + "NOW THAT GOL AND MAIA ARE LOST...", + "YES, GOL AND MAIA... THE DARK ECO PROBABLY DESTROYED THEM.", + "EH, PROBABLY...", + "AH WHO CARES? BRING 'EM ON, WE CAN TAKE 'EM AGAIN! RIGHT JAK?", + "I SAID, RIGHT, JAK?", + "WHOA! PUT IT ON ICE, BIG GUY!" + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "UH, WE'RE HEROES, REMEMBER? WE HAVE 100 POWER CELLS!" + ], + "green-sagecage-outro-beat-boss-need-cells": [ + "HOLY YAKOW! WHAT COULD THAT BE?", + "WOW, IT'S AN ANCIENT PRECURSOR DOOR!", + "IT LOOKS LIKE IT WILL ONLY OPEN IF WE FILL ALL 100 HOLES WITH POWER CELLS!", + "OH BOY... HERE WE GO AGAIN!" + ], + "green-sagecage-outro-big-finish": [ + "WOW! WHAT IS IT?", + "IT'S SO BEAUTIFUL...", + "BY THE PRECURSORS..." + ], + "green-sagecage-outro-preboss": [ + "YOU'RE TOO LATE, SAMOS.", + "ONCE I POSSESS LIMITLESS DARK ECO", + "I WILL HAVE THE KEY TO CREATION ITSELF!", + "THIS IS MADNESS!", + "RELEASING THAT MUCH DARK ECO WILL DESTROY EVERYTHING WE KNOW!", + "JUST LOOK WHAT IT'S DONE TO YOU!", + "IT HAS GIVEN US A BEAUTY BEYOND ANYTHING YOU COULD UNDERSTAND.", + "BEAUTY? HAVE YOU TWO LOOKED IN THE MIRROR LATELY?", + "JUST WAIT UNTIL WE OPEN THE SILOS, LITTLE ONE.", + "YOU THINK SHORT AND FUZZY IS BAD?", + "AND TO THINK, YOU TWO TRAVELLED ALL THIS WAY FOR MY HELP.", + "FOOLS! ENJOY YOUR FRONT ROW SEATS TO THE RECREATION OF THE WORLD!", + "JAK! TAKE THE ELEVATOR UP AND STOP THAT ROBOT!" + ], + "green-sagecage-resolution": [ + "GOOD WORK, BOYS! YOU'RE REAL HEROES NOW.", + "I'LL COMBINE MY GREEN ECO POWER WITH THE OTHER THREE SAGES", + "AND TOGETHER WE'LL OPEN THE SHIELD DOOR SURROUNDING THE PRECURSOR ROBOT.", + "YEAH YEAH THAT SOUNDS LIKE A GOOD START.", + "AND THEN AFTER YOU GUYS OPEN THAT SHIELD", + "WHAT ARE YOU GONNA DO ABOUT THE ROBOT?", + "NOTHING, DAXTER. WE HAVE TO KEEP THE SHIELD OPEN.", + "IT'S UP TO YOU TWO TO FIGURE OUT HOW TO DESTROY THE ROBOT.", + "OH, GREAT. I GET TO HELP THE GUY THAT TURNED ME INTO A FURBALL", + "DESTROY THE ONLY PERSON WHO CAN TURN ME BACK!", + "FIRST, SAVE THE WORLD!", + "THEN WE'LL TRY TO CONVINCE GOL TO HELP DAXTER." + ], + "mayor-introduction": [ + "NO... (MUTTERS) DON'T TELL ME THAT YOU TWO HAVE PROBLEMS AS WELL!", + "FIRST I HEAR OF MONSTER SIGHTINGS NEAR THE VILLAGE, AND NOW THIS.", + "SEE THOSE GEARS UP THERE, BOYS? SEE THEM? SEE HOW THEY'RE NOT MOVING?", + "THAT MEANS OUR VILLAGE HAS NO POWER!", + "THE ECO BEAM COMING FROM THE JUNGLE TEMPLE HAS BEEN INTERRUPTED!", + "AND BOYS, EVERYONE'S TOO FRIGHTENED TO GO OUT AND FIND OUT WHAT'S HAPPENED.", + "DID YOU PAY THE BILL?", + "YEAH-HMM? OH-HUH-OH, YOU'RE FUNNY.", + "NOW LOOK, IF YOU TWO FIX THE ECO BEAM, I'LL GIVE YOU A POWER CELL.", + "OH OOH OOH AND-AND ANOTHER THING, UH...", + "IF BY ANY CHANCE YOU'RE INTERESTED IN MAKING A CONTRIBUTION TO MY RE-ELECTION CAMPAIGN,", + "I-I MIGHT BE WILLING TO PART WITH YET ANOTHER POWER CELL!", + "THE MINIMUM CONTRIBUTION IS, OH, A VERY MODEST...", + "90 PRECURSOR ORBS." + ], + "mayor-reminder-beams": [ + "BACK ALREADY? AND WITHOUT FIXING THE ECO BEAMS?", + "(SOBS) YOUR VILLAGE NEEDS YOU, BOYS!" + ], + "mayor-reminder-donation": [ + "AH, HERE TO MAKE A DONATION TO MY CAMPAIGN, OH HO HO HO.", + "90 PRECURSOR ORBS BUYS YOU A POWER CELL, THANK YOU." + ], + "mayor-resolution-beams": [ + "OH HO HO, WHAT A WONDERFUL SIGHT! I THANK YOU!", + "AND THE ENTIRE VILLAGE WILL THANK ME -", + "UH, BOYS, YOU HAVE RESTORED POWER TO THE VILLAGE AND GUARANTEED MY RE-ELECTION!", + "AND FOR THAT, MY BOY, YOU'VE EARNED A POWER CELL." + ], + "mayor-resolution-donation": [ + "SO EH, YOU UH, WANNA MAKE A CONTRIBUTION? GOOD... A-A-A SIZABLE ONE I HOPE.", + "YOOH! EH HE HE, IT'S A, OH, THIS IS A SIZABLE CONTRIBUTION!", + "I, WH-WH-WH-WHY I JUST HOPE THIS POWER CELL ADEQUATELY REPRESENTS MY GRATITUDE." + ], + "minershort-introduction-gnawers": [ + "WHY DON'T YOU TWO MAKE YOURSELVES USEFUL?", + "LURKERS HAVE BEEN EXCAVATIN' THE DARK CAVES OVER THERE.", + "SEEMS THEY'RE LOOKIN' FOR PRECURSOR ARTIFACTS.", + "THEY CAN HAVE THE ARTIFACTS, FOR ALL I CARE.", + "FOR ALL WE CARE!", + "WILLARD, FEED YOUR BIRD.", + "ALL I CARE ABOUT ARE GEMS!", + "BUT I AIN'T GONNA BE ABLE TO GET THE CAVE'S GEMS", + "BECAUSE WHEN THEY'RE THROUGH, THEY'RE GONNA COLLAPSE THE PLACE!", + "IF YOU TAKE OUT THE LURKERS CHEWIN' AT THE SUPPORT BEAMS,", + "YOU COULD SAVE THE CAVE FOR ME.", + "NOW BEAT IT!" + ], + "minershort-introduction-orbs": [ + "HEY GORDY, DUH, I THINK WE GOT VISITORS.", + "YA THINK, WILLARD? HOWDY, STRANGERS, UH, PASSING THROUGH?", + "UH, US, TOO. WELL, WE GOTTA BE MOVIN' ON, NOTHIN' TO SEE HERE.", + "DUH, I THOUGHT YOU SAID THIS WAS A PRICELESS GEM WORTH-", + "WILLARD!", + "ACTUALLY, WE WANT POWER CELLS. NOT GEMS.", + "WE GOT FOUR OF 'EM. DUH, YOU WANT 'EM?", + "WHAT BIRD-BRAIN HERE IS TRYING TO SAY IS,", + "WE MAY HAVE A FEW POWER CELLS LAYING AROUND,", + "AND WE MIGHT BE WILLING TO PART WITH THEM FOR...", + "90 ORBS EACH.", + "WHERE HAVE I HEARD THAT BEFORE?", + "HEY, HOW DO YOU TWO GENIUSES EXPECT TO GET THAT BIG GEM OUTTA HERE ANYWAY?", + "WELL, SMARTYPANTS, WE GOT TWELVE MORE YEARS OF DIGGIN' TO FIGURE THAT OUT.", + "UHH... GORDY, WOULDN'T IT TAKE LESS TIME IF YOU DUG, TOO?" + ], + "minershort-introduction-switch": [ + "PSST, GUYS. DUH...", + "BIRDIE AND I WAS EXPLORING A CAVE YOU'D LIKE!", + "IT WAS FILLED WITH PRETTY ORANGE METAL,", + "AND HIDDEN REAL GOOD BEHIND SOME TREES IN THE SNOWY MOUNTAINS!", + "I TOLD GORDY, BUT HE JUST YELLED AT ME FOR NOT DIGGING!", + "WHY AREN'T YOU DIGGING?!", + "I'M SORRY!" + ], + "minershort-reminder-1-gnawers": [ + "WOULD YOU TAKE CARE OF THOSE LURKERS", + "CHEWIN' AT THE DARK CAVE SUPPORT BEAMS ALREADY!", + "THOSE BEAMS CAN'T TAKE THAT KIND OF ABUSE FOREVER!" + ], + "minershort-reminder-1-orbs": [ + "DON'T FORGET OUR DEAL. BRING US 100 ORBS.", + "DUH... YOU SAID 90.", + "WILLARD!", + "FINE. 90 ORBS A POWER CELL." + ], + "minershort-reminder-1-switch": [ + "DID YOU FIND THE CAVE BEHIND THEM TREES IN THE SNOWY MOUNTAINS?", + "I'M GONNA GO THERE SOON, TO HIDE FROM GORDY, 'CAUSE HE'S YELLING AT ME AGAIN!", + "WILLARD!!" + ], + "minershort-reminder-2-orbs": [ + "DUH, GORDY?", + "90 ORBS A POWER CELL, WILLARD! URGH!" + ], + "minershort-resolution-1-orbs": [ + "OH, ALRIGHT ALREADY.", + "HERE'S A POWER CELL FOR THOSE ORBS OF YOURS." + ], + "minershort-resolution-2-orbs": [ + "OOH! OH, I GOT IT THIS TIME! UH...", + "HERE'S A...", + "DUHH.. HERE'S A...!", + "A POWER CELL!", + "YEAH, YEAH... WHAT HE SAID.", + "THAT'S IT. YOU'VE CLEANED US OUT.", + "NO! MORE! POWER! CELLS!" + ], + "oracle-intro-1": [ + "WHO AWAKENS THE ORACLE?", + "WAIT, ONE OF YOU HAS THE LIGHT WITHIN.", + "FROM BEFORE TIME, I HAVE WATCHED AND WAITED", + "FOR THE TRUE HERO TO RETURN.", + "PRESENT TO ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-2": [ + "BEWARE OF THE DARK LIGHT,", + "FOR IT HAS TWISTED THE FATE OF ONE OF YOU.", + "BRING ME 120 PRECURSOR ORBS", + "FOR EACH POWER CELL I CONTAIN." + ], + "oracle-intro-3": [ + "SEEK THE PURE LIGHT, FOR WITHIN ITS FLAME THE ANSWERS RESIDE.", + "YOU CAN GAIN MY POWER CELLS", + "BY BRINGING 120 PRECURSOR ORBS FOR EACH." + ], + "oracle-left-eye-1": [ + "YOU HAVE PROVEN YOURSELF WORTHY. HERE IS A POWER CELL." + ], + "oracle-left-eye-2": [ + "FOR YOUR SACRIFICE, I OFFER YOU A POWER CELL." + ], + "oracle-left-eye-3": [ + "FOR YOUR EFFORT, A POWER CELL IS THE REWARD." + ], + "oracle-reminder-1": [ + "BRING TO ME 120 PRECURSOR ORBS", + "AND I WILL AWARD YOU A POWER CELL." + ], + "oracle-reminder-2": [ + "PRESENT 120 PRECURSOR ORBS", + "AND A POWER CELL WILL BE YOUR REWARD." + ], + "oracle-reminder-3": [ + "YOU MUST BRING 120 PRECURSOR ORBS", + "TO ME FOR EACH POWER CELL I CONTAIN." + ], + "oracle-right-eye-1": [ + "FOR YOUR GIFT, ANOTHER POWER CELL IS YOURS." + ], + "oracle-right-eye-2": [ + "HERE IS ANOTHER POWER CELL FOR YOUR QUEST." + ], + "oracle-right-eye-3": [ + "YOU HAVE OBTAINED ANOTHER POWER CELL." + ], + "redsage-resolution": [ + "HE-HE-HEH... YOU'VE FINALLY COME TO RESCUE ME.", + "DO YOU KNOW HOW LONG I'VE BEEN IN HERE?", + "WHAT TOOK YOU SO LONG? AND UH, HE-HE-HEH...", + "WHAT ARE YOUR NAMES?", + "I'M DAXTER! HE'S JAK, HE'S WITH ME.", + "GOOD JOB, DAXTER. YOU'RE A REAL HERO.", + "YOU'VE GOT TO STOP GOL FROM LAUNCHING THE ROBOT.", + "I'LL USE MY ECO POWER TO HELP OPEN THE SHIELD DOOR." + ], + "sage-bluehut-introduction-crop-dusting": [ + "WELL, THE SITUATION HERE STINKS WORSE THAN A LURKER'S ARMPIT.", + "BEFORE BLUE SAGE'S DISAPPEARANCE,", + "HE JOURNALED SIGNIFICANT TROUBLE IN ALL OF THE SURROUNDING AREAS.", + "OF PARTICULAR INTEREST TO ME IS THE DARK ECO INFECTION", + "OF SOME INNOCENT PLANTS IN THE PRECURSOR BASIN.", + "KEIRA WILL TELEPORT YOUR A-GRAV ZOOMER TO THE NEAREST TRANS-PAD.", + "RIDE THE ZOOMER TO A GREEN ECO VENT,", + "AND THEN CARRY THE GREEN ECO TO THE CORRUPTED PLANTS.", + "THAT SHOULD HEAL THEM.", + "DON'T MISS A SINGLE PLANT, OR THE INFECTED ONES WILL SLOWLY RE-INFECT THE HEALTHY ONES.", + "AND, DAXTER...", + "START CLEANING UP IN HERE!", + "AND DON'T FORGET THE CORNERS!" + ], + "sage-bluehut-introduction-prec-arm": [ + "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.", + "ACCORDING TO THE BLUE SAGE'S NOTES,", + "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.", + "APPARENTLY, THEY'RE PLANNING TO USE A DIRIGIBLE", + "TO LIFT AN IMPORTANT PRECURSOR ARTIFACT FROM THE MUCK.", + "YOU'RE GOING TO HAVE TO GET OVER THERE TO DISLODGE THEIR TETHERS.", + "WHO KNOWS WHAT THEY MIGHT WANT WITH THE ARTIFACT,", + "BUT LIKE ORANGE STUFF HERE'S BREATH, IT JUST CAN'T BE GOOD." + ], + "sage-bluehut-reminder-1-crop-dusting": [ + "MY EYES MUST BE DECEIVING ME!", + "BECAUSE I KNOW THAT THE TWO OF YOU ARE DEEP IN THE PRECURSOR BASIN,", + "SAVING THE DARK ECO-INFECTED PLANTS." + ], + "sage-bluehut-reminder-1-prec-arm": [ + "WHAT ARE YOU DOING BACK HERE ALREADY?", + "I CAN SEE FROM THE BALCONY", + "THAT THE LURKER DIRIGIBLE IS STILL FLOATING ABOVE THE SWAMP.", + "YOU OBVIOUSLY HAVEN'T COMPLETED YOUR TASK.", + "GET MOVING!" + ], + "sage-intro-sequence-a": [ + "I HAVE SPENT MY LIFE SEARCHING FOR THE ANSWERS THAT MY FATHER,", + "AND MY FATHER'S FATHERS FAILED TO FIND.", + "WHO WERE THE PRECURSORS?", + "WHY DID THEY CREATE THE VAST MONOLITHS THAT LITTER OUR PLANET?", + "HOW DID THEY HARNESS ECO, THE LIFE ENERGY OF THE WORLD?", + "WHAT WAS THEIR PURPOSE? AND WHY DID THEY VANISH?", + "I HAVE ASKED THE PLANTS, BUT THEY DO NOT REMEMBER.", + "THE PLANTS HAVE ASKED THE ROCKS, BUT THE ROCKS DO NOT RECALL.", + "EVEN THE ROCKS DO NOT RECALL...", + "EVERY BONE IN MY BODY TELLS ME THAT THE ANSWERS REST", + "ON THE SHOULDERS OF A YOUNG BOY", + "OBLIVIOUS TO HIS DESTINY, UNINTERESTED IN THE SEARCH FOR TRUTH", + "AND REJECTING OF MY GUIDANCE!", + "AND WHY WOULD HE WANT TO LISTEN TO OLD SAMOS THE SAGE ANYWAY?", + "I'M ONLY THE MASTER OF GREEN ECO, ONE OF THE WISEST MEN ON THE PLANET!", + "SO IT SEEMS THE ANSWER BEGINS NOT WITH CAREFUL RESEARCH", + "OR SENSIBLE THINKING.", + "NAY! AS WITH MANY OF FATE'S MYSTERIES", + "IT BEGINS WITH BUT A SMALL ACT OF DISOBEDIENCE.", + "HEY! UH, JAK? OL' GREEN STUFF TOLD US NOT TO COME HERE!" + ], + "sage-intro-sequence-d1": [ + "WHAT IN GREEN TARNATION DO YOU TWO WANT?", + "WE- WE- WE WAS- THEY WAS- I'M- I WAS-", + "DON'T TELL ME! INSTEAD OF HEEDING MY WISDOM", + "THE TWO OF YOU WENT MUCKING AROUND", + "IN THE ONLY PLACE THAT I TOLD YOU NOT TO GO: MISTY ISLAND!", + "THAT'S RIGHT! AND THEN-", + "AND, DAXTER, YOU FINALLY TOOK A MUCH-NEEDED BATH", + "BUT IN A BATHTUB FILLED WITH DARK ECO.", + "LOOK, OLD MAN, ARE YOU GONNA KEEP YAPPIN'", + "OR YOU GONNA HELP ME OUTTA THIS MESS!?", + "I'M GONNA KEEP YAPPIN'! BECAUSE IN MY PROFESSIONAL OPINION", + "THE CHANGE IS AN IMPROVEMENT.", + "AND BESIDES... I COULDN'T HELP YOU IF I WANTED TO.", + "WHAT!?", + "THERE'S ONLY ONE PERSON WHO HAS STUDIED DARK ECO LONG ENOUGH", + "TO HAVE A CHANCE AT RETURNING YOU TO YOUR PREVIOUS FORM:", + "GOL ACHERON, THE SAGE.", + "BUT HE LIVES FAR TO THE NORTH. FAR, FAR TO THE NORTH.", + "NOBODY HAS SPOKEN TO HIM IN AGES.", + "I WOULD TELEPORT YOU THERE, BUT I CAN'T DO THAT EITHER.", + "NONE OF THE THREE SAGES THAT MAINTAIN THE OTHER TELEPORTER GATES", + "HAVE SEEN FIT TO TURN THEIR ENDS ON FOR QUITE A WHILE!" + ], + "sage-intro-sequence-d2": [ + "THE ONLY OTHER WAY NORTH IS BY FOOT THROUGH THE FIRE CANYON", + "BUT ITS VOLCANIC SOIL IS HOT ENOUGH TO MELT PRECURSOR METAL.", + "YOU CAN'T JUST WALK THROUGH IT.", + "BUT YOU COULD FLY OVER IT", + "IF YOU HAD A ZOOMER EQUIPPED WITH A HEAT SHIELD.", + "I JUST HAPPEN TO BE WORKING ON SUCH A THING AT THIS VERY MOMENT.", + "ALL I WOULD NEED IS TWENTY POWER CELLS TO GIVE IT ENOUGH ENERGY", + "TO WITHSTAND THE CANYON'S HEAT. ISN'T THAT RIGHT, DADDY?", + "YES, KEIRA, THAT MIGHT WORK. BUT WHERE ARE A BOY", + "AND A HALF!", + "GOING TO GET TWENTY POWER CELLS?", + "FROM THE VILLAGERS! MOST OF THEM HAVE A POWER CELL OR TWO", + "STASHED AWAY SOMEWHERE.", + "AND EVEN IF THEY AREN'T WILLING TO JUST GIVE THEM AWAY", + "GREASING THEIR PALMS WITH A FEW PRECURSOR ORBS SHOULD DO THE TRICK.", + "AND I BET THERE ARE EVEN MORE OF THEM OUT IN THE WILDS JUST WAITING FOR SOME", + "BRAVE ADVENTURER TO FIND.", + "WELL WE'VE GOT THE BRAVE ADVENTURER, AT LEAST.", + "BRAVE ADVENTURER?", + "YOU TWO COULDN'T FIND YOUR WAY OUT OF THE VILLAGE WITHOUT TRAINING!", + "BEFORE YOU DO ANYTHING ELSE, YOU BETTER GO THROUGH THE WARP GATE AND GET", + "SOME PRACTICE ON GEYSER ROCK.", + "UH, WE WON'T FIND ANY MORE OF THAT DARK GOOEY ECO STUFF, WILL WE?", + "'CAUSE I'D HATE TO FALL IN AGAIN AND TURN INTO YOU!", + "GET IN THERE! BEFORE I TURN YOU BOTH INTO FERNS!" + ], + "sage-intro-sequence-e": [ + "GOOD TRAINING, BOYS, BUT THAT'S NOTHING COMPARED TO THE CHALLENGES THAT LIE AHEAD.", + "AH, THEY'RE NO PROBLEM. WE GOT THE MOVES, EH JAK?", + "WE'D LOVE TO STAY AND CHAT, BIG GREEN, BUT WE'RE UH...", + "ITCHING TO GET ON WITH OUR ADVENTURES.", + "FINE, FINE, \"ADVENTURE\" AWAY THEN.", + "AND WHILE YOU'RE OUT \"ADVENTURING,\" WHY DON'T YOU MAKE YOURSELF USEFUL?", + "MY DARN GREEN ECO COLLECTORS ARE CLOGGED UP AGAIN.", + "HEAD OUT TO THE FAR SIDE OF THE BEACH AND CLEAR THEM OUT WHY DON'T YOU.", + "FOLLOW THE LAMPS, THEY'LL TAKE YOU RIGHT THERE.", + "NOW, ALL OF YOU...", + "GET OUT OF HERE!" + ], + "sage-introduction-misty-cannon": [ + "OH, IT'S THE CONQUERING HEROES.", + "GOOD, I WANTED TO TALK WITH YOU TWO ABOUT SOMETHING SERIOUS.", + "THERE APPEARS TO BE QUITE A BIT OF LURKER ACTIVITY ON MISTY ISLAND.", + "I CAN SEE THEM BOMBARDING THE PRECURSOR SILO FROM MY LOOKOUT TOWER.", + "IF THE LURKERS OPEN IT UP AND RELEASE THE DARK ECO, WE COULD ALL END UP", + "RUNNING AROUND LOOKING AS RIDICULOUS AS THIS ANNOYING LITTLE SPECIMEN.", + "JAK, IT'S TIME FOR YOU TO PROVE YOUR WORTH.", + "GET THE FISHERMAN TO LET YOU TAKE HIS BOAT BACK TO MISTY ISLAND", + "GET TO THE TOP OF THE PRECURSOR SILO AND TAKE OUT THAT CANNON.", + "AND... WHAT ABOUT ME?", + "YOU? WHY DON'T YOU MOP MY FLOORS? THEY SEEM TO HAVE LOST THEIR SHINE LATELY." + ], + "sage-reminder-1-ecorocks": [ + "SOME \"BRAVE ADVENTURERS\" YOU TWO ARE.", + "BACK ALREADY AND WITHOUT CLEARING MY BLOCKED ECO HARVESTERS!", + "THEY'RE ON THE FAR SIDE OF THE BEACH, BOYS.", + "NOW...", + "GET MOVING!" + ], + "sage-reminder-1-generic": [ + "WHAT ARE YOU TWO DOING HERE? YOU HAVE POWER CELLS TO COLLECT!", + "LEAVE ME ALONE... UNTIL YOU HAVE THEM!" + ], + "sage-reminder-1-misty-cannon": [ + "THE BOMBARDMENT IS GETTING WORSE!", + "FIND THE FISHERMAN IN THE JUNGLE, GET PERMISSION TO USE HIS BOAT", + "AND GET OVER TO MISTY ISLAND TO STOP THE CANNON.", + "AND YOU DAXTER, YOU NEED TO GET MOPPING. THIS PLACE IS A MESS!" + ], + "sage-reminder-2-generic": [ + "YOU TWO JUST DON'T UNDERSTAND THE GRAVITY OF THE SITUATION.", + "THIS IS ABOUT MORE THAN A SINGLE BOY GONE FUZZY. THIS IS ABOUT LIFE AS WE KNOW IT.", + "NOW, GET OUT THERE AND FULFILL YOUR DESTINY." + ], + "sage-village3-introduction": [ + "OW! I ALWAYS WONDER IF I'M LOSING BODY PARTS IN THOSE THINGS!", + "HOLY YAKOW! THE RED SAGE'S LAB LOOKS WORSE THAN THE BLUE'S!", + "WELL, IT DEFINITELY LOOKS AS THOUGH THERE'S BEEN A STRUGGLE HERE.", + "HA HA HA HA HA!", + "I'D HARDLY CALL IT \"STRUGGLE.\"", + "WOULD YOU, DEAR SISTER?", + "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.", + "NO FUN AT ALL.", + "GOL? IS THAT YOU?", + "YOU'VE FINALLY GONE OFF THE DEEP END, EH?", + "AND, MAIA! I TOLD YOU THE DARK ECO WOULD AFFECT YOU BOTH!", + "HNG, NOBODY EVER LISTENS TO OLD SAMOS...", + "WHAT HAVE YOU TWO DONE WITH THE BLUE AND RED SAGES?", + "DON'T WORRY ABOUT YOUR COLORFUL FRIENDS, YOU OLD FOOL.", + "THEY'RE PERFECTLY SAFE IN OUR CITADEL. OUR SPECIAL GUESTS.", + "THEY HAVE GRACIOUSLY AGREED TO HELP US ON A LITTLE PROJECT.", + "YOU WERE WRONG, SAMOS. DARK ECO CAN BE CONTROLLED!", + "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.", + "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-", + "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO", + "WE COULD FIND NEAR THE SURFACE.", + "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES", + "OF DARK ECO HIDDEN DEEP UNDERGROUND.", + "NOT THE SILOS!", + "YES, THE SILOS!", + "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!", + "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-", + "OH, DON'T LOOK SO UPSET, SAMOS.", + "WE'VE GOT BIG PLANS FOR YOU.", + "AH HA HA HA HA HA HA! AHH...", + "WAIT A MINUTE!", + "THAT WAS GOL?", + "THE SAME GOL WHO'S SUPPOSED TO CHANGE ME BACK?", + "GOL IS THE GUY TRYING TO KILL US?!", + "I'M DOOMED.", + "WE MAY ALL BE DOOMED.", + "IF THEY OPEN THE SILOS, THE DARK ECO WILL", + "TWIST AND DESTROY EVERYTHING IT TOUCHES!", + "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!", + "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE", + "AT THE BOTTOM OF THIS CRATER.", + "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD", + "SHOULD GET YOU ACROSS THE LAVA SAFELY.", + "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.", + "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS." + ], + "sage-village3-introduction-dark-eco": [ + "GREAT BALLS OF ECO!", + "THERE SEEMS TO BE A LARGE LURKER PRESENCE IN THE SPIDER CAVES!", + "GREAT. SOUNDS LIKE A REAL CHEERY PLACE.", + "LET ME GUESS. THERE ARE SPIDERS IN THE SPIDER CAVES, RIGHT?", + "OF COURSE THERE ARE SPIDERS IN SPIDER CAVES!", + "BUT THAT'S THE LEAST OF YOUR PROBLEMS!", + "THE LURKERS ARE AFTER CRYSTALS OF CONCENTRATED DARK ECO.", + "YOU'VE GOT TO DESTROY THE CRYSTALS BEFORE THOSE MONSTERS", + "GET THEIR HANDS ON THEM!", + "HOP TO IT!" + ], + "sage-village3-introduction-rams": [ + "I'M GLAD YOU TWO ARE HERE. THERE'S LURKER MOVEMENT IN THE MOUNTAINS.", + "APPARENTLY THEY'VE DISCOVERED, AND ARE NOW TRYING TO REMOVE,", + "SOME DARK ECO STORES FROZEN IN THE GLACIERS.", + "WHILE YOU'RE UP THERE POKING AROUND FOR POWER CELLS", + "STOP THOSE LURKERS, AND KEEP A LITTLE MORE DARK ECO OUT OF GOL'S HANDS." + ], + "sage-village3-reminder-1-dark-eco": [ + "YOU HAVE TO DESTROY THE DARK ECO CRYSTALS IN SPIDER CAVES!" + ], + "sage-village3-reminder-1-rams": [ + "WE CAN'T LET THE LURKERS GET THEIR HANDS ON THE DARK ECO CANISTERS.", + "GET UP TO THOSE SNOWY PEAKS AND STOP THEM!" + ], + "sculptor-introduction": [ + "HEY... LITTLE FURRY DUDE!", + "AWW... I THOUGHT FOR A MOMENT YOU WERE MY MUSE.", + "YOUR WHAT?", + "HAVEN'T YOU EVER SEEN A MUSE BEFORE?", + "IT'S A LITTLE GLOWIN' SQUIRREL ABOUT YOUR SIZE, FULL OF SPUNK, AND CRAZY AS A LARK!", + "OH, I GET IT! LIKE A SIDEKICK.", + "AS A MATTER OF FACT, WITHOUT MY MUSE, I JUST CAN'T SCULPT.", + "BUT WITH HER AROUND... I SEE BEAUTY IN EVERYTHING, YOU KNOW?", + "RIGHT NOW I COULDN'T CHISEL MY WAY OUT OF A BOX.", + "I THINK SHE RAN AWAY TO THAT MISTY ISLAND.", + "AWW, I JUST HOPE SHE'S ALL RIGHT.", + "IT'S WORTH A POWER CELL IF YOU BRING HER BACK TO ME!", + "WAIT A MINUTE! WE ARE NOT GOING BACK TO MISTY ISLAND!", + "ARE WE?" + ], + "sculptor-reminder-1": [ + "AW HEY DUDES! DID YOU FIND MY MUSE YET?" + ], + "sculptor-resolution": [ + "OH, MY MUSE! YOU SAVED HER! AW, YOU REALLY ARE THE BEST!", + "HERE, TAKE THIS POWER CELL. I WON'T NEED IT NOW THAT I HAVE MY INSPIRATION BACK!" + ], + "sidekick-human-intro-sequence-b": [ + "CONTINUE YOUR SEARCH FOR ARTIFACTS AND ECO.", + "IF THE LOCALS POSSESS PRECURSOR ITEMS, YOU KNOW WHAT TO DO.", + "DEAL HARSHLY WITH ANYBODY WHO STRAYS FROM THE VILLAGE.", + "WE WILL ATTACK IT IN DUE TIME." + ], + "sidekick-human-intro-sequence-c": [ + "WHAT ARE WE DOING HERE ANYWAY, JAK? THIS PLACE GIVES ME THE CREEPS!", + "HUH?", + "(GROAN) STUPID PRECURSOR JUNK!", + "EEK! WHAT IS THAT DARK OOZE? IT SURE DON'T LOOK FRIENDLY.", + "THE SAGE YAPS ON ABOUT THE PRECURSORS THAT BUILT THIS PLACE ALL THE TIME.", + "\"WHERE DID THEY GO? WHY DID THEY BUILD THIS CRAP?\"", + "NOW I LIKE PRECURSOR ORBS AND POWER CELLS AS MUCH AS THE NEXT GUY", + "BUT IF YOU ASK ME, THEY MUST HAVE BEEN REAL LOSERS.", + "WHOA! HOW DID YOU DO THAT?", + "JAK, I THINK WE'RE IN TROUBLE!", + "MAN, THAT STUNG.", + "I TOLD YOU WE SHOULDN'T HAVE COME HERE, AND YOU LISTENED?", + "WHAAAT?", + "WAAAAAAAAHHHHHHHH!!", + "OKAY, OKAY. I'M FINE, I'M FINE...", + "WAAAAAAAAHHHHHHHH!!" + ], + "warrior-introduction": [ + "OHH... MY ACHING HEAD.", + "I DOUBT THAT'S ONE OF YOUR VITAL ORGANS!", + "WALK IT OFF, TOUGH GUY!", + "OH, SURE, I WAS TOUGH ONCE.", + "MAYBE EVEN THE TOUGHEST OF THEM ALL.", + "I SINGLE-HANDEDLY DEFENDED THIS VILLAGE FROM THOSE HORRID CREATURES FOR ALMOST A YEAR!", + "THEN THAT HORRIBLE MONSTER ARRIVED AND COMMENCED THE BOULDER BOMBARDMENT.", + "SO, FULL OF VALOR, ARMOR SHINING IN THE SUN...", + "I CLIMBED THE HILL TO TAKE HIM ON...!", + "BUT HE POUNDED ME LIKE ONE TENDERIZES A YAKOW STEAK.", + "HAVE YOU TRIED ATTACKING HIM WITH YOUR MELODRAMA?", + "'CAUSE IT'S KILLIN' ME!", + "AFTER MY LAST STUNNING FAILURE,", + "HE SEALED THE PASSAGEWAY TO HIS ROOST WITH A 30-TON BOULDER,", + "LEAVING NO WAY FOR ANYONE TO CHALLENGE HIM AGAIN.", + "SO, OUR SAGE, A MASTER OF BLUE ECO AND A MECHANICAL GENIUS, DEVISED A MACHINE", + "CAPABLE OF LIFTING THE BOULDER OUT OF THE WAY...!", + "BUT ALAS, HE DISAPPEARED BEFORE WE HAD A CHANCE TO TURN IT ON.", + "AND HE TOOK ALL OF HIS POWER CELLS WITH HIM.", + "AT LEAST I WAS ABLE TO PULL ENOUGH PONTOONS OUT OF OUR BRIDGE TO PREVENT", + "THAT MONSTER FROM COMING DOWN HERE TO DO ME HARM.", + "YEAH, GOOD, GOOD JOB, TOUGH GUY. BUT, UM...", + "WE'RE GONNA NEED YOU TO, UH... PUT 'EM BACK, AND STUFF.", + "OH, SURE! AND SEAL MY DOOM?", + "(SIGHS)", + "ALRIGHT. FINE.", + "BRING ME 90 PRECURSOR ORBS AND I'LL LET THE PONTOONS LOOSE.", + "BUT I'M NOT GOING TO FIGHT THAT MONSTER AGAIN!" + ], + "warrior-reminder-1": [ + "TAKE ALL THE TIME YOU WANT BRINGING ME THE PRECURSOR ORBS", + "I'M NOT LOOKING TO FIX THE PONTOON BRIDGE ANY TIME SOON." + ], + "warrior-resolution": [ + "OH.", + "WONDERFUL.", + "YA BROUGHT ME THE PRECURSOR ORBS.", + "ALL RIGHT.", + "I'LL FIX THE BRIDGE.", + "BUT DON'T ASK ME TO GET INVOLVED WITH THAT CREATURE AGAIN!" + ], + "yellowsage-resolution": [ + "WHO WOULDA THOUGHT I'D LIVE TO SEE THE DAY", + "WHEN I NEEDED TO BE RESCUED BY A BOY AND HIS MUSKRAT!", + "AHH... I'M GONNA GIVE GOL AND MAIA", + "A LITTLE PAYBACK FOR THIS EMBARRASSMENT!", + "THEN WE'LL SEE ABOUT COOKING UP SOME MUSKRAT STEW...", + "(GULPS)" + ] + }, + "hints": { + "ASSTLP01": [ + "HMM..." + ], + "ASSTLP02": [ + "GOTTA GET THIS HEAT SHIELD WORKING..." + ], + "ASSTLP03": [ + "WE NEED POWER CELLS TO FUEL THE HEAT SHIELD..." + ], + "ASSTLP04": [ + "WHERE'S MY SPANNER?" + ], + "ASSTLP05": [ + "FIRE CANYON IS SO HOT..." + ], + "ASSTLP23": [ + "NOW, HOW DID HE GET THAT LEVITATOR TO WORK?" + ], + "ASSTLP24": [ + "NOW, EVEN WITH POWER CELLS,", + "WILL WE HAVE ENOUGH POWER?" + ], + "ASSTLP30": [ + "HM, LET'S SEE..." + ], + "ASSTLP31": [ + "HM." + ], + "ASSTLP32": [ + "OH, MY..." + ], + "ASSTLP33": [ + "AH-HA!" + ], + "ASSTLP34": [ + "HUH... WHAT ARE GOL AND MAIA UP TO?" + ], + "ASSTLP35": [ + "HMM... WE'VE GOTTA GET TO PRECURSOR CITY." + ], + "ASSTLP36": [ + "HUH. THE HEAT SHIELD'S GOING TO NEED EVEN MORE POWER", + "TO WITHSTAND THE LAVA." + ], + "ASSTLP37": [ + "AW... WE'VE GOT TO SAVE THE OTHER SAGES..." + ], + "BIL-AM01": [ + "I JUST LOVE THE MUD." + ], + "BIL-AM02": [ + "DARN SWAMP RATS." + ], + "BIL-AM03": [ + "I NEED A GOOD DRAUGHT OF MAMA'S MEDICINE." + ], + "BIL-AM04": [ + "GLADIOLA." + ], + "BIL-AM05": [ + "I NEED ME SOME BROWN MEDICINE." + ], + "BIL-AM06": [ + "I NEED ME SOME SUMMER COOLANT." + ], + "BIL-AM07": [ + "DARN, THIS HEAT'S GIVIN' ME THE PRICKLIES." + ], + "BIL-AM08": [ + "DARN... THIS HEAT'S GIVIN' ME A RASH." + ], + "BIL-AM1A": [ + "MM-MM! I JUST LOVE THE MUD!" + ], + "BIL-AM2A": [ + "DARN SWAMP RATS!" + ], + "BIL-AM2B": [ + "DARN SWAMP RATS!" + ], + "BIL-LO01": [ + "FARTHY!" + ], + "BIL-LO02": [ + "SOIEE-SOIEE-SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO03": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO1A": [ + "FARTHY!" + ], + "BIL-LO2A": [ + "SOIEE-SOIEE-SOIEE!" + ], + "BIL-LO2B": [ + "SOIEE! SOIEE!" + ], + "BIL-TA01": [ + "GET 'EM!" + ], + "BIL-TA02": [ + "NICE SHOT!" + ], + "BIL-TA03": [ + "OVER THAR!" + ], + "BIL-TA04": [ + "AW, DANG." + ], + "BIL-TA05": [ + "RAT GOT A SNACK." + ], + "BIL-TA06": [ + "AND ANOTHER..." + ], + "BIL-TA07": [ + "THERE'S ONLY ONE LEFT..." + ], + "BIL-TA08": [ + "GOT 'EM." + ], + "BIL-TA09": [ + "YEEHAW!" + ], + "BIL-TA1A": [ + "GET 'EM!" + ], + "BIL-TA2A": [ + "NICE SHOT!" + ], + "BIL-TA3A": [ + "OVER THAR." + ], + "BIL-TA4A": [ + "DANG!" + ], + "BIL-TA4B": [ + "DANG!" + ], + "BIL-TA5A": [ + "RAT GOT A SNACK!" + ], + "BIR-AM01": [ + "ARE YOU NEAR THE EGG YET?" + ], + "BIR-AM02": [ + "THAT'S IT, JUST A LITTLE FURTHER!" + ], + "BIR-AM03": [ + "OH, GOOD, NOW PUSH IT. OH, GENTLY NOW!" + ], + "BIR-AM04": [ + "OH, MY, THAT WASN'T GENTLE!" + ], + "BIR-AM05": [ + "COME ON, PUSH THE EGG OFF THE CLIFF!" + ], + "BIR-AM06": [ + "OHH!" + ], + "BIR-AM07": [ + "OH, HERE, BIRDIE BIRDIE. HERE, BIRDIE BIRDIE." + ], + "BIR-AM08": [ + "HERE, BIRDIE BIRDIE." + ], + "BIR-AM09": [ + "BE CAREFUL, IT DOESN'T LOOK SAFE UP THERE!" + ], + "BIR-AM10": [ + "CAREFUL, EASY DOES IT!" + ], + "BIR-AM11": [ + "GOOD JOB! NOW MEET ME DOWN HERE BY THE EGG." + ], + "BIR-AM12": [ + "YOU MUST BE A TRUE ANIMAL LOVER!" + ], + "BIR-AM13": [ + "DO YOU SEE ANY OTHER BIRDS UP THERE?" + ], + "BIR-LO01": [ + "(KISS) (WHISTLE)" + ], + "BIR-LO02": [ + "OH MY, THAT'S A PRETTY ONE." + ], + "BIR-LO03": [ + "OH LOOK, A MUCKY-MUCK." + ], + "BIR-am08": [ + "HERE, BIRDIE BIRDIE..." + ], + "BLU-AM01": [ + "A LITTLE BIT OF HELP WOULD BE GOOD!" + ], + "BLU-AM02": [ + "OH, THIS IS A FINE MESS." + ], + "BLU-AM03": [ + "HMM, QUITE AN ENIGMA WE'RE FACING." + ], + "CHI-AM01": [ + "THIS IS A CATASTROPHE. A CATASTROPHE I SAY!" + ], + "CHI-AM02": [ + "THEY WANT ME TO GO INTO THE JUNGLE - ME! HO HO OH...", + "I'D SOONER WRESTLE AN ENRAGED FLUT-FLUT." + ], + "CHI-AM03": [ + "F-FIRST THE FISHERMAN'S BOAT IS...", + "IT'S ATTACKED BY A MONSTER...", + "AND NOW, NOW THIS...", + "WHAT ELSE COULD GO WRONG?" + ], + "CHI-AM04": [ + "I DON'T... I'D, I'D... OOH, MAYBE I SHOULD RAISE TAXES...", + "TO PAY FOR THIS MESS." + ], + "CHI-AM05": [ + "PROBLEMS... PROBLEMS... PROBLEMS!" + ], + "CHI-AM06": [ + "(SOBS) I'LL NEVER GET RE-ELECTED NOW..." + ], + "CHI-AM07": [ + "(MOANS) WHAT'S HAPPENED TO THE VILLAGE'S ENERGY BEAM?" + ], + "CHI-AM08": [ + "I... THEY, I DON'T... (MUTTERS)" + ], + "CHI-LO01": [ + "...WINDMILL, MONSTERS, POWER, RE-ELECTION..." + ], + "CHI-LO02": [ + "...THE POLLS, I... MONSTERS, HM... RE-ELECTION, OH..." + ], + "EXP-AM01": [ + "I NEED TO SET OFF ON MY JOURNEY SOON.", + "I NEED PRECURSOR ORBS!" + ], + "EXP-AM02": [ + "LET'S SEE, NOW WHERE SHALL I GO FIRST? EH..." + ], + "EXP-AM03": [ + "OH I DO MISS THE OPEN ROAD." + ], + "EXP-AM04": [ + "SO MANY PLACES TO SEE, AND SO LITTLE TIME." + ], + "EXP-AM05": [ + "WELL IN MY DAY, YOU COULD WALK THE LANDS", + "WITHOUT BEING ASSAULTED BY MONSTERS!" + ], + "EXP-LO02": [ + "I NEED MORE PRECURSOR ORBS." + ], + "EXP-LO1A": [ + "(MUTTERS)" + ], + "FAR-AM01": [ + "(SNORES) HERE, BESSIE... HERE, BESSIE BESSIE...", + "THAT'S A GOOD GIRL..." + ], + "FAR-AM02": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS..." + ], + "FAR-AM2A": [ + "GOTTA BRING IN THE CROPS 'FORE THE JUNE BUGS GET..." + ], + "FAR-LO01": [ + "(SNORES)" + ], + "FAR-LO1A": [ + "(SNORES)" + ], + "FIS-AM01": [ + "GRR, THESE DARN FISH...", + "I NEVER CATCH ME A SINGLE ONE." + ], + "FIS-AM02": [ + "THEM MONSTERS THAT DONE BIT ME SHIP", + "WILL DRIVE ME BROKE." + ], + "FIS-AM03": [ + "DRAT, THESE BLIGHTERS!", + "IN ME BASKET, DARN FISHIES, COME ON YEAH...", + "HEH HE HE HE HE..." + ], + "FIS-AM04": [ + "OH I LOVE THE SMELL OF FISH IN THE MORNIN'." + ], + "FIS-AM05": [ + "OOH I COULD USE ME A SALTED FISH LIPS ON RYE." + ], + "FIS-AM06": [ + "I 'MEMBER THE BIG ONE THAT GOT AWAY..." + ], + "FIS-LO01": [ + "GRR!" + ], + "FIS-LO03": [ + "HA HA HA HA HA HAH!" + ], + "FIS-LO04": [ + "DARN FISH... THEY NEVER GET IN ME NET!" + ], + "FIS-LO05": [ + "HA HA HA AH HA HA HA HAH!" + ], + "FIS-TA01": [ + "TO THE LEFT!" + ], + "FIS-TA02": [ + "RIGHT WITH YA!" + ], + "FIS-TA03": [ + "HERE COMES A BIG ONE!" + ], + "FIS-TA04": [ + "YE MISSED A JUMBO, LADDIE!" + ], + "FIS-TA05": [ + "DON'T MISS ONE LIKE THAT AGAIN!" + ], + "FIS-TA06": [ + "STEADY BOY." + ], + "FIS-TA07": [ + "YOUR SAILS ARE SAGGING IN THE WIND, BOY." + ], + "FIS-TA08": [ + "MISSED." + ], + "FIS-TA09": [ + "LOOKS LIKE YOU COULD USE A BIGGER NET..." + ], + "FIS-TA10": [ + "MISSED AGAIN!" + ], + "FIS-TA11": [ + "HOLD STEADY! YOU'RE ALMOST THERE..." + ], + "FIS-TA1A": [ + "LEFT!" + ], + "FIS-TA2A": [ + "RIGHT!" + ], + "GAM-AM01": [ + "HEY, TWENTY-TO-ONE ODDS AIN'T SO BAD!" + ], + "GAM-AM02": [ + "NO, IT WAS A SURE THING!" + ], + "GAM-AM03": [ + "HEH HEH HEH... I'M GONNA HIT THE JACKPOT NEXT TIME!" + ], + "GAM-AM04": [ + "HEH! IF I HAD AN ORB FOR EVERY MISSED OPPORTUNITY...!" + ], + "GAM-AM05": [ + "HEY! BARRELS COULD COME BACK IN STYLE!" + ], + "GAM-AM06": [ + "OH... I NEED A LUCKY BREAK." + ], + "GAM-AM07": [ + "AW, WHAT ARE THE ODDS OF MOVIN' TO A TOWN UNDER ATTACK?" + ], + "GAM-AM08": [ + "I THOUGHT I HAD A GOOD TIP!" + ], + "GAM-AM09": [ + "ANOTHER DAY, ANOTHER WAGER." + ], + "GAM-AM10": [ + "I BET NO ONE CAN TAKE ON THAT MONSTER." + ], + "GAM-AM11": [ + "HUH-HUH... I SHOULD CASH OUT AND MOVE ON." + ], + "GAM-AM12": [ + "EH, SOMETIMES YOU JUST CAN'T WIN." + ], + "GAM-AM13": [ + "HEY, WHAT ARE YOU LAUGHIN' AT? DO I AMUSE YOU?" + ], + "GEO-AM01": [ + "MM, INTERESTING STRATA..." + ], + "GEO-AM02": [ + "POOR LITTLE MOLES..." + ], + "GEO-AM03": [ + "INTERESTING..." + ], + "GEO-AM04": [ + "GOOD LUCK, BOYS!" + ], + "GEO-AM05": [ + "NASTY LURKERS..." + ], + "GEO-AM06": [ + "ROCKS HAVE FEELINGS, TOO..." + ], + "GEO-AM07": [ + "HANG IN THERE, LITTLE ONES..." + ], + "GEO-AM08": [ + "NOW I CAN GET BACK TO MY RESEARCH!" + ], + "GEO-LO01": [ + "I'VE GOT TO GET BACK TO MY RESEARCH." + ], + "GEO-LO02": [ + "HM, THIS STONE IS VERY OLD..." + ], + "GOL-AM01": [ + "YOU JUST WON'T GIVE UP, WILL YOU?" + ], + "GOL-AM02": [ + "SOON, THE DARK ECO WILL BE OURS!" + ], + "GOL-AM03": [ + "FINISH THEM!" + ], + "GOL-AM04": [ + "FIRE!" + ], + "GOL-AM05": [ + "BLAST THEM!" + ], + "GOL-AM06": [ + "WHAT? THEM AGAIN!" + ], + "GOL-AM07": [ + "IT'S TOO LATE!" + ], + "GOL-AM08": [ + "YOU ARE MINE!" + ], + "GOL-AM09": [ + "I HAVE YOU NOW!" + ], + "GOL-AM10": [ + "AH HA HA HA HA!" + ], + "GOL-AM11": [ + "NO MERCY!" + ], + "GOL-AM12": [ + "TAKE THAT!" + ], + "GOL-AM13": [ + "NICE TRY!" + ], + "GOL-AM14": [ + "STAND STILL!" + ], + "GOL-AM15": [ + "PATHETIC!" + ], + "GOL-AM16": [ + "NOOO!" + ], + "GOL-AM17": [ + "AHHH!" + ], + "GOL-AM18": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "GOL-AM19": [ + "LIGHT ECO! IT DOES EXIST!" + ], + "GOL-AM20": [ + "WE'RE NOT GONNA TAKE IT!" + ], + "MAI-AM01": [ + "FINISH THEM BOTH OFF ONCE AND FOR ALL!" + ], + "MAI-AM02": [ + "TAKE THEM OUT!" + ], + "MAI-AM03": [ + "HA HA HA!" + ], + "MAI-AM04": [ + "ECO WON'T PROTECT YOU NOW!" + ], + "MAI-AM05": [ + "DO SOMETHING!" + ], + "MAI-AM06": [ + "AGH!" + ], + "MAI-AM07": [ + "NOOOOO!" + ], + "MAI-AM08": [ + "WE'LL OPEN THE SILO ALL THE WAY AND DESTROY YOU TWO!" + ], + "MAI-AM09": [ + "THEY MUST NOT BE ALLOWED TO GET IT!" + ], + "MIN-LO01": [ + "ONE OF THESE DAYS I'LL BE RICH...", + "YOU MEAN WE'LL BE RICH!", + "YEAH. WHATEVER." + ], + "MIN-LO03": [ + "DIG, WILLARD! DIG!", + "YEAH, BUT YOU'RE NOT DIGGING!", + "THAT'S 'CAUSE I'M DOIN' THE THINKIN'!" + ], + "MIN-LO04": [ + "DUH, GORDY? CAN I TAKE A BREAK?", + "OH, I'LL BREAK SOMETHIN' ALRIGHT. NOW DIG!" + ], + "MIN-LO05": [ + "I'M STARVING, GORDY!", + "EAT YOUR BIRD!" + ], + "MIN-LO06": [ + "DUH, GORDY? I NEED A SHARPER PICK.", + "WHAT YOU NEED IS A SHARPER WIT!" + ], + "MSH-AM01": [ + "WAH-HA-HA-HA-HA! I'M GONNA BE RICH!" + ], + "MSH-AM02": [ + "DIG, DIG, DIG!" + ], + "MSH-AM03": [ + "WILLARD! WORK HARDER, NOT SMARTER!" + ], + "MSH-AM04": [ + "AH-HAH, I'LL BE THE RICHEST MAN IN THE WORLD! AH HA HA..." + ], + "MSH-AM05": [ + "OH HO HO! NOBODY'S EVEN SEEN A GEM THIS SIZE! AH HA HA!" + ], + "MSH-AM06": [ + "EASY STREET, HERE I COME!" + ], + "MSH-AM07": [ + "MY GEMS! ALL MY GEMS!" + ], + "MSH-AM08": [], + "MSH-AM09": [ + "(CHUCKLING) I CAN'T WAIT TO CASH THIS BABY IN!" + ], + "MSH-AM10": [ + "THIS LOOKS LIKE A RARE CRYSTITE ZLARCONIA! OH-HO-HO!" + ], + "MSH-AM11": [ + "NOW WAIT A MINUTE! THEY'RE ALL MINE! MINE, I TELL YA!" + ], + "MSH-AM12": [ + "SO, WILLARD. WHAT ARE YOU GONNA DO WITH", + "YOUR QUARTER, OF YOUR HALF?" + ], + "MSH-AM1A": [ + "I'M GONNA BE RICH!" + ], + "MSH-AM2A": [ + "DIG, DIG, DIG!" + ], + "MSH-AM3A": [ + "WORK HARDER, NOT SMARTER!" + ], + "MTA-AM01": [ + "DUH, ARE WE ALMOST DONE?" + ], + "MTA-AM02": [ + "GEE, CAN WE TAKE A BREAK?" + ], + "MTA-AM03": [ + "AWW, I'M HUNGRY..." + ], + "MTA-AM04": [ + "DUH... I THINK BIRDIE'S CAGE NEEDS CLEANING..." + ], + "MTA-AM05": [ + "GEE, THAT'S AN AWFULLY BIG GEM!" + ], + "MTA-AM06": [ + "DUH... I ALWAYS WANTED TO BE A LUMBERJACK..." + ], + "MTA-AM07": [ + "DUH, GORDY PROMISED TO GIVE ME HALF OF WHATEVER I COULD CARRY!" + ], + "MTA-AM08": [ + "EH HEH... BIRDIE IS MY BEST FRIEND..." + ], + "MTA-AM09": [ + "I LOVE MY LITTLE BIRDIE..." + ], + "RED-AM01": [ + "IS ANYBODY THERE?" + ], + "RED-AM02": [ + "WELL..." + ], + "RED-AM03": [ + "WHAT KEPT YOU?" + ], + "SAGELP03": [ + "THESE TWO COULDN'T UNBLOCK THEIR EARS..." + ], + "SAGELP04": [ + "HE'LL JUST NEVER BE LIKE HIS UNCLE...", + "I DON'T CARE WHAT THE OTHERS SAY." + ], + "SAGELP05": [ + "HELLO, BLUE SAGE? HELLO?", + "WHERE IN THE BLUE BLAZES COULD HE BE..." + ], + "SAGELP06": [ + "MY, MY, MY..." + ], + "SAGELP11": [ + "ANYONE? ANYONE AT ALL? COME IN?" + ], + "SAGELP20": [ + "HMM..." + ], + "SAGELP21": [ + "THE LURKERS MUST BE STOPPED." + ], + "SAGELP22": [ + "I SEE..." + ], + "SAGELP23": [ + "NO..." + ], + "SAGELP24": [ + "WHAT COULD HAVE HAPPENED TO THEM?" + ], + "SAGELP31": [ + "THIS ISN'T GOOD." + ], + "SAGELP32": [ + "DARK ECO CRYSTALS?" + ], + "SAGELP33": [ + "MAIA AND GOL HAVE GOTTEN IN OVER THEIR HEADS!" + ], + "SAGELP34": [ + "HNG, DARK ECO'S POWERS CANNOT BE CONTROLLED!" + ], + "SAGELP35": [ + "DARK ECO IN THE GLACIERS?" + ], + "SAGELP36": [ + "AH! THERE'S LURKER TROOPS IN THE MOUNTAINS!" + ], + "SAGELP37": [ + "WHAT IS GOL PLANNING..." + ], + "SAGELP38": [ + "COULD HE ACTUALLY HAVE...?" + ], + "SCU-AM01": [ + "AW... I JUST CAN'T DO IT ANYMORE." + ], + "SCU-AM02": [ + "AW, I WISH I HAD SOME INSPIRATION." + ], + "SCU-AM03": [ + "I'M AS INSPIRED AS... THIS ROCK." + ], + "SCU-AM04": [ + "AW... WHERE IS MY MUSE?" + ], + "SCU-AM05": [ + "I CAN'T WORK LIKE THIS!" + ], + "SCU-AM06": [ + "AW MAN... WILL SHE EVER COME BACK TO ME?" + ], + "SCU-LO01": [ + "AW MAN..." + ], + "SKSP009F": [ + "GET SOME! GET SOME! HA HA HA!" + ], + "WAR-LO1A": [ + "(SOBBING)" + ], + "WAR-LO1B": [ + "(SOBS)" + ], + "WAR-LO1C": [ + "(BLOWS NOSE AND SPUTTERS)", + "(CONTINUES SOBBING)" + ], + "YEL-AM01": [ + "TIME IS RUNNIN' OUT!" + ], + "YEL-AM02": [ + "HEY! GET ME OUTTA HERE!" + ], + "YEL-AM03": [ + "WHEN I GET OUTTA HERE, SOME SHOOTIN'S GONNA START!" + ], + "asstv100": [ + "OKAY, YOU HAVE ENOUGH CELLS TO INCREASE THE POWER ON THE HEAT SHIELD.", + "RIDE THE WOODEN MINECART DOWN THE SHAFT BY THE LAVA GEYSER.", + "I'LL MEET YOU BY THE ENTRANCE TO THE LAVA TUBE,", + "SO I CAN MODIFY THE ZOOMER. HURRY!" + ], + "asstv101": [ + "HAHA, OKAY! YOU HAVE ENOUGH CELLS TO INCREASE", + "THE POWER ON THE HEAT SHIELD.", + "MEET ME BACK IN THE VOLCANIC CRATER.", + "I'LL BE WAITING BY THE LAVA TUBE DOWN THE SHAFT BY THE LAVA GEYSER.", + "BRING ME THE POWER CELLS!" + ], + "asstv102": [ + "HURRY UP WITH THOSE POWER CELLS!", + "I'M WAITING BY THE WOODEN MINECART SHAFT NEAR THE LAVA GEYSER." + ], + "asstv103": [ + "DON'T FORGET TO TURN ON THE TELEPORT GATE TO LET US THROUGH.", + "YOU'VE GOT TO GO INTO THE RED SAGE'S LAB", + "IN THE CENTER OF THE VOLCANIC CRATER TO TURN IT ON.", + "WE CAN'T COME THROUGH UNTIL IT'S BACK ONLINE." + ], + "asstv104": [ + "HEY, WE'RE STILL BACK IN ROCK VILLAGE!", + "TURN ON THE TELEPORT GATE!" + ], + "asstv105": [ + "WE WANNA JOIN YOU IN THE VOLCANIC CRATER!", + "GO INTO THE RED SAGE'S LAB AND TURN ON THE GATE." + ], + "asstva73": [ + "HEY GUYS! BY MY CALCULATIONS, IT'S GOING TO TAKE", + "72 POWER CELLS TO FUEL THE HEAT SHIELD", + "AGAINST THE LAVA ON THE WAY TO GOL AND MAIA'S CITADEL." + ], + "asstva74": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO GET THROUGH THIS LAVA!", + "YOU CAN'T GET THROUGH TO GOL AND MAIA'S CITADEL", + "UNTIL YOU'VE COLLECTED 72 POWER CELLS!" + ], + "asstvb02": [ + "WOW, DID YOU SEE THAT?", + "BLUE ECO VENTS HAVE BEEN ACTIVATED ALL OVER THE WORLD!", + "I KNEW THERE WAS A WAY TO TURN THEM ON.", + "THERE MUST BE PLACES TO TURN ON THE OTHER ECO VENTS AS WELL." + ], + "asstvb03": [ + "GOOD! YOU STOPPED ALL THE MINE-DROPPING LURKERS!", + "THEY'VE BEEN THREATENING THE WATERS AROUND OUR VILLAGE FOR WEEKS.", + "BRING YOUR ZOOMER BACK TO THE TRANS-PAD AND I'LL TELEPORT IT BACK!" + ], + "asstvb04": [ + "GOOD, YOU'VE COLLECTED ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD!", + "MEET ME BY THE ENTRANCE TO THE FIRE CANYON", + "BY CLIMBING THE CLIFF BEHIND THE FARMER'S HOUSE.", + "BRING THE POWER CELLS, AND HURRY!", + "MY FATHER SAYS HE'S SEEN MORE LURKERS AROUND!" + ], + "asstvb08": [ + "HURRY UP WITH THOSE POWER CELLS.", + "I'M WAITING AT THE HEAD OF FIRE CANYON", + "AT THE TOP OF THE CLIFF BEHIND THE FARMER'S HOUSE!" + ], + "asstvb09": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO FUEL MY HEAT SHIELD.", + "YOU CAN'T CROSS FIRE CANYON UNTIL YOU COLLECT ENOUGH POWER CELLS." + ], + "asstvb20": [ + "GOOD FLYING! THOSE LURKERS WERE NO MATCH FOR YOUR ZOOMER!", + "THAT'S ONE MORE POWER CELL!" + ], + "asstvb21": [ + "GOOD WORK! AREN'T YOU GUYS HAPPY", + "YOU SAVED OUR LITTLE FLUT-FLUT FRIEND?", + "SHE MAY COME IN HANDY AGAIN SOMETIME.", + "NOW, GO BACK TO THE TRANS-PAD, AND I'LL BRING HER HOME." + ], + "asstvb22": [ + "WOW! YOU RAISED A PIECE OF THE UNDERWATER RUINS TO THE SURFACE!", + "IT SEEMS YOU CAN USE ECO IN WAYS WE'VE NEVER SEEN BEFORE!", + "A POWER CELL SURFACED WITH THE ROOM. CLIMB UP THERE AND GET IT." + ], + "asstvb23": [ + "GREAT WORK! THE PEOPLE OF ROCK VILLAGE ARE BREATHING", + "A COLLECTIVE SIGH OF RELIEF!", + "BUT THERE'S NO TIME TO CELEBRATE! USE YOUR ZOOMER", + "TO NAVIGATE THE MOUNTAIN PASS UP AHEAD.", + "BE CAREFUL, IT LOOKS LIKE THE LURKERS HAVE RIGGED", + "THE WHOLE PASS WITH EXPLOSIVES!", + "WHEN YOU REACH THE VOLCANIC CRATER,", + "BE SURE TO VISIT THE RED SAGE'S LAB", + "AND ACTIVATE THE TELEPORT GATE SO THAT FATHER AND I CAN JOIN YOU." + ], + "asstvb24": [ + "OH MY! THOSE LURKERS MUST BE HEADED", + "FOR A DETONATOR AT THE END OF THE CANYON!", + "IF THEY REACH IT BEFORE YOU DO,", + "THEY'LL BLOW UP THE ENTIRE PASS!", + "YOU'VE GOTTA BEAT THEM THERE AND DESTROY THE DETONATOR,", + "OR IT'S ALL OVER!" + ], + "asstvb25": [ + "GOOD WORK! YOU BEAT THEM TO THE DETONATOR!", + "THE RED SAGE'S LAB IS JUST AHEAD.", + "GO TURN ON THE TELEPORT GATE SO WE CAN JOIN YOU." + ], + "asstvb28": [ + "HEY! DON'T FORGET ABOUT THE SAGE AND ME!", + "YOU HAVE TO TURN ON THE TELEPORT GATE TO LET US THROUGH!", + "IT'S IN THE BLUE SAGE'S LAB, BY THE END OF FIRE CANYON.", + "IF YOU DON'T LET US THROUGH, THEN WE CAN'T HELP YOU!" + ], + "asstvb29": [ + "HEY! WE'RE STILL WAITING!", + "TURN ON THE TELEPORT GATE!" + ], + "asstvb30": [ + "HEY! WE CAN'T COME THROUGH UNTIL THE TELEPORT GATE'S ON!" + ], + "asstvb40": [ + "THIS DEVICE IS A COMMUNICATOR. WITH IT, MY FATHER AND I", + "CAN GIVE YOU ADVICE AT ANY TIME DURING YOUR QUEST." + ], + "asstvb41": [ + "THESE FLOATING EGG-SHAPED THINGS ARE PRECURSOR ORBS.", + "COLLECT ENOUGH OF THEM, AND SOME OF THE VILLAGERS WILL GIVE YOU", + "A POWER CELL IN EXCHANGE." + ], + "asstvb42": [ + "THIS IS A POWER CELL, THE MOST IMPORTANT PRECURSOR ARTIFACT YOU CAN FIND!", + "YOU NEED TO COLLECT 20 OF THESE SO I CAN POWER THE HEAT SHIELD", + "FOR YOUR A-GRAV ZOOMER." + ], + "asstvb44": [ + "HEY, YOU FOUND ONE OF MY SCOUT FLIES!", + "I SENT 7 OF THEM TO EACH AREA TO LOOK FOR POWER CELLS", + "BUT THE LURKERS MUST HAVE CAPTURED THEM ALL!" + ], + "asstvb45": [ + "WOW! THAT LAST SCOUT FLY HAD A POWER CELL!", + "I'LL BET IF YOU COLLECT ALL 7 IN EACH AREA", + "YOU CAN FIND EVEN MORE POWER CELLS." + ], + "asstvb46": [ + "BE CAREFUL IN THE OCEAN, THE WATERS ARE CHOCK-FULL OF", + "LURKER SHARKS AND I'VE NEVER SEEN ANYONE DEFEAT ONE.", + "STAY CLEAR OF THEM IF YOU KNOW WHAT'S GOOD FOR YOU!" + ], + "asstvb47": [ + "REMEMBER, THAT'S A POWER CELL.", + "YOU NEED TO COLLECT AS MANY OF THOSE AS YOU CAN." + ], + "asstvb48": [ + "THAT'S A BLUE ECO VENT! MORE CONCENTRATED THAN THE FLOATING CLUSTERS,", + "THIS VENT WILL GIVE YOU A FULL CHARGE OF BLUE ECO,", + "LETTING YOU USE IT FOR THE MAXIMUM TIME." + ], + "asstvb71": [ + "YOU DON'T HAVE ENOUGH POWER CELLS TO POWER THE BLUE SAGE'S MACHINE.", + "WE CAN'T LIFT THAT BOULDER UNTIL YOU COLLECT 45 POWER CELLS." + ], + "asstvb72": [ + "UNTIL WE FIND OUT WHY THE BLUE SAGE DISAPPEARED,", + "YOU'RE GOING TO NEED TO COLLECT 45 POWER CELLS TO FUEL HIS MACHINE.", + "GO GET 'EM!" + ], + "asstvb75": [ + "THIS GONDOLA SEEMS TO BE MALFUNCTIONING.", + "I'LL TRY TO WORK ON IT AND GET IT RUNNING AGAIN." + ], + "asstvb76": [ + "I'VE REACTIVATED THE GONDOLA. IT CAN TAKE YOU TO SNOWY MOUNTAIN!", + "USE IT WHENEVER YOU WANT." + ], + "sagevb01": [ + "WELL, I SEE THAT YOU TWO HAVE FINALLY", + "DECIDED TO UNBLOCK MY COLLECTORS.", + "I WOULD OFFER MY CONGRATULATIONS", + "BUT YOU HAVE SO MUCH TO DO I WON'T WASTE YOUR TIME.", + "BY THE WAY, IF THINGS DON'T WORK OUT,", + "DAXTER COULD ALWAYS GET A JOB CONTROLLING THE VILLAGE RAT PROBLEM.", + "NYEH HA HA HA HA HA." + ], + "sagevb02": [ + "I HAVE TO ADMIT, I'M IMPRESSED. YOU TWO DIDN'T SCREW UP!", + "NOW THAT THE LURKERS CAN'T OPEN THAT SILO", + "THEY CAN'T FLOOD THE WORLD WITH DARK ECO", + "AND CAUSE UNTOLD DESTRUCTION.", + "WIPE THAT RIDICULOUS GRIN OFF YOUR FACE, DAXTER!", + "THE TWO OF YOU HAVE PLENTY TO DO.", + "GET ON WITH IT!" + ], + "sagevb03": [ + "YOU KEEP ON IMPRESSING ME. BUT THEN MAYBE IT'S JUST BECAUSE", + "I'VE GOT LOW EXPECTATIONS.", + "OKAY, YOUR MOMENT OF GLOATING IS OVER.", + "GET ON WITH IT!" + ], + "sagevb04": [ + "GOOD WORK, JAK! YOUR UNCLE WOULD BE PROUD.", + "THAT WAS A GIANT ARM FROM A PRECURSOR ROBOT.", + "I'VE NEVER SEEN ONE IN SUCH GOOD CONDITION!", + "I CAN'T IMAGINE WHAT THE LURKERS WANTED WITH IT,", + "BUT WE SURE DIDN'T WANT THEM TO GET IT.", + "IF YOU KEEP THIS SUCCESS UP...", + "NAH, YOU'LL STILL FALL SHORT OF HERO.", + "BUT KEEP TRYING. IT'S ENDEARING." + ], + "sagevb21": [ + "THOSE LITTLE GREEN BALLS OF ENERGY ON THE GROUND ARE A TYPE OF ECO.", + "PICK UP 50 SMALL GREEN ECOES, OR ONE BIG GREEN ONE TO INCREASE YOUR HEALTH." + ], + "sagevb22": [ + "THAT'S BLUE ECO, WHICH CONTAINS THE ENERGY OF MOTION.", + "BLUE ECO ALLOWS YOU TO RUN FAST, BREAK BOXES, AND EVEN ACTIVATE SOME PRECURSOR", + "ARTIFACTS WHEN YOU GET NEAR THEM." + ], + "sagevb23": [ + "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP", + "INCREASES THE TIME YOU CAN USE ITS POWER." + ], + "sagevb24": [ + "THIS IS A PRECURSOR DOOR.", + "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR", + "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY." + ], + "sagevb25": [ + "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.", + "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS", + "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS." + ], + "sagevb26": [ + "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE." + ], + "sagevb27": [ + "YOU CAN JUMP ONCE, THEN JUMP AGAIN IN THE AIR TO REACH EVEN HIGHER LEDGES." + ], + "sagevb28": [ + "WHEN YOU'RE SURROUNDED BY ENEMIES, USE YOUR SPIN KICK." + ], + "sagevb29": [ + "THAT'S NOT A SPIN KICK! TRY AGAIN." + ], + "sagevb30": [ + "COME ON, JAK! DO A SPIN KICK." + ], + "sagevb31": [ + "GOOD WORK. USE THE SPIN KICK WHEN YOU WANT A GOOD ALL-ROUND ATTACK." + ], + "sagevb32": [ + "FOR A STRAIGHT LINE, MOVING ATTACK, USE YOUR FIST TO PUNCH." + ], + "sagevb33": [ + "THAT'S NOT A PUNCH ATTACK! LET'S SEE YOU PUNCH ALREADY." + ], + "sagevb34": [ + "JAK! USE A PUNCH." + ], + "sagevb35": [ + "GREAT JOB. USE THE PUNCH TO CLOSE DISTANCE QUICKLY IN A TOUGH SPOT." + ], + "sagevb36": [ + "SOMETIMES YOU'LL WANT TO HIT THINGS WITH A GREATER FORCE.", + "TO BREAK ONE OF THESE BOXES, YOU SHOULD JUMP IN THE AIR", + "AND THEN DIVE DOWN ONTO IT, HANDS FIRST." + ], + "sagevb37": [ + "WHEN YOU GET SOME CONFIDENCE, TRY USING SOME OF YOUR MOVES IN COMBINATIONS." + ], + "sagevb38": [ + "YOU CAN'T COME BACK THROUGH THE WARP GATE", + "UNTIL YOU FIND ALL 4 POWER CELLS ON THIS ISLAND." + ], + "sagevb39": [ + "GREAT! YOU FOUND ALL OF THE POWER CELLS ON THE ISLAND.", + "COME BACK TO THE WARP GATE SO I CAN BRING YOU BACK TO THE LAB. HURRY UP!" + ], + "sksp0001": [ + "HEY! THAT SWEET-LOOKING BABE KEIRA WAS RIGHT! THERE ARE TRANS-PADS OUT HERE." + ], + "sksp0002": [ + "TRUST ME, THOSE DARK ECO BOXES ARE BAD NEWS!" + ], + "sksp0003": [ + "I BET IF WE FOUND ALL OF THOSE SICKLY CUTE SCOUT FLIES ON EACH LEVEL", + "AT LEAST ONE WILL HAVE A POWER CELL!" + ], + "sksp0004": [ + "ALL RIGHT, TREASURE!" + ], + "sksp0005": [ + "THESE WOOD AND METAL BOXES DON'T LOOK THAT TOUGH!", + "I'LL BET THEY'LL BREAK IF YOU JUMP DIVE ONTO THEM." + ], + "sksp0006": [ + "THOSE ALL-METAL BOXES ARE THICKER THAN A YAKOW SKULL!", + "BUT THERE MUST BE SOMETHING THAT CAN BUST 'EM OPEN." + ], + "sksp0007": [ + "TWO WORDS: POWER CELLS. WE NEED TO FIND 'EM AND WE AREN'T LOOKIN' SO GOOD RIGHT NOW." + ], + "sksp0008": [ + "WE NEED ORBS. ORBS, JAK! HOW ARE EVER GONNA BUY POWER CELLS IF WE DON'T COLLECT ORBS!" + ], + "sksp0009": [ + "WHAT A WEIRD-LOOKING THING! I'LL BET WE CAN GET THIS OPEN", + "IF YOU'RE POWERED UP WITH THAT ZAPPY BLUE ECO STUFF." + ], + "sksp0010": [ + "HEY! LET'S GO CHECK OUT OL' FISH BREATH'S SPEED-BOAT AT THE DOCK!" + ], + "sksp0011": [ + "WE SHOULD ASK THE FISHERMAN DOWN BY THE JUNGLE RIVER", + "IF WE CAN BORROW HIS SPEEDBOAT TO ZOOM ON OVER TO MISTY ISLAND!" + ], + "sksp0013": [ + "DID YOU SEE THE SIZE OF THE BITE", + "THAT LURKER SHARK TOOK OUT OF THE FISHERMAN'S BOAT?", + "WE BEST STAY WAY CLEAR OF THEM!", + "I DON'T THINK WE CAN TACKLE A CREATURE THAT DAG NASTY." + ], + "sksp0014": [ + "WE SCROUNGED ENOUGH ORBS TO TRADE FOR A POWER CELL.", + "LET'S GET BACK AND MAKE THE SWITCH ALREADY!" + ], + "sksp0015": [ + "THIS MUST BE A PRECURSOR ORACLE LIKE THE SAGE ALWAYS GOES ON ABOUT.", + "I HOPE THEY WEREN'T AS UGLY IN PERSON!" + ], + "sksp0017": [ + "WHOA! CHECK OUT THAT FUNKY SCULPTURE", + "SITTIN' ON THE ROCKS OVER THERE!" + ], + "sksp0018": [ + "WE SHOULD GO TELL THAT WINDBAG OF A MAYOR THAT HE OWES US BIG TIME", + "FOR CONNECTING THE VILLAGE ENERGY BEAM!" + ], + "sksp0019": [ + "HEY, SEAGULLS! LET'S BUZZ 'EM FOR KICKS." + ], + "sksp0020": [ + "YEAH HA HA! LET'S DO THAT AGAIN!" + ], + "sksp0021": [ + "THERE'RE THOSE SEAGULLS AGAIN. LET'S GET 'EM!!" + ], + "sksp0022": [ + "YEAH HA HA HA HA HA!! WOO HO HO HO!" + ], + "sksp0023": [ + "WOOHOO!" + ], + "sksp0024": [ + "YEAH HA HA! YEAH!" + ], + "sksp0025": [ + "WHOA! THEY CAUSED AN AVALANCHE! LET'S CHECK IT OUT." + ], + "sksp0026": [ + "HEY! THAT PELICAN JUST SNAGGED A POWER CELL!", + "LET'S GO KICK SOME BIG BIRD BUTT!" + ], + "sksp0027": [ + "QUICK! WE HAVE TO GET TO THE POWER CELL BEFORE THE PELICAN SCOOPS IT UP AGAIN." + ], + "sksp0028": [ + "KICK THE EGG! HEE-HEE! KICK IT! KICK IT!" + ], + "sksp0029": [ + "EH, WE MIGHT WANNA TALK TO THE BIRDWATCHER", + "AND SEE IF WE SCRAMBLED THAT FLUT-FLUT EGG." + ], + "sksp0030": [ + "HEY, TRY PUNCHING THE ROCKS TO GET 'EM OUT OF THE WAY!" + ], + "sksp0031": [ + "OOH! LET'S USE THE CANNON TO BLOW THINGS UP!" + ], + "sksp0034": [ + "AWOOGA! AWOOGA! DIVE FOR THOSE ORBS, JAK, DIVE!" + ], + "sksp0035": [ + "YEAH, SO WE GOT A PRECURSOR LAUNCHER HERE", + "BUT YOU AREN'T POWERED UP WITH THE BLUE STUFF. SO IT AIN'T GONNA HELP US!" + ], + "sksp0037": [ + "THOSE TOWER DOOHICKEYS SCATTERED ALL OVER THE JUNGLE MUST REDIRECT THE ECO BEAM.", + "LET'S GO FIDDLE WITH THEM!" + ], + "sksp0038": [ + "HMM, IF BLUE ECO CAN BUILD A BRIDGE, THEN I BET IT'LL OPEN A DOOR!", + "LET'S GO BACK AND GET YOU JUICED UP AGAIN." + ], + "sksp0039": [ + "HEY, THERE'S LITTLE LIGHTNING MARKS ON THOSE POSTS", + "AND THERE'S LIGHTNING COMING OUT OF THAT VENT OVER THERE.", + "ARE YOU THINKING WHAT I'M THINKING?" + ], + "sksp0040": [ + "LET'S GET UP ON THAT MACHINE AND BREAK THE MIRROR DIVERTING THE PRECURSOR BEAM!" + ], + "sksp0041": [ + "WE NEED TO GET TO THE TOP OF THAT TOWER!" + ], + "sksp0043": [ + "MAYBE WE SHOULD GO ROOT OUT THE FISHERMAN.", + "I HEARD HE WAS IN THE JUNGLE FISHING BY THE LOWER RIVER!" + ], + "sksp0049": [ + "LINE UP THE BEAM BY POINTING IT AT THE NEXT TOWER!" + ], + "sksp0050": [ + "BREAK THE MIRROR, JAK!" + ], + "sksp0051": [ + "GET THE BUGS, JAK! GET THE BUGS!" + ], + "sksp0052": [ + "LET'S GO TO THE NEXT TOWER AND RECONNECT THE BEAM THERE!" + ], + "sksp0053": [ + "HEY! WE CAN FOLLOW THE BEAM TO FIND THE NEXT TOWER." + ], + "sksp0054": [ + "WE NEED TO CHARGE YOU UP WITH THAT BLUE STUFF TO GET THIS OPEN!" + ], + "sksp0056": [ + "HEY! I SEE THE SCULPTOR'S MUSE!" + ], + "sksp0059": [ + "THIS PLACE GIVES ME THE WILLIES!", + "LET'S KEEP YOU OUT OF THE OOZE, OKAY?" + ], + "sksp0060": [ + "(WHIMPERS) THIS PLACE GIVES ME THE CREEPS!", + "AND TRUST ME, IT'S A WHOLE NEW EXPERIENCE", + "WHEN YOU'RE COVERED IN FUZZ!" + ], + "sksp0062": [ + "LET'S PLOW INTO THOSE BALLOON LURKERS AND SHRED 'EM!" + ], + "sksp0063": [ + "I SAID \"SHRED THE LURKERS,\" JAK. NOT THE MINES!", + "RULE NUMBER ONE: ALWAYS AVOID THE MINES!" + ], + "sksp0064": [ + "WATCH YOUR BACK! YOU REMEMBER WHAT HAPPENED THE LAST TIME WE WERE HERE." + ], + "sksp0067": [ + "DON'T FALL INTO THE MIST BELOW US!", + "'CAUSE I DON'T THINK WE'LL MAKE IT BACK." + ], + "sksp0069": [ + "IT'S AN AMBUSH, JAK! IT'S AN AMBUSH!" + ], + "sksp0070": [ + "JUMP, THEN DIVE ONTO THE TEETER-TOTTER." + ], + "sksp0071": [ + "GET THE RED ECO!" + ], + "sksp0072": [ + "RED ECO MAKES YOUR ATTACKS STRONGER." + ], + "sksp0073": [ + "WE NEED BLUE ECO TO CHARGE THIS PLATFORM UP!" + ], + "sksp0076": [ + "JAK! HIT SOME JUMPS TO KEEP US OFF THE HOT GROUND." + ], + "sksp0077": [ + "BALLOONS GOOD, BURNING HOT MAGMA BAD!" + ], + "sksp0078": [ + "RIDE ON THE RAISED PRECURSOR STUFF TO KEEP US COOL." + ], + "sksp0079": [ + "AHH! I'M GONNA DIE! I'M A COMING, GRANDPAP!", + "YOU HAVE TO GET THIS THING TO THE OTHER SIDE BEFORE IT OVERHEATS!" + ], + "sksp0080": [ + "USE THE HOP-TURN TO STEER HARDER!" + ], + "sksp0081": [ + "AHH! MAYBE I SHOULD DRIVE!" + ], + "sksp0082": [ + "YOU ARE TRYING TO AVOID THOSE DARK ECO BOXES, RIGHT?" + ], + "sksp0083": [ + "OOH! SEE IF WE CAN CATCH AIR OFF THOSE LURKERS!" + ], + "sksp0084": [ + "TOO CLOSE, TOO CLOSE!" + ], + "sksp0085": [ + "WHOA! THIS BABY'S GETTING WAY TOO HOT!" + ], + "sksp0086": [ + "A FEW MORE SECONDS AND WE'RE FRIED FLUT-FLUT!" + ], + "sksp0087": [ + "HIT THOSE BALLOONS TO COOL OFF!" + ], + "sksp0088": [ + "HERE COMES ANOTHER BALLOON!" + ], + "sksp0089": [ + "I WISH I SLEPT IN THIS MORNING!" + ], + "sksp0090": [ + "YOU MISSED A BALLOON! WE NEED THOSE OR WE'RE COOKED!" + ], + "sksp0091": [ + "THIS PUPPY'S GETTING TOO HOT!" + ], + "sksp0092": [ + "DO YOU SMELL SOMETHING BURNING?!" + ], + "sksp0093": [ + "I THINK MY TAIL'S ON FIRE!" + ], + "sksp0094": [ + "SHE'S GONNA BLOW!" + ], + "sksp0095": [ + "WAHOO! WE MADE IT!" + ], + "sksp0096": [ + "THERE'S SCOUT FLIES OUT HERE, TOO!" + ], + "sksp009a": [ + "HA HA! WE SHOWED HIM A THING OR TWO." + ], + "sksp009b": [ + "ALL RIGHT, MORE ORBS!" + ], + "sksp009c": [ + "DO ME A FAVOR AND KEEP AWAY FROM THOSE DARK ECO BOXES!" + ], + "sksp009d": [ + "YEAH-HA-HA-HA!" + ], + "sksp009e": [ + "WA-HOO!" + ], + "sksp009f": [ + "GET SOME, GET SOME! HA HA HA!" + ], + "sksp009g": [ + "RIGHT BEHIND YA, JAK!" + ], + "sksp009i": [ + "DID WE FIND ALL THE SCOUT FLIES IN THIS AREA?" + ], + "sksp009j": [ + "HEY! IT LOOKS LIKE SCOUT FLIES ARE ALWAYS IN RED BOXES." + ], + "sksp009k": [ + "ALRIGHT! YOU FOUND ALL THE SCOUT FLIES IN THIS AREA!" + ], + "sksp0109": [ + "WOO! WE BEAT THE RECORD TIME!" + ], + "sksp0110": [ + "I'VE SAID IT BEFORE, I'LL SAY IT AGAIN...", + "AVOID THE DARK ECO BOXES!" + ], + "sksp0111": [ + "LET'S CHASE THOSE MOLES BACK UNDERGROUND." + ], + "sksp0112": [ + "LET'S GO GET OUR POWER CELL FROM THE GEOLOGIST." + ], + "sksp0113": [ + "THOSE MUST BE THE INFESTED PLANTS OL' LOG-NOGGIN WAS TALKIN' ABOUT." + ], + "sksp0114": [ + "WE HAVE TO USE GREEN ECO TO CURE THOSE PLANTS." + ], + "sksp0115": [ + "JAK, DRIVE THROUGH THE GREEN ECO VENT." + ], + "sksp0116": [ + "THAT'S ONE OF THOSE FLYING LURKERS!", + "HE MIGHT HAVE A POWER CELL!" + ], + "sksp0117": [ + "THERE'S THE MOLE HOLE!" + ], + "sksp0118": [ + "NOW, LET'S FLY OVER THE INFECTED PLANTS!" + ], + "sksp0119": [ + "ONE RING DOWN, A BUNCH TO GO!" + ], + "sksp0120": [ + "HURRY! THERE'S THE NEXT RING!" + ], + "sksp0121": [ + "QUICK! YOU'VE GOTTA FLY THROUGH EACH RING BEFORE THEY TURN OFF!" + ], + "sksp0122": [ + "HEY! THAT GRASS SLOWS US DOWN..." + ], + "sksp0123": [ + "QUICK! FOLLOW THAT PIPE!" + ], + "sksp0124": [ + "I GOT A BAD FEELING ABOUT THIS." + ], + "sksp0125": [ + "IT LOOKS LIKE THOSE THINGS NEED A BLUE ECO CHARGE." + ], + "sksp0126": [ + "LET'S GET THE POWER CELL ON THE ROOF OF THIS THING!" + ], + "sksp0127": [ + "KICK THE LITTLE GUY ON THE TOP!" + ], + "sksp0128": [ + "JAK! RUN! THE DARK ECO IS RISING!" + ], + "sksp0129": [ + "AHH! THAT DARK ECO'S GETTING CLOSE" + ], + "sksp0130": [ + "UH, I THINK WE HAVE TO SWITCH ON ALL THOSE PLATFORMS OR SOMETHIN'." + ], + "sksp0131": [ + "HEY! IT LOOKS LIKE YOU COULD JUMP-DIVE ONTO THOSE GUYS!" + ], + "sksp0132": [ + "EE-EE! WHOA! WHO-AH! WHO-AHH!" + ], + "sksp0133": [ + "I'LL BET WE CAN GET ALL OF THOSE THINGS CHARGED AT ONCE!" + ], + "sksp0134": [ + "HOW 'BOUT WE TAKE IT EASY ON THOSE HOT PIPES?!" + ], + "sksp0135": [ + "THAT WATER LOOKS DANGEROUS WHEN IT CHANGES COLOR!" + ], + "sksp0136": [ + "YOU GOTTA GET OUT OF THE WATER BEFORE IT CHANGES COLOR!" + ], + "sksp0137": [ + "I BET WE COULD SHOOT THOSE BOULDERS IF WE'RE CHARGED UP WITH YELLOW ECO." + ], + "sksp0138": [ + "WE SHOULD SHOOT THOSE BIG BOULDERS HOLDING THE TETHER." + ], + "sksp0139": [ + "MAYBE WE SHOULD HELP THAT WEIRDO FIND HIS PET." + ], + "sksp0140": [ + "THE FLUT-FLUT CAN GLIDE FARTHER IF SHE JUMPS AGAIN IN THE AIR!" + ], + "sksp0141": [ + "DON'T TOUCH THAT BLACK HOT TAR, OR YOU'LL GET HURT!" + ], + "sksp0142": [ + "THE WATER'S SAFE TO WAIT IN." + ], + "sksp0143": [ + "WAAH! BREAK THE TONGUE'S GRIP!" + ], + "sksp0144": [ + "SHOOT THOSE RAT NESTS TO STOP THE RATS FROM COMING OUT." + ], + "sksp0145": [ + "WOW! YOU CAN SHOOT FIREBALLS", + "WHEN YOU'RE POWERED UP WITH YELLOW ECO." + ], + "sksp0146": [ + "HEY! THAT'S YELLOW ECO!" + ], + "sksp0147": [ + "YOU CAN SWING ON THAT POLE OVER THERE!" + ], + "sksp0148": [ + "WATCH OUT, THAT BRAMBLE IS PRICKLY!" + ], + "sksp0149": [ + "HEY, THAT LOOKS LIKE A TETHER HOLDING THE DIRIGIBLE IN PLACE!" + ], + "sksp0150": [ + "WATCH OUT WHEN THAT FROG IS CHARGED UP!" + ], + "sksp0151": [ + "RUN AWAY, JAK!" + ], + "sksp0152": [ + "LOOK OUT, JAK! IT'S AN AMBUSH!" + ], + "sksp0153": [ + "HEY, THAT MUST BE THE PRECURSOR ARTIFACT THE LURKERS ARE AFTER!", + "IT LOOKS LIKE A GIANT ROBOT ARM!" + ], + "sksp0154": [ + "THAT BLACK TAR LOOKS HOT AND DANGEROUS!" + ], + "sksp0155": [ + "SHOOT THE BATS WITH THAT YELLOW ECO STUFF!" + ], + "sksp0156": [ + "MAYBE WE CAN DUCK THE BATS!" + ], + "sksp0157": [ + "DID YOU SEE THAT? ONLY THREE MORE TETHERS TO GO!" + ], + "sksp0158": [ + "WOW! ONLY TWO MORE TETHERS." + ], + "sksp0159": [ + "THAT DIRIGIBLE'S BARELY HANGIN' ON! LET'S FIND THE LAST TETHER!" + ], + "sksp0160": [ + "HEY! THERE'S THE FLUT-FLUT!" + ], + "sksp0161": [ + "I HATE RATS! AND I'M ALMOST ONE OF THEM." + ], + "sksp018a": [ + "THAT LAZY FARMER OWES US A POWER CELL!", + "LET'S GO TALK TO HIM!" + ], + "sksp0300": [ + "WE HAVE TO BEAT THOSE LURKERS TO THE END OF THE PASS!" + ], + "sksp0301": [ + "DON'T HIT THOSE EXPLOSIVES!" + ], + "sksp0302": [ + "STAY AHEAD OF THEM AND WE GOT IT MADE!" + ], + "sksp0303": [ + "HIT THE BLUE ECO TO GET SPEED BOOSTS!" + ], + "sksp0304": [ + "AVOID THE TREES, JAK! THEY SLOW US DOWN!" + ], + "sksp0305": [ + "THE MORE BLUE ECO WE HIT, THE FASTER WE GO!" + ], + "sksp0306": [ + "WATCH OUT FOR THOSE EXPLOSIVES!" + ], + "sksp0307": [ + "STAY CLEAR OF THE PITS!" + ], + "sksp0308": [ + "MAYBE I SHOULD DRIVE!" + ], + "sksp0309": [ + "THERE'S ONE OF THE LURKERS!" + ], + "sksp0310": [ + "CATCH 'EM, JAK!" + ], + "sksp0311": [ + "WE PASSED ONE!" + ], + "sksp0312": [ + "WAH, ONE OF THE LURKERS PASSED US!" + ], + "sksp0313": [ + "THEY'RE WAY AHEAD!" + ], + "sksp0314": [ + "YEAH, WE'RE IN THE LEAD!" + ], + "sksp0315": [ + "FASTER, JAK, FASTER!" + ], + "sksp0316": [ + "BIG JUMP, BIG JUMP!" + ], + "sksp0317": [ + "HANG ON!" + ], + "sksp0318": [ + "YAAHH!" + ], + "sksp0319": [ + "IT'S GONNA BE CLOSE!" + ], + "sksp0320": [ + "THEY'RE GONNA BEAT US TO THE DETONATOR!" + ], + "sksp0321": [ + "WE DID IT! WE STOPPED THEM FROM BLOWIN' UP THE PASS!" + ], + "sksp0327": [ + "I THINK THAT WAS THE LAST DARK ECO CRYSTAL!" + ], + "sksp0328": [ + "MAYBE YOU CAN SHOOT BETTER IF YOU AIM THROUGH YOUR GOGGLES." + ], + "sksp0329": [ + "OH, NO! MORE DARK ECO!" + ], + "sksp0330": [ + "I DON'T THINK WE GOT ALL OF THOSE DARK ECO CRYSTALS." + ], + "sksp0331": [ + "SHOOT THE LURKERS EATING THE POLES!" + ], + "sksp0332": [ + "DON'T LET THE LIGHTS GO OUT!" + ], + "sksp0333": [ + "HIT A CRYSTAL TO GET SOME LIGHT." + ], + "sksp0334": [ + "RUN AWAY! THAT CRYSTAL'S GONNA BLOW!" + ], + "sksp0335": [ + "EWH, THEY FOUND A PRECURSOR ROBOT!" + ], + "sksp0336": [ + "POP THE EGGS, BEFORE THEY HATCH!" + ], + "sksp0337": [ + "IT'S SPOOKY IN HERE..." + ], + "sksp0338": [ + "LOOKS LIKE SPIDER WEBS BREAK AFTER TWO BOUNCES." + ], + "sksp0339": [ + "I. HATE. SPIDERS..." + ], + "sksp0340": [ + "BABY SPIDERS ARE COMING!" + ], + "sksp0341": [ + "I THINK WE'RE IN A SPIDER'S NEST HERE!" + ], + "sksp0342": [ + "LOOK OUT, MORE SPIDERS!" + ], + "sksp0343": [ + "LET'S GET OUTTA HERE!" + ], + "sksp0345": [ + "HOW DO WE GET INSIDE THIS FORT?" + ], + "sksp0346": [ + "MAYBE RED ECO CAN DEFEAT THIS GUY!" + ], + "sksp0347": [ + "WE NEED TO DO A ROLL JUMP!" + ], + "sksp0348": [ + "WE NEED TO FIND A WAY TO OPEN THIS VENT!" + ], + "sksp0349": [ + "THAT LOOKS LIKE AN ECO SWITCH DOWN THERE!" + ], + "sksp0350": [ + "HIT HIM WHEN THE SPIKES ARE IN!" + ], + "sksp0351": [ + "PUSH THE BUTTON!" + ], + "sksp0352": [ + "QUICK! BEFORE THEY DROP BACK DOWN!" + ], + "sksp0359": [ + "YOU GOTTA USE RED ECO!" + ], + "sksp0360": [ + "ALL RIGHT! WE TURNED ON THE CAPPED YELLOW ECO VENTS!" + ], + "sksp0362": [ + "LOOK! A FROZEN POWER CELL!" + ], + "sksp0363": [ + "ONLY A FLUT-FLUT CAN JUMP THAT FAR!" + ], + "sksp0364": [ + "WE GOTTA HURRY, OR WE'RE TOAST!" + ], + "sksp0365": [ + "PICK A PATH, ANY PATH!" + ], + "sksp0366": [ + "AVOID, OR SHOOT THE MINES, JAK!" + ], + "sksp0367": [ + "FIND A WAY THROUGH THOSE DARK ECO BARRELS!" + ], + "sksp0368": [ + "KEEP HITTING THOSE COOLING BALLOONS!" + ], + "sksp0369": [ + "WE'RE GETTING TOO HOT!" + ], + "sksp0370": [ + "SHE'S GONNA BLOW!" + ], + "sksp0371": [ + "GO FOR THE BLUE ECO, JAK!" + ], + "sksp0372": [ + "SHOOT YOUR WAY THROUGH!" + ], + "sksp0373": [ + "WAHOO! WHAT A RIDE!" + ], + "sksp0374": [ + "YES! TURN AND BURN, BABY!" + ], + "sksp0375": [ + "SHOOT THE POWER SPHERES TO OPEN THE DOOR!" + ], + "sksp0376": [ + "SHOOT THE POWER SPHERES BEFORE WE BURN UP!" + ], + "sksp0378": [ + "THE DOOR'S OPEN, LET'S GET GOING!" + ], + "sksp0379": [ + "ZOOMING!" + ], + "sksp0380": [ + "WE MADE IT THROUGH!" + ], + "sksp0381": [ + "BREAK THE GENERATOR TO FREE THE SAGE!" + ], + "sksp0382": [ + "JUST HANG ON TO THE EDGE!" + ], + "sksp0383": [ + "WE GOT COMPANY, JAK. LOOOTS OF LURKERS!" + ], + "sksp0384": [ + "DESTROY THOSE GENERATORS!" + ], + "sksp0385": [ + "PUSH THE BUTTON!" + ], + "sksp0386": [ + "THAT ROBOT DOESN'T SCARE ME!" + ], + "sksp0387": [ + "LET'S GO CLIMB UP THOSE PLATFORMS!" + ], + "sksp0388": [ + "DON'T MISS THE NEXT LAUNCHER!" + ], + "sksp0389": [ + "WATCH IT!" + ], + "sksp0390": [ + "WE HAVE TO RESCUE ALL THE SAGES!" + ], + "sksp0391": [ + "DO YOU THINK GOL WILL STILL CHANGE ME BACK?" + ], + "sksp0392": [ + "SO THIS IS GOL AND MAIA'S CITADEL. NICE AND COZY." + ], + "sksp0393": [ + "LAND ON THE NEXT LAUNCHER!" + ], + "sksp0394": [ + "GRAB THE YELLOW ECO!" + ], + "sksp0395": [ + "SHOOT THE ROBOT, JAK!" + ], + "sksp0396": [ + "SHOOT HIS ARM!" + ], + "sksp0397": [ + "SHOOT HIS GUN!" + ], + "sksp0398": [ + "SHOOT HIS HEAD!" + ], + "sksp0399": [ + "WATCH OUT FOR THE BLAST!" + ], + "sksp0400": [ + "HE'S CHARGING UP!" + ], + "sksp0401": [ + "GET THE BLUE ECO!" + ], + "sksp0402": [ + "GET THE RED ECO!" + ], + "sksp0403": [ + "I HAVE A BAD FEELING ABOUT THIS!" + ], + "sksp0404": [ + "USE THE LAUNCHER, QUICK!" + ], + "sksp0405": [ + "NOW YOU'VE MADE THE ANIMAL MAD!" + ], + "sksp0406": [ + "WE CAN'T TOUCH THESE GUYS!" + ], + "sksp0407": [ + "USE THE YELLOW ECO!" + ], + "sksp0408": [ + "SHOOT THOSE GUYS!" + ], + "sksp0409": [ + "GET THE LIGHT ECO, JAK!" + ], + "sksp0410": [ + "HE LOOKS ANGRY!" + ], + "sksp0411": [ + "JUMP TO AVOID THE EXPLOSIONS!" + ], + "sksp0412": [ + "NOW WE TAKE CARE OF BUSINESS!" + ], + "sksp0413": [ + "GOOD SHOOTING, PARTNER!" + ], + "sksp0414": [ + "THAT HURT HIM!" + ], + "sksp0415": [ + "HERE HE COMES!" + ], + "sksp0416": [ + "YEAH! YOU DID IT!" + ], + "sksp0417": [ + "SAY \"GOOD NIGHT,\" GOL AND MAIA!" + ], + "sksp0435": [ + "KNOCK OVER THOSE BONES!" + ], + "sksp0443": [ + "PUNCH THOSE POLES UP FROM BELOW!" + ], + "sksp0444": [ + "WE'RE WAITING. HELLO?" + ], + "sksp0449": [ + "PRESS START TO PLAY." + ], + "sksp0450": [ + "YOU WANNA STOP PLAYING?" + ], + "sksp0451": [ + "I DIDN'T THINK SO." + ], + "sksp0452": [ + "OKAY, SEE YA LATER." + ], + "sksp0455": [ + "MAN, WHO ARE ALL THESE PEOPLE?" + ], + "sksp0466": [ + "I WAS GOOD. WASN'T I, GIRLS?" + ], + "sksp0b42": [ + "STOP MISSING THE YELLOW FISH, THEY WEIGH FIVE POUNDS EACH!", + "AND THAT'S A LOTTA FISH, JAK." + ] + }, + "speakers": { + "???": "???", + "BILLY": "BILLY", + "BIRDWATCHER": "BIRDWATCHER", + "BLUE SAGE": "BLUE SAGE", + "DAXTER": "DAXTER", + "FARMER": "FARMER", + "FISHERMAN": "FISHERMAN", + "FLUT-FLUT": "FLUT-FLUT", + "GAMBLER": "GAMBLER", + "GEOLOGIST": "GEOLOGIST", + "GOL": "GOL", + "GORDY": "GORDY", + "JAK": "JAK", + "JAK'S UNCLE": "JAK'S UNCLE", + "KEIRA": "KEIRA", + "MAIA": "MAIA", + "MAYOR": "MAYOR", + "MINER": "MINER", + "OLD MAN": "OLD MAN", + "ORACLE": "ORACLE", + "RED SAGE": "RED SAGE", + "SAMOS": "SAMOS", + "SCULPTOR": "SCULPTOR", + "WARRIOR": "WARRIOR", + "WILLARD": "WILLARD", + "WOMAN": "WOMAN", + "YELLOW SAGE": "YELLOW SAGE" + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_ca-ES.json b/game/assets/jak1/subtitle/subtitle_meta_ca-ES.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_ca-ES.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_da-DK.json b/game/assets/jak1/subtitle/subtitle_meta_da-DK.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_da-DK.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_de-DE.json b/game/assets/jak1/subtitle/subtitle_meta_de-DE.json new file mode 100644 index 0000000000..0773801345 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_de-DE.json @@ -0,0 +1,7921 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 147, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 196, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 310, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 352, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 355, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 462, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 466, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 554, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 559, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 636, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 639, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 797, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 800, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 874, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 956, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 962, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1063, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1148, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-introduction-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 175, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 505, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 739, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 742, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 855, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 954, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1052, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1165, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1246, + "offscreen": false, + "speaker": "" + } + ], + "assistant-introduction-race-bike": [ + { + "clear": false, + "frame": 9, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 78, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 453, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 508, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + } + ], + "assistant-lavatube-end-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 233, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 594, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 655, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 771, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 894, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1014, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1120, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1186, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "assistant-lavatube-start-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 52, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 148, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 236, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 564, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 590, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 620, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 768, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 790, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 886, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 990, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1090, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1190, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + } + ], + "assistant-reminder-1-generic": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-race-bike": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 106, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 229, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction": [ + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 330, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 565, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 720, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 940, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 988, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1070, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1145, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1220, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1370, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "assistant-village2-introduction-flutflut": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 69, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 75, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 103, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 169, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 188, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 210, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 302, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 309, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 644, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 648, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 775, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-robbers": [ + { + "clear": false, + "frame": 50, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 77, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 132, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 292, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 376, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 435, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 502, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 614, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-room": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 191, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 265, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 338, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 424, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 436, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 495, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 555, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 702, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 752, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 782, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 800, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 870, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 929, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1000, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-village2-reminder-1-flutflut": [ + { + "clear": false, + "frame": 34, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-robbers": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 130, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-room": [ + { + "clear": false, + "frame": 45, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 122, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-resolution": [ + { + "clear": false, + "frame": 40, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 124, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 305, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 326, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 563, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 574, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 662, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 728, + "offscreen": false, + "speaker": "" + } + ], + "billy-accept": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 129, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 349, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 520, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 540, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 706, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 830, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1000, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1136, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1318, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1414, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1509, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1527, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reject": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 113, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 249, + "offscreen": false, + "speaker": "" + } + ], + "billy-reminder-1": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "BILLY" + } + ], + "bird-lady-beach-resolution": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 162, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 306, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": true, + "frame": 354, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 406, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 533, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 535, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 803, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 936, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 939, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 1049, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bird-lady-introduction": [ + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 245, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 326, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 331, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 375, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 560, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 648, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 654, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 803, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 855, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 944, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1041, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1198, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-2": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 170, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bluesage-resolution": [ + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 162, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 180, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 259, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 420, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 525, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 666, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 873, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 891, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 980, + "offscreen": false, + "speaker": "" + } + ], + "explorer-introduction": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 121, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 426, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 538, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 716, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 829, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 865, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 905, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 1043, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-reminder-1": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 148, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 328, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 370, + "offscreen": false, + "speaker": "" + } + ], + "explorer-reminder-2": [ + { + "clear": false, + "frame": 33, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 188, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-resolution": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 324, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 462, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "farmer-introduction": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 113, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 234, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 317, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 456, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 102, + "offscreen": false, + "speaker": "FARMER" + } + ], + "finalbosscam-white-eco": [ + { + "clear": false, + "frame": 143, + "offscreen": true, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 268, + "offscreen": true, + "speaker": "MAIA" + } + ], + "fisher-accept": [ + { + "clear": false, + "frame": 0, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 79, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 275, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 407, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 470, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 573, + "offscreen": true, + "speaker": "FISHERMAN" + } + ], + "fisher-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 50, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 107, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 210, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 212, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 293, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 425, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 525, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 671, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 814, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 917, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 955, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 964, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reject": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 90, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 115, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 185, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 199, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 282, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "gambler-introduction-1": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 97, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 176, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 238, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 241, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 344, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 473, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 579, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 651, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 734, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 780, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 784, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 902, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 949, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-money": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-race": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 113, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-money": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 66, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 70, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 146, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-race": [ + { + "clear": false, + "frame": 12, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 65, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 159, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "geologist-introduction": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 104, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 149, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 203, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 276, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 323, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 326, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 392, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 486, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 557, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 566, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 682, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 685, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 822, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 955, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1035, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1163, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1232, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1269, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1330, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1374, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1460, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1506, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-daxter-sacrifice": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 274, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 404, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 437, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 557, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-introduction": [ + { + "clear": false, + "frame": 130, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 213, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 435, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 515, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 574, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 600, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 710, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 800, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 803, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 930, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1134, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1276, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-outro-beat-boss-b": [ + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 745, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 751, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 847, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 926, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1096, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1100, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1323, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1452, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1515, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1665, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 1728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1731, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1916, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1999, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2003, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2172, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2256, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2302, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 270, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-need-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 266, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-preboss": [ + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 144, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 335, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 525, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 581, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 693, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 696, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 825, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 828, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 944, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 1065, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1391, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1605, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-resolution": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 280, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 353, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 586, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 715, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 823, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 983, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1111, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1171, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1258, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "mayor-introduction": [ + { + "clear": false, + "frame": 44, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 206, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 209, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 352, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 355, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 497, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 586, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 737, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 740, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 861, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 864, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 936, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 939, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1089, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1092, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1288, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1370, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1478, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1580, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1687, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1690, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-beams": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-donation": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 159, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-beams": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 280, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 475, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-donation": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 350, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 386, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "minershort-introduction-gnawers": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 196, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 284, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 357, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 390, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 459, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 505, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 508, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 575, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 644, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 738, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 743, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 838, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 875, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 898, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-introduction-orbs": [ + { + "clear": false, + "frame": 18, + "offscreen": false, + "speaker": "MINER" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 283, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 286, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 548, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 591, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 691, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 694, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 804, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 908, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1005, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1111, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1166, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1383, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1402, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1527, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1570, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1579, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 1774, + "offscreen": false, + "speaker": "" + } + ], + "minershort-introduction-switch": [ + { + "clear": false, + "frame": 38, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 286, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 375, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 505, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 549, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 699, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 760, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-reminder-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 136, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 346, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-switch": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 69, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 203, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 329, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 418, + "offscreen": true, + "speaker": "GORDY" + } + ], + "minershort-resolution-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 75, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + } + ], + "oracle-intro-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 75, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 206, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 95, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 143, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 146, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "redsage-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 206, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 389, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 429, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 450, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 540, + "offscreen": true, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 716, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 848, + "offscreen": false, + "speaker": "RED SAGE" + } + ], + "sage-bluehut-introduction-crop-dusting": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 226, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 360, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 600, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 814, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 896, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 954, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1022, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1155, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1195, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1260, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-introduction-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 142, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 400, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 505, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 510, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 690, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 764, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-crop-dusting": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 86, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 145, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 82, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 134, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 250, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 265, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 356, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-a": [ + { + "clear": false, + "frame": 60, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 150, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 247, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 250, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 306, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 378, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 467, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 470, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 584, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 588, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 708, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 713, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 828, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 955, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1064, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1123, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1185, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1297, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1437, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1565, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1705, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1964, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1993, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2087, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2175, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2300, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2440, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sage-intro-sequence-d1": [ + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 227, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 283, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 422, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 579, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 696, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 793, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 862, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 920, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1079, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1186, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1353, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1431, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1493, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1496, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1649, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1718, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1831, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1960, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-intro-sequence-d2": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 114, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 224, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 277, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 393, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 515, + "offscreen": false, + "speaker": "???" + }, + { + "clear": false, + "frame": 605, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 815, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 857, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 962, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1076, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1133, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1246, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1350, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1435, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1529, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1532, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1582, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1689, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1807, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1887, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1993, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2069, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2072, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2189, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-e": [ + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 318, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 359, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 573, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 940, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 962, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1043, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1082, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1160, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1187, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1313, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1415, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1439, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-introduction-misty-cannon": [ + { + "clear": false, + "frame": 50, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 136, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 258, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 261, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 375, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 446, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 525, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 663, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 788, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 920, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1018, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1093, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1177, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1232, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1235, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-ecorocks": [ + { + "clear": false, + "frame": 45, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 270, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 365, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 370, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 400, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-misty-cannon": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 86, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 200, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 317, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-2-generic": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 242, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 320, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 455, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 184, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 321, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 418, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 441, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 683, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 799, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 817, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 884, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 965, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 978, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1265, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1288, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1380, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1516, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1690, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1813, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1840, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1990, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1996, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2090, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2212, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2228, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2367, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2456, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 2508, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2535, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2625, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2715, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2758, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2768, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2855, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 3028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3044, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3138, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3323, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3500, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3538, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3544, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3602, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 3690, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3794, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3822, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3828, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 3897, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3903, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4020, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4080, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4189, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4192, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4316, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4324, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4428, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4464, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4545, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4664, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-dark-eco": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 179, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 185, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 284, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 296, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 453, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 568, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 637, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 752, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 761, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 896, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 907, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 950, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-rams": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 152, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 177, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 305, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 378, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 381, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 537, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 161, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 285, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 505, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 622, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 632, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 757, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 763, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 920, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1087, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1091, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1191, + "offscreen": true, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1278, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1281, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1376, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1441, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1467, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1646, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1649, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sculptor-resolution": [ + { + "clear": false, + "frame": 90, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 230, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 298, + "offscreen": false, + "speaker": "SCULPTOR" + } + ], + "sidekick-human-intro-sequence-b": [ + { + "clear": false, + "frame": 559, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 674, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 767, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 842, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 947, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 1027, + "offscreen": false, + "speaker": "" + } + ], + "sidekick-human-intro-sequence-c": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 439, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 496, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 721, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 782, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 906, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1011, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1118, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1331, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1857, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1913, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1950, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2037, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2057, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2104, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2189, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2307, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2481, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "warrior-introduction": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 128, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 264, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 346, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 413, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 488, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 609, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 820, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 949, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1033, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1178, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1255, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1303, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1349, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1428, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1484, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1570, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1640, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1705, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1905, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2030, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2065, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2240, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2384, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2465, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2561, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2585, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2683, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2766, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2770, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2880, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2943, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2955, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 3036, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 3173, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3197, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-reminder-1": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-resolution": [ + { + "clear": false, + "frame": 41, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 67, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 85, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 234, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 254, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 279, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 294, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 356, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 476, + "offscreen": false, + "speaker": "" + } + ], + "yellowsage-resolution": [ + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 271, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 471, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 495, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 605, + "offscreen": false, + "speaker": "" + } + ] + }, + "hints": { + "ASSTLP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "CHI-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 270, + "speaker": "" + }, + { + "clear": false, + "frame": 275, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 320, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 220, + "speaker": "MAYOR" + } + ] + }, + "EXP-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "FAR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FIS-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 105, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 367, + "speaker": "" + }, + { + "clear": false, + "frame": 370, + "speaker": "FISHERMAN" + } + ] + }, + "MIN-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 156, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 420, + "speaker": "GORDY" + } + ] + }, + "MIN-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 149, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 405, + "speaker": "GORDY" + } + ] + }, + "MIN-LO04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 280, + "speaker": "GORDY" + } + ] + }, + "MIN-LO05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 233, + "speaker": "GORDY" + } + ] + }, + "MIN-LO06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 238, + "speaker": "GORDY" + } + ] + }, + "MSH-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "SAGELP04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 200, + "speaker": "SAMOS" + } + ] + }, + "SAGELP05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "WAR-LO1C": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 270, + "speaker": "WARRIOR" + } + ] + }, + "asstv100": { + "id": "44f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 275, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 473, + "speaker": "KEIRA" + } + ] + }, + "asstv101": { + "id": "450", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 373, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 519, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 738, + "speaker": "KEIRA" + } + ] + }, + "asstv102": { + "id": "451", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 139, + "speaker": "KEIRA" + } + ] + }, + "asstv103": { + "id": "452", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 206, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 320, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 496, + "speaker": "KEIRA" + } + ] + }, + "asstv104": { + "id": "453", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 144, + "speaker": "KEIRA" + } + ] + }, + "asstva73": { + "id": "427", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 323, + "speaker": "KEIRA" + } + ] + }, + "asstva74": { + "id": "428", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 182, + "speaker": "KEIRA" + } + ] + }, + "asstvb02": { + "id": "289", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 350, + "speaker": "" + }, + { + "clear": false, + "frame": 355, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 579, + "speaker": "" + }, + { + "clear": false, + "frame": 584, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 677, + "speaker": "KEIRA" + } + ] + }, + "asstvb03": { + "id": "28b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 250, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 475, + "speaker": "KEIRA" + } + ] + }, + "asstvb04": { + "id": "2b1", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 288, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 484, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 636, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 810, + "speaker": "KEIRA" + } + ] + }, + "asstvb08": { + "id": "2b2", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 216, + "speaker": "KEIRA" + } + ] + }, + "asstvb09": { + "id": "24f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 216, + "speaker": "" + }, + { + "clear": false, + "frame": 234, + "speaker": "KEIRA" + } + ] + }, + "asstvb20": { + "id": "327", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 270, + "speaker": "KEIRA" + } + ] + }, + "asstvb21": { + "id": "328", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 314, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 515, + "speaker": "KEIRA" + } + ] + }, + "asstvb22": { + "id": "326", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 300, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 520, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 714, + "speaker": "KEIRA" + } + ] + }, + "asstvb23": { + "id": "604", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 346, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 626, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 863, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 987, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1200, + "speaker": "KEIRA" + } + ] + }, + "asstvb24": { + "id": "605", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 304, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 574, + "speaker": "KEIRA" + } + ] + }, + "asstvb25": { + "id": "61d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 377, + "speaker": "KEIRA" + } + ] + }, + "asstvb28": { + "id": "36f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 178, + "speaker": "" + }, + { + "clear": false, + "frame": 184, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 374, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 674, + "speaker": "" + }, + { + "clear": false, + "frame": 680, + "speaker": "KEIRA" + } + ] + }, + "asstvb29": { + "id": "370", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 150, + "speaker": "KEIRA" + } + ] + }, + "asstvb40": { + "id": "900", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + } + ] + }, + "asstvb41": { + "id": "901", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 182, + "speaker": "" + }, + { + "clear": false, + "frame": 185, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 376, + "speaker": "KEIRA" + } + ] + }, + "asstvb42": { + "id": "902", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 272, + "speaker": "" + }, + { + "clear": false, + "frame": 275, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 453, + "speaker": "KEIRA" + } + ] + }, + "asstvb44": { + "id": "903", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 428, + "speaker": "KEIRA" + } + ] + }, + "asstvb45": { + "id": "904", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 426, + "speaker": "KEIRA" + } + ] + }, + "asstvb46": { + "id": "905", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 255, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 419, + "speaker": "" + }, + { + "clear": false, + "frame": 426, + "speaker": "KEIRA" + } + ] + }, + "asstvb47": { + "id": "906", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "asstvb48": { + "id": "907", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 124, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 344, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 492, + "speaker": "KEIRA" + } + ] + }, + "asstvb71": { + "id": "36c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 215, + "speaker": "KEIRA" + } + ] + }, + "asstvb72": { + "id": "36d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 436, + "speaker": "KEIRA" + } + ] + }, + "asstvb76": { + "id": "42a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 216, + "speaker": "KEIRA" + } + ] + }, + "sagevb01": { + "id": "288", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 173, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 313, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 569, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 705, + "speaker": "" + }, + { + "clear": false, + "frame": 712, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 884, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1237, + "speaker": "SAMOS" + } + ] + }, + "sagevb02": { + "id": "28a", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 320, + "speaker": "" + }, + { + "clear": false, + "frame": 325, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 525, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 700, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 863, + "speaker": "" + }, + { + "clear": false, + "frame": 880, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1160, + "speaker": "SAMOS" + } + ] + }, + "sagevb03": { + "id": "36a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 175, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "speaker": "SAMOS" + } + ] + }, + "sagevb04": { + "id": "36b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 240, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 440, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 666, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 868, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1090, + "speaker": "" + }, + { + "clear": false, + "frame": 1100, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1260, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1420, + "speaker": "" + }, + { + "clear": false, + "frame": 1425, + "speaker": "SAMOS" + } + ] + }, + "sagevb22": { + "id": "909", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 275, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 455, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 660, + "speaker": "SAMOS" + } + ] + }, + "sagevb23": { + "id": "90a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 279, + "speaker": "SAMOS" + } + ] + }, + "sagevb24": { + "id": "90b", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 194, + "speaker": "SAMOS" + } + ] + }, + "sagevb25": { + "id": "90c", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 222, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 456, + "speaker": "SAMOS" + } + ] + }, + "sagevb27": { + "id": "90e", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 255, + "speaker": "SAMOS" + } + ] + }, + "sagevb36": { + "id": "917", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 148, + "speaker": "" + }, + { + "clear": false, + "frame": 154, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 309, + "speaker": "SAMOS" + } + ] + }, + "sagevb39": { + "id": "91a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 210, + "speaker": "SAMOS" + } + ] + }, + "sksp0005": { + "id": "284", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 194, + "speaker": "" + }, + { + "clear": false, + "frame": 200, + "speaker": "DAXTER" + } + ] + }, + "sksp0007": { + "id": "286", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 171, + "speaker": "DAXTER" + } + ] + }, + "sksp0008": { + "id": "287", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 195, + "speaker": "DAXTER" + } + ] + }, + "sksp0009": { + "id": "251", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 188, + "speaker": "DAXTER" + } + ] + }, + "sksp0011": { + "id": "240", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 161, + "speaker": "DAXTER" + } + ] + }, + "sksp0013": { + "id": "232", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 167, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 283, + "speaker": "" + }, + { + "clear": false, + "frame": 305, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 530, + "speaker": "DAXTER" + } + ] + }, + "sksp0015": { + "id": "234", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 238, + "speaker": "DAXTER" + } + ] + }, + "sksp0017": { + "id": "235", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0018": { + "id": "25e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 135, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 230, + "speaker": "DAXTER" + } + ] + }, + "sksp0026": { + "id": "237", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 200, + "speaker": "" + }, + { + "clear": false, + "frame": 221, + "speaker": "DAXTER" + } + ] + }, + "sksp0029": { + "id": "275", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 137, + "speaker": "DAXTER" + } + ] + }, + "sksp0035": { + "id": "25c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 117, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 297, + "speaker": "DAXTER" + } + ] + }, + "sksp0037": { + "id": "25f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 137, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 233, + "speaker": "" + }, + { + "clear": false, + "frame": 236, + "speaker": "DAXTER" + } + ] + }, + "sksp0038": { + "id": "23c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 148, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 275, + "speaker": "" + }, + { + "clear": false, + "frame": 281, + "speaker": "DAXTER" + } + ] + }, + "sksp0039": { + "id": "25b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 171, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 344, + "speaker": "" + }, + { + "clear": false, + "frame": 347, + "speaker": "DAXTER" + } + ] + }, + "sksp0040": { + "id": "23d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 150, + "speaker": "DAXTER" + } + ] + }, + "sksp0043": { + "id": "24e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 136, + "speaker": "DAXTER" + } + ] + }, + "sksp0059": { + "id": "26e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 115, + "speaker": "DAXTER" + } + ] + }, + "sksp0060": { + "id": "26f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 178, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 304, + "speaker": "DAXTER" + } + ] + }, + "sksp0064": { + "id": "245", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 87, + "speaker": "DAXTER" + } + ] + }, + "sksp0067": { + "id": "249", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 185, + "speaker": "DAXTER" + } + ] + }, + "sksp0076": { + "id": "501", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 164, + "speaker": "DAXTER" + } + ] + }, + "sksp0079": { + "id": "504", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 238, + "speaker": "" + }, + { + "clear": false, + "frame": 241, + "speaker": "DAXTER" + } + ] + }, + "sksp0090": { + "id": "510", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 105, + "speaker": "DAXTER" + } + ] + }, + "sksp0110": { + "id": "336", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 164, + "speaker": "DAXTER" + } + ] + }, + "sksp0116": { + "id": "33c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0134": { + "id": "34e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 50, + "speaker": "DAXTER" + } + ] + }, + "sksp0137": { + "id": "351", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 136, + "speaker": "DAXTER" + } + ] + }, + "sksp0138": { + "id": "352", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 132, + "speaker": "DAXTER" + } + ] + }, + "sksp0145": { + "id": "359", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0153": { + "id": "361", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 226, + "speaker": "DAXTER" + } + ] + }, + "sksp018a": { + "id": "297", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 130, + "speaker": "DAXTER" + } + ] + }, + "sksp0b42": { + "id": "278", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 145, + "speaker": "DAXTER" + } + ] + } + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_en-GB.json b/game/assets/jak1/subtitle/subtitle_meta_en-GB.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_en-GB.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_en-US.json b/game/assets/jak1/subtitle/subtitle_meta_en-US.json new file mode 100644 index 0000000000..e48eaedcb5 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_en-US.json @@ -0,0 +1,13615 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 233, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 343, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 346, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 458, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 462, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 546, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 552, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 636, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 639, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 744, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 792, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 795, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 894, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 956, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 962, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1062, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1146, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1222, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1228, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-introduction-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 175, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 193, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 505, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 739, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 742, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 842, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 954, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1052, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1138, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1246, + "offscreen": false, + "speaker": "" + } + ], + "assistant-introduction-race-bike": [ + { + "clear": false, + "frame": 9, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 453, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 508, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + } + ], + "assistant-lavatube-end-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 143, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 147, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 227, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 318, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 447, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 450, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 503, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 591, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 644, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 755, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 876, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 888, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1011, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1014, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1112, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1158, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1191, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "assistant-lavatube-start-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 48, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 227, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 230, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 285, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 400, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 457, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 463, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 590, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 617, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 663, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 784, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 790, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 885, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 895, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 987, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1184, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1187, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + } + ], + "assistant-reminder-1-generic": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 98, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-race-bike": [ + { + "clear": false, + "frame": 19, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 106, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 229, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction": [ + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 117, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 298, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 326, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 332, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 497, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 565, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 726, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 957, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1070, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1145, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1220, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1370, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "assistant-village2-introduction-flutflut": [ + { + "clear": false, + "frame": 22, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 69, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 75, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 103, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 169, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 188, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 210, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 302, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 309, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 644, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 648, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 775, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-robbers": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 132, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 138, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 176, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 292, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 367, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 435, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 502, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 614, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-room": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 124, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 201, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 204, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 258, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 338, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 427, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 436, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 495, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 555, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 702, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 752, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 782, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 800, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 870, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 998, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-village2-reminder-1-flutflut": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 115, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-robbers": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 111, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-room": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 118, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 121, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-resolution": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 206, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 295, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 335, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 433, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 441, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 489, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 568, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 663, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 669, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 734, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village3-reminder": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 98, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 196, + "offscreen": false, + "speaker": "" + } + ], + "billy-accept": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 109, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 189, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 349, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 369, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 440, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 497, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 519, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 592, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 602, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 691, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 798, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1017, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1021, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1133, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1136, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1219, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1318, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1408, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1519, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1534, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reject": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 155, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 240, + "offscreen": false, + "speaker": "" + } + ], + "billy-reminder-1": [ + { + "clear": false, + "frame": 37, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "BILLY" + } + ], + "bird-lady-beach-resolution": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 148, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 237, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 306, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": true, + "frame": 351, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 406, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 533, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 535, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 803, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 936, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 939, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 1054, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bird-lady-introduction": [ + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 245, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 328, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 331, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 408, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 536, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 590, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 648, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 654, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 730, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 794, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 854, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 946, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1041, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1198, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-1": [ + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 208, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 211, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 348, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-2": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 170, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 244, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bluesage-resolution": [ + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 162, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 253, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 420, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 505, + "offscreen": true, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 563, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 666, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 879, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 894, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 980, + "offscreen": false, + "speaker": "" + } + ], + "death-0181": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0182": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 55, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 68, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0184": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 70, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0186": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 50, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 69, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0187": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 46, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0191": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 46, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0193": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 65, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 97, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 107, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0195": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 69, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0197": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 62, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 72, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0199": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0202": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "evilbro-misty-end": [ + { + "clear": false, + "frame": 20, + "offscreen": true, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 120, + "offscreen": true, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 261, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 264, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 409, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 415, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 476, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 638, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 643, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 810, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 819, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 906, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 931, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 1001, + "offscreen": false, + "speaker": "" + } + ], + "explorer-introduction": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 426, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 538, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 626, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 715, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 829, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 865, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 985, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 1098, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-reminder-1": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 148, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 387, + "offscreen": false, + "speaker": "" + } + ], + "explorer-reminder-2": [ + { + "clear": false, + "frame": 33, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 187, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-resolution": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 324, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 453, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "farmer-introduction": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 113, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 257, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 317, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 372, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 456, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 96, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 85, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 134, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + } + ], + "finalbosscam-white-eco": [ + { + "clear": false, + "frame": 163, + "offscreen": true, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 268, + "offscreen": true, + "speaker": "MAIA" + } + ], + "fisher-accept": [ + { + "clear": false, + "frame": 0, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 83, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 220, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 322, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 432, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 438, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 542, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 545, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 642, + "offscreen": true, + "speaker": "FISHERMAN" + } + ], + "fisher-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 47, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 100, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 103, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 169, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 226, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 229, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 293, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 425, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 521, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 572, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 671, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 719, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 814, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 864, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 955, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 961, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reject": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 102, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reminder-1": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 115, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 185, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 199, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 277, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 351, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fishermans-boat-ride-to-village1-alt": [ + { + "clear": false, + "frame": 167, + "offscreen": true, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 261, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 264, + "offscreen": true, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 408, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 411, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 556, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 562, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 623, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 785, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 790, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 957, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 966, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 1053, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1078, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 1148, + "offscreen": false, + "speaker": "" + } + ], + "gambler-introduction-1": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 97, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 186, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 238, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 241, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 344, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 473, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 651, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 734, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 788, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 794, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 902, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 949, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-money": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 77, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-race": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 113, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-money": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 76, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-race": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "geologist-introduction": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 98, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 149, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 203, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 276, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 323, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 326, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 392, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 557, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 566, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 682, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 685, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 822, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 955, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1035, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1163, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1232, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1342, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1460, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1506, + "offscreen": false, + "speaker": "" + } + ], + "geologist-reminder-moles": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 109, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-reminder-money": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-moles": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 227, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 237, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-money": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 80, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-daxter-sacrifice": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 274, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 404, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 437, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 525, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-introduction": [ + { + "clear": false, + "frame": 128, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 207, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 269, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 275, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 477, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 574, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 583, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 709, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 800, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 816, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 926, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1265, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-outro-beat-boss-a": [ + { + "clear": false, + "frame": 165, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 216, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 596, + "offscreen": true, + "speaker": "GOL" + } + ], + "green-sagecage-outro-beat-boss-b": [ + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 745, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 751, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 847, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 914, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1096, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1104, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1226, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1318, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1323, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1447, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1515, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1640, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 1728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1731, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1916, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1922, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1999, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2003, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2172, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2256, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2302, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-need-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-big-finish": [ + { + "clear": false, + "frame": 322, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 425, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 428, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 516, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 519, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 602, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-outro-preboss": [ + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 221, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 335, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 394, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 503, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 510, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 586, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 693, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 825, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 834, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 944, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1036, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1391, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1605, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-resolution": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 282, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 402, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 460, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 520, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 702, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 705, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 823, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 983, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1161, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1238, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "mayor-introduction": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 479, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 689, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 850, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 864, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 911, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 915, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1068, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1074, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1262, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1346, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1551, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1668, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1671, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1797, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-beams": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-donation": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 157, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-beams": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 269, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 475, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-donation": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 224, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 365, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "minershort-introduction-gnawers": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 191, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 265, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 271, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 357, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 360, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 441, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 444, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 490, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 566, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 625, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 715, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 721, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 827, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 875, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 884, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-introduction-orbs": [ + { + "clear": false, + "frame": 18, + "offscreen": false, + "speaker": "MINER" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 288, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 291, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 548, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 591, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 691, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 694, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 804, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 908, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1005, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1111, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1154, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1383, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1389, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1545, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1560, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 1774, + "offscreen": false, + "speaker": "" + } + ], + "minershort-introduction-switch": [ + { + "clear": false, + "frame": 38, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 337, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 518, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 684, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 753, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-reminder-1-gnawers": [ + { + "clear": false, + "frame": 15, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 93, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 198, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-reminder-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 130, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 346, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-switch": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 165, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 186, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 408, + "offscreen": true, + "speaker": "GORDY" + } + ], + "minershort-reminder-2-orbs": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 78, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-resolution-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + } + ], + "minershort-resolution-2-orbs": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 196, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 264, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 270, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 358, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 540, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 666, + "offscreen": false, + "speaker": "" + } + ], + "oracle-intro-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 75, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 206, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 308, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 87, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 273, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 182, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 248, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-left-eye-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-left-eye-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-left-eye-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 98, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-right-eye-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-right-eye-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-right-eye-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "redsage-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 196, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 274, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 379, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 428, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 437, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 542, + "offscreen": true, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 678, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 704, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 837, + "offscreen": false, + "speaker": "RED SAGE" + } + ], + "sage-bluehut-introduction-crop-dusting": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 152, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 357, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 360, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 591, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 597, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 896, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 948, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 951, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1195, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1254, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-introduction-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 304, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 417, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 531, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 549, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 675, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 685, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 764, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-crop-dusting": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 93, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 99, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 82, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 250, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 255, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 364, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-a": [ + { + "clear": false, + "frame": 24, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 156, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 255, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 260, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 324, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 451, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 454, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 581, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 708, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 720, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 818, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 955, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1064, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1087, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1197, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1297, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1444, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1542, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1683, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1955, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2080, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2141, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2145, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2281, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2440, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sage-intro-sequence-d1": [ + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 283, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 383, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 440, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 579, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 692, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 793, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 861, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 920, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1016, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1079, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1186, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1329, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1431, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1493, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1496, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1639, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1718, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1831, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1934, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-intro-sequence-d2": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 114, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 224, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 270, + "offscreen": false, + "speaker": "???" + }, + { + "clear": false, + "frame": 329, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 393, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 515, + "offscreen": false, + "speaker": "???" + }, + { + "clear": false, + "frame": 605, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 826, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 857, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 998, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1049, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1133, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1246, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1364, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1435, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1529, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1532, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1582, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1689, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1810, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1878, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1993, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2069, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2072, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2189, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-e": [ + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 359, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 586, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 940, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 952, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1043, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1046, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1160, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1169, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1313, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1415, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1439, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-introduction-misty-cannon": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 136, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 258, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 261, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 387, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 393, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 525, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 663, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 788, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 906, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1018, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1177, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1232, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1235, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-ecorocks": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 252, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 365, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 412, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-generic": [ + { + "clear": false, + "frame": 54, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 178, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-misty-cannon": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 86, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 215, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 317, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-2-generic": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 320, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 455, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 183, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 321, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 418, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 441, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 618, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 800, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 805, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 884, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 965, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 969, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1265, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1282, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1372, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1516, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1680, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1813, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1828, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1990, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1996, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2212, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2223, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2357, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2452, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 2508, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2520, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2611, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2715, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2758, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2768, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2841, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 3028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3034, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3128, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 3210, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3303, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3495, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3538, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3541, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3595, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 3690, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3785, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3822, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3828, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 3897, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3903, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3995, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4080, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4189, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4192, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4276, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4316, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4324, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4398, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4464, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4545, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4664, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-dark-eco": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 179, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 185, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 284, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 296, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 453, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 568, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 637, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 752, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 761, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 855, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 896, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 907, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 950, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-rams": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 152, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 158, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 270, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 378, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 381, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-dark-eco": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 126, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-rams": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 161, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 285, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 424, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 428, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 622, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 631, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 751, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 757, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 915, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 918, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1085, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1089, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1191, + "offscreen": true, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1278, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1281, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1376, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1436, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1464, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1643, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sculptor-reminder-1": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 169, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-resolution": [ + { + "clear": false, + "frame": 87, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 230, + "offscreen": false, + "speaker": "SCULPTOR" + } + ], + "sidekick-human-intro-sequence-b": [ + { + "clear": false, + "frame": 547, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 664, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 674, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 819, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 839, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 937, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 1027, + "offscreen": false, + "speaker": "" + } + ], + "sidekick-human-intro-sequence-c": [ + { + "clear": false, + "frame": 12, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 496, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 721, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 774, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 906, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1011, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1124, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1331, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1857, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1913, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1941, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2037, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2057, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2104, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2189, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2307, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2481, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "warrior-introduction": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 128, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 264, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 337, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 594, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 760, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 928, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1033, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1178, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1255, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1303, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1310, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1395, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1515, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1640, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1669, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1905, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2030, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2040, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2222, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2360, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2465, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2561, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2566, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2659, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2766, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2770, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2880, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2943, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2949, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 3036, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 3173, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3197, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-reminder-1": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-resolution": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 67, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 73, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 126, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 234, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 279, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 285, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 476, + "offscreen": false, + "speaker": "" + } + ], + "yellowsage-resolution": [ + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 262, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 271, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 377, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 475, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 601, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 609, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 633, + "offscreen": false, + "speaker": "" + } + ] + }, + "hints": { + "ASSTLP01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP23": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 150, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP30": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP31": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP32": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP33": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP34": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP35": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP37": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "BIL-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-AM2B": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-LO2B": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA3A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA4A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA4B": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIL-TA5A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BILLY" + } + ] + }, + "BIR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM10": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-AM13": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-LO02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BIR-am08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BIRDWATCHER" + } + ] + }, + "BLU-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BLUE SAGE" + } + ] + }, + "BLU-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BLUE SAGE" + } + ] + }, + "BLU-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "BLUE SAGE" + } + ] + }, + "CHI-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 214, + "speaker": "" + }, + { + "clear": false, + "frame": 219, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 80, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 230, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 350, + "speaker": "" + }, + { + "clear": false, + "frame": 390, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 540, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 450, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "CHI-LO02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + } + ] + }, + "EXP-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 140, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 185, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-LO02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-LO1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "FAR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 395, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 500, + "speaker": "" + } + ] + }, + "FAR-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FAR-AM2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FAR-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FAR-LO1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FIS-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 180, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 115, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 135, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "speaker": "" + }, + { + "clear": false, + "frame": 425, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-LO04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-LO05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA10": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-TA2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "GAM-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM10": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GAM-AM13": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GAMBLER" + } + ] + }, + "GEO-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GEO-LO02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GEOLOGIST" + } + ] + }, + "GOL-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM10": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM13": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM14": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM15": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM16": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM17": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM18": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM19": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "GOL-AM20": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GOL" + } + ] + }, + "MAI-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MAI-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAIA" + } + ] + }, + "MIN-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 180, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 360, + "speaker": "GORDY" + } + ] + }, + "MIN-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 130, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 320, + "speaker": "GORDY" + } + ] + }, + "MIN-LO04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 220, + "speaker": "GORDY" + } + ] + }, + "MIN-LO05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 200, + "speaker": "GORDY" + } + ] + }, + "MIN-LO06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 220, + "speaker": "GORDY" + } + ] + }, + "MSH-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM08": { + "id": "0", + "lines": [ + { + "clear": true, + "frame": 0, + "speaker": "" + } + ] + }, + "MSH-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM10": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 150, + "speaker": "GORDY" + } + ] + }, + "MSH-AM1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MSH-AM3A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MTA-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM08": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM09": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + } + ] + }, + "RED-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "RED SAGE" + } + ] + }, + "RED-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "RED SAGE" + } + ] + }, + "RED-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "RED SAGE" + } + ] + }, + "SAGELP03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 221, + "speaker": "SAMOS" + } + ] + }, + "SAGELP05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 210, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "speaker": "SAMOS" + } + ] + }, + "SAGELP06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP20": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP21": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP22": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP23": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP31": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP32": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP33": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP34": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP35": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP37": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP38": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SCU-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-AM06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SCU-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SCULPTOR" + } + ] + }, + "SKSP009F": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "WAR-LO1A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + } + ] + }, + "WAR-LO1B": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + } + ] + }, + "WAR-LO1C": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 200, + "speaker": "WARRIOR" + } + ] + }, + "YEL-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "YELLOW SAGE" + } + ] + }, + "YEL-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "YELLOW SAGE" + } + ] + }, + "YEL-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "YELLOW SAGE" + } + ] + }, + "asstv100": { + "id": "44f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 420, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 550, + "speaker": "KEIRA" + } + ] + }, + "asstv101": { + "id": "450", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 390, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 610, + "speaker": "KEIRA" + } + ] + }, + "asstv102": { + "id": "451", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "speaker": "KEIRA" + } + ] + }, + "asstv103": { + "id": "452", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 280, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 450, + "speaker": "KEIRA" + } + ] + }, + "asstv104": { + "id": "453", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 120, + "speaker": "KEIRA" + } + ] + }, + "asstv105": { + "id": "454", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 128, + "speaker": "KEIRA" + } + ] + }, + "asstva73": { + "id": "427", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 170, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 330, + "speaker": "KEIRA" + } + ] + }, + "asstva74": { + "id": "428", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 182, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 324, + "speaker": "KEIRA" + } + ] + }, + "asstvb02": { + "id": "289", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 110, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 430, + "speaker": "" + }, + { + "clear": false, + "frame": 440, + "speaker": "KEIRA" + } + ] + }, + "asstvb03": { + "id": "28b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 190, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 370, + "speaker": "KEIRA" + } + ] + }, + "asstvb04": { + "id": "2b1", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 360, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 555, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 690, + "speaker": "KEIRA" + } + ] + }, + "asstvb08": { + "id": "2b2", + "lines": [ + { + "clear": false, + "frame": 20, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 140, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + } + ] + }, + "asstvb09": { + "id": "24f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 216, + "speaker": "" + }, + { + "clear": false, + "frame": 234, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 500, + "speaker": "" + } + ] + }, + "asstvb20": { + "id": "327", + "lines": [ + { + "clear": false, + "frame": 40, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 295, + "speaker": "KEIRA" + } + ] + }, + "asstvb21": { + "id": "328", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 163, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 290, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 420, + "speaker": "KEIRA" + } + ] + }, + "asstvb22": { + "id": "326", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 300, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 520, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 775, + "speaker": "" + } + ] + }, + "asstvb23": { + "id": "604", + "lines": [ + { + "clear": false, + "frame": 45, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 340, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 500, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 650, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 805, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 940, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1030, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1176, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1410, + "speaker": "" + } + ] + }, + "asstvb24": { + "id": "605", + "lines": [ + { + "clear": false, + "frame": 30, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 180, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 400, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 525, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 670, + "speaker": "KEIRA" + } + ] + }, + "asstvb25": { + "id": "61d", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 210, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 350, + "speaker": "KEIRA" + } + ] + }, + "asstvb28": { + "id": "36f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 178, + "speaker": "" + }, + { + "clear": false, + "frame": 184, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 374, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 564, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "speaker": "KEIRA" + } + ] + }, + "asstvb29": { + "id": "370", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 185, + "speaker": "KEIRA" + } + ] + }, + "asstvb30": { + "id": "371", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "KEIRA" + } + ] + }, + "asstvb40": { + "id": "900", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 181, + "speaker": "KEIRA" + } + ] + }, + "asstvb41": { + "id": "901", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 176, + "speaker": "" + }, + { + "clear": false, + "frame": 180, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 315, + "speaker": "KEIRA" + } + ] + }, + "asstvb42": { + "id": "902", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 327, + "speaker": "" + }, + { + "clear": false, + "frame": 333, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 507, + "speaker": "KEIRA" + } + ] + }, + "asstvb44": { + "id": "903", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 343, + "speaker": "KEIRA" + } + ] + }, + "asstvb45": { + "id": "904", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 387, + "speaker": "KEIRA" + } + ] + }, + "asstvb46": { + "id": "905", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 188, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 419, + "speaker": "" + }, + { + "clear": false, + "frame": 426, + "speaker": "KEIRA" + } + ] + }, + "asstvb47": { + "id": "906", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 140, + "speaker": "KEIRA" + } + ] + }, + "asstvb48": { + "id": "907", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 253, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 419, + "speaker": "KEIRA" + } + ] + }, + "asstvb71": { + "id": "36c", + "lines": [ + { + "clear": false, + "frame": 16, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + } + ] + }, + "asstvb72": { + "id": "36d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 179, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 406, + "speaker": "KEIRA" + } + ] + }, + "asstvb75": { + "id": "429", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 165, + "speaker": "KEIRA" + } + ] + }, + "asstvb76": { + "id": "42a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 250, + "speaker": "KEIRA" + } + ] + }, + "sagevb01": { + "id": "288", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 163, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 347, + "speaker": "" + }, + { + "clear": false, + "frame": 352, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 493, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 705, + "speaker": "" + }, + { + "clear": false, + "frame": 712, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 884, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1116, + "speaker": "SAMOS" + } + ] + }, + "sagevb02": { + "id": "28a", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 390, + "speaker": "" + }, + { + "clear": false, + "frame": 410, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 555, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 710, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 863, + "speaker": "" + }, + { + "clear": false, + "frame": 880, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1065, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1188, + "speaker": "SAMOS" + } + ] + }, + "sagevb03": { + "id": "36a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 226, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 598, + "speaker": "" + }, + { + "clear": false, + "frame": 613, + "speaker": "SAMOS" + } + ] + }, + "sagevb04": { + "id": "36b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 240, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 475, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 685, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 868, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1020, + "speaker": "" + }, + { + "clear": false, + "frame": 1040, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1205, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1430, + "speaker": "" + }, + { + "clear": false, + "frame": 1450, + "speaker": "SAMOS" + } + ] + }, + "sagevb21": { + "id": "908", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 280, + "speaker": "SAMOS" + } + ] + }, + "sagevb22": { + "id": "909", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 291, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "speaker": "SAMOS" + } + ] + }, + "sagevb23": { + "id": "90a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 199, + "speaker": "SAMOS" + } + ] + }, + "sagevb24": { + "id": "90b", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 169, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 357, + "speaker": "SAMOS" + } + ] + }, + "sagevb25": { + "id": "90c", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 250, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 476, + "speaker": "SAMOS" + } + ] + }, + "sagevb26": { + "id": "90d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb27": { + "id": "90e", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "SAMOS" + } + ] + }, + "sagevb28": { + "id": "90f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb29": { + "id": "910", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb30": { + "id": "911", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb31": { + "id": "912", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb32": { + "id": "913", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb33": { + "id": "914", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb34": { + "id": "915", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb35": { + "id": "916", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb36": { + "id": "917", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 210, + "speaker": "" + }, + { + "clear": false, + "frame": 216, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 418, + "speaker": "SAMOS" + } + ] + }, + "sagevb37": { + "id": "918", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "sagevb38": { + "id": "919", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 120, + "speaker": "SAMOS" + } + ] + }, + "sagevb39": { + "id": "91a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 269, + "speaker": "SAMOS" + } + ] + }, + "sksp0001": { + "id": "280", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0002": { + "id": "281", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0003": { + "id": "282", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 215, + "speaker": "DAXTER" + } + ] + }, + "sksp0004": { + "id": "283", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0005": { + "id": "284", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 163, + "speaker": "" + }, + { + "clear": false, + "frame": 169, + "speaker": "DAXTER" + } + ] + }, + "sksp0006": { + "id": "285", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 188, + "speaker": "DAXTER" + } + ] + }, + "sksp0007": { + "id": "286", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0008": { + "id": "287", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0009": { + "id": "251", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 204, + "speaker": "DAXTER" + } + ] + }, + "sksp0010": { + "id": "231", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0011": { + "id": "240", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 136, + "speaker": "DAXTER" + } + ] + }, + "sksp0013": { + "id": "232", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 113, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 325, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 475, + "speaker": "DAXTER" + } + ] + }, + "sksp0014": { + "id": "233", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 215, + "speaker": "DAXTER" + } + ] + }, + "sksp0015": { + "id": "234", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 228, + "speaker": "DAXTER" + } + ] + }, + "sksp0017": { + "id": "235", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 165, + "speaker": "DAXTER" + } + ] + }, + "sksp0018": { + "id": "25e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 223, + "speaker": "DAXTER" + } + ] + }, + "sksp0019": { + "id": "236", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0020": { + "id": "268", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0021": { + "id": "269", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0022": { + "id": "26a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0023": { + "id": "26b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0024": { + "id": "26c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0025": { + "id": "273", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0026": { + "id": "237", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 197, + "speaker": "" + }, + { + "clear": false, + "frame": 200, + "speaker": "DAXTER" + } + ] + }, + "sksp0027": { + "id": "274", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0028": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0029": { + "id": "275", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 125, + "speaker": "DAXTER" + } + ] + }, + "sksp0030": { + "id": "239", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0031": { + "id": "23a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0034": { + "id": "23b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0035": { + "id": "25c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 117, + "speaker": "DAXTER" + } + ] + }, + "sksp0037": { + "id": "25f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 214, + "speaker": "" + }, + { + "clear": false, + "frame": 220, + "speaker": "DAXTER" + } + ] + }, + "sksp0038": { + "id": "23c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 275, + "speaker": "" + }, + { + "clear": false, + "frame": 281, + "speaker": "DAXTER" + } + ] + }, + "sksp0039": { + "id": "25b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 202, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 391, + "speaker": "" + }, + { + "clear": false, + "frame": 400, + "speaker": "DAXTER" + } + ] + }, + "sksp0040": { + "id": "23d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0041": { + "id": "23e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0043": { + "id": "24e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 95, + "speaker": "" + }, + { + "clear": false, + "frame": 100, + "speaker": "DAXTER" + } + ] + }, + "sksp0049": { + "id": "29c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0050": { + "id": "29d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0051": { + "id": "29e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0052": { + "id": "29f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0053": { + "id": "2a0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0054": { + "id": "2a1", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0056": { + "id": "27b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0059": { + "id": "26e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 110, + "speaker": "" + }, + { + "clear": false, + "frame": 125, + "speaker": "DAXTER" + } + ] + }, + "sksp0060": { + "id": "26f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 170, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 335, + "speaker": "DAXTER" + } + ] + }, + "sksp0062": { + "id": "27e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0063": { + "id": "27f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 332, + "speaker": "" + }, + { + "clear": false, + "frame": 344, + "speaker": "DAXTER" + } + ] + }, + "sksp0064": { + "id": "245", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0067": { + "id": "249", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 125, + "speaker": "DAXTER" + } + ] + }, + "sksp0069": { + "id": "2a3", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0070": { + "id": "2a4", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0071": { + "id": "2a5", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0072": { + "id": "2a6", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0073": { + "id": "2a7", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0076": { + "id": "502", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0077": { + "id": "502", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0078": { + "id": "503", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0079": { + "id": "504", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 257, + "speaker": "" + }, + { + "clear": false, + "frame": 270, + "speaker": "DAXTER" + } + ] + }, + "sksp0080": { + "id": "505", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0081": { + "id": "506", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0082": { + "id": "507", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0083": { + "id": "508", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0084": { + "id": "509", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0085": { + "id": "50a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0086": { + "id": "50b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0087": { + "id": "50d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0088": { + "id": "50e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0089": { + "id": "50f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0090": { + "id": "510", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0091": { + "id": "511", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0092": { + "id": "512", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0093": { + "id": "513", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0094": { + "id": "514", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0095": { + "id": "515", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0096": { + "id": "516", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009a": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009b": { + "id": "28e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009c": { + "id": "28f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009d": { + "id": "290", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009e": { + "id": "291", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009f": { + "id": "292", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009g": { + "id": "293", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009i": { + "id": "294", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009j": { + "id": "295", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp009k": { + "id": "296", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0109": { + "id": "335", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0110": { + "id": "336", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 150, + "speaker": "DAXTER" + } + ] + }, + "sksp0111": { + "id": "337", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0112": { + "id": "338", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0113": { + "id": "339", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0114": { + "id": "33a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0115": { + "id": "33b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0116": { + "id": "33c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 103, + "speaker": "DAXTER" + } + ] + }, + "sksp0117": { + "id": "33d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0118": { + "id": "33e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0119": { + "id": "33f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0120": { + "id": "340", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0121": { + "id": "341", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0122": { + "id": "342", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0123": { + "id": "343", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0124": { + "id": "344", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0125": { + "id": "345", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0126": { + "id": "346", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0127": { + "id": "347", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0128": { + "id": "348", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0129": { + "id": "349", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0130": { + "id": "34a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0131": { + "id": "34b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0132": { + "id": "34c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0133": { + "id": "34d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0134": { + "id": "34e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0135": { + "id": "34f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0136": { + "id": "350", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0137": { + "id": "351", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0138": { + "id": "352", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0139": { + "id": "353", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0140": { + "id": "354", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0141": { + "id": "355", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0142": { + "id": "356", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0143": { + "id": "357", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0144": { + "id": "358", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0145": { + "id": "359", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 113, + "speaker": "DAXTER" + } + ] + }, + "sksp0146": { + "id": "35a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0147": { + "id": "35b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0148": { + "id": "35c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0149": { + "id": "35d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0150": { + "id": "35e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0151": { + "id": "35f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0152": { + "id": "360", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0153": { + "id": "361", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 175, + "speaker": "DAXTER" + } + ] + }, + "sksp0154": { + "id": "362", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0155": { + "id": "363", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0156": { + "id": "364", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0157": { + "id": "365", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0158": { + "id": "366", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0159": { + "id": "367", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0160": { + "id": "368", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0161": { + "id": "369", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp018a": { + "id": "297", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 156, + "speaker": "DAXTER" + } + ] + }, + "sksp0300": { + "id": "607", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0301": { + "id": "608", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0302": { + "id": "609", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0303": { + "id": "60a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0304": { + "id": "60b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0305": { + "id": "60c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0306": { + "id": "60d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0307": { + "id": "60e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0308": { + "id": "60f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0309": { + "id": "610", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0310": { + "id": "611", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0311": { + "id": "612", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0312": { + "id": "613", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0313": { + "id": "614", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0314": { + "id": "615", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0315": { + "id": "616", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0316": { + "id": "617", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0317": { + "id": "618", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0318": { + "id": "619", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0319": { + "id": "61a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0320": { + "id": "61b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0321": { + "id": "61c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0327": { + "id": "432", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0328": { + "id": "433", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0329": { + "id": "434", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0330": { + "id": "435", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0331": { + "id": "436", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0332": { + "id": "437", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0333": { + "id": "438", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0334": { + "id": "439", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0335": { + "id": "43a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0336": { + "id": "43b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0337": { + "id": "43c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0338": { + "id": "43d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0339": { + "id": "43e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0340": { + "id": "43f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0341": { + "id": "440", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0342": { + "id": "441", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0343": { + "id": "442", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0345": { + "id": "443", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0346": { + "id": "444", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0347": { + "id": "445", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0348": { + "id": "446", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0349": { + "id": "447", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0350": { + "id": "448", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0351": { + "id": "449", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0352": { + "id": "44a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0359": { + "id": "44b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0360": { + "id": "44c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0362": { + "id": "44d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0363": { + "id": "44e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0364": { + "id": "702", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0365": { + "id": "703", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0366": { + "id": "704", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0367": { + "id": "705", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0368": { + "id": "706", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0369": { + "id": "707", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0370": { + "id": "708", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0371": { + "id": "709", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0372": { + "id": "70a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0373": { + "id": "70b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0374": { + "id": "70c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0375": { + "id": "70d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0376": { + "id": "70e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0378": { + "id": "813", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0379": { + "id": "711", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0380": { + "id": "712", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0381": { + "id": "806", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0382": { + "id": "807", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0383": { + "id": "808", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0384": { + "id": "809", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0385": { + "id": "80a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0386": { + "id": "80b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0387": { + "id": "80c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0388": { + "id": "80d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0389": { + "id": "80e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0390": { + "id": "80f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0391": { + "id": "810", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0392": { + "id": "811", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0393": { + "id": "812", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0394": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0395": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0396": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0397": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0398": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0399": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0400": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0401": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0402": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0403": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0404": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0405": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0406": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0407": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0408": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0409": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0410": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0411": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0412": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0413": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0414": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0415": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0416": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0417": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0435": { + "id": "2aa", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0443": { + "id": "2af", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0444": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0449": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0450": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0451": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0452": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0455": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0466": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0b42": { + "id": "278", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 240, + "speaker": "DAXTER" + } + ] + } + } +} diff --git a/game/assets/jak1/subtitle/subtitle_meta_es-ES.json b/game/assets/jak1/subtitle/subtitle_meta_es-ES.json new file mode 100644 index 0000000000..728dae866e --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_es-ES.json @@ -0,0 +1,7104 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 295, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 343, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 346, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 458, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 462, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 546, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 552, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 636, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 639, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 767, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 792, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 795, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 895, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 956, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 962, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1063, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1146, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1222, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1228, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-introduction-race-bike": [ + { + "clear": false, + "frame": 9, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 360, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 453, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 508, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 600, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + } + ], + "assistant-lavatube-end-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 228, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 450, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 594, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 640, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 760, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 888, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1014, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1120, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1186, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "assistant-lavatube-start-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 48, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 236, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 294, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 400, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 590, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 620, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 768, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 790, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 820, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 886, + "offscreen": false, + "speaker": "" + }, + { + "clear": true, + "frame": 886, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 900, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 990, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1090, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1190, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + } + ], + "assistant-reminder-1-generic": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 192, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction": [ + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 330, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 565, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 720, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 960, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1070, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1145, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1220, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1370, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "assistant-village2-introduction-flutflut": [ + { + "clear": false, + "frame": 22, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 66, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 75, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 100, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 166, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 188, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 210, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 508, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 644, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 652, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 778, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-robbers": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 132, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 144, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 182, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 292, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 370, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 440, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 504, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 608, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-room": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 191, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 338, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 424, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 436, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 495, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 555, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 635, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 702, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 752, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 782, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 800, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 870, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1000, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-village2-reminder-1-flutflut": [ + { + "clear": false, + "frame": 34, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-robbers": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 114, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-room": [ + { + "clear": false, + "frame": 45, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 122, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-resolution": [ + { + "clear": false, + "frame": 40, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 124, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 326, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 563, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 574, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 662, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 728, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village3-reminder": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 192, + "offscreen": false, + "speaker": "" + } + ], + "billy-accept": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 109, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 349, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 369, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 420, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 497, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 519, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 691, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1000, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1136, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1200, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1318, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1400, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1509, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1527, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reject": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reminder-1": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-resolution": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "BILLY" + } + ], + "bird-lady-beach-resolution": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 306, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": true, + "frame": 354, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 406, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 533, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 535, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 803, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 936, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 939, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 1054, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bird-lady-introduction": [ + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 245, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 326, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 331, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 578, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 648, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 654, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 796, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 951, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1041, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1198, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-1": [ + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 208, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 211, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 348, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-2": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 170, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bluesage-resolution": [ + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 162, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 165, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 253, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 420, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 563, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 666, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 873, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 891, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 980, + "offscreen": false, + "speaker": "" + } + ], + "death-0181": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 52, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0182": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 67, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0184": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 72, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0186": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 65, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0187": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0191": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 49, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0193": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 73, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0195": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 74, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0197": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 62, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0199": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 83, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0202": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "explorer-introduction": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 426, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 538, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 716, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 829, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 865, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 900, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 1043, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-resolution": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 324, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "farmer-introduction": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 113, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 370, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 470, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + } + ], + "fisher-accept": [ + { + "clear": false, + "frame": 0, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 220, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 432, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 438, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 542, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 545, + "offscreen": true, + "speaker": "FISHERMAN" + } + ], + "fisher-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 50, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 103, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 106, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 226, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 229, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 293, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 425, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 521, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 671, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 814, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 955, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 961, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reject": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 115, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 185, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 199, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 280, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 351, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "gambler-introduction-1": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 246, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 320, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 350, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 420, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 476, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 510, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 654, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 740, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 800, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 870, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 950, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-money": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-race": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 188, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-money": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 50, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "geologist-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 98, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 152, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 276, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 326, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 476, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 554, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 569, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 610, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 684, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 822, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 942, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 958, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1040, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1164, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1232, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1348, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1460, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1506, + "offscreen": false, + "speaker": "" + } + ], + "geologist-reminder-moles": [ + { + "clear": false, + "frame": 29, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-reminder-money": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-moles": [ + { + "clear": false, + "frame": 34, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 136, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 156, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 224, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 246, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-money": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 80, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-daxter-sacrifice": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 274, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 404, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 437, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-introduction": [ + { + "clear": false, + "frame": 130, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 207, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 477, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 574, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 577, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 710, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 800, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 803, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 921, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1210, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-outro-beat-boss-b": [ + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 745, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 751, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 847, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 930, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1096, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1100, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1323, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1515, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1600, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 1728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1731, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1916, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1999, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2003, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2172, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2256, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2302, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-preboss": [ + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 335, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 504, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 581, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 693, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 696, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 825, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 828, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 1030, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1391, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1605, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-resolution": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 280, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 705, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 823, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 983, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1111, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1161, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1250, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "mayor-introduction": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 479, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 578, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 689, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 850, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 864, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 915, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 917, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1071, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1074, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1262, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1346, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1551, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1668, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1671, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1797, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-beams": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-donation": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 159, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-beams": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 269, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 290, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 475, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "minershort-introduction-gnawers": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 90, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 196, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 250, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 274, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 360, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 450, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 540, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 700, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 724, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 830, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 920, + "offscreen": false, + "speaker": "" + } + ], + "minershort-introduction-orbs": [ + { + "clear": false, + "frame": 18, + "offscreen": false, + "speaker": "MINER" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 550, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 600, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 694, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 698, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 810, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 826, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 990, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1100, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1120, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1160, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1222, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1380, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1400, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1542, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1560, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 1768, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-gnawers": [ + { + "clear": false, + "frame": 16, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 204, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-reminder-1-orbs": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 130, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 228, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 344, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-switch": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 165, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 186, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 250, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 408, + "offscreen": true, + "speaker": "GORDY" + } + ], + "minershort-reminder-2-orbs": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 84, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-resolution-1-orbs": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + } + ], + "minershort-resolution-2-orbs": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 168, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 190, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 260, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 270, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 358, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 540, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "oracle-intro-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 75, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 206, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 182, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 185, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "redsage-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 378, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 429, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 432, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 540, + "offscreen": true, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 703, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 837, + "offscreen": false, + "speaker": "RED SAGE" + } + ], + "sage-bluehut-introduction-crop-dusting": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 360, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 600, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 899, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 954, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1020, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1214, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1260, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-introduction-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 142, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 208, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 530, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 552, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 688, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 764, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-crop-dusting": [ + { + "clear": false, + "frame": 32, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 86, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 215, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 88, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 260, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 364, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-a": [ + { + "clear": false, + "frame": 24, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 150, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 260, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 300, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 454, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 581, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 708, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 720, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 818, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 955, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1064, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1090, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1215, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1297, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1460, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1545, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1686, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1875, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1958, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2111, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2190, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2200, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2281, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2440, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sage-intro-sequence-d1": [ + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 283, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 440, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 579, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 610, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 793, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 920, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1130, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1186, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1329, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1431, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1493, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1496, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1718, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1831, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1934, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-intro-sequence-d2": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 114, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 224, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 270, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 393, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 515, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 605, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 826, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 857, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1050, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1133, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1246, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1364, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1435, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1529, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1532, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1582, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1689, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1810, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1878, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1993, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2069, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2072, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2189, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-e": [ + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 250, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 359, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 940, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 952, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1105, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1230, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1330, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1415, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1439, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-misty-cannon": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 252, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 365, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 412, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-2-generic": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 320, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 455, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 324, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 412, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 444, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 530, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 680, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 802, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 962, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 972, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1186, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1262, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1290, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1378, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1525, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1680, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1810, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1830, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1988, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1999, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2212, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2226, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2360, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 2508, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2520, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2650, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2718, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2758, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2768, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2840, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 3028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3040, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3128, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 3300, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3500, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3544, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3594, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 3692, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3770, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3790, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3820, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3834, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 3872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3900, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4080, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4192, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4316, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4324, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4464, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4545, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4664, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-dark-eco": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 72, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 180, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 284, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 296, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 560, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 574, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 752, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 764, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 896, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 950, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-rams": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 158, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 272, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 380, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 540, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-dark-eco": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 122, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-rams": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 130, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 161, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 285, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 622, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 632, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 757, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 763, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 920, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1087, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1091, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1191, + "offscreen": true, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1278, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1281, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1376, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1441, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1467, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1646, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1649, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sidekick-human-intro-sequence-b": [ + { + "clear": false, + "frame": 547, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 674, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 842, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 937, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 1027, + "offscreen": false, + "speaker": "" + } + ], + "sidekick-human-intro-sequence-c": [ + { + "clear": false, + "frame": 12, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 369, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 404, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 496, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 577, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 721, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 777, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 820, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 909, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1014, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1124, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1331, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1622, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1857, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1913, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1941, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2057, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2101, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2189, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2307, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2481, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "warrior-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 128, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 218, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 264, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 593, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 762, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1030, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1050, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1185, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1260, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1310, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1410, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1520, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1650, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1674, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1800, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1900, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2000, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2040, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2230, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2366, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2471, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2590, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2670, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2772, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2880, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2960, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 3045, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 3182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3205, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-reminder-1": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 152, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-resolution": [ + { + "clear": false, + "frame": 76, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 228, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 246, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 266, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 324, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 342, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 470, + "offscreen": false, + "speaker": "" + } + ], + "yellowsage-resolution": [ + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 271, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 471, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 480, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 610, + "offscreen": false, + "speaker": "" + } + ] + }, + "hints": { + "ASSTLP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "CHI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 352, + "speaker": "" + }, + { + "clear": false, + "frame": 395, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 400, + "speaker": "" + }, + { + "clear": false, + "frame": 400, + "speaker": "MAYOR" + } + ] + }, + "EXP-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + } + ] + }, + "FAR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + } + ] + }, + "FAR-AM2A": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 156, + "speaker": "" + }, + { + "clear": false, + "frame": 156, + "speaker": "FARMER" + } + ] + }, + "FIS-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "MIN-LO05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 210, + "speaker": "GORDY" + } + ] + }, + "MSH-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "SAGELP05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + } + ] + }, + "SAGELP22": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "SAMOS" + } + ] + }, + "SAGELP23": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "SAMOS" + } + ] + }, + "SAGELP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "SAMOS" + } + ] + }, + "WAR-LO1C": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + } + ] + }, + "asstv100": { + "id": "44f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 420, + "speaker": "KEIRA" + } + ] + }, + "asstv101": { + "id": "450", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 390, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 610, + "speaker": "KEIRA" + } + ] + }, + "asstv103": { + "id": "452", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 210, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 350, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 500, + "speaker": "KEIRA" + } + ] + }, + "asstva73": { + "id": "427", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 340, + "speaker": "KEIRA" + } + ] + }, + "asstva74": { + "id": "428", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 182, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 220, + "speaker": "KEIRA" + } + ] + }, + "asstvb02": { + "id": "289", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 150, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 305, + "speaker": "" + }, + { + "clear": false, + "frame": 315, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 435, + "speaker": "" + }, + { + "clear": false, + "frame": 442, + "speaker": "KEIRA" + } + ] + }, + "asstvb03": { + "id": "28b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 190, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 391, + "speaker": "KEIRA" + } + ] + }, + "asstvb04": { + "id": "2b1", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 233, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 350, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 559, + "speaker": "KEIRA" + } + ] + }, + "asstvb08": { + "id": "2b2", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + } + ] + }, + "asstvb09": { + "id": "24f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 216, + "speaker": "" + }, + { + "clear": false, + "frame": 234, + "speaker": "KEIRA" + } + ] + }, + "asstvb20": { + "id": "327", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 320, + "speaker": "KEIRA" + } + ] + }, + "asstvb21": { + "id": "328", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 314, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 450, + "speaker": "KEIRA" + } + ] + }, + "asstvb22": { + "id": "326", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 320, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 530, + "speaker": "KEIRA" + } + ] + }, + "asstvb23": { + "id": "604", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 400, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 600, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 800, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 950, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1050, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1200, + "speaker": "KEIRA" + } + ] + }, + "asstvb24": { + "id": "605", + "lines": [ + { + "clear": false, + "frame": 40, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 110, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 304, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 525, + "speaker": "KEIRA" + } + ] + }, + "asstvb25": { + "id": "61d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 270, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 300, + "speaker": "KEIRA" + } + ] + }, + "asstvb28": { + "id": "36f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 190, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 380, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 570, + "speaker": "KEIRA" + } + ] + }, + "asstvb30": { + "id": "371", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "speaker": "KEIRA" + } + ] + }, + "asstvb41": { + "id": "901", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 176, + "speaker": "" + }, + { + "clear": false, + "frame": 180, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 405, + "speaker": "KEIRA" + } + ] + }, + "asstvb45": { + "id": "904", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + } + ] + }, + "asstvb46": { + "id": "905", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 258, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 419, + "speaker": "" + }, + { + "clear": false, + "frame": 426, + "speaker": "KEIRA" + } + ] + }, + "asstvb47": { + "id": "906", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "asstvb48": { + "id": "907", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 120, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 253, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 419, + "speaker": "KEIRA" + } + ] + }, + "asstvb72": { + "id": "36d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 410, + "speaker": "KEIRA" + } + ] + }, + "asstvb75": { + "id": "429", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "speaker": "KEIRA" + } + ] + }, + "asstvb76": { + "id": "42a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + } + ] + }, + "sagevb01": { + "id": "288", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 347, + "speaker": "" + }, + { + "clear": false, + "frame": 352, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 705, + "speaker": "" + }, + { + "clear": false, + "frame": 712, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 884, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 950, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1190, + "speaker": "SAMOS" + } + ] + }, + "sagevb02": { + "id": "28a", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 385, + "speaker": "" + }, + { + "clear": false, + "frame": 400, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 710, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 863, + "speaker": "" + }, + { + "clear": false, + "frame": 880, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1191, + "speaker": "SAMOS" + } + ] + }, + "sagevb03": { + "id": "36a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "speaker": "SAMOS" + } + ] + }, + "sagevb04": { + "id": "366", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 318, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 400, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1085, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1455, + "speaker": "SAMOS" + } + ] + }, + "sagevb22": { + "id": "909", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 291, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 400, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 640, + "speaker": "SAMOS" + } + ] + }, + "sagevb23": { + "id": "90a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 150, + "speaker": "SAMOS" + } + ] + }, + "sagevb24": { + "id": "90b", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 357, + "speaker": "SAMOS" + } + ] + }, + "sagevb25": { + "id": "90c", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 365, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 450, + "speaker": "SAMOS" + } + ] + }, + "sagevb27": { + "id": "90e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 150, + "speaker": "SAMOS" + } + ] + }, + "sagevb32": { + "id": "913", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 150, + "speaker": "SAMOS" + } + ] + }, + "sagevb35": { + "id": "916", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 150, + "speaker": "SAMOS" + } + ] + }, + "sagevb36": { + "id": "917", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 218, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "speaker": "SAMOS" + } + ] + }, + "sagevb37": { + "id": "918", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 150, + "speaker": "SAMOS" + } + ] + }, + "sagevb38": { + "id": "919", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 212, + "speaker": "SAMOS" + } + ] + }, + "sagevb39": { + "id": "91a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 269, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 400, + "speaker": "SAMOS" + } + ] + }, + "sksp0005": { + "id": "284", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 166, + "speaker": "DAXTER" + } + ] + }, + "sksp0007": { + "id": "286", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 110, + "speaker": "DAXTER" + } + ] + }, + "sksp0008": { + "id": "287", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 110, + "speaker": "DAXTER" + } + ] + }, + "sksp0009": { + "id": "251", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 206, + "speaker": "DAXTER" + } + ] + }, + "sksp0013": { + "id": "232", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 315, + "speaker": "" + }, + { + "clear": false, + "frame": 337, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 500, + "speaker": "DAXTER" + } + ] + }, + "sksp0017": { + "id": "235", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0037": { + "id": "25f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 214, + "speaker": "" + }, + { + "clear": false, + "frame": 230, + "speaker": "DAXTER" + } + ] + }, + "sksp0043": { + "id": "24e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 106, + "speaker": "DAXTER" + } + ] + }, + "sksp0059": { + "id": "26e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0060": { + "id": "26f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 337, + "speaker": "DAXTER" + } + ] + }, + "sksp0067": { + "id": "249", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0076": { + "id": "501", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0110": { + "id": "336", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 164, + "speaker": "DAXTER" + } + ] + }, + "sksp0116": { + "id": "33c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0143": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0145": { + "id": "359", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0151": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0156": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0157": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0b42": { + "id": "278", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 110, + "speaker": "DAXTER" + } + ] + } + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_fi-FI.json b/game/assets/jak1/subtitle/subtitle_meta_fi-FI.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_fi-FI.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_fr-FR.json b/game/assets/jak1/subtitle/subtitle_meta_fr-FR.json new file mode 100644 index 0000000000..f629199d52 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_fr-FR.json @@ -0,0 +1,8148 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 235, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 343, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 346, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 428, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 436, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 546, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 552, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 636, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 639, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 725, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 792, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 795, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 877, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 956, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 974, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1062, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1146, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1217, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1221, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-introduction-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 175, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 193, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 505, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 643, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 739, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 742, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 864, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 952, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 980, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1053, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1150, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1261, + "offscreen": false, + "speaker": "" + } + ], + "assistant-introduction-race-bike": [ + { + "clear": false, + "frame": 9, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 88, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 134, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 235, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 322, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 334, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 445, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 508, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 590, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + } + ], + "assistant-lavatube-end-resolution": [ + { + "clear": false, + "frame": 51, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 143, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 147, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 228, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 318, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 447, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 450, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 503, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 591, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 650, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 782, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 876, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 888, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1011, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1020, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1112, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1158, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1191, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "assistant-lavatube-start-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 48, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 227, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 244, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 292, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 302, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 457, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 464, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 575, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 610, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 618, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 663, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 784, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 885, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 895, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1010, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1075, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1192, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1195, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + } + ], + "assistant-reminder-1-generic": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 110, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-race-bike": [ + { + "clear": false, + "frame": 19, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 229, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction": [ + { + "clear": false, + "frame": 57, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 117, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 217, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 298, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 316, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 497, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 500, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 565, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 602, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 726, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 890, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 957, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1016, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1080, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1148, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1222, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1348, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "assistant-village2-introduction-flutflut": [ + { + "clear": false, + "frame": 42, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 80, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 82, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 110, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 114, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 190, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 224, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 234, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 314, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 416, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 519, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 644, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 645, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 772, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-robbers": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 67, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 132, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 170, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 246, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 362, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 426, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 614, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-room": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 186, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 189, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 252, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 326, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 383, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 427, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 491, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 553, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 634, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 701, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 750, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 782, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 798, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 870, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 937, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 998, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-village2-reminder-1-flutflut": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-robbers": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 109, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-room": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 124, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 127, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-resolution": [ + { + "clear": false, + "frame": 42, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 220, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 309, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 336, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 346, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 433, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 441, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 573, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 663, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 754, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village3-reminder": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 107, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 196, + "offscreen": false, + "speaker": "" + } + ], + "billy-accept": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 109, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 133, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 189, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 370, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 520, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 525, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 592, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 612, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 691, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1017, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1021, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1136, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1146, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1219, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1329, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1418, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1532, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1545, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reject": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 153, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 240, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-beach-resolution": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 148, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 237, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 306, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": true, + "frame": 351, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 406, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 533, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 535, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 764, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 803, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 926, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 929, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 1022, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bird-lady-introduction": [ + { + "clear": false, + "frame": 125, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 245, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 328, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 331, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 371, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 457, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 516, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 648, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 654, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 739, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 786, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 854, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 932, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1041, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1044, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1198, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-1": [ + { + "clear": false, + "frame": 56, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 208, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 211, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 348, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-2": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 170, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 246, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 389, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bluesage-resolution": [ + { + "clear": false, + "frame": 68, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 114, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 183, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 257, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 403, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 495, + "offscreen": true, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 563, + "offscreen": true, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 666, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 672, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 879, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 890, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 980, + "offscreen": false, + "speaker": "" + } + ], + "explorer-introduction": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 288, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 426, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 430, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 538, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 607, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 715, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 829, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 865, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 985, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 1098, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-reminder-1": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 129, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 387, + "offscreen": false, + "speaker": "" + } + ], + "explorer-resolution": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 108, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 324, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 453, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "farmer-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 70, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 134, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 177, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + } + ], + "finalbosscam-white-eco": [ + { + "clear": false, + "frame": 163, + "offscreen": true, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 274, + "offscreen": true, + "speaker": "MAIA" + } + ], + "fisher-accept": [ + { + "clear": false, + "frame": 0, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 83, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 220, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 322, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 424, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 428, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 537, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 539, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 636, + "offscreen": true, + "speaker": "FISHERMAN" + } + ], + "fisher-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 47, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 100, + "offscreen": false, + "speaker": "" + }, + { + "clear": true, + "frame": 108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 108, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 226, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 228, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 293, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 345, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 422, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 520, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 668, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 715, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 804, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 862, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 955, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 961, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "gambler-introduction-1": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 167, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 237, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 239, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 328, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 414, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 473, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 601, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 650, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 734, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 736, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 851, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 952, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-race": [ + { + "clear": false, + "frame": 1, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 62, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 110, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 117, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 189, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-money": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 76, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 171, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-race": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 129, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "geologist-introduction": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 203, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 276, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 323, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 329, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 392, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 459, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 557, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 566, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 682, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 685, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 822, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 893, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 955, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1035, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1163, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1232, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1342, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1465, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1506, + "offscreen": false, + "speaker": "" + } + ], + "geologist-resolution-money": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 77, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 80, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-daxter-sacrifice": [ + { + "clear": false, + "frame": 4, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 274, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 404, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 532, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-introduction": [ + { + "clear": false, + "frame": 129, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 211, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 277, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 347, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 597, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 711, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 799, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 803, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 904, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1248, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-outro-beat-boss-b": [ + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 670, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 745, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 752, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 847, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 914, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 976, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1096, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1104, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1225, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1318, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1328, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1447, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1555, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1636, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 1728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1731, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1916, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1922, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1999, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2003, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2172, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2256, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2302, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 392, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-need-cells": [ + { + "clear": false, + "frame": 151, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 342, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 392, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 490, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-preboss": [ + { + "clear": false, + "frame": 62, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 217, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 332, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 390, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 503, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 506, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 584, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 693, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 825, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 834, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 944, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1036, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1180, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1226, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1391, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1605, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-resolution": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 104, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 282, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 402, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 468, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 700, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 704, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 820, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 958, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1176, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1228, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "mayor-introduction": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 479, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 689, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 850, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 864, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 911, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 915, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1068, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1074, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1262, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1346, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1438, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1557, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1668, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1671, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1797, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-beams": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 277, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 475, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-donation": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 224, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 352, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 429, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "minershort-introduction-gnawers": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 188, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 265, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 268, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 357, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 359, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 427, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 429, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 490, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 493, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 564, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 645, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 715, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 721, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 875, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 884, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-introduction-orbs": [ + { + "clear": false, + "frame": 15, + "offscreen": false, + "speaker": "MINER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 154, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 207, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 411, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 536, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 588, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 688, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 690, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 786, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 805, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 877, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 991, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1102, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1154, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1220, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1380, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1382, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1545, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1550, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 1774, + "offscreen": false, + "speaker": "" + } + ], + "minershort-introduction-switch": [ + { + "clear": false, + "frame": 38, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 119, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 245, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 370, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 515, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 684, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 750, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-reminder-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 128, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 236, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 346, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-switch": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 94, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 172, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 260, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 408, + "offscreen": true, + "speaker": "GORDY" + } + ], + "minershort-resolution-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 77, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + } + ], + "minershort-resolution-2-orbs": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 154, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 196, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 201, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 285, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 290, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 353, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 456, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 536, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 666, + "offscreen": false, + "speaker": "" + } + ], + "oracle-intro-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 75, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 202, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 388, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 390, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 494, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 86, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 184, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 286, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 184, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 266, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 112, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 94, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 106, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "redsage-resolution": [ + { + "clear": false, + "frame": 99, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 196, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 280, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 382, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 428, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 542, + "offscreen": true, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 678, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 704, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 840, + "offscreen": false, + "speaker": "RED SAGE" + } + ], + "sage-bluehut-introduction-crop-dusting": [ + { + "clear": false, + "frame": 45, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 152, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 259, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 360, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 365, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 449, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 591, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 597, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 811, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 896, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 948, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 951, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1032, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1195, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1254, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-introduction-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 67, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 197, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 311, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 418, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 531, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 550, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 675, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 685, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 778, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 854, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-crop-dusting": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 93, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 99, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 82, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 148, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 250, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 255, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 364, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-a": [ + { + "clear": false, + "frame": 18, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 164, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 290, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 354, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 462, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 465, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 582, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 708, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 720, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 826, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 962, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1064, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1087, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1186, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1270, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1423, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1542, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1683, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1752, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1962, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2074, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2188, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2292, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2440, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sage-intro-sequence-d1": [ + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 286, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 395, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 498, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 588, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 795, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 860, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 920, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1018, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1079, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1186, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1334, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1431, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1493, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1493, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1620, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1707, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1829, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1934, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-intro-sequence-d2": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 107, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 218, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 268, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 392, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 478, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 480, + "offscreen": false, + "speaker": "???" + }, + { + "clear": false, + "frame": 578, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 699, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 828, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 910, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 991, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1065, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1154, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1253, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1262, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1368, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1435, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1529, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1532, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1582, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1689, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1810, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1878, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1993, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2069, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2072, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2189, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-e": [ + { + "clear": false, + "frame": 200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 257, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 359, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 584, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 940, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 952, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1043, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1046, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1160, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1169, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1313, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1415, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1439, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-ecorocks": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 270, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 365, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 412, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-generic": [ + { + "clear": false, + "frame": 54, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 178, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 250, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-misty-cannon": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 90, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 215, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 317, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-2-generic": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 121, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 225, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 320, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 455, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction": [ + { + "clear": false, + "frame": 5, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 38, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 183, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 222, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 418, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 511, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 608, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 677, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 791, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 793, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 887, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 965, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 969, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1283, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1371, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1495, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1682, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1813, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1828, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1972, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1977, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2100, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2212, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2223, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2360, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2421, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 2508, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2520, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2588, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2715, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2758, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2768, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2841, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 3028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3034, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3130, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 3214, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3305, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3495, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3538, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3541, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3595, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 3690, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3792, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3840, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3842, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 3903, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3906, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3989, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4080, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4189, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4204, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4324, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4410, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4474, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4477, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4545, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4664, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-dark-eco": [ + { + "clear": false, + "frame": 7, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 65, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 179, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 183, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 308, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 567, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 637, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 746, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 748, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 819, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 896, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 901, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 954, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-rams": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 83, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 152, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 157, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 376, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 379, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 488, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-rams": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 122, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 161, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 285, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 343, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 424, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 428, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 524, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 622, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 631, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 751, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 757, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 915, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 918, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1085, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1089, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1191, + "offscreen": true, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1278, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1281, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1376, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1436, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1464, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1643, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sculptor-resolution": [ + { + "clear": false, + "frame": 87, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 186, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 228, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 300, + "offscreen": false, + "speaker": "SCULPTOR" + } + ], + "sidekick-human-intro-sequence-b": [ + { + "clear": false, + "frame": 546, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 662, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 819, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 839, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 946, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 1027, + "offscreen": false, + "speaker": "" + } + ], + "sidekick-human-intro-sequence-c": [ + { + "clear": false, + "frame": 12, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 366, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 402, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 496, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 576, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 721, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 774, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 906, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1011, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1115, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1331, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1857, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1913, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1941, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2037, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2055, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2104, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2189, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2307, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2481, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "warrior-introduction": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 128, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 135, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 201, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 264, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 333, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 407, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 474, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 599, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 760, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 904, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1033, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1052, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1175, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1254, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1303, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1308, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1370, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1515, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1640, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1669, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1860, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2030, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2040, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2222, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2360, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2493, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2563, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2566, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2680, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2766, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2770, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2880, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2943, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2949, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 3036, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 3173, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3197, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-reminder-1": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 156, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "yellowsage-resolution": [ + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 142, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 262, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 304, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 425, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 475, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 485, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 601, + "offscreen": false, + "speaker": "" + } + ] + }, + "hints": { + "ASSTLP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 24, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 123, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP34": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 31, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 128, + "speaker": "KEIRA" + } + ] + }, + "CHI-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 178, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 38, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 230, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 350, + "speaker": "" + }, + { + "clear": false, + "frame": 376, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 540, + "speaker": "" + }, + { + "clear": false, + "frame": 590, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 255, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 415, + "speaker": "MAYOR" + } + ] + }, + "FAR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 380, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 500, + "speaker": "" + } + ] + }, + "FIS-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 137, + "speaker": "" + } + ] + }, + "MIN-LO01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 180, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 356, + "speaker": "GORDY" + } + ] + }, + "MSH-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 165, + "speaker": "GORDY" + } + ] + }, + "asstv100": { + "id": "44f", + "lines": [ + { + "clear": false, + "frame": 35, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 218, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 420, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 564, + "speaker": "KEIRA" + } + ] + }, + "asstv101": { + "id": "450", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 167, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 267, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 390, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 610, + "speaker": "KEIRA" + } + ] + }, + "asstv102": { + "id": "451", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 108, + "speaker": "KEIRA" + } + ] + }, + "asstv103": { + "id": "452", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 444, + "speaker": "KEIRA" + } + ] + }, + "asstv104": { + "id": "453", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 119, + "speaker": "KEIRA" + } + ] + }, + "asstv105": { + "id": "454", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 134, + "speaker": "KEIRA" + } + ] + }, + "asstva73": { + "id": "427", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 126, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 285, + "speaker": "KEIRA" + } + ] + }, + "asstva74": { + "id": "428", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 175, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 313, + "speaker": "KEIRA" + } + ] + }, + "asstvb02": { + "id": "289", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 121, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 303, + "speaker": "" + }, + { + "clear": false, + "frame": 305, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 420, + "speaker": "" + }, + { + "clear": false, + "frame": 422, + "speaker": "KEIRA" + } + ] + }, + "asstvb03": { + "id": "28b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 190, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 377, + "speaker": "KEIRA" + } + ] + }, + "asstvb04": { + "id": "2b1", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 263, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 382, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 540, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 686, + "speaker": "KEIRA" + } + ] + }, + "asstvb08": { + "id": "2b2", + "lines": [ + { + "clear": false, + "frame": 20, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 142, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 260, + "speaker": "KEIRA" + } + ] + }, + "asstvb09": { + "id": "24f", + "lines": [ + { + "clear": false, + "frame": 32, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 246, + "speaker": "" + }, + { + "clear": false, + "frame": 254, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 500, + "speaker": "" + } + ] + }, + "asstvb20": { + "id": "327", + "lines": [ + { + "clear": false, + "frame": 38, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 282, + "speaker": "KEIRA" + } + ] + }, + "asstvb21": { + "id": "328", + "lines": [ + { + "clear": false, + "frame": 50, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 290, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 400, + "speaker": "KEIRA" + } + ] + }, + "asstvb22": { + "id": "326", + "lines": [ + { + "clear": false, + "frame": 93, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 275, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 480, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 601, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 775, + "speaker": "" + } + ] + }, + "asstvb23": { + "id": "604", + "lines": [ + { + "clear": false, + "frame": 42, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 246, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 378, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 559, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 840, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 963, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1142, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1410, + "speaker": "" + } + ] + }, + "asstvb24": { + "id": "605", + "lines": [ + { + "clear": false, + "frame": 30, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 516, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 668, + "speaker": "KEIRA" + } + ] + }, + "asstvb25": { + "id": "61d", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 191, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 314, + "speaker": "KEIRA" + } + ] + }, + "asstvb28": { + "id": "36f", + "lines": [ + { + "clear": false, + "frame": 26, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 151, + "speaker": "" + }, + { + "clear": false, + "frame": 158, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 374, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 564, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "speaker": "KEIRA" + } + ] + }, + "asstvb29": { + "id": "370", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 155, + "speaker": "KEIRA" + } + ] + }, + "asstvb30": { + "id": "371", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 125, + "speaker": "KEIRA" + } + ] + }, + "asstvb40": { + "id": "900", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 180, + "speaker": "KEIRA" + } + ] + }, + "asstvb41": { + "id": "901", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 174, + "speaker": "" + }, + { + "clear": false, + "frame": 178, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 337, + "speaker": "KEIRA" + } + ] + }, + "asstvb42": { + "id": "902", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 100, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 321, + "speaker": "" + }, + { + "clear": false, + "frame": 324, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 432, + "speaker": "KEIRA" + } + ] + }, + "asstvb44": { + "id": "903", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 160, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 362, + "speaker": "KEIRA" + } + ] + }, + "asstvb45": { + "id": "904", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 385, + "speaker": "KEIRA" + } + ] + }, + "asstvb46": { + "id": "905", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 188, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 412, + "speaker": "" + }, + { + "clear": false, + "frame": 415, + "speaker": "KEIRA" + } + ] + }, + "asstvb48": { + "id": "907", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 270, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 570, + "speaker": "" + } + ] + }, + "asstvb71": { + "id": "36c", + "lines": [ + { + "clear": false, + "frame": 5, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 210, + "speaker": "KEIRA" + } + ] + }, + "asstvb72": { + "id": "36d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 159, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 291, + "speaker": "KEIRA" + } + ] + }, + "asstvb75": { + "id": "429", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 143, + "speaker": "KEIRA" + } + ] + }, + "sagevb01": { + "id": "288", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 349, + "speaker": "" + }, + { + "clear": false, + "frame": 352, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 483, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 698, + "speaker": "" + }, + { + "clear": false, + "frame": 701, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 860, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1096, + "speaker": "SAMOS" + } + ] + }, + "sagevb02": { + "id": "28a", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 260, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 390, + "speaker": "" + }, + { + "clear": false, + "frame": 418, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 636, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 863, + "speaker": "" + }, + { + "clear": false, + "frame": 888, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1061, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1162, + "speaker": "SAMOS" + } + ] + }, + "sagevb03": { + "id": "36a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 136, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 420, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 580, + "speaker": "" + }, + { + "clear": false, + "frame": 588, + "speaker": "SAMOS" + } + ] + }, + "sagevb04": { + "id": "36b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 240, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 475, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 685, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 912, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1060, + "speaker": "" + }, + { + "clear": false, + "frame": 1065, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1205, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1380, + "speaker": "" + }, + { + "clear": false, + "frame": 1401, + "speaker": "SAMOS" + } + ] + }, + "sagevb22": { + "id": "909", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 268, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 514, + "speaker": "SAMOS" + } + ] + }, + "sagevb23": { + "id": "90a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 181, + "speaker": "SAMOS" + } + ] + }, + "sagevb24": { + "id": "90b", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 160, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 308, + "speaker": "SAMOS" + } + ] + }, + "sagevb25": { + "id": "90c", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 242, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 472, + "speaker": "SAMOS" + } + ] + }, + "sagevb27": { + "id": "90e", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 94, + "speaker": "SAMOS" + } + ] + }, + "sagevb36": { + "id": "917", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 210, + "speaker": "" + }, + { + "clear": false, + "frame": 214, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 304, + "speaker": "SAMOS" + } + ] + }, + "sagevb38": { + "id": "919", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 124, + "speaker": "SAMOS" + } + ] + }, + "sagevb39": { + "id": "91a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 227, + "speaker": "SAMOS" + } + ] + }, + "sksp0003": { + "id": "282", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 142, + "speaker": "DAXTER" + } + ] + }, + "sksp0005": { + "id": "284", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 163, + "speaker": "" + }, + { + "clear": false, + "frame": 178, + "speaker": "DAXTER" + } + ] + }, + "sksp0006": { + "id": "285", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 170, + "speaker": "DAXTER" + } + ] + }, + "sksp0007": { + "id": "286", + "lines": [ + { + "clear": false, + "frame": 2, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 141, + "speaker": "DAXTER" + } + ] + }, + "sksp0009": { + "id": "251", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 105, + "speaker": "DAXTER" + } + ] + }, + "sksp0010": { + "id": "231", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "DAXTER" + } + ] + }, + "sksp0011": { + "id": "240", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 120, + "speaker": "DAXTER" + } + ] + }, + "sksp0013": { + "id": "232", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 325, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 447, + "speaker": "DAXTER" + } + ] + }, + "sksp0015": { + "id": "234", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 248, + "speaker": "DAXTER" + } + ] + }, + "sksp0017": { + "id": "235", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 66, + "speaker": "DAXTER" + } + ] + }, + "sksp0018": { + "id": "25e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 170, + "speaker": "DAXTER" + } + ] + }, + "sksp0026": { + "id": "237", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 197, + "speaker": "" + }, + { + "clear": false, + "frame": 202, + "speaker": "DAXTER" + } + ] + }, + "sksp0027": { + "id": "274", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 123, + "speaker": "DAXTER" + } + ] + }, + "sksp0029": { + "id": "275", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 128, + "speaker": "DAXTER" + } + ] + }, + "sksp0034": { + "id": "23b", + "lines": [ + { + "clear": false, + "frame": 167, + "speaker": "DAXTER" + } + ] + }, + "sksp0035": { + "id": "25c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 270, + "speaker": "DAXTER" + } + ] + }, + "sksp0037": { + "id": "25f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 200, + "speaker": "" + }, + { + "clear": false, + "frame": 202, + "speaker": "DAXTER" + } + ] + }, + "sksp0038": { + "id": "23c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 169, + "speaker": "" + }, + { + "clear": false, + "frame": 171, + "speaker": "DAXTER" + } + ] + }, + "sksp0039": { + "id": "25b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 177, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 338, + "speaker": "" + }, + { + "clear": false, + "frame": 340, + "speaker": "DAXTER" + } + ] + }, + "sksp0043": { + "id": "24e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 98, + "speaker": "" + }, + { + "clear": false, + "frame": 106, + "speaker": "DAXTER" + } + ] + }, + "sksp0059": { + "id": "26e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 105, + "speaker": "" + }, + { + "clear": false, + "frame": 108, + "speaker": "DAXTER" + } + ] + }, + "sksp0060": { + "id": "26f", + "lines": [ + { + "clear": false, + "frame": 30, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 170, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 335, + "speaker": "DAXTER" + } + ] + }, + "sksp0063": { + "id": "27f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 400, + "speaker": "" + }, + { + "clear": false, + "frame": 404, + "speaker": "DAXTER" + } + ] + }, + "sksp0064": { + "id": "245", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 60, + "speaker": "DAXTER" + } + ] + }, + "sksp0067": { + "id": "249", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 122, + "speaker": "DAXTER" + } + ] + }, + "sksp0083": { + "id": "508", + "lines": [ + { + "clear": false, + "frame": 14, + "speaker": "DAXTER" + } + ] + }, + "sksp0085": { + "id": "50a", + "lines": [ + { + "clear": false, + "frame": 41, + "speaker": "DAXTER" + } + ] + }, + "sksp0110": { + "id": "336", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 158, + "speaker": "DAXTER" + } + ] + }, + "sksp0116": { + "id": "33c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 107, + "speaker": "DAXTER" + } + ] + }, + "sksp0132": { + "id": "34c", + "lines": [ + { + "clear": false, + "frame": 84, + "speaker": "DAXTER" + } + ] + }, + "sksp0145": { + "id": "359", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 123, + "speaker": "DAXTER" + } + ] + }, + "sksp018a": { + "id": "297", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 160, + "speaker": "DAXTER" + } + ] + }, + "sksp0b42": { + "id": "278", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 135, + "speaker": "DAXTER" + } + ] + } + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_hu-HU.json b/game/assets/jak1/subtitle/subtitle_meta_hu-HU.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_hu-HU.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_is-IS.json b/game/assets/jak1/subtitle/subtitle_meta_is-IS.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_is-IS.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_it-IT.json b/game/assets/jak1/subtitle/subtitle_meta_it-IT.json new file mode 100644 index 0000000000..42b8ccef17 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_it-IT.json @@ -0,0 +1,8850 @@ +{ + "cutscenes": { + "assistant-firecanyon-resolution": [ + { + "clear": false, + "frame": 33, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 145, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 155, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 317, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 374, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 379, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 458, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 466, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 553, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 555, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 636, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 644, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 710, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 816, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 827, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 894, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 956, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 978, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1060, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1156, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1222, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1235, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-introduction-blue-eco-switch": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 175, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 195, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 312, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 490, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 511, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 627, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 750, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 768, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 842, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 951, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 963, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1052, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1145, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1246, + "offscreen": false, + "speaker": "" + } + ], + "assistant-introduction-race-bike": [ + { + "clear": false, + "frame": 19, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 65, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 210, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 308, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 315, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 384, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 512, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + } + ], + "assistant-lavatube-end-resolution": [ + { + "clear": false, + "frame": 70, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 155, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 235, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 328, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 456, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 512, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 600, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 657, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 760, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 898, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1022, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1120, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1210, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "assistant-lavatube-start-resolution": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 52, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 169, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 240, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 302, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 408, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 472, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 590, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 605, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 683, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 744, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 791, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 798, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 890, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 892, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 990, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1071, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1196, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-blue-eco-switch": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 131, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 295, + "offscreen": false, + "speaker": "" + } + ], + "assistant-reminder-1-generic": [ + { + "clear": false, + "frame": 20, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 88, + "offscreen": false, + "speaker": "KEIRA" + } + ], + "assistant-reminder-1-race-bike": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 115, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 229, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction": [ + { + "clear": false, + "frame": 67, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 117, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 160, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 304, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 319, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 323, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 412, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 416, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 502, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 511, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 568, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 573, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 960, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1074, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1150, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1222, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1366, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "assistant-village2-introduction-flutflut": [ + { + "clear": false, + "frame": 35, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 73, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 79, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 103, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 107, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 184, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 192, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 210, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 229, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 302, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 319, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 426, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 516, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 639, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 649, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 778, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 870, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-robbers": [ + { + "clear": false, + "frame": 13, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 62, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 132, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 167, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 282, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 369, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 509, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 614, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-introduction-room": [ + { + "clear": false, + "frame": 36, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 137, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 197, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 213, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 353, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 408, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 435, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 438, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 562, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 638, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 773, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 874, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1011, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1070, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-flutflut": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-robbers": [ + { + "clear": false, + "frame": 23, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 120, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-reminder-1-room": [ + { + "clear": false, + "frame": 43, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 126, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 233, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village2-resolution": [ + { + "clear": false, + "frame": 47, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 116, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 206, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 299, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 344, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 433, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 440, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 494, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 663, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 679, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 734, + "offscreen": false, + "speaker": "" + } + ], + "assistant-village3-reminder": [ + { + "clear": false, + "frame": 19, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 192, + "offscreen": false, + "speaker": "" + } + ], + "billy-accept": [ + { + "clear": false, + "frame": 15, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-introduction": [ + { + "clear": false, + "frame": 15, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 131, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 187, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 349, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 349, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 376, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 497, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 535, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 592, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 608, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 706, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 807, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1017, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1033, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1133, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1154, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1223, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1338, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 1433, + "offscreen": true, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 1538, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1550, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-reject": [ + { + "clear": false, + "frame": 13, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 158, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": true, + "frame": 240, + "offscreen": false, + "speaker": "" + } + ], + "billy-reminder-1": [ + { + "clear": false, + "frame": 44, + "offscreen": false, + "speaker": "BILLY" + } + ], + "billy-resolution": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "BILLY" + }, + { + "clear": false, + "frame": 128, + "offscreen": false, + "speaker": "BILLY" + } + ], + "bird-lady-beach-resolution": [ + { + "clear": false, + "frame": 29, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 306, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": true, + "frame": 354, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 409, + "offscreen": false, + "speaker": "FLUT-FLUT" + }, + { + "clear": false, + "frame": 431, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 533, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 541, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 701, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 801, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 801, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 936, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 940, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 1042, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bird-lady-introduction": [ + { + "clear": false, + "frame": 129, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 245, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 251, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 315, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 315, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 442, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 549, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 632, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 640, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 753, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": false, + "frame": 916, + "offscreen": true, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1023, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1027, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 1198, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-1": [ + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 208, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 215, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 348, + "offscreen": false, + "speaker": "" + } + ], + "bird-lady-reminder-2": [ + { + "clear": false, + "frame": 60, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 170, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 181, + "offscreen": false, + "speaker": "BIRDWATCHER" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "BIRDWATCHER" + } + ], + "bluesage-resolution": [ + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 169, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 172, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 257, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 420, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 421, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": false, + "frame": 572, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 666, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 678, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 883, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 899, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 980, + "offscreen": false, + "speaker": "" + } + ], + "death-0181": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 53, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0182": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 56, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 73, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0184": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 64, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 71, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0186": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 57, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 63, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0187": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 46, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 54, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0191": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 39, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0193": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 103, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 106, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0195": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 66, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0197": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 62, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 69, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "death-0199": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 102, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "explorer-introduction": [ + { + "clear": false, + "frame": 34, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 201, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 292, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 426, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 437, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 545, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 723, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 829, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 867, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 1048, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-reminder-1": [ + { + "clear": false, + "frame": 29, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 121, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 258, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 387, + "offscreen": false, + "speaker": "" + } + ], + "explorer-reminder-2": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 191, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "explorer-resolution": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 180, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": true, + "frame": 310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 332, + "offscreen": false, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 458, + "offscreen": false, + "speaker": "JAK'S UNCLE" + } + ], + "farmer-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 254, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 381, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 454, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 466, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-reminder-1": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 108, + "offscreen": false, + "speaker": "FARMER" + } + ], + "farmer-resolution": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "FARMER" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + } + ], + "finalbosscam-white-eco": [ + { + "clear": false, + "frame": 167, + "offscreen": true, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 275, + "offscreen": true, + "speaker": "MAIA" + } + ], + "fisher-accept": [ + { + "clear": false, + "frame": 5, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 226, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 378, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 380, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 491, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 491, + "offscreen": true, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 578, + "offscreen": true, + "speaker": "FISHERMAN" + } + ], + "fisher-introduction": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 49, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 100, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 108, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 224, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 225, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 290, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 295, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 419, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 431, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 520, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 665, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 669, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 810, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 863, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 955, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 959, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reject": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 107, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "fisher-resolution": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 115, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 131, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 185, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 199, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 278, + "offscreen": false, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 360, + "offscreen": false, + "speaker": "FISHERMAN" + } + ], + "gambler-introduction-1": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 203, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 238, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 347, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 423, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 476, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 580, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 658, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 754, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 788, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 795, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 926, + "offscreen": true, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 958, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-money": [ + { + "clear": false, + "frame": 11, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 81, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-reminder-race": [ + { + "clear": false, + "frame": 11, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 113, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 118, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-money": [ + { + "clear": false, + "frame": 9, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 76, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "gambler-resolution-race": [ + { + "clear": false, + "frame": 12, + "offscreen": false, + "speaker": "GAMBLER" + }, + { + "clear": false, + "frame": 143, + "offscreen": false, + "speaker": "GAMBLER" + } + ], + "geologist-introduction": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 101, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 204, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 323, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 331, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 392, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 405, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 489, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 574, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 697, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 700, + "offscreen": true, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 827, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 945, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 958, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1035, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1150, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1164, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1229, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1344, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": false, + "frame": 1465, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 1506, + "offscreen": false, + "speaker": "" + } + ], + "geologist-reminder-moles": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 109, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 124, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-reminder-money": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-moles": [ + { + "clear": false, + "frame": 38, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 140, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 227, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 235, + "offscreen": false, + "speaker": "GEOLOGIST" + } + ], + "geologist-resolution-money": [ + { + "clear": false, + "frame": 29, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 80, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 92, + "offscreen": false, + "speaker": "GEOLOGIST" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-daxter-sacrifice": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 47, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 114, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 135, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 235, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 368, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 404, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 439, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 522, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 681, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-introduction": [ + { + "clear": false, + "frame": 134, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 216, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 286, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 352, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 431, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 531, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 603, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 610, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 721, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 808, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 812, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 921, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1070, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1189, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-outro-beat-boss-a": [ + { + "clear": false, + "frame": 168, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 216, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 595, + "offscreen": true, + "speaker": "GOL" + } + ], + "green-sagecage-outro-beat-boss-b": [ + { + "clear": false, + "frame": 534, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 654, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 745, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 758, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 853, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1096, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1114, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1225, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1232, + "offscreen": false, + "speaker": "BLUE SAGE" + }, + { + "clear": true, + "frame": 1321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1330, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1456, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1523, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 1633, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 1728, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1742, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1946, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1999, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2006, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2182, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2256, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2314, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-enough-cells": [ + { + "clear": false, + "frame": 155, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 250, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 355, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 493, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 570, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-beat-boss-need-cells": [ + { + "clear": false, + "frame": 155, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 250, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 355, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 493, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 595, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 639, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "green-sagecage-outro-big-finish": [ + { + "clear": false, + "frame": 328, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 425, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 435, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 516, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 519, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 602, + "offscreen": false, + "speaker": "" + } + ], + "green-sagecage-outro-preboss": [ + { + "clear": false, + "frame": 77, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 170, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 267, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 342, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 520, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 586, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 693, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 708, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 825, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 837, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 946, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1047, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1195, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1304, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 1391, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1613, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "green-sagecage-resolution": [ + { + "clear": false, + "frame": 46, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 173, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 284, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 410, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 415, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 473, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 588, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 720, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 838, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 995, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1108, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1121, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1141, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1172, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1244, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "mayor-introduction": [ + { + "clear": false, + "frame": 39, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 179, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 321, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 475, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 569, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 577, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 686, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 850, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 852, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 915, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 926, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1071, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1084, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1273, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1353, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1551, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 1668, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1671, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 1807, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-beams": [ + { + "clear": false, + "frame": 31, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 157, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-reminder-donation": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 147, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 149, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-beams": [ + { + "clear": false, + "frame": 33, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 199, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 279, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 472, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 473, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "mayor-resolution-donation": [ + { + "clear": false, + "frame": 32, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 219, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 225, + "offscreen": false, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 396, + "offscreen": false, + "speaker": "MAYOR" + } + ], + "minershort-introduction-gnawers": [ + { + "clear": false, + "frame": 11, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 100, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 200, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 279, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 286, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 363, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 368, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 448, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 502, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 503, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 572, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 659, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 715, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 717, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 818, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 875, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 886, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-introduction-orbs": [ + { + "clear": false, + "frame": 16, + "offscreen": false, + "speaker": "MINER" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 156, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 284, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 284, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 429, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 555, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 592, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 695, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 695, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 810, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 821, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 914, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1016, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1120, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1159, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1228, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1390, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 1542, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1545, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 1787, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 1860, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-introduction-switch": [ + { + "clear": false, + "frame": 42, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 121, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 323, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 503, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 509, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 700, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 744, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-reminder-1-gnawers": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 103, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 191, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-reminder-1-orbs": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 126, + "offscreen": true, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 193, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 228, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 247, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 344, + "offscreen": false, + "speaker": "" + } + ], + "minershort-reminder-1-switch": [ + { + "clear": false, + "frame": 2, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 174, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 276, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 346, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 412, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 454, + "offscreen": false, + "speaker": "WILLARD" + } + ], + "minershort-reminder-2-orbs": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 79, + "offscreen": false, + "speaker": "GORDY" + } + ], + "minershort-resolution-1-orbs": [ + { + "clear": false, + "frame": 26, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 74, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": true, + "frame": 200, + "offscreen": false, + "speaker": "" + } + ], + "minershort-resolution-2-orbs": [ + { + "clear": false, + "frame": 13, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 146, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 150, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 159, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": true, + "frame": 190, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 202, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 284, + "offscreen": true, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 358, + "offscreen": false, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 467, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 539, + "offscreen": false, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 647, + "offscreen": false, + "speaker": "GORDY" + } + ], + "oracle-intro-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 75, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 89, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 198, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 211, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 390, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 403, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-intro-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 185, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 450, + "offscreen": false, + "speaker": "" + } + ], + "oracle-intro-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": true, + "frame": 172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 194, + "offscreen": false, + "speaker": "ORACLE" + }, + { + "clear": false, + "frame": 254, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-1": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-2": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "oracle-reminder-3": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "ORACLE" + } + ], + "redsage-resolution": [ + { + "clear": false, + "frame": 52, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 190, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 378, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 429, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 442, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 548, + "offscreen": true, + "speaker": "RED SAGE" + }, + { + "clear": true, + "frame": 677, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 711, + "offscreen": false, + "speaker": "RED SAGE" + }, + { + "clear": false, + "frame": 845, + "offscreen": false, + "speaker": "RED SAGE" + } + ], + "sage-bluehut-introduction-crop-dusting": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 144, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 159, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 357, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 365, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 433, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 546, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 591, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 596, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 728, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 892, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 948, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 953, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1064, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1130, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1168, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1199, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1257, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1313, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-introduction-prec-arm": [ + { + "clear": false, + "frame": 0, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 130, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 136, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 307, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 395, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 531, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 541, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 675, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 686, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 775, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-crop-dusting": [ + { + "clear": false, + "frame": 24, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 93, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 105, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 238, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-bluehut-reminder-1-prec-arm": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 70, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 91, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 176, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 237, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 253, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 340, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 368, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 400, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-a": [ + { + "clear": false, + "frame": 40, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 170, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 265, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 282, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 344, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 451, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 467, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 578, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 594, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 708, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 734, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 830, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 965, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1064, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1102, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1238, + "offscreen": true, + "speaker": "???" + }, + { + "clear": false, + "frame": 1452, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1536, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1552, + "offscreen": true, + "speaker": "???" + }, + { + "clear": true, + "frame": 1680, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1697, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1775, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1893, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1966, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2141, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2157, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2187, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2206, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2284, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2443, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sage-intro-sequence-d1": [ + { + "clear": false, + "frame": 144, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 220, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 292, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 389, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 529, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 561, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 590, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 700, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 804, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 925, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1093, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1131, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1138, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1200, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1230, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1310, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1437, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1493, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1508, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1636, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1711, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1727, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1831, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1933, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-intro-sequence-d2": [ + { + "clear": false, + "frame": 10, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 117, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 223, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 270, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 405, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 411, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 512, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 523, + "offscreen": false, + "speaker": "???" + }, + { + "clear": false, + "frame": 612, + "offscreen": false, + "speaker": "???" + }, + { + "clear": true, + "frame": 696, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 707, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 786, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 838, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 875, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 923, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 961, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1059, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1129, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1257, + "offscreen": true, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1366, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1447, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1529, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1538, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1589, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1685, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1695, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1757, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1872, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1882, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1996, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2069, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2072, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2189, + "offscreen": false, + "speaker": "" + } + ], + "sage-intro-sequence-e": [ + { + "clear": false, + "frame": 205, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 361, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 438, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 589, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 660, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 787, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 940, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 957, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1043, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1058, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1160, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1178, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1310, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1329, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1415, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1439, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-introduction-misty-cannon": [ + { + "clear": false, + "frame": 25, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 139, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 258, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 261, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 359, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 367, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 525, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 528, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 630, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 788, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 817, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 913, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1018, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1171, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1184, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1232, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1237, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-ecorocks": [ + { + "clear": false, + "frame": 28, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 132, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 244, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 263, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 365, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 372, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 412, + "offscreen": true, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-generic": [ + { + "clear": false, + "frame": 20, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 48, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 178, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 195, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-1-misty-cannon": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 101, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 224, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 317, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "SAMOS" + } + ], + "sage-reminder-2-generic": [ + { + "clear": false, + "frame": 27, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 123, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 229, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 313, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 320, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 427, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction": [ + { + "clear": false, + "frame": 6, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 153, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 187, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 321, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 321, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 418, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 441, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 500, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 516, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 616, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 680, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 725, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 807, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 815, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 860, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 891, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 965, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 971, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1065, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1197, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1281, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1292, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1382, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1505, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1616, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1691, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 1824, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1829, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 1915, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2004, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2012, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2094, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 2229, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2235, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2329, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 2359, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 2515, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2529, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2636, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 2717, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 2758, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2766, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2859, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": false, + "frame": 2927, + "offscreen": false, + "speaker": "GOL" + }, + { + "clear": true, + "frame": 3028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3041, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 3128, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": false, + "frame": 3223, + "offscreen": false, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3305, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3314, + "offscreen": true, + "speaker": "MAIA" + }, + { + "clear": true, + "frame": 3495, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3496, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3538, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3543, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3586, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3601, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 3690, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3772, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3788, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 3822, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3839, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 3897, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3911, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4086, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4189, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4194, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4306, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 4400, + "offscreen": false, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 4460, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 4469, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 4545, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 4664, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-dark-eco": [ + { + "clear": false, + "frame": 11, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 60, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 72, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 179, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 186, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 298, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 304, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 459, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 562, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 575, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 634, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 646, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 752, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 768, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 896, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 915, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 950, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-introduction-rams": [ + { + "clear": false, + "frame": 8, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 78, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 152, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 160, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 274, + "offscreen": true, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 378, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 388, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 486, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 550, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 660, + "offscreen": false, + "speaker": "" + } + ], + "sage-village3-reminder-1-rams": [ + { + "clear": false, + "frame": 3, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 134, + "offscreen": false, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 230, + "offscreen": false, + "speaker": "" + } + ], + "sculptor-introduction": [ + { + "clear": false, + "frame": 30, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 154, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 170, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 282, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 295, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 350, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 430, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 434, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 622, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 638, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 757, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 763, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 920, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 926, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1087, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1091, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1182, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1200, + "offscreen": true, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1278, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1281, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1370, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1373, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": true, + "frame": 1441, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1464, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1646, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1647, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "sculptor-resolution": [ + { + "clear": false, + "frame": 87, + "offscreen": false, + "speaker": "SCULPTOR" + }, + { + "clear": false, + "frame": 236, + "offscreen": false, + "speaker": "SCULPTOR" + } + ], + "sidekick-human-intro-sequence-b": [ + { + "clear": false, + "frame": 316, + "offscreen": false, + "speaker": "JAK" + }, + { + "clear": true, + "frame": 349, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 556, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 659, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 680, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": false, + "frame": 760, + "offscreen": false, + "speaker": "OLD MAN" + }, + { + "clear": true, + "frame": 819, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 844, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": false, + "frame": 946, + "offscreen": false, + "speaker": "WOMAN" + }, + { + "clear": true, + "frame": 1027, + "offscreen": false, + "speaker": "" + } + ], + "sidekick-human-intro-sequence-c": [ + { + "clear": false, + "frame": 21, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 91, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 151, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 218, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 243, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 273, + "offscreen": false, + "speaker": "JAK" + }, + { + "clear": true, + "frame": 300, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 373, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 417, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 496, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 579, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 654, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 721, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 776, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 909, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1013, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1125, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1216, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1271, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1339, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1386, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1580, + "offscreen": false, + "speaker": "JAK" + }, + { + "clear": true, + "frame": 1605, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1615, + "offscreen": true, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1722, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1804, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1845, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1865, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1913, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1941, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2028, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2040, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2065, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2101, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2189, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2315, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2431, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2483, + "offscreen": false, + "speaker": "DAXTER" + } + ], + "warrior-introduction": [ + { + "clear": false, + "frame": 34, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 128, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 140, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 212, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 258, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 333, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 410, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 588, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 603, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 750, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 769, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 938, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1033, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1048, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1172, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1179, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 1257, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 1303, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1310, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1393, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1512, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 1640, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 1668, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 1866, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2025, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2035, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2200, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2221, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2330, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2359, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2459, + "offscreen": true, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2561, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2576, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 2684, + "offscreen": false, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 2766, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2774, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 2888, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 2943, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 2955, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 3046, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 3173, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 3202, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-reminder-1": [ + { + "clear": false, + "frame": 40, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 147, + "offscreen": false, + "speaker": "WARRIOR" + } + ], + "warrior-resolution": [ + { + "clear": false, + "frame": 32, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 67, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 74, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 120, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 139, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 234, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 243, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 279, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 287, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 334, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 346, + "offscreen": false, + "speaker": "WARRIOR" + }, + { + "clear": true, + "frame": 476, + "offscreen": false, + "speaker": "" + } + ], + "yellowsage-resolution": [ + { + "clear": false, + "frame": 58, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": false, + "frame": 153, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 280, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 318, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 483, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 494, + "offscreen": false, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 602, + "offscreen": false, + "speaker": "" + }, + { + "clear": false, + "frame": 619, + "offscreen": true, + "speaker": "YELLOW SAGE" + }, + { + "clear": true, + "frame": 630, + "offscreen": false, + "speaker": "" + } + ] + }, + "hints": { + "ASSTLP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 5, + "speaker": "KEIRA" + } + ] + }, + "ASSTLP36": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "BIR-AM11": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 6, + "speaker": "BIRDWATCHER" + } + ] + }, + "CHI-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 214, + "speaker": "" + }, + { + "clear": false, + "frame": 232, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": true, + "frame": 352, + "speaker": "" + }, + { + "clear": false, + "frame": 387, + "speaker": "MAYOR" + } + ] + }, + "CHI-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "MAYOR" + }, + { + "clear": false, + "frame": 393, + "speaker": "MAYOR" + } + ] + }, + "EXP-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 148, + "speaker": "JAK'S UNCLE" + } + ] + }, + "EXP-AM05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "JAK'S UNCLE" + }, + { + "clear": false, + "frame": 203, + "speaker": "JAK'S UNCLE" + } + ] + }, + "FAR-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FARMER" + }, + { + "clear": false, + "frame": 314, + "speaker": "FARMER" + } + ] + }, + "FIS-AM01": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 129, + "speaker": "FISHERMAN" + } + ] + }, + "FIS-AM03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 139, + "speaker": "FISHERMAN" + }, + { + "clear": false, + "frame": 380, + "speaker": "FISHERMAN" + }, + { + "clear": true, + "frame": 479, + "speaker": "" + } + ] + }, + "GOL-AM02": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 27, + "speaker": "GOL" + } + ] + }, + "MIN-LO03": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + }, + { + "clear": false, + "frame": 115, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 320, + "speaker": "GORDY" + } + ] + }, + "MIN-LO04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 199, + "speaker": "GORDY" + } + ] + }, + "MIN-LO05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 205, + "speaker": "GORDY" + } + ] + }, + "MIN-LO06": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 213, + "speaker": "GORDY" + } + ] + }, + "MSH-AM12": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "GORDY" + } + ] + }, + "MTA-AM04": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 198, + "speaker": "WILLARD" + } + ] + }, + "MTA-AM07": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WILLARD" + }, + { + "clear": false, + "frame": 231, + "speaker": "WILLARD" + } + ] + }, + "SAGELP05": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 15, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 210, + "speaker": "" + }, + { + "clear": false, + "frame": 264, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 420, + "speaker": "" + } + ] + }, + "SAGELP22": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 5, + "speaker": "SAMOS" + } + ] + }, + "SAGELP23": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + } + ] + }, + "SAGELP24": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 7, + "speaker": "SAMOS" + } + ] + }, + "SAGELP31": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 5, + "speaker": "SAMOS" + } + ] + }, + "SAGELP33": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 5, + "speaker": "SAMOS" + } + ] + }, + "SAGELP35": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 13, + "speaker": "SAMOS" + } + ] + }, + "SAGELP37": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 9, + "speaker": "SAMOS" + } + ] + }, + "SAGELP38": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 12, + "speaker": "SAMOS" + } + ] + }, + "WAR-LO1C": { + "id": "0", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "WARRIOR" + }, + { + "clear": false, + "frame": 151, + "speaker": "WARRIOR" + } + ] + }, + "asstv100": { + "id": "44f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 269, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 460, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 655, + "speaker": "KEIRA" + } + ] + }, + "asstv101": { + "id": "450", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 297, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 411, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 610, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 780, + "speaker": "" + } + ] + }, + "asstv102": { + "id": "451", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 117, + "speaker": "KEIRA" + } + ] + }, + "asstv103": { + "id": "452", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 200, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 307, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 421, + "speaker": "KEIRA" + } + ] + }, + "asstv104": { + "id": "453", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 135, + "speaker": "KEIRA" + } + ] + }, + "asstv105": { + "id": "454", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 120, + "speaker": "KEIRA" + } + ] + }, + "asstva73": { + "id": "427", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 303, + "speaker": "KEIRA" + } + ] + }, + "asstva74": { + "id": "428", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 204, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 357, + "speaker": "KEIRA" + } + ] + }, + "asstvb02": { + "id": "289", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 261, + "speaker": "" + }, + { + "clear": false, + "frame": 268, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 374, + "speaker": "" + }, + { + "clear": false, + "frame": 381, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 515, + "speaker": "KEIRA" + } + ] + }, + "asstvb03": { + "id": "28b", + "lines": [ + { + "clear": false, + "frame": 8, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 149, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 350, + "speaker": "KEIRA" + } + ] + }, + "asstvb04": { + "id": "2b1", + "lines": [ + { + "clear": false, + "frame": 21, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 261, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 548, + "speaker": "KEIRA" + } + ] + }, + "asstvb08": { + "id": "2b2", + "lines": [ + { + "clear": false, + "frame": 40, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 151, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 291, + "speaker": "KEIRA" + } + ] + }, + "asstvb09": { + "id": "24f", + "lines": [ + { + "clear": false, + "frame": 42, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 216, + "speaker": "" + }, + { + "clear": false, + "frame": 234, + "speaker": "KEIRA" + } + ] + }, + "asstvb20": { + "id": "327", + "lines": [ + { + "clear": false, + "frame": 61, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 297, + "speaker": "KEIRA" + } + ] + }, + "asstvb21": { + "id": "328", + "lines": [ + { + "clear": false, + "frame": 51, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 327, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 427, + "speaker": "KEIRA" + } + ] + }, + "asstvb22": { + "id": "326", + "lines": [ + { + "clear": false, + "frame": 69, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 324, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 526, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 718, + "speaker": "" + } + ] + }, + "asstvb23": { + "id": "604", + "lines": [ + { + "clear": false, + "frame": 65, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 359, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 471, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 674, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 903, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 1159, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 1410, + "speaker": "" + } + ] + }, + "asstvb24": { + "id": "605", + "lines": [ + { + "clear": false, + "frame": 30, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 307, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 502, + "speaker": "KEIRA" + } + ] + }, + "asstvb25": { + "id": "61d", + "lines": [ + { + "clear": false, + "frame": 10, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 184, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 348, + "speaker": "KEIRA" + } + ] + }, + "asstvb28": { + "id": "36f", + "lines": [ + { + "clear": false, + "frame": 19, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 178, + "speaker": "" + }, + { + "clear": false, + "frame": 189, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 369, + "speaker": "" + }, + { + "clear": false, + "frame": 369, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 566, + "speaker": "" + }, + { + "clear": false, + "frame": 566, + "speaker": "KEIRA" + } + ] + }, + "asstvb29": { + "id": "370", + "lines": [ + { + "clear": false, + "frame": 16, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 172, + "speaker": "KEIRA" + } + ] + }, + "asstvb30": { + "id": "371", + "lines": [ + { + "clear": false, + "frame": 11, + "speaker": "KEIRA" + } + ] + }, + "asstvb40": { + "id": "900", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 159, + "speaker": "KEIRA" + } + ] + }, + "asstvb41": { + "id": "901", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 176, + "speaker": "" + }, + { + "clear": false, + "frame": 192, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 318, + "speaker": "KEIRA" + } + ] + }, + "asstvb42": { + "id": "902", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 245, + "speaker": "" + }, + { + "clear": false, + "frame": 258, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 498, + "speaker": "KEIRA" + } + ] + }, + "asstvb44": { + "id": "903", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 182, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 364, + "speaker": "KEIRA" + } + ] + }, + "asstvb45": { + "id": "904", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 209, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 357, + "speaker": "KEIRA" + } + ] + }, + "asstvb46": { + "id": "905", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 106, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 219, + "speaker": "KEIRA" + }, + { + "clear": true, + "frame": 360, + "speaker": "" + }, + { + "clear": false, + "frame": 378, + "speaker": "KEIRA" + } + ] + }, + "asstvb47": { + "id": "906", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + } + ] + }, + "asstvb48": { + "id": "907", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 247, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 382, + "speaker": "KEIRA" + } + ] + }, + "asstvb71": { + "id": "36c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 202, + "speaker": "KEIRA" + } + ] + }, + "asstvb72": { + "id": "36d", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 169, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 394, + "speaker": "KEIRA" + } + ] + }, + "asstvb75": { + "id": "429", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 149, + "speaker": "KEIRA" + } + ] + }, + "asstvb76": { + "id": "42a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "KEIRA" + }, + { + "clear": false, + "frame": 229, + "speaker": "KEIRA" + } + ] + }, + "sagevb01": { + "id": "288", + "lines": [ + { + "clear": false, + "frame": 40, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 290, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 564, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 702, + "speaker": "" + }, + { + "clear": false, + "frame": 722, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 930, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1079, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1221, + "speaker": "SAMOS" + } + ] + }, + "sagevb02": { + "id": "28a", + "lines": [ + { + "clear": false, + "frame": 30, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 349, + "speaker": "" + }, + { + "clear": false, + "frame": 426, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 587, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 781, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 870, + "speaker": "" + }, + { + "clear": false, + "frame": 907, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1075, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1213, + "speaker": "SAMOS" + } + ] + }, + "sagevb03": { + "id": "36a", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 145, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 425, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 616, + "speaker": "SAMOS" + } + ] + }, + "sagevb04": { + "id": "36b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 231, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 457, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 673, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 855, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1050, + "speaker": "" + }, + { + "clear": false, + "frame": 1068, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 1388, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 1600, + "speaker": "" + } + ] + }, + "sagevb21": { + "id": "908", + "lines": [ + { + "clear": false, + "frame": 25, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 271, + "speaker": "" + }, + { + "clear": false, + "frame": 322, + "speaker": "SAMOS" + } + ] + }, + "sagevb22": { + "id": "909", + "lines": [ + { + "clear": false, + "frame": 7, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 243, + "speaker": "" + }, + { + "clear": false, + "frame": 297, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 614, + "speaker": "SAMOS" + } + ] + }, + "sagevb23": { + "id": "90a", + "lines": [ + { + "clear": false, + "frame": 7, + "speaker": "SAMOS" + } + ] + }, + "sagevb24": { + "id": "90b", + "lines": [ + { + "clear": false, + "frame": 29, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 191, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 369, + "speaker": "SAMOS" + } + ] + }, + "sagevb25": { + "id": "90c", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 261, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 576, + "speaker": "SAMOS" + } + ] + }, + "sagevb27": { + "id": "90e", + "lines": [ + { + "clear": false, + "frame": 1, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 218, + "speaker": "SAMOS" + } + ] + }, + "sagevb29": { + "id": "910", + "lines": [ + { + "clear": false, + "frame": 19, + "speaker": "SAMOS" + } + ] + }, + "sagevb31": { + "id": "912", + "lines": [ + { + "clear": false, + "frame": 3, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 72, + "speaker": "SAMOS" + } + ] + }, + "sagevb32": { + "id": "913", + "lines": [ + { + "clear": false, + "frame": 16, + "speaker": "SAMOS" + } + ] + }, + "sagevb35": { + "id": "916", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 78, + "speaker": "SAMOS" + } + ] + }, + "sagevb36": { + "id": "917", + "lines": [ + { + "clear": false, + "frame": 15, + "speaker": "SAMOS" + }, + { + "clear": true, + "frame": 210, + "speaker": "" + }, + { + "clear": false, + "frame": 240, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 421, + "speaker": "SAMOS" + } + ] + }, + "sagevb37": { + "id": "918", + "lines": [ + { + "clear": false, + "frame": 2, + "speaker": "SAMOS" + } + ] + }, + "sagevb38": { + "id": "919", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 157, + "speaker": "SAMOS" + } + ] + }, + "sagevb39": { + "id": "91a", + "lines": [ + { + "clear": false, + "frame": 21, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 224, + "speaker": "SAMOS" + }, + { + "clear": false, + "frame": 444, + "speaker": "SAMOS" + } + ] + }, + "sksp0003": { + "id": "282", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 184, + "speaker": "DAXTER" + } + ] + }, + "sksp0005": { + "id": "284", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 168, + "speaker": "" + }, + { + "clear": false, + "frame": 180, + "speaker": "DAXTER" + } + ] + }, + "sksp0009": { + "id": "251", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 210, + "speaker": "DAXTER" + } + ] + }, + "sksp0011": { + "id": "240", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 203, + "speaker": "DAXTER" + } + ] + }, + "sksp0013": { + "id": "232", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 310, + "speaker": "" + }, + { + "clear": false, + "frame": 310, + "speaker": "DAXTER" + } + ] + }, + "sksp0014": { + "id": "233", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 215, + "speaker": "" + }, + { + "clear": false, + "frame": 230, + "speaker": "DAXTER" + } + ] + }, + "sksp0015": { + "id": "234", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 219, + "speaker": "DAXTER" + } + ] + }, + "sksp0017": { + "id": "235", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0018": { + "id": "25e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 183, + "speaker": "DAXTER" + } + ] + }, + "sksp0026": { + "id": "237", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 197, + "speaker": "" + }, + { + "clear": false, + "frame": 217, + "speaker": "DAXTER" + } + ] + }, + "sksp0035": { + "id": "25c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 127, + "speaker": "DAXTER" + } + ] + }, + "sksp0037": { + "id": "25f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 215, + "speaker": "" + }, + { + "clear": false, + "frame": 215, + "speaker": "DAXTER" + } + ] + }, + "sksp0038": { + "id": "23c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 287, + "speaker": "" + }, + { + "clear": false, + "frame": 291, + "speaker": "DAXTER" + } + ] + }, + "sksp0039": { + "id": "25b", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 215, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 389, + "speaker": "" + }, + { + "clear": false, + "frame": 403, + "speaker": "DAXTER" + } + ] + }, + "sksp0043": { + "id": "24e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 119, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 516, + "speaker": "" + } + ] + }, + "sksp0059": { + "id": "26e", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 119, + "speaker": "DAXTER" + } + ] + }, + "sksp0060": { + "id": "26f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 174, + "speaker": "DAXTER" + } + ] + }, + "sksp0063": { + "id": "27f", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": true, + "frame": 300, + "speaker": "" + }, + { + "clear": false, + "frame": 328, + "speaker": "DAXTER" + } + ] + }, + "sksp0067": { + "id": "249", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0076": { + "id": "501", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0110": { + "id": "336", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 159, + "speaker": "DAXTER" + } + ] + }, + "sksp0116": { + "id": "33c", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0145": { + "id": "359", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + } + ] + }, + "sksp0153": { + "id": "361", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 195, + "speaker": "DAXTER" + } + ] + }, + "sksp0b42": { + "id": "278", + "lines": [ + { + "clear": false, + "frame": 0, + "speaker": "DAXTER" + }, + { + "clear": false, + "frame": 257, + "speaker": "DAXTER" + } + ] + } + } +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_jp-JP.json b/game/assets/jak1/subtitle/subtitle_meta_jp-JP.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_jp-JP.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_nl-NL.json b/game/assets/jak1/subtitle/subtitle_meta_nl-NL.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_nl-NL.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_no-NO.json b/game/assets/jak1/subtitle/subtitle_meta_no-NO.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_no-NO.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_pt-BR.json b/game/assets/jak1/subtitle/subtitle_meta_pt-BR.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_pt-BR.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_pt-PT.json b/game/assets/jak1/subtitle/subtitle_meta_pt-PT.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_pt-PT.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/assets/jak1/subtitle/subtitle_meta_sv-SE.json b/game/assets/jak1/subtitle/subtitle_meta_sv-SE.json new file mode 100644 index 0000000000..9eb81ab9d4 --- /dev/null +++ b/game/assets/jak1/subtitle/subtitle_meta_sv-SE.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "hints": {} +} \ No newline at end of file diff --git a/game/tools/subtitles/subtitle_editor.cpp b/game/tools/subtitles/subtitle_editor.cpp index 3ad5f728b9..efd9cdba68 100644 --- a/game/tools/subtitles/subtitle_editor.cpp +++ b/game/tools/subtitles/subtitle_editor.cpp @@ -132,7 +132,8 @@ void SubtitleEditor::draw_window() { } if (ImGui::Button("Save Changes")) { - m_files_saved_successfully = std::make_optional(write_subtitle_db_to_files(m_subtitle_db)); + m_files_saved_successfully = + std::make_optional(write_subtitle_db_to_files(m_subtitle_db, g_game_version)); repl_rebuild_text(); } if (m_files_saved_successfully.has_value()) { @@ -196,7 +197,7 @@ void SubtitleEditor::draw_window() { if (ImGui::Button("Add Scene")) { GameSubtitleSceneInfo newScene(SubtitleSceneKind::Movie); newScene.m_name = m_new_scene_name; - newScene.m_id = 0; // TODO - id is always zero, bug in subtitles.cpp? + newScene.m_id = 0; // id's are only used for non-named hints newScene.m_sorting_group = m_new_scene_group; m_subtitle_db.m_banks.at(m_current_language)->add_scene(newScene); m_subtitle_db.m_subtitle_groups->add_scene(newScene.m_sorting_group, newScene.m_name); @@ -314,11 +315,11 @@ void SubtitleEditor::draw_edit_options() { if (ImGui::BeginCombo( "Editing Language ID", fmt::format("[{}] {}", m_subtitle_db.m_banks[m_current_language]->m_lang_id, - m_subtitle_db.m_banks[m_current_language]->file_path) + m_subtitle_db.m_banks[m_current_language]->m_file_path) .c_str())) { for (const auto& [key, value] : m_subtitle_db.m_banks) { const bool isSelected = m_current_language == key; - if (ImGui::Selectable(fmt::format("[{}] {}", value->m_lang_id, value->file_path).c_str(), + if (ImGui::Selectable(fmt::format("[{}] {}", value->m_lang_id, value->m_file_path).c_str(), isSelected)) { m_current_language = key; } @@ -330,11 +331,11 @@ void SubtitleEditor::draw_edit_options() { } if (ImGui::BeginCombo("Base Language ID", fmt::format("[{}] {}", m_subtitle_db.m_banks[m_base_language]->m_lang_id, - m_subtitle_db.m_banks[m_base_language]->file_path) + m_subtitle_db.m_banks[m_base_language]->m_file_path) .c_str())) { for (const auto& [key, value] : m_subtitle_db.m_banks) { const bool isSelected = m_base_language == key; - if (ImGui::Selectable(fmt::format("[{}] {}", value->m_lang_id, value->file_path).c_str(), + if (ImGui::Selectable(fmt::format("[{}] {}", value->m_lang_id, value->m_file_path).c_str(), isSelected)) { m_base_language = key; } @@ -610,21 +611,20 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu if (current_scene) { draw_new_cutscene_line_form(); } - auto font = - get_font_bank(parse_text_only_version(m_subtitle_db.m_banks[m_current_language]->file_path)); + auto font = get_font_bank(m_subtitle_db.m_banks[m_current_language]->m_text_version); int i = 0; for (auto subtitleLine = scene.m_lines.begin(); subtitleLine != scene.m_lines.end();) { auto linetext = font->convert_game_to_utf8(subtitleLine->line.c_str()); - auto linespkr = font->convert_game_to_utf8(subtitleLine->speaker.c_str()); + auto line_speaker = font->convert_game_to_utf8(subtitleLine->speaker.c_str()); std::string summary; if (linetext.empty()) { summary = fmt::format("[{}] Clear Screen", subtitleLine->frame); } else if (linetext.length() >= 30) { - summary = - fmt::format("[{}] {} - '{}...'", subtitleLine->frame, linespkr, linetext.substr(0, 30)); + summary = fmt::format("[{}] {} - '{}...'", subtitleLine->frame, line_speaker, + linetext.substr(0, 30)); } else { summary = - fmt::format("[{}] {} - '{}'", subtitleLine->frame, linespkr, linetext.substr(0, 30)); + fmt::format("[{}] {} - '{}'", subtitleLine->frame, line_speaker, linetext.substr(0, 30)); } if (linetext.empty()) { ImGui::PushStyleColor(ImGuiCol_Text, m_disabled_text_color); @@ -637,7 +637,8 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu } ImGui::InputInt("Starting Frame", &subtitleLine->frame, ImGuiInputTextFlags_::ImGuiInputTextFlags_CharsDecimal); - ImGui::InputText("Speaker", &linespkr); + // TODO - speaker dropdown instead + ImGui::InputText("Speaker", &line_speaker); ImGui::InputText("Text", &linetext); ImGui::Checkbox("Offscreen?", &subtitleLine->offscreen); if (scene.m_lines.size() > 1) { // prevent creating an empty scene @@ -655,7 +656,7 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu ImGui::PopStyleColor(); } auto newtext = font->convert_utf8_to_game(linetext, true); - auto newspkr = font->convert_utf8_to_game(linespkr, true); + auto newspkr = font->convert_utf8_to_game(line_speaker, true); subtitleLine->line = newtext; subtitleLine->speaker = newspkr; i++; @@ -679,7 +680,7 @@ void SubtitleEditor::draw_new_cutscene_line_form() { rendered_text_entry_btn = true; if (ImGui::Button("Add Text Entry")) { auto font = get_font_bank( - parse_text_only_version(m_subtitle_db.m_banks[m_current_language]->file_path)); + parse_text_only_version(m_subtitle_db.m_banks[m_current_language]->m_file_path)); m_current_scene->add_line( m_current_scene_frame, font->convert_utf8_to_game(m_current_scene_text, true), font->convert_utf8_to_game(m_current_scene_speaker, true), m_current_scene_offscreen); diff --git a/goal_src/jak1/pc/progress-pc.gc b/goal_src/jak1/pc/progress-pc.gc index 7060147430..b2e9e741fc 100644 --- a/goal_src/jak1/pc/progress-pc.gc +++ b/goal_src/jak1/pc/progress-pc.gc @@ -423,7 +423,7 @@ (define *text-languages* (static-text-list-array english uk-english french german spanish italian japanese portuguese br-portuguese swedish finnish danish norwegian dutch hungarian)) (define *subtitle-languages* (static-text-list-array - english french german spanish italian br-portuguese)) + english uk-english french german spanish italian br-portuguese)) diff --git a/goalc/compiler/compilation/CompilerControl.cpp b/goalc/compiler/compilation/CompilerControl.cpp index 11ece8399e..58a7c2ba61 100644 --- a/goalc/compiler/compilation/CompilerControl.cpp +++ b/goalc/compiler/compilation/CompilerControl.cpp @@ -85,28 +85,34 @@ Val* Compiler::compile_asm_text_file(const goos::Object& form, const goos::Objec auto args = get_va(form, rest); va_check(form, args, {goos::ObjectType::SYMBOL}, {{"files", {true, goos::ObjectType::PAIR}}}); - // list of files per text version. - std::vector inputs; - // what kind of text file? const auto kind = symbol_string(args.unnamed.at(0)); - // open all project files specified (usually one). - for_each_in_list(args.named.at("files"), [this, &inputs, &form, &kind](const goos::Object& o) { - if (o.is_string()) { - open_text_project(kind, o.as_string()->data, inputs); - } else { - throw_compiler_error(form, "Invalid object {} in asm-text-file files list.", o.print()); - } - }); - // compile files. if (kind == "subtitle") { + std::vector inputs; + // open all project files specified (usually one). + for_each_in_list(args.named.at("files"), [this, &inputs, &form, &kind](const goos::Object& o) { + if (o.is_string()) { + open_subtitle_project(kind, o.as_string()->data, inputs); + } else { + throw_compiler_error(form, "Invalid object {} in asm-text-file files list.", o.print()); + } + }); GameSubtitleDB db; db.m_subtitle_groups = std::make_unique(); db.m_subtitle_groups->hydrate_from_asset_file(); compile_game_subtitle(inputs, db, m_make.compiler_output_prefix()); } else if (kind == "text") { + std::vector inputs; + // open all project files specified (usually one). + for_each_in_list(args.named.at("files"), [this, &inputs, &form, &kind](const goos::Object& o) { + if (o.is_string()) { + open_text_project(kind, o.as_string()->data, inputs); + } else { + throw_compiler_error(form, "Invalid object {} in asm-text-file files list.", o.print()); + } + }); GameTextDB db; compile_game_text(inputs, db, m_make.compiler_output_prefix()); } else { diff --git a/goalc/data_compiler/game_text_common.cpp b/goalc/data_compiler/game_text_common.cpp index 2fee6d2f74..9ec2ed4ed2 100644 --- a/goalc/data_compiler/game_text_common.cpp +++ b/goalc/data_compiler/game_text_common.cpp @@ -22,6 +22,7 @@ #include "common/goos/Reader.h" #include "common/util/FileUtil.h" #include "common/util/FontUtils.h" +#include "common/util/json_util.h" #include "third-party/fmt/core.h" @@ -144,8 +145,6 @@ void compile_subtitle(GameSubtitleDB& db, const std::string& output_prefix) { } } // namespace -#include "common/util/json_util.h" - /*! * Read a game text description file and generate GOAL objects. */ @@ -154,11 +153,12 @@ void compile_game_text(const std::vector& files, const std::string& output_prefix) { goos::Reader reader; for (auto& file : files) { - lg::print("[Build Game Text] {}\n", file.file_path.c_str()); if (file.format == GameTextDefinitionFile::Format::GOAL) { + lg::print("[Build Game Text] GOAL {}\n", file.file_path); auto code = reader.read_from_file({file.file_path}); parse_text(code, db, file); } else if (file.format == GameTextDefinitionFile::Format::JSON) { + lg::print("[Build Game Text] JSON {}\n", file.file_path); auto file_path = file_util::get_jak_project_dir() / file.file_path; auto json = parse_commented_json(file_util::read_text_file(file_path), file.file_path); parse_text_json(json, db, file); @@ -167,14 +167,19 @@ void compile_game_text(const std::vector& files, compile_text(db, output_prefix); } -void compile_game_subtitle(const std::vector& files, +void compile_game_subtitle(const std::vector& files, GameSubtitleDB& db, const std::string& output_prefix) { goos::Reader reader; for (auto& file : files) { - lg::print("[Build Game Subtitle] {}\n", file.file_path.c_str()); - auto code = reader.read_from_file({file.file_path}); - parse_subtitle(code, db, file.file_path); + if (file.format == GameSubtitleDefinitionFile::Format::GOAL) { + lg::print("[Build Game Subtitle] GOAL {}\n", file.lines_path); + auto code = reader.read_from_file({file.lines_path}); + parse_subtitle(code, db, file.lines_path); + } else if (file.format == GameSubtitleDefinitionFile::Format::JSON) { + lg::print("[Build Game Subtitle] JSON {}:{}\n", file.lines_path, file.meta_path); + parse_subtitle_json(db, file); + } } compile_subtitle(db, output_prefix); } diff --git a/goalc/data_compiler/game_text_common.h b/goalc/data_compiler/game_text_common.h index ca57c04102..f491c6e16f 100644 --- a/goalc/data_compiler/game_text_common.h +++ b/goalc/data_compiler/game_text_common.h @@ -12,6 +12,6 @@ void compile_game_text(const std::vector& filenames, GameTextDB& db, const std::string& output_prefix); -void compile_game_subtitle(const std::vector& filenames, +void compile_game_subtitle(const std::vector& filenames, GameSubtitleDB& db, const std::string& output_prefix); diff --git a/goalc/make/Tools.cpp b/goalc/make/Tools.cpp index 589e60721b..41ef3db01b 100644 --- a/goalc/make/Tools.cpp +++ b/goalc/make/Tools.cpp @@ -175,10 +175,19 @@ bool SubtitleTool::needs_run(const ToolInput& task, const PathMap& path_map) { } std::vector deps; - std::vector files; - open_text_project("subtitle", task.input.at(0), files); + std::vector files; + open_subtitle_project("subtitle", task.input.at(0), files); for (auto& file : files) { - deps.push_back(path_map.apply_remaps(file.file_path)); + deps.push_back(path_map.apply_remaps(file.lines_path)); + if (file.format == GameSubtitleDefinitionFile::Format::JSON) { + deps.push_back(path_map.apply_remaps(file.meta_path)); + if (file.lines_base_path) { + deps.push_back(path_map.apply_remaps(file.lines_base_path.value())); + } + if (file.meta_base_path) { + deps.push_back(path_map.apply_remaps(file.meta_base_path.value())); + } + } } return Tool::needs_run({task.input, deps, task.output, task.arg}, path_map); } @@ -187,10 +196,19 @@ bool SubtitleTool::run(const ToolInput& task, const PathMap& path_map) { GameSubtitleDB db; db.m_subtitle_groups = std::make_unique(); db.m_subtitle_groups->hydrate_from_asset_file(); - std::vector files; - open_text_project("subtitle", task.input.at(0), files); + std::vector files; + open_subtitle_project("subtitle", task.input.at(0), files); for (auto& file : files) { - file.file_path = path_map.apply_remaps(file.file_path); + file.lines_path = path_map.apply_remaps(file.lines_path); + if (file.format == GameSubtitleDefinitionFile::Format::JSON) { + file.meta_path = path_map.apply_remaps(file.meta_path); + if (file.lines_base_path) { + file.lines_base_path = path_map.apply_remaps(file.lines_base_path.value()); + } + if (file.meta_base_path) { + file.meta_base_path = path_map.apply_remaps(file.meta_base_path.value()); + } + } } compile_game_subtitle(files, db, path_map.output_prefix); return true; From 18f162fcdf23386e5e0445b89594143cec555e74 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Thu, 18 May 2023 20:43:00 -0500 Subject: [PATCH 5/5] New Crowdin updates (#2666) --- .../jak1/subtitle/subtitle_lines_pt-BR.json | 2 +- .../jak1/text/game_custom_text_fr-FR.json | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json b/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json index e02414d3f2..67f98b3cbe 100644 --- a/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json +++ b/game/assets/jak1/subtitle/subtitle_lines_pt-BR.json @@ -2778,4 +2778,4 @@ "WOMAN": "MULHER", "YELLOW SAGE": "SÁBIO AMARELO" } -} \ No newline at end of file +} diff --git a/game/assets/jak1/text/game_custom_text_fr-FR.json b/game/assets/jak1/text/game_custom_text_fr-FR.json index aae0d92127..8ece0e7705 100644 --- a/game/assets/jak1/text/game_custom_text_fr-FR.json +++ b/game/assets/jak1/text/game_custom_text_fr-FR.json @@ -2,18 +2,18 @@ "1000": "OPTIONS DE CAMÉRA", "1001": "NORMALE", "1002": "INVERSÉE", - "1003": "CAMÉRA HORIZONTALE EN 1ÈRE-PERSONNE ", - "1004": "CAMÉRA VERTICALE EN 1ÈRE-PERSONNE ", - "1005": "CAMÉRA HORIZONTALE EN 3ÈME-PERSONNE", - "1006": "CAMÉRA VERTICALE EN 3ÈME-PERSONNE", + "1003": "CAMÉRA HORIZONTALE EN 1RE PERSONNE ", + "1004": "CAMÉRA VERTICALE EN 1RE PERSONNE ", + "1005": "CAMÉRA HORIZONTALE EN 3E PERSONNE", + "1006": "CAMÉRA VERTICALE EN 3E PERSONNE", "1007": "VALEURS PAR DÉFAUT", "1010": "ACCESSIBILITÉ", - "1011": "LUMINOSITÉ DE L'ORBE PRÉCURSEUR", + "1011": "ORBES BRILLANTS", "1020": "OPTIONS DE PS2", "1021": "VITESSE DE CHARGEMENT DE PS2", - "1022": "ÉLIMINER LES PARTICULES", - "1023": "FONDU DE MUSIQUE", - "1024": "FONDU ENCHAÎNÉ DE MUSIQUE", + "1022": "MASQUAGE DE PARTICULES", + "1023": "FONDU EN FIN DE MUSIQUE", + "1024": "FONDU EN DÉBUT DE MUSIQUE", "1025": "SUPPRESSION DE L'ACTEUR", "1026": "SUPPRESSION DE L'ARRIÈRE-PLAN", "1027": "FORCER LA CARTOGRAPHIE DE L'ENVIRONNEMENT", @@ -24,9 +24,9 @@ "1034": "PLEIN ÉCRAN", "1035": "RÉSOLUTION", "1036": "~D X ~D", - "1037": "RATIO D'ASPECT DE PS2", - "1038": "LORSQUE LE RATIO D'ASPECT PS2 EST ACTIVÉ, SEULS LES RATIOS D'ASPECT 4X3 ET 16X9 PEUVENT ÊTRE SÉLECTIONNÉS. CONTINUER ?", - "1039": "RATIO D'ASPECT (PS2)", + "1037": "FORMAT D'IMAGE PS2", + "1038": "QUAND LE FORMAT D'IMAGE PS2 EST ACTIVÉ, SEULES LES RÉSOLUTIONS 4:3 ET 16:9 PEUVENT ÊTRE SÉLECTIONNÉES. CONTINUER ?", + "1039": "FORMAT D'IMAGE (PS2)", "1040": "SOUS-TITRES ACTIVÉS", "1041": "SOUS-TITRES DÉSACTIVÉS", "1042": "LANGUE DU TEXTE", @@ -38,12 +38,12 @@ "1053": "4X", "1054": "8X", "1055": "16X", - "1060": "IPS (EXPÉRIMENTAL)", + "1060": "FRÉQUENCE D'IMAGES (EXPÉRIMENTAL)", "1061": "60", "1062": "100", "1063": "150", - "1070": "NIVEAU DE DÉTAILS (ARRIÈRE-PLAN)", - "1071": "NIVEAU DE DÉTAILS (PREMIER PLAN)", + "1070": "NIVEAU DE DÉTAIL (ARRIÈRE-PLAN)", + "1071": "NIVEAU DE DÉTAIL (PREMIER PLAN)", "1072": "MAXIMUM", "1073": "HAUT", "1074": "MOYEN", @@ -57,7 +57,7 @@ "1082": "SELECTION DU MORCEAU", "1083": "SELECTION DE LA VARIANTE", "1084": "BOSS FINAL", - "1085": "CRÉDITS", + "1085": "GÉNÉRIQUE", "1086": "?????", "1087": "KLAWW", "1088": "MINI-JEU DE PÊCHE",